summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering
Commit message (Collapse)AuthorAgeFilesLines
* Re-enable iframe scrolling.Patrick Scott2010-12-151-3/+14
| | | | This reverts commit c7911ffd666a7e73131dfd68919b769086a093e0.
* Revert "Enable iframe scrolling."Guang Zhu2010-12-141-14/+3
| | | | This reverts commit 27dd9e051d0960e985cb677bfc1ce20531ac0456.
* Enable iframe scrolling.Patrick Scott2010-12-131-3/+14
| | | | | | | | | | Turn off iframe expansion and record iframes in a composited layer. Fix navigation by tracking iframe layers if needed. Remove the logic to add focused nodes to the last tracked layer as it is not needed and might add nodes to the wrong layer. Bug: 3219076, 3211666, 3201077, 3194321 Change-Id: Ifc0b83102438255db7e4b62ad260f50ebbdb0e50
* Fix hit testing inside layers.Patrick Scott2010-12-133-6/+34
| | | | | | | | | | | | | | | | | | * Prevent asking for a sync in GraphicsLayerAndroid if some property has not changed. * Remove scrolling logic from LayerAndroid and create a subclass for scrollable layers. * Report the scrolling limits to the layer in order to scroll iframes (not turned on) and to avoid computing them each time the layer is scrolled. * Change the foreground rect calculations to better match the non-overflow case. * During hit testing, intersect the hitTestClip with the foreground and background to prevent false positives in the layer. * Prepare for iframe scrolling by adding code to trigger compositing for iframes. This currently works great except for navigation so it disabled for now. Bug: 3258631 Change-Id: I0da2d8dbe25376c6aa4f485c9350048c82c6f563
* Rewrite scrollable layers using multiple layers.Patrick Scott2010-12-034-29/+46
| | | | | | | | | | | | | | | | | | | | | | | Remove PlatformBridge::updateLayers and instead call layersDraw from ChromeClientAndroid during a requested sync. Instead of LayerAndroid having knowledge of scrolling pictures, use multiple layers (background, mask, foreground). Update navigation to use the new structure. Always record nodes in absolute, unscrolled coordinates. Do not track layers unless the node has a composited layer and a last child. Check for composited parents when adding to tracked layers as well. TODO: * developer.android.com doesn't completely work with navigation due to some nodes being clipped out. * BaseLayerAndroid needs to be able to operate with a matrix other than identity. * nested fixed position elements do not draw correctly. * nested overflow layers haven't been tested. Change-Id: I0e2bd37612341e8884d68153ab36194cb2dc1eeb
* Merge WebKit at r72272: Fix conflicts.Russell Brenner2010-12-022-17/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | WebCore/Android.v8bindings.mk http://trac.webkit.org/changeset/71802 WebCore/bindings/v8/V8Proxy.cpp http://trac.webkit.org/changeset/71735 WebCore/css/CSSParser.cpp http://trac.webkit.org/changeset/71767 http://trac.webkit.org/changeset/72116 (several APIs purged) WebCore/loader/ResourceLoader.cpp http://trac.webkit.org/changeset/71884 WebCore/platform/graphics/MediaPlayer.cpp http://trac.webkit.org/changeset/72117 WebCore/platform/image-decoders/ImageDecoder.cpp http://trac.webkit.org/changeset/72130 WebCore/rendering/RenderBlockLineLayout.cpp http://trac.webkit.org/changeset/72235 WebCore/rendering/RenderView.cpp http://trac.webkit.org/changeset/71851 Change-Id: If0a3466754b9755c1f4be97bf589f88c48eece0a
* Merge WebKit at r72274: Initial merge by git.Russell Brenner2010-12-0272-618/+991
| | | | Change-Id: Ie51f0b4a16da82942bd516dce59cfb79ebbe25fb
* Merge Webkit at r71558: Fix conflicts.Teng-Hui Zhu2010-11-173-34/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WebCore/loader/FrameLoader.cpp http://trac.webkit.org/changeset/70960 http://trac.webkit.org/changeset/70971 WebCore/css/CSSStyleSelector.cpp http://trac.webkit.org/changeset/71218 WebCore/css/CSSParser.cpp http://trac.webkit.org/changeset/71218 WebCore/html/HTMLLinkElement.cpp http://trac.webkit.org/changeset/71159 WebCore/platform/android/PlatformBridge.h http://trac.webkit.org/changeset/71484 WebCore/platform/android/TemporaryLinkStubs.cpp http://trac.webkit.org/changeset/71484 WebCore/rendering/RenderTableSection.cpp http://trac.webkit.org/changeset/71382 http://trac.webkit.org/changeset/71251 WebCore/rendering/RenderLayer.cpp http://trac.webkit.org/changeset/71536 WebCore/rendering/RenderTable.cpp http://trac.webkit.org/changeset/71382 WebCore/Android.v8bindings.mk http://trac.webkit.org/changeset/71515 WebCore/bindings/scripts/CodeGeneratorV8.pm http://trac.webkit.org/changeset/71227 http://trac.webkit.org/changeset/71230 Change-Id: I3ad8c6bc6e36c90aedebedf915a8614b2c786550
* Merge WebKit at r71558: Initial merge by git.Teng-Hui Zhu2010-11-1751-1397/+1721
| | | | Change-Id: Ib345578fa29df7e4bc72b4f00e4a6fddcb754c4c
* Merge Webkit at r70949: Fix conflicts.John Reck2010-11-091-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JavaScriptCore/wtf/Platform.h http://trac.webkit.org/changeset/70726 WebCore/Android.derived.v8bindings.mk http://trac.webkit.org/changeset/70854 WebCore/Android.jscbindings.mk http://trac.webkit.org/changeset/70854 WebCore/Android.mk http://trac.webkit.org/changeset/70854 WebCore/css/CSSStyleSelector.cpp http://trac.webkit.org/changeset/70250 WebCore/page/Settings.cpp http://trac.webkit.org/changeset/70714 WebCore/page/Settings.h http://trac.webkit.org/changeset/70714 WebCore/rendering/RenderBox.h http://trac.webkit.org/changeset/70482 http://trac.webkit.org/changeset/70664 http://trac.webkit.org/changeset/70917 Change-Id: I0cdaca316df016c3885a23d42ee2038777b7ccff
* Merge Webkit at r70949: Initial merge by git.John Reck2010-11-0940-558/+836
| | | | Change-Id: I77b8645c083b5d0da8dba73ed01d4014aab9848e
* Fix compilation error when ANDROID_LAYOUT is not defined.Shimeng (Simon) Wang2010-11-051-1/+1
| | | | Change-Id: I6bdb9832bd94017a5f4a894474c30f2cea89d39d
* Merge Webkit at r70209: Fix conflictsBen Murdoch2010-10-262-33/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WebCore/page/FrameView.cpp http://trac.webkit.org/changeset/69896 WebCore/html/parser/HTMLDocumentParser.cpp http://trac.webkit.org/changeset/69283 WebCore/html/HTMLPlugInElement.h http://trac.webkit.org/changeset/69596 WebCore/html/HTMLInputElement.cpp http://trac.webkit.org/changeset/68996 http://trac.webkit.org/changeset/69378 WebCore/plugins/npapi.cpp http://trac.webkit.org/changeset/69808 WebCore/css/CSSComputedStyleDeclaration.cpp http://trac.webkit.org/changeset/69220 WebCore/css/CSSParser.cpp http://trac.webkit.org/changeset/69196 WebCore/rendering/style/RenderStyle.h http://trac.webkit.org/changeset/68680 WebCore/rendering/RenderImage.cpp http://trac.webkit.org/changeset/68917 WebCore/platform/android/FileSystemAndroid.cpp http://trac.webkit.org/changeset/69594 WebCore/inspector/InspectorController.h http://trac.webkit.org/changeset/68767 See also Android change I4c724f2f52a5a9db6dca6b58032b6a902aac74b5 which is why this is a conflict. JavaScriptCore/parser/Parser.cpp http://trac.webkit.org/changeset/69516 Change-Id: I5a708c6590ba029a2b3ecc3b30478ea303e1f2f5
* Merge WebKit at r70209: Initial merge by GitBen Murdoch2010-10-26201-6689/+7492
| | | | Change-Id: Id23a68efa36e9d1126bcce0b137872db00892c8e
* Fix a few drawing issues with layers.Patrick Scott2010-10-191-2/+4
| | | | | | | | | The overflow layer clip was in the wrong location and caused some blank areas on developer.android.com. Only scroll layers if they have overflow scrolling so that image search draws correctly. Bug: 3027644, 3022562 Change-Id: Iff4b27b9fd860e9d89286034c9ae82f76b1371c2
* Merge WebKit at r68651 : Renamed variablesKristian Monsen2010-10-076-23/+23
| | | | | | | | | | | | | | Changed m_minPrefWidth and m_maxPrefWidth to m_minPreferredLogicalWidth and m_maxPreferredLogicalWidth in this CL: http://trac.webkit.org/changeset/68276/trunk/WebCore/rendering/RenderBox.h This changed containerWidth to containerLogicalWidth http://trac.webkit.org/changeset/68362/trunk/WebCore/rendering/RenderBox.cpp Also changed calcReplacedWidthUsing to computeReplacedWidthUsing here: http://trac.webkit.org/changeset/68239/trunk/WebCore/rendering/RenderBox.h Change-Id: I8eb912128aa5e09f55f4495671209cb8ca2ba3f0
* Merge Webkit at r68651 : Fix conflicts.Kristian Monsen2010-10-075-61/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ChromeClient.h: Conflict due to ANDROID_INSTALLABLE_WEB_APPS http://trac.webkit.org/changeset/68031/trunk/WebCore/page/ChromeClient.h CSSParser.cpp: Conflict due to ANDROID_INSTRUMENT http://trac.webkit.org/changeset/68521/trunk/WebCore/css/CSSParser.cpp Node.cpp: Conflict due to ANDROID_DOM_LOGGING http://trac.webkit.org/changeset/68541/trunk/WebCore/dom/Node.cpp npapi.h: Conflicts due to various #ifdef ANDROID http://trac.webkit.org/changeset/68390/trunk/WebCore/bridge/npapi.h PlatformTouchEvent.h: PlatformTouchEventAndroid.cpp: PlatformTouchPoint.h: Conflicts due to new BREWMP code next to changed Android code Initial webkit CL: http://trac.webkit.org/changeset/68499 Later fix after merge revision, so cherry-picked: http://trac.webkit.org/changeset/69034 RenderBox.cpp: Several changes, conflicts due to ANDROID_LAYOUT http://trac.webkit.org/changeset/68238#file2 http://trac.webkit.org/changeset/68239#file3 http://trac.webkit.org/changeset/68362/trunk/WebCore/rendering/RenderBox.cpp The correct resolution here is unclear. A closer investiagtion by somebdoy more familiar with the code is tracked with b/3071198 RenderBox.h: Conflicts due to ANDROID_LAYOUT http://trac.webkit.org/changeset/68417/trunk/WebCore/rendering/RenderBox.h RenderIFrame.cpp: Conflicts due to ANDROID_FLATTEN_IFRAME http://trac.webkit.org/changeset/68238/trunk/WebCore/rendering/RenderIFrame.cpp RenderTable.cpp: Conflicts due to ANDROID_LAYOUT http://trac.webkit.org/changeset/68427/trunk/WebCore/rendering/RenderTable.cpp RenderView.cpp: Conflicts due to ANDROID_LAYOUT http://trac.webkit.org/changeset/68436/trunk/WebCore/rendering/RenderView.cpp Settings.cpp: Settings.h: Conflicts due to ANDROID_PLUGINS and WEB_AUTOFILL http://trac.webkit.org/changeset/68166 Widget.cpp: http://trac.webkit.org/changeset/68054/trunk/WebCore/platform/Widget.cpp Change-Id: I156f537ae0483b89e4c6b9fce0e7b2f931f957a2
* Merge WebKit at r68651 : Initial merge by git.Kristian Monsen2010-10-07114-1647/+2415
| | | | Change-Id: I3d6bff59f17eedd6722723354f386fec9be8ad12
* Merge WebKit at r67908: Fix conflictsSteve Block2010-09-295-57/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Whitespace difference in config.h - http://trac.webkit.org/changeset/67323 - WebCore/config.h Conflict due to ANDROID_LAYOUT - http://trac.webkit.org/changeset/67882 - WebCore/css/CSSComputedStyleDeclaration.cpp Conflict due to ANDROID_INSTRUMENT - http://trac.webkit.org/changeset/67704 - WebCore/css/CSSParser.cpp Conflict due to ANDROID_CSS_RING - http://trac.webkit.org/changeset/67667 - WebCore/css/CSSParser.cpp - WebCore/css/CSSStyleSelector.cpp Conflict due to axObjectCache - http://trac.webkit.org/changeset/67292 - WebCore/dom/Document.cpp Conflict due to ANDROID_ACCEPT_CHANGES_TO_FOCUSED_TEXTFIELDS - http://trac.webkit.org/changeset/67903 - WebCore/html/HTMLInputElement.cpp Conflict due to ARCHIVE - http://trac.webkit.org/changeset/67198 - WebCore/loader/DocumentLoader.cpp - WebCore/loader/FrameLoader.cpp Conflict due to ARCHIVE - http://trac.webkit.org/changeset/67253 - WebCore/loader/FrameLoader.cpp Conflict due to actualWidth() vs width() - http://trac.webkit.org/changeset/67762 - WebCore/page/DOMWindow.cpp Conflict due to ANDROID_PLUGINS - http://trac.webkit.org/changeset/67890 - WebCore/page/Settings.cpp - WebCore/page/Settings.h Conflict due to Android MIME types - http://trac.webkit.org/changeset/67375 - WebCore/platform/MIMETypeRegistry.cpp Android fix in PluginView no longer needed after http://trac.webkit.org/changeset/67325 - WebCore/plugins/PluginView.cpp Conflict due to ANDROID_FLATTEN_IFRAME and ANDROID_FLATTEN_FRAMESET - http://trac.webkit.org/changeset/67660 - WebCore/rendering/RenderBlockLineLayout.cpp Conflict due to ANDROID_LAYOUT - http://trac.webkit.org/changeset/67660 - WebCore/rendering/RenderBox.h - WebCore/rendering/RenderTable.cpp Android fix in RenderTableCell no longer needed after http://trac.webkit.org/changeset/67862 - WebCore/rendering/RenderTableCell.cpp Conflict due to ANDROID_CSS_RING - http://trac.webkit.org/changeset/67889 and http://trac.webkit.org/changeset/67667 - WebCore/rendering/style/RenderStyle.h Change-Id: Ie36bd7de6d89a1f873c91984048f2507cabd864c fix conflicts Change-Id: I3acaba9492f6f39869e69fa24270cefbb74ba673
* Merge WebKit at r67908: Initial merge by GitSteve Block2010-09-2957-890/+2608
| | | | Change-Id: I43a553e7b3299b28cb6ee8aa035ed70fe342b972
* Merge WebKit at r67178 : Initial merge by git.Iain Merrick2010-09-1631-427/+384
| | | | Change-Id: I57e01163b6866cb029cdadf405a0394a3918bc18
* Merge WebKit at r66666 : Initial merge by git.Kristian Monsen2010-09-1190-984/+1388
| | | | Change-Id: I57dedeb49859adc9c539e760f0e749768c66626f
* Merge WebKit at r66079 : Initial merge by gitSteve Block2010-09-0248-610/+627
| | | | Change-Id: Ie2e1440fb9d487d24e52c247342c076fecaecac7
* Use upstream version of ANDROID_HITTEST_WITHSIZESteve Block2010-08-276-45/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change removes the last occurrences of ANDROID_HITTEST_WITHSIZE and updates WebKit to use the upstream version of this logic. This follows on from https://android-git.corp.google.com/g/#change,60166 which merged the upstream logic into the Android tree but maintained the existing behaviour for Android, guarded with ANDROID_HITTEST_WITHSIZE. This change introduces the following functional changes ... - HitTestResult::addNodeToRectBasedTestResult() The Android version proceeded with the containment test if the node is null. We now early out and continue the hit test. We also record the node's shadowAncestorNode, rather than the node itself. - RenderLayer::hitTestList() The android version always updates the result, but only updates the result layer if the result is not a rect based result. We now always update result layer, but only update the result if the result is not a rect based result. - RenderSVGRoot::nodeAtPoint() The Android version returned true only if it's not a rect based hit test. Now we return true always. - HitTestResult::m_isRectBased In the Android version, a padding must have positive width and height. Now we allow one of the two to be zero, provided the other is positive All other changes are non-functional and should probably have been done as part of https://android-git.corp.google.com/g/#change,60166 Note that the change to RenderBlock::nodeAtPoint() is a non-functional change because we don't pass a rect to addNodeToRectBasedTestResult(), so the default zero rect is used and the hit test always fails. Change-Id: I4163fddad59ad6485df40cd48794aa262f76ced7
* Merge WebKit at r65615 : Initial merge by git.Iain Merrick2010-08-2355-285/+542
| | | | Change-Id: Ifbf384f4531e3b58475a662e38195c2d9152ae79
* Add CSS cursor ring definitionsCary Clark2010-08-183-0/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows web pages to have fine-grain control over the appearance of the rings drawn around nodes. Generated links (email, addresses, phone numbers) are no longer given unique colors. To preserve this feature, a separate change could add an HTML extension similar to vlink to provide the cursor ring defintions for theses links. The mechanism implemented below isn't appropriate since these links don't necessarily correspond to single DOM nodes or other DOM elements. ------------ CSS examples ------------ The CSS to specify the ring looks like: -webkit-ring-fill-color:rgba(0,0,255,0.4); -webkit-ring-inner-width:2 px; -webkit-ring-outer-width:3.5 px; -webkit-ring-outset: 8 px; -webkit-ring-pressed-inner-color:rgba(0,0,255,0.8); -webkit-ring-pressed-outer-color:rgba(0,0,127,0.3); -webkit-ring-radius: 10 px; -webkit-ring-selected-inner-color:rgba(63,63,255,0.8); -webkit-ring-selected-outer-color:rgba(63,63,127,0.3); and may be alternately defined with a property shortcut: -webkit-ring:rgba(255,0,0,0.4) 5px 7px rgba(255,0,0,0.8) rgba(127,0,0,0.3) 20px rgba(255,63,63,0.8) rgba(127,63,63,0.3); -------------------- Property definitions -------------------- A vertical cross-section of the ring corresponds to these parameters as shown: ______ R / ___O_ R = corner radius / / __I_ o I = inner ring / / / _O_ ^ O = outer ring | | | / F | F = fill |O|I|O| L o = outset | | | \_F_ | L = original link \ \ \__O_ V \ \___I_ o R \____O_ The fill color specifies what to draw inside the ring when the link is followed. The fill area consists of the original link area plus the outset. The inner and outer widths specify the stoke width of the inner and outer rings, respectively. The widths may be specified in fractional pixels. The implementation captures 4 bits of the fraction. The outset specifies the distance from the edge of the original link to the rings' center. Both rings are drawn at the same center location. The radius specifies the curvature of the corners at the center of the rings. ------------- Data lifetime ------------- The selected colors specify the colors of the inner and outer rings when the trackball or D-pad hovers over the link. The pressed colors specify the colors of the rings when the trackball center is pressed or the link is tapped. The CSS data is recorded in the RenderStyle when the DOM is parsed. The widths are scaled up by 16 to preserve the fraction. When the nav cache is built, the CSS style information is recorded in the CachedColor class. Only unique style sets are recorded; many CachedNode instances can share the same CachedColor instance. When the cursor ring is drawn, the CachedColor is retrieved by getting the index from the CachedNode, and looking up the entry in the CachedFrame. The widths are scaled down by 16 since Lengths are stored by the webkit as integers. ---------- File Edits ---------- WebCore/Android.derived.mk - Build the CSS data property tables by concatentating Android specific data and optionally SVG data. WebCore/config.h - Add switch for these rings. This switch is meant as a convenience for finding the code in WebKit that was added to enable this feature. Since the old code in DrawCursor has been removed, it does not revert to the old behavior if the switch is turned off. WebCore/css/AndroidCSSPropertyNames.in - The new ring properties, plus an old one we added before. WebCore/css/CSSComputedStyleDeclaration.cpp WebCore/css/CSSMutableStyleDeclaration.cpp WebCore/css/CSSParser.cpp WebCore/css/CSSStyleSelector.cpp - I can guess what these functions are for as well as anyone, but I really don't know. Do I need all of them? Do I need to modify Mutable at all? WebCore/css/CSSPropertyNames.in - Moved Android addition to AndroidCSSPropertyNames.in WebCore/platform/graphics/Color.h - Added initial color values here. WebCore/platform/graphics/android/android_graphics.* - This draws the cursor ring. The code that draws 'synthetic' links has been discarded. WebCore/rendering/style/RenderStyle.h - Functions to get, set, and initialize the style data. WebCore/rendering/style/StyleRareInheritedData.* - The storage for the style data and an equivalence function. WebKit/Android.mk - Added CachedColor to the build. WebKit/android/nav/CacheBuilder.cpp - Record the color from the DOM into the cache. WebKit/android/nav/CachedColor.* - Store the cached color info. WebKit/android/nav/CachedFrame.* - Where the array of colors is stored. WebKit/android/nav/CachedNode.* - Where the index to the colors is stored. Change-Id: Ia3a931f41d6545e47678e245aafe7c84d4658f94 http://b/2603197
* Fix acid3 crash.Patrick Scott2010-08-181-1/+1
| | | | | Bug: 2928878, 2928899 Change-Id: I90ca6f93a61c921b520731e6a143e5b4457fa44c
* Update navigation in scrollable layers.Patrick Scott2010-08-164-31/+65
| | | | | | | | | | | | | | | | | | | | | | | | Set the foreground clip after drawing. Use the absolute bounds to compute the local foreground clip in order to compensate for any outline. Consolidate the check for overflow scrolling into RenderLayer. Request a compositing update after computing the scroll dimensions. Only change the foregroundRect of the layer during paint so that the outline rect (and background/layerBounds) are correct. Draw the outline as part of the background phase. During painting of a layer, scroll to (0,0), paint, then scroll back. When clicking on an element in a layer, scroll to the position of the element but do not scroll back. This makes text input fields visible to the tree and will properly update when typing. Record the original scroll position of layers in order to offset the bounds of nodes when checking the nav cache. Make sure to reset all cached layers during setRootLayer. Otherwise we were reaching into layers from the wrong thread. Change-Id: Id9827ec461989b0869a8252d4d2563ecd12c5fac
* Merge WebKit at r65072 : Initial merge by git.Ben Murdoch2010-08-1242-288/+370
| | | | Change-Id: Ibcf418498376b2660aacb7f8d46ea7085ef91585
* Merge WebKit at r64523 : Cherry-pick WebKit change 64732 for FILTERS guardSteve Block2010-08-091-2/+6
| | | | | | See http://trac.webkit.org/changeset/64732 Change-Id: I5fe2041764991c6c621bb634df1ed4bcb896f7eb
* Merge WebKit at r64523 : Fix other conflictsSteve Block2010-08-091-86/+0
| | | | | | | | | | | | | | | | | | | | | - WebCore/Android.mk Conflict due to error introduced upstream. See http://trac.webkit.org/changeset/64344/trunk/WebCore/Android.mk and http://trac.webkit.org/changeset/60228/trunk/WebCore/Android.mk - WebCore/html/HTMLFrameSetElement.cpp Conflict due to ANDROID_FLATTEN_FRAMESET See http://trac.webkit.org/changeset/64383 - WebCore/page/Navigator.h Conflict due to APPLICATION_INSTALLED See http://trac.webkit.org/changeset/64371 - WebCore/rendering/SVGResourcesCycleSolver.cpp Conflict due to local ENABLE(FILTERS) guard See http://trac.webkit.org/changeset/64440 Change-Id: Ibafe3b92117c3a7b3eaaa44c6cf3d04c8c6027c2
* Merge WebKit at r64523 : Fix conflicts due to ANDROID_HITTEST_WITHSIZESteve Block2010-08-0914-426/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A modified version of this Android-specific code was upstreamed in http://trac.webkit.org/changeset/64272 For the most part, the differences between the Android and upstreamed versions are syntactic only. In these cases, we take the upstream version. In a small number of cases, logical changes exist. In these cases, the Android logic has been retained, guarded with ANDROID_HITTEST_WITHSIZE, but using the new syntax. In particular ... - Android's HitTestResult::intersects(x, y, rect) is logically equivalent to the uspstream IntRect::intersects(HitTestPoint::rectFromPoint(x, y))). - Android's HitTestResult::addRawNode() is logically equivalent to the upstream HitTestResult::m_rectBasedTestResult.add(). - Android's HitTestResult::isRegionTest() is slightly different from the upstream HitTestResult::isRectBasedTest(). The latter is modified with a new ANDROID_HITTEST_WITHSIZE guard in HitTestResult::HitTestResult() to maintain the same behaviour. - The upstreamed code uses HitTestResult::addNodeToRectBasedTestResult() as a helper method in place of inline logic in the Android version. The slight difference in behaviour between this helper and the Android logic is reflected in the new ANDROID_HITTEST_WITHSIZE guard in the helper. This change should introduce no change in behaviour. Change-Id: I974d68e3ac963f18334418e32b08c3fd9ab1182e
* Merge WebKit at r64523 : Initial merge by git.Steve Block2010-08-0970-821/+1588
| | | | Change-Id: Ibb796c6802e757b1d9b40f58205cfbe4da95fcd4
* Fix incorrect cherry-pick of WebKit change 64465 in merge to WebKit r64264Steve Block2010-08-051-1/+1
| | | | | | See https://android-git.corp.google.com/g/#change,59749 Change-Id: I0ea44ef95fcd8035adc27a32fb75e7c19f23c975
* Merge WebKit at r64264 : Compile fix: Filter guards in SVGKristian Monsen2010-08-041-0/+7
| | | | | | | | | | | Introduced here: http://trac.webkit.org/changeset/64196/trunk/WebCore/rendering/SVGResourcesCycleSolver.cpp Partially upstreamed as the file has changed upstream after the merge, and the newer version doesn't have both places where guards were needed. Upstream bug: https://bugs.webkit.org/show_bug.cgi?id=43338 Upstream CL: http://trac.webkit.org/changeset/64465/trunk/WebCore/rendering/SVGResourcesCycleSolver.cpp Upstream change after merge where we have guards: http://trac.webkit.org/changeset/64440/trunk/WebCore/rendering/SVGResourcesCycleSolver.cpp Change-Id: Iaab4595ded78485c81d6f61a726a5bd0f48c5621
* Merge WebKit at r64264 : Compile fix: CellStruct changed.Kristian Monsen2010-08-041-2/+2
| | | | | | http://trac.webkit.org/changeset/63994/trunk/WebCore/rendering/RenderTableSection.h Change-Id: I52787b9723791822d9c95ef52d7a81c23c2aeca7
* Merge Webkit at r64264 : Fix conflicts.Kristian Monsen2010-08-043-15/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Tracs of the changes: WebCore/html/HTMLDocumentParser.cpp http://trac.webkit.org/changeset/63998/trunk/WebCore/html/HTMLDocumentParser.cpp WebCore/page/EventHandler.cpp WebCore/page/EventHandler.h http://trac.webkit.org/changeset/63888 WebCore/page/Page.cpp http://trac.webkit.org/changeset/64208 WebCore/page/Settings.cpp WebCore/page/Settings.h http://trac.webkit.org/changeset/64110 WebCore/rendering/RenderLayerCompositor.h http://trac.webkit.org/changeset/64054/trunk/WebCore/rendering/RenderLayerCompositor.h WebCore/rendering/RenderTableSection.cpp http://trac.webkit.org/changeset/63994/trunk/WebCore/rendering/RenderTableSection.cpp WebCore/rendering/break_lines.cpp http://trac.webkit.org/changeset/64207 Change-Id: I34167b43899ee5066e33b40867cd569ce53f9207
* Merge WebKit at r64264 : Initial merge by git.Kristian Monsen2010-08-0431-364/+1628
| | | | Change-Id: Ic42bef02efef8217a0f84c47176a9c617c28d1f1
* Enable navigation in scrollable layers.Patrick Scott2010-08-023-37/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | EventHandler: * Added IgnoreClipping in order to touch nodes that are clipped out. android_graphics: * Remember the absolute bounds of the node for invals. RenderBox: * Fix a compiler warning. RenderLayer: * Do not record the entire layer contents unless the scroll dimensions are larger than the client dimensions. * Change isSelfPaintingLayer to check for an overflow clip instead of the scrollable dimensions since it can be too early to check at this point. RenderLayerCompositor: * Same as RenderLayer for checking the overflow clip. WebViewCore: * Scroll the containing layer to the node bounds and offset the mouse position if scrolled. Once the mouse event is processed, restore the layer to 0,0. CacheBuilder: * The body position is no longer used. * Do not clip out nodes if the layer is scrollable. CachedFrame: * Add unadjustBounds to restore adjusted bounds to their original position (fixed position elements). * Call unadjustBounds when a node has been found. This new set of bounds is passed over to WebViewCore to handle clicks. * Reject empty node bounds. CachedLayer: * Document adjustBounds and add unadjustBounds. Add in the scroll position to the node bounds. CachedRoot: * Unadjust the mouse bounds. WebView: * Unadjust the mouse bounds and use the absolute bounds of the ring during inval. Bug: 1566791 Change-Id: Ia55f2cbb61869087176d3ff61882e40324614c6a
* Revert "Add CSS cursor ring definitions"Cary Clark2010-07-303-83/+0
| | | | This reverts commit 0ed6485271097ecf1b4cf4e790f9cfdbb57d921c.
* Add CSS cursor ring definitionsCary Clark2010-07-303-0/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows web pages to have fine-grain control over the appearance of the rings drawn around nodes. Generated links (email, addresses, phone numbers) are no longer given unique colors. To preserve this feature, a separate change could add an HTML extension similar to vlink to provide the cursor ring defintions for theses links. The mechanism implemented below isn't appropriate since these links don't necessarily correspond to single DOM nodes or other DOM elements. ------------ CSS examples ------------ The CSS to specify the ring looks like: -webkit-ring-fill-color:rgba(0,0,255,0.4); -webkit-ring-inner-width:2 px; -webkit-ring-outer-width:3.5 px; -webkit-ring-outset: 8 px; -webkit-ring-pressed-inner-color:rgba(0,0,255,0.8); -webkit-ring-pressed-outer-color:rgba(0,0,127,0.3); -webkit-ring-radius: 10 px; -webkit-ring-selected-inner-color:rgba(63,63,255,0.8); -webkit-ring-selected-outer-color:rgba(63,63,127,0.3); and may be alternately defined with a property shortcut: -webkit-ring:rgba(255,0,0,0.4) 5px 7px rgba(255,0,0,0.8) rgba(127,0,0,0.3) 20px rgba(255,63,63,0.8) rgba(127,63,63,0.3); -------------------- Property definitions -------------------- A vertical cross-section of the ring corresponds to these parameters as shown: ______ R / ___O_ R = corner radius / / __I_ o I = inner ring / / / _O_ ^ O = outer ring | | | / F | F = fill |O|I|O| L o = outset | | | \_F_ | L = original link \ \ \__O_ V \ \___I_ o R \____O_ The fill color specifies what to draw inside the ring when the link is followed. The fill area consists of the original link area the outset. The inner and outer widths specify the stoke width of the inner and outer rings, respectively. The widths may be specified in fractional pixels. The implementation captures 4 bits of the fraction. The outset specifies the distance from the edge of the original link to the rings' center. Both rings are drawn at the same center location. The radius specifies the curvature of the corners at the center of the rings. ------------- Data lifetime ------------- The selected colors specify the colors of the inner and outer rings when the trackball or D-pad hovers over the link. The pressed colors specify the colors of the rings when the trackball center is pressed or the link is tapped. The CSS data is recorded in the RenderStyle when the DOM is parsed. The widths are scaled up by 16 to preserve the fraction. When the nav cache is built, the CSS style information is recorded in the CachedColor class. Only unique style sets are recorded; many CachedNode instances can share the same CachedColor instance. When the cursor ring is drawn, the CachedColor is retrieved by getting the index from the CachedNode, and looking up the entry in the CachedFrame. The widths are scaled down by 16 since Lengths are stored by the webkit as integers. ---------- File Edits ---------- WebCore/Android.derived.mk - Build the CSS data property tables by concatentating Android specific data and optionally SVG data. WebCore/config.h - Add switch for these rings. This switch is meant as a convenience for finding the code in WebKit that was added to enable this feature. Since the old code in DrawCursor has been removed, it does not revert to the old behavior if the switch is turned off. WebCore/css/AndroidCSSPropertyNames.in - The new ring properties, plus an old one we added before. WebCore/css/CSSComputedStyleDeclaration.cpp WebCore/css/CSSMutableStyleDeclaration.cpp WebCore/css/CSSParser.cpp WebCore/css/CSSStyleSelector.cpp - I can guess what these functions are for as well as anyone, but I really don't know. Do I need all of them? Do I need to modify Mutable at all? WebCore/css/CSSPropertyNames.in - Moved Android addition to AndroidCSSPropertyNames.in WebCore/platform/graphics/Color.h - Added initial color values here. WebCore/platform/graphics/android/android_graphics.* - This draws the cursor ring. The code that draws 'synthetic' links has been discarded. WebCore/rendering/style/RenderStyle.h - Functions to get, set, and initialize the style data. WebCore/rendering/style/StyleRareInheritedData.* - The storage for the style data and an equivalence function. WebKit/Android.mk - Added CachedColor to the build. WebKit/android/nav/CacheBuilder.cpp - Record the color from the DOM into the cache. WebKit/android/nav/CachedColor.* - Store the cached color info. WebKit/android/nav/CachedFrame.* - Where the array of colors is stored. WebKit/android/nav/CachedNode.* - Where the index to the colors is stored. Change-Id: Ia3a931f41d6545e47678e245aafe7c84d4658f94 http://b/2603197
* Merge Webkit at r63859 : New code in SVGResourceContainer is missing an include.Ben Murdoch2010-07-271-0/+1
| | | | | | This is a cherry pick of http://trac.webkit.org/changeset/64007 to fix the build. Change-Id: Ic86639eb7dbcd09f0273f614537354bfa7fd369d
* Merge WebKit at r63859 : Initial merge by git.Ben Murdoch2010-07-2750-272/+725
| | | | Change-Id: Ie8096c63ec7c991c9a9cba8bdd9c3b74a3b8ed62
* Add node check to prevent crash.Shimeng (Simon) Wang2010-07-261-1/+1
| | | | | issue: 2870827 Change-Id: I49f9a83fd7cd79100d7d8b0833db7d9f03c7e4f8
* Fix page cycler crashes.Patrick Scott2010-07-232-8/+10
| | | | | Bug: 2862822 Change-Id: I9de300517eaa2bd4027608d6bae093bf5a1072e0
* Enable scrollable divs.Patrick Scott2010-07-223-0/+81
| | | | | | | | | | | | | | Force a composite layer when the style says the content is scrollable. Record the border and background in the main content picture. When the contents of the layer are bigger than the size, record the foreground contents in a separate picture which is clipped by the border and size. When updating the base layer, remember the scroll position of each layer and update the new layer with the same position. Bug: 1566791 Change-Id: If440e4f215db6bda9df32a781d754d1f5a238162
* Merge WebKit at r63173 : Initial merge by git.Leon Clarke2010-07-2044-253/+511
| | | | Change-Id: Ife5af0c7c6261fbbc8ae6bc08c390efa9ef10b44
* Fix issue: 2741016 and refactor visible width logic in android layout.Shimeng (Simon) Wang2010-07-129-62/+45
| | | | | | | | | | | The site is not reflowed, because for some RenderBlock, the m_visibleWidth is set twice before layout; the current logic will think the visibleWidth is not changed, hence no relayout children and no reflow. The logic is refactored to to make it modularlized. issue: 2741016 Change-Id: I1f433e263add974c0981c332ad4ea092ddb395e0
* Merge WebKit at r62496: Initial merge by gitSteve Block2010-07-09104-885/+1798
| | | | Change-Id: Ie3da0770eca22a70a632e3571f31cfabc80facb2
* Enable composite layers for the sub frame.Grace Kloba2010-07-071-17/+4
| | | | | | | | | | | | | | | | | | | | | Fix the visibleContentRect for iframe. It should be relative to its parent instead of the viewport. For fixed position, we still check for the top frame as the current logic positions the object relative to the screen which only applied to the top frame. For plugin, it depends on PluginWidget's platformLayer(). The default is 0. For video, it depends on MediaPlayer's supportsAcceleratedRendering(). The default is false. Fix the crash in the GraphicsLayerAndroid. The root layer is a container layer, there is no need to draw them. As LayerAndroid doesn't create Picture for them, we should ensure to skip draw. Fix http://b/issue?id=2733947