summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering
Commit message (Collapse)AuthorAgeFilesLines
* Merge "First draft to add a fat point to WebKit hit test."Grace Kloba2010-05-2414-0/+312
|\
| * First draft to add a fat point to WebKit hit test.Grace Kloba2010-05-2414-0/+312
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If padding is 0, it is the old style point hit test. If it finds a node, it will break the search loop and return. If padding is non-zero, the first node will be added to HitTestResult's innerNode as before. But instead of finishing the search, hit test will continue to look for other nodes covered by the fat point unless it is fully inside the current node. Here are some highlights of the changes. . instead of testing renderRect.contains(x, y), we now test renderRect.intersect(pointRect) . when a Node is hit, it will be appended to the rawNodeList of HitTestResult. So the order inside the rawNodeList represents the hit test order. Currently the fat point doesn't support SVG nodes. It also doesn't support overflow control yet.
* | Fix the infinite loop when flatten iframes.Patrick Scott2010-05-201-9/+3
|/ | | | | | | | Somehow javascript can cause a layout of the parent renderer in the middle of the FrameView's layout. Bug: 2614175 Change-Id: I37ed3d2e88de1762715e0d0712549d8fab0f12d2
* Merge Webkit at r58956: SVGPaintServer has been deleted upstream and ↵Ben Murdoch2010-05-141-2/+2
| | | | | | | | | | | replaced with SVGResourceSolidColor.cpp. We had local modifications in the deleted file to correctly guard some Chromium/Skia includes we don't have on Android, so move the guards into the new file. See http://trac.webkit.org/changeset/58212 See http://trac.webkit.org/changeset/588212 Change-Id: I8e7e9ea39009019f7caefd68d99942be77ea602d
* Merge Webkit at r58956: Fix conflicts.Ben Murdoch2010-05-141-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix conflict: JavaScriptCore/wtf/MathExtras.h: Take theirs due to recently upstreamed change http://trac.webkit.org/changeset/58110 Fix conflict: WebCore/dom/Node.cpp: Take both. The Android part can be removed post-merge. Fix conflict: WebCore/platform/ScrollView.cpp Fix conflict: WebCore/platform/ScrollView.h Fix conflict: WebCore/platform/android/ScrollViewAndroid.cpp: Remove ScrollView::platformProhibitsScrolling and ScrollView::scrollRectIntoViewRecursively as they have been removed upstream in http://trac.webkit.org/changeset/58428, http://trac.webkit.org/changeset/58445 and http://trac.webkit.org/changeset/58611. platformProhibitsScrolling was an Android specific function called only from scrollRectIntoViewRecursively. Fix conflict: WebCore/bindings/v8/ScriptCallStack.cpp: Take both (we have an Android specific addition). Fix conflict: WebCore/html/HTMLOptionElement.cpp: Take theirs, our fix has been upstreamed in http://trac.webkit.org/changeset/58490. Fix conflict: WebCore/rendering/RenderBox.cpp: Take theirs. See http://trac.webkit.org/changeset/58177 Fix conflict: WebCore/css/CSSStyleSelector.cpp Take both (Android specific addition). Fix conflict: WebCore/css/CSSParser.cpp Take both (Android specific addition). Fix conflict: WebCore/bridge/jni/jni_jsobject.h: Take theirs. see http://trac.webkit.org/changeset/58775 Fix conflict: FileSystemAndroid.cpp: Fix conflict: FileSystemPOSIX.cpp: Take ours. Our changes have been upstreamed but beyond 58596. See http://trac.webkit.org/changeset/59226 Change-Id: I92c7e319bea9edcc2eb08726654b5c1e163effaf
* Merge Webkit at r58956: Initial merge by Git.Ben Murdoch2010-05-14101-2565/+3123
| | | | Change-Id: I1d9fb60ea2c3f2ddc04c17a871acdb39353be228
* Merge webkit.org at r58033 : Move Android iframe-flattening code to ↵Steve Block2010-05-119-301/+148
| | | | | | | | | | | | | | | | | | | RenderIFrame.cpp The Android iframe-flattening code was in RenderPartObject. The rendering classes have been refactored upstream in http://trac.webkit.org/changeset/57866 so that most of RenderPartObject was moved to RenderIFrame. RenderPartObject was then removed in http://trac.webkit.org/changeset/57900. Iframe-flattening was also added upstream in http://trac.webkit.org/changeset/56718. This change takes the Android iframe-flattening code from RenderPartObject and moves it to RenderIFrame. It also renames FLATTEN_IFRAME to ANDROID_FLATTEN_IFRAME and FLATTEN_FRAMESET to ANDROID_FLATTEN_FRAMESET for clarity. Change-Id: I1af8d042f8d0c4abd513f8a315ac681360c1cc53
* Merge webkit.org at r58033 : Resolve merge conflictsSteve Block2010-05-113-81/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - CanvasRenderingContext2D.cpp - Take upstream, conflict due to cherry-pick of security fix, see 285b474734e82bc42b25e48ea4824f8050badb4f - CanvasSurface.cpp, HTMLCanvasElement.cpp - convertLogicalToDevice has been refactored. See http://trac.webkit.org/changeset/56447 - Chrome.cpp/h, ChromeClient.h - Take upstream, conflict due to cherry-pick of cancelling Geolocation permission request - Document.h - Take both, conflicts due to ANDROID_META_SUPPORT - DragImage.h - Take both, conflict due to Android addition - EmptyClients.h - Take upstream, conflicts due to Geo cancel permission request - EventHandler.cpp - Take both, conflicts due to recently upstreamed touch events and ANDROID_PLUGINS - EventHandler.cpp - Keep ours, conflict due to touch event bug fixes not yet upstreamed. See 7f034a1734d634dd1fdb3b64817d5828b5e46922 and 73adc26dba4be1d9da34a7f0907cb7b12f10c909 - FileSystemPOSIX - Take both, conflict due to ANDROID_PLUGINS - FrameLoader.cpp - Take both, conflct due to ANDROID_BLOCK_NETWORK_IMAGE - FrameView.cpp - Take both, conflict due to Android frame flattening - Geolocation.h - Merge conflicts due to Android-specific changes - Geolocation.cpp - Take upstream, conflict due to addition of Geolocation maximumAge - GeolocationPositionCache.cpp - Take upstream, conflict due to addition of ENABLE_GEOLOCATION guards - Gradient.h - Take both, conflict due to Android addition - HTMLLinkElement.cpp, DocLoader.cpp - Take both, conflict due to new link prefetching not yet upstreamed. See f91ac8eab3399adb5325701bebe0590a77e49df7 - HTMLMetaElement.cpp - Take both, conflict due to recently upstreamed meta element - JavaInstanceJSC.cpp - Take both, conflict due to Android additional logging - MediaPlayer.cpp/h - Take both, conflict due to Android-specific change - PlatformTouchPoint.h - Take upstream, conflict due to recently upstreamed unsigned stuff - RenderFrame.cpp, RenderFrameSet.h - Take both, conflict due to Android frameset flattening - RenderLayerCompositor.cpp - Take both, conflicts due to Android layers code - Settings.cpp/h - Conflict due to ANDROID_PLUGINS - TextInputController.h - Take upstream, git got confused - V8DOMWindowShell.cpp - Take upstream, conflict due to cherry-pick of method to add V8 bindings for page cache, see 8fecd9c9a62aa89fb44ed3142ba583dc7b8cbe29 - V8DOMWraper.cpp - Take upstream, conflict due to recently upstreamed WORKERS guards - WebCore.xcodeproj - Take upstream, conflict due to addition of Geolocation maximumAge - Widget.h - Take both, conflict due to Android addition - jsc/JNIUtilityPrivate.cpp - Take upstream, conflict due to switching from bzero to memset - mac/WebCoreSupport/WebChromeCient.h - Take upstream, conflicts due to Geo cancel permission request Change-Id: I1b75eac220faddf2f84c7fd4fd3436a5e07edf64
* Merge webkit.org at r58033 : Initial merge by gitSteve Block2010-05-11134-1890/+4457
| | | | Change-Id: If006c38561af287c50cd578d251629b51e4d8cd1
* Merge webkit.org at r55033 : Initial merge by gitSteve Block2010-04-2758-373/+993
| | | | Change-Id: I98a4af828067cc243ec3dc5e5826154dd88074b5
* Revert previous CL due to side-effect.Nicolas Roard2010-04-151-10/+3
| | | | | | Bug:2600918 Change-Id: I72189bd2edf725b4f0db426d2735590e846dcba4
* am f635101c: am 233b1e5a: am 54070f49: Merge "Make sure to layout the view ↵Patrick Scott2010-04-151-0/+4
|\ | | | | | | with the final dimensions." into froyo
| * am 54070f49: Merge "Make sure to layout the view with the final dimensions." ↵Patrick Scott2010-04-141-0/+4
| |\ | | | | | | | | | | | | | | | | | | | | | | | | into froyo Merge commit '54070f490711d3ec763c006c9b84adf55d32f0a2' into froyo-plus-aosp * commit '54070f490711d3ec763c006c9b84adf55d32f0a2': Make sure to layout the view with the final dimensions.
| | * Make sure to layout the view with the final dimensions.Patrick Scott2010-04-141-0/+4
| | | | | | | | | | | | | | | Bug: 2532684 Change-Id: I6500fc08760f8dbc99d1d279e6beca7bdb3345c9
* | | am 02069cf9: am 5e9b4f88: Merge "When handling Fixed position, always ↵Grace Kloba2010-04-061-0/+27
|\ \ \ | |/ / | | | | | | relative to the top document." into froyo
| * | am 5e9b4f88: Merge "When handling Fixed position, always relative to the top ↵Grace Kloba2010-04-061-0/+27
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | document." into froyo Merge commit '5e9b4f88ec0abb578823e8225ad9614c1ba58c6b' into froyo-plus-aosp * commit '5e9b4f88ec0abb578823e8225ad9614c1ba58c6b': When handling Fixed position, always relative to
| | * When handling Fixed position, always relative toGrace Kloba2010-04-061-0/+27
| | | | | | | | | | | | | | | the top document. Fix http://b/issue?id=2281574
* | | am f39b1b26: merge from open-source masterThe Android Open Source Project2010-04-021-4/+0
|\ \ \ | |/ /
| * | merge from open-source masterThe Android Open Source Project2010-04-021-4/+0
| |\ \ | | |/ | |/| | | | Change-Id: I87473a9657b8906b4933a7e22bf1125a65e44502
| | * Remove old code that was fixed in WebKit r35902Julien Chaffraix2010-03-301-4/+0
| | | | | | | | | | | | | | | | | | | | | This code was based on WebKit r30711 which has now been integrated into Android (this fix was introduced in october 2008). Change-Id: I1faf6e611dfe226771ca8f28ee6a9e0cd80535ae
| | * Revert https://android-git.corp.google.com/g/37444Grace Kloba2010-01-141-5/+2
| | | | | | | | | | | | as https://android-git.corp.google.com/g/37486 is a better fix for http://b/issue?id=2375232
| | * For mobile site, allow text wrap to screen if scaleGrace Kloba2010-01-141-2/+5
| | | | | | | | | | | | | | | is not same as screen width scale. Fix http://b/issue?id=2375232
* | | am 9dbbb4da: On demand plugins are now per-page, not per-object.Patrick Scott2010-04-021-0/+3
|\ \ \ | |/ /
| * | On demand plugins are now per-page, not per-object.Patrick Scott2010-04-021-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Traverse the frame tree and enable all plugins currently on the page. Remember the setting for any future plugins that are created. Reset the setting in makeRepresentation as that seems to be called for all new documents. Bug: 2564543 Change-Id: I558f068992719ee0236ba40f76b918b10cfe0ed9
* | | resolved conflicts for merge of 541a0a9a to masterNicolas Roard2010-03-312-15/+47
|\ \ \ | |/ / | | | | | | Change-Id: Ic2abe87f52744e31098112505bdd14906600fc14
| * | Only allows composited layers if not in iframesNicolas Roard2010-03-302-15/+47
| | | | | | | | | | | | | | | | | | Bug:2498776 and fix Bug:2544493 Change-Id: I0041db690cbe7d80e8e092626a95e882a5afbe03
* | | am 2eba8dcf: Merge "Remove ANDROID_FIXED_ELEMENTS" into froyoNicolas Roard2010-03-301-16/+0
|\ \ \ | |/ /
| * | Remove ANDROID_FIXED_ELEMENTSNicolas Roard2010-03-301-16/+0
| | | | | | | | | | | | | | | | | | Bug:2534420 Change-Id: Ieb93c8888a1d05dece3c817a8847e4f2c22a865a
* | | Add checks to consider a fixed layer for compositing only if itsNicolas Roard2010-03-261-4/+11
|/ / | | | | | | | | | | | | | | dimensions are actually more than zero. Fix Bug:2545160 Change-Id: I08ca0c1f5a6729760dbf62084a96faee76d124f9
* | Only enable composited fixed elements for mobile sites.Nicolas Roard2010-03-221-1/+10
| | | | | | | | | | | | | | | | We can consider a website as being a 'mobile' site if: - the viewport width is either undefined (-1) or equal to device-width (0) - no scaling is allowed Change-Id: Id88257278312077a170eb10d9f666c46bad135b6
* | Add back a missing ifdefNicolas Roard2010-03-191-0/+2
| | | | | | | | Change-Id: Ib0f0cf689e95b7333045df53ca645d34a0db21a4
* | Fix click issues when using fixed elements. This CL also fix the positioningNicolas Roard2010-03-183-19/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of a fixed layer when no position is defined, and also only use the screen to position only the fixed elements, not other types of positioned elements. Bug:2521087 The click issues were due to not returning the fixed element when looking for a parent stackingContext in RenderLayer::stackingContext(). This resulted in incorrect coordinates for the layers children of a fixed layer, that we then had to recompute in RenderLayer::convertToLayerCoords(), but this in turns was invaliding hit test detection... Fixed elements are now positioned relative to the screen instead of the virtual viewport (ANDROID_FIXED_ELEMENTS); but this was applying indiscriminantly to all positioned elements, absolute elements included. The CL modify RenderBox::containingBlockWidthForPositioned() and RenderBox::containingBlockHeightForPositioned() to only do this for fixed elements. Finally, fixed layers were wrongly positioned if the positions were not fully set (e.g. only setting top:0 but no left or right). The change to LayerAndroid::updateFixedLayersPositions() fixes this. Change-Id: I07a179dd631a2bc1a313e33ffcf69ef388ecb7ca
* | Refactor how we set up the layers hierarchy when using fixedNicolas Roard2010-03-173-11/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | composited layers, and fix the z-index position. Bug:2497910 Bug:2450006 We add a new COMPOSITED_FIXED_ELEMENTS define to isolate the changes in the webkit common code. We previously had a problem where the hierarchy of GraphicsLayer (i.e. the backed surfaces associated to the composited RenderLayer) was not reflecting that layers were children of a fixed layer. The workaround we currently have is not fully satisfactory, due to the way we draw layers on screen (in some cases layers were wrongly translated, see Bug:2497910). Instead, modifying the webkit common code simplify things a lot, and makes the patch more likely to be upstreamed to webkit, as it's now a reasonably well-delimited feature (use composited layers for fixed elements). What we do now is to consider fixed elements as a stacking context, which makes all layers children of such elements children too in the GraphicsLayer hierarchy, and modifying the offset of those children accordingly (in RenderLayer.cpp). In addition, we fixes the z-index bugs we had by signaling that there is a fixed element to its siblings, and turning the siblings as composited layers as well (so that the ordering works fully UI-side). Change-Id: I735c6c14d955ef54653f0053187d3495bef1f332
* | Compute the position of the fixed elements to be relative to theNicolas Roard2010-03-171-0/+16
| | | | | | | | | | | | | | | | screen and not the virtual viewport. This fixes Bug:2515587 and Bug:2457215 Change-Id: Ib987787cf9bf74b760b857dbbb397f85af334dce
* | Fix bug 'Children of fixed elements do not always remain fixed themselves'Nicolas Roard2010-03-091-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem was twofold: - webkit didn't create composited layers of the children div unless they were intersecting with the fixed layer - the children divs layers are siblings, not children of the fixed layer The solution is to: 1/ mark layers as needed to be composited if their ancestor is a fixed element (in RenderLayerCompositor) 2/ as the GraphicsLayer/LayerAndroid hierarchy is based on the RenderLayer hierarchy (z-order..) and not the display hierarchy, we need to a way of updating the position of the contained layers when a fixed layer move. We do that by: - marking layers contained in a fixed layer as being linked to the fixed layer (GraphicsLayerAndroid::syncFixedDescendants), and set the offset between the layer and the fixed layer. - when pushing the layers tree to the UI side, we ensure that such layers are linked to their corresponding fixed layer (LayerAndroid::ensureFixedLayersForDescendants) - when we draw, we do a first pass to update the fixed layers position (LayerAndroid::updateFixedLayersPositions) then update the rest of the layers (LayerAndroid::updatePositions). The layers that are linked to the fixed layers will then update their position relative to it, using the original offset between the fixed layer and the layer. Bug:2470701 Change-Id: I512966df94de6a5f84aff335c5d09b3f027bc2c3
* | Update Android to reflect upstreaming of matrix optimization in RenderLayer.cppSteve Block2010-02-221-6/+0
| | | | | | | | | | | | See http://trac.webkit.org/changeset/55081 Change-Id: If34e70743c554b2a5e8315b2657cce6964805f6a
* | Fixes a bug in RenderLayer::paintLayer due to Android's FASTER_MATRIX ↵Steve Block2010-02-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | optimisation This bug was introduced by the merge to r51976 on 15 Dec 2009. WebKit change 51355 modified RenderLayer::paintLayer and the Android FASTER_MATRIX modification was not updated to reflect this. The difference is that, compared to the intended code, the Android version misses a call to makeMatrixRenderable, which in turn calls makeAffine, when calculating the transform matrix. See http://trac.webkit.org/changeset/51355 Change-Id: Ibc25b92e64381642fc3bbcfd672c056a3d89e035
* | Merge webkit.org at r54731 : Fix merge conflicts due to frame flatteningSteve Block2010-02-162-6/+0
| | | | | | | | | | | | | | | | | | Common frame flattening code was added upstream in http://trac.webkit.org/changeset/54440 We take this code, but also keep the current Android-specific implementation. Currently, the common code is disabled and we continue to use the Android version. The two will be combined at a later date. Change-Id: I194c7028b84a05d85040ca6199802c42a520be96
* | Merge webkit.org at r54731 : Initial merge by gitSteve Block2010-02-1657-578/+1291
| | | | | | | | Change-Id: Ia79977b6cf3b0b00c06ef39419989b28e57e4f4a
* | Merge webkit.org at r54340 : Initial merge by gitSteve Block2010-02-1517-83/+112
| | | | | | | | Change-Id: Ib489d2ff91186ea3652522e1d586e54416a2cf44
* | Merge webkit.org at r54127 : Make FLATTEN_IFRAME method overrides protectedSteve Block2010-02-041-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | RenderPartObject inherits calcWidth/calcHeight as public methods throught the chain RenderPart -> RenderWidget -> RenderReplaced -> RenderBox. On Android, RenderPartObject overrides calcWidth/calcHeight as private methods for FLATTEN_IFRAME. This is not yet upstreamed. The new WebKit uses calcWidth/calcHeight from RenderEmbeddedObject, which inherits from RenderPartObject. So we need to make the these methods protected in RenderPartObject Change-Id: Ifb48d5daa10fc14c80f6da987cbd034713febc12
* | Merge webkit.org at r54127 : Fix merge conflict in break_lines.cppSteve Block2010-02-041-7/+4
| | | | | | | | | | | | See http://trac.webkit.org/changeset/53839 Change-Id: I123e8296c4b6bcfa4abd70ef67f9db14275bdf4c
* | Merge webkit.org at r54127 : Update RenderLayerCompositor.cpp to account for ↵Steve Block2010-02-041-11/+3
| | | | | | | | | | | | | | | | syntax change. See http://trac.webkit.org/changeset/53110 Change-Id: Ib82ce428fc761a2791a7ce1fc0de486b6903a43a
* | Merge webkit.org at r54127 : Initial merge by gitSteve Block2010-02-04124-1709/+4316
| | | | | | | | Change-Id: Ib661abb595522f50ea406f72d3a0ce17f7193c82
* | No text wrapping in FitToScreen mode when text has background image.Shimeng (Simon) Wang2010-01-271-1/+3
| | | | | | | | | | | | Bug: 2225518 modified: WebCore/rendering/RenderBlockLineLayout.cpp
* | Disable "fit to screen" if line height < font size.Shimeng (Simon) Wang2010-01-061-0/+5
| | | | | | | | | | Bug: 2289376 modified: WebCore/rendering/RenderBlockLineLayout.cpp
* | resolved conflicts for merge of 870689c8Nicolas Roard2010-01-042-1/+6
| |
* | am 4dd98cc2: am aad6f24e: Merge webkit.org at r51976 : Fix general conflicts.Steve Block2009-12-174-43/+2
|\ \ | | | | | | | | | | | | | | | | | | Merge commit '4dd98cc27e25e6c3104672f50749132d2236461b' * commit '4dd98cc27e25e6c3104672f50749132d2236461b': Merge webkit.org at r51976 : Fix general conflicts.
| * | Merge webkit.org at r51976 : Fix general conflicts.Steve Block2009-12-174-43/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes ... For FrameLoader.cpp/h, see http://trac.webkit.org/changeset/51644 For FrameView.cpp and ScrolView.cpp, see http://trac.webkit.org/changeset/51636 For PluginInfoStore.cpp, see http://trac.webkit.org/changeset/51257 For Geolocation.cpp, see http://trac.webkit.org/changeset/50605 For V8DOMWrapper.cpp, see http://trac.webkit.org/changeset/51004 For V8Proxy.cpp, see http://trac.webkit.org/changeset/50441, http://trac.webkit.org/changeset/50327, http://trac.webkit.org/changeset/50406 and http://trac.webkit.org/changeset/50523 For HTMLInputElement.cpp, see http://trac.webkit.org/changeset/50996 For RenderBlock.cpp/RenderInline.cpp, see https://android-git.corp.google.com/g/#change,33465 Android-specific change to now-deleted JSCanvasArrayCustom.cpp was trivial. Change-Id: Iddc8d43bdcb6208d6a991a7a1d591e8a4f918bf7
* | | am b880d713: am 643ca787: Merge webkit.org at r51976 : Initial merge by git.Steve Block2009-12-17120-755/+2350
|\ \ \ | |/ / | | | | | | | | | | | | | | | Merge commit 'b880d713c04257ca40abfef97c300afdead423b8' * commit 'b880d713c04257ca40abfef97c300afdead423b8': Merge webkit.org at r51976 : Initial merge by git.