summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering
Commit message (Collapse)AuthorAgeFilesLines
...
* | 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.
| * | Merge webkit.org at r51976 : Initial merge by git.Steve Block2009-12-17120-755/+2350
| | | | | | | | | | | | Change-Id: Ib0e7e2f0fb4bee5a186610272edf3186f0986b43
* | | Do not expand IFrames that are 1x1.Patrick Scott2009-12-161-7/+8
|/ / | | | | | | | | | | | | I was filtering out 1x1 frames incorrectly by using the calculated width and height which includes border and padding. Bug: 2317776
* | Fix the crash in RenderTableSection for Small ScreenGrace Kloba2009-12-101-2/+7
| | | | | | | | | | | | | | rendering. The code path was not exercised in the Browser and the crash was triggered by the WebKit integration. Fix http://b/issue?id=2285748
* | Fixes a PLATFORM(ANDROID) guard in RenderBlock.h which causes problems when ↵Steve Block2009-11-251-0/+4
| | | | | | | | | | | | | | | | | | | | | | building on Mac. This code was modified recently to aid upstreaming by wrapping all Android changes in PLATFORM(ANDROID). To allow the build to succeed on other paltforms, we need to be more careful with our use of the guards. See https://android-git.corp.google.com/w/?p=platform/external/webkit.git;a=commitdiff;h=bc7b84de3fd863c500a8169fd00dca3811cadbb3#patch28 Change-Id: I4b0151ad62023821171742c5dfbba1dd7b39d8ed
* | remove obsolete code blockCary Clark2009-11-241-11/+0
| | | | | | | | | | | | | | | | This block was commented out in Android to improve performance. It has now been removed from webkit altogether. It needs to be removed to allow webkit to build for Safari, since the interfaces it references are now obsolete.
* | am ffe27b58: Integrate WebKit security fix ↵Grace Kloba2009-11-172-12/+18
|\ \ | |/ | | | | | | | | | | | | | | http://trac.webkit.org/changeset/50466 Merge commit 'ffe27b58c77e71641efd3bd4258323cd4c29c39a' into eclair-mr2 * commit 'ffe27b58c77e71641efd3bd4258323cd4c29c39a': Integrate WebKit security fix
| * Integrate WebKit security fixGrace Kloba2009-11-172-12/+18
| | | | | | | | | | http://trac.webkit.org/changeset/50466 Fix http://b/issue?id=2268722
* | am a5605499: Changing fit column to screen to exclude the padding.Grace Kloba2009-11-111-11/+5
|\ \ | |/ | | | | | | | | | | Merge commit 'a56054997e46fcd04621cc67d650b6daf85f7b59' into eclair-mr2 * commit 'a56054997e46fcd04621cc67d650b6daf85f7b59': Changing fit column to screen to exclude the padding.
| * Changing fit column to screen to exclude the padding.Grace Kloba2009-11-101-11/+5
| | | | | | Fix http://b/issue?id=2253222
* | Merge webkit.org at r50258 : Fix conflicts.Steve Block2009-11-101-3/+0
| | | | | | | | | | | | | | Note that FrameLoader::gotoAnchor has been moved to FramveView::gotoAnchor. See http://trac.webkit.org/changeset/49608 Change-Id: Ic2a87bb0c0f91d371508578ddccf200967524a77
* | Merge webkit.org at r50258 : Initial merge by git.Steve Block2009-11-1030-88/+308
| | | | | | | | Change-Id: I1a9e1dc4ed654b69174ad52a4f031a07240f37b0
* | We were excluding device-width to fix http://b/issue?id=1331654.Grace Kloba2009-10-271-3/+2
| | | | | | | | | | | | | | | | | | But some mobile sites will have minimum pref width wider than the screen width, like in http://www.boygeniusreport.com/2009/10/23/motorola-droid-preview/. Now we are checking width() > screenWidth before wrapping at line 958, there is no need to exclude the device-width case. Remove the checking and both bugs should be fixed.
* | Remove bad assert.Patrick Scott2009-10-271-3/+0
| | | | | | | | | | | | The original assert was meant to assert that the body renderer layout state is not modified during the expansion of the iframe. This can falsely fire if the body renderer already needed a layout before the iframe expansion.
* | Makes a number of changes to ease future merging with and upstreaming to ↵Steve Block2009-10-2213-51/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | webkit.org. - Fixes whitespace discrepancies between webkit.org and Android versions - Re-orders Android-specific changes to minimise the diff with webkit.org - Makes sure all Android-specific changes are appropriately guarded. - Fixes some Android-specific style problems None of these should introduce any functional changes for PLATFORM(ANDROID). Change-Id: Id27cf0b0e8682a7f29590c3fccae2d287b3630f1
* | Merge webkit.org at R49305 : Update rendering to use new overflow methods.Steve Block2009-10-201-1/+7
| | | | | | | | | | | | See http://trac.webkit.org/changeset?new=47440 Change-Id: I140b6be130c1fb175c653f5ba2ba19fdc323bbc9
* | Merge webkit.org at R49305 : Fix merge conflicts.Steve Block2009-10-203-13/+1
| | | | | | | | Change-Id: I9e0ffbe9b9b824399653da038093874e315ccd6a
* | Merge webkit.org at R49305 : Automatic merge by git.Steve Block2009-10-2094-2834/+3742
| | | | | | | | Change-Id: I8968561bc1bfd72b8923b7118d3728579c6dbcc7
* | Fixes a bunch of WebKit whitespace discrepancies between Android and ↵Steve Block2009-10-143-3/+3
| | | | | | | | | | | | | | | | webkit.org. Do not merge. This will avoid noise in the diffs when upstreaming Android-specific changes to webkit.org. This has already been submitted to master branch.
* | File upload.Leon Scroggins2009-10-091-4/+0
| | | | | | | | | | | | | | | | Webkit implementation for passing in the data for file uploads. Requires a change to frameworks/base to not break things; also requires a change to packages/apps/Browser to work. Fixes http://b/issue?id=675743
* | remove unneeded ANDROID_ALLOW_TRANSPARENT_BACKGROUNDSMike Reed2009-10-021-4/+0
|/ | | | http://b/issue?id=2146657
* Fix the random crash around iframes.Patrick Scott2009-09-302-4/+24
| | | | | | | | | | | | | | | | The problem is that if updateWidgetPosition calls layout, the FrameView will layout with 0x0 dimensions. Then, we resize the view and try to relayout. This causes the body to be marked as needing a layout. But, the body does not get a chance to relayout. If updateWidgetPosition does not layout, the view size will match and the body will not be marked for layout. This makes everything sane after layout of the iframe. The root of the problem is that we are calling FrameView::layout() while in the midst of a layout. This is causing a child RenderObject to need a layout without the parent object needing a layout. We avoid this by not laying out until we set the FrameView dimensions. Bug: 2048855, 2134215
* save and restore the transparent fill when drawing replaced imagesCary Clark2009-08-311-0/+6
| | | | | | | | | | | | | | | If an image node is incomplete, RenderImage::paintReplaced is triggered. A thin frame with a transparent center sets but does not restore the fill to transparent. Our graphics state draws transparent bitmaps until the state gets set back to opaque. I haven't figured out why Safari doesn't demonstrate this same bug, but in some webkit code, the state is saved and restored around making the fill transparent. Adding that save()/restore() pair fixes our bug as well. But, it may be that our platform should be setting the fill state before drawing the bitmap and is failing to do so. This fixes http://b/issue?id=2052757
* Fix the paragraph is not wrapping with the new WK problem.Grace Kloba2009-08-211-0/+101
| | | | Copy the change from bidi.cpp to RenerBlockLineLayout.cpp as the file is renamed.
* Revert "Merge WebKit r47420"Andrei Popescu2009-08-1932-407/+252
| | | | This reverts commit d227fc870c7a697500a3c900c31baf05fb9a8524.
* Merge WebKit r47420Ben Murdoch2009-08-1832-252/+407
|
* Merge commit 'goog/master' into mergeBen Murdoch2009-08-181-46/+63
|\ | | | | | | | | | | | | Conflicts: WebCore/bindings/v8/ScriptController.cpp WebCore/page/Geolocation.cpp WebCore/platform/android/GeolocationServiceAndroid.cpp
| * Be more restrictive when expanding iframes.Patrick Scott2009-08-171-46/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | If an iframe has no scrollbars and a fixed dimension, it serves no purpose to try and expand the contents. Some sites like to use hidden iframes for asynchronous loading and showing or expanding those iframes causes layout problems. Change the expansion logic slightly to only expand iframes and not contract them. Also update calcWidth and calcHeight to check for scrollbars or a non-fixed dimension. BUG=2039520,2004093
* | Compilation fixes.Ben Murdoch2009-08-171-2/+3
| |
* | Fix merges and add #if PLATFORM(ANDROID)Nicolas Roard2009-08-122-9/+3
| |
* | Merge in WebKit r47029.Ben Murdoch2009-08-11158-3495/+6214
|/