summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/compositing/layer-creation
Commit message (Collapse)AuthorAgeFilesLines
* Layers that have a backdrop-filter should paints contentsjaydasika2016-02-102-0/+83
| | | | | | | | | | | | | We need to paint layers that have backdrop filters even when they do not have a background because the backdrop filter may be needed for some intersecting layer. This is a reland of the patch : http://crrev.com/1637143002 BUG=527452 Review URL: https://codereview.chromium.org/1674343002 Cr-Commit-Position: refs/heads/master@{#374599}
* Revert of Layers that have a backdrop-filter should paints contents ↵rouslan2016-02-052-83/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #7 id:120001 of https://codereview.chromium.org/1637143002/ ) Reason for revert: Speculative revert to fix webkit_tests on "WebKit Mac10.6" bot. Failing builds: https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.6/builds/49303 https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.6/builds/49304 https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.6/builds/49305 Failing tests: Regressions: Unexpected text-only failures (2) compositing/overflow/scroll-parent-absolute-with-backdrop-filter.html[Failure] virtual/prefer_compositing_to_lcd_text/compositing/overflow/scroll-parent-absolute-with-backdrop-filter.html[Failure] Original issue's description: > Layers that have a backdrop-filter should paints contents > > patch from issue 1327973002 (http://crrev.com/1327973002) > > BUG=527452 > > Committed: https://crrev.com/b0d78204557a875d10beb43e9f6c0e634bf364f8 > Cr-Commit-Position: refs/heads/master@{#373860} TBR=pdr@chromium.org,chrishtr@chromium.org,jaydasika@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=527452 Review URL: https://codereview.chromium.org/1678443002 Cr-Commit-Position: refs/heads/master@{#373906}
* Layers that have a backdrop-filter should paints contentsjaydasika2016-02-052-0/+83
| | | | | | | | | | patch from issue 1327973002 (http://crrev.com/1327973002) BUG=527452 Review URL: https://codereview.chromium.org/1637143002 Cr-Commit-Position: refs/heads/master@{#373860}
* Check for background attachment fixed objects in all descendent frames.flackr2016-01-194-0/+19
| | | | | | | | | | | Fixed attachment backgrounds in frames should also force main thread scrolling. BUG=319721 TEST=compositing/layer-creation/iframe-background-attachment-fixed.html Review URL: https://codereview.chromium.org/1505993004 Cr-Commit-Position: refs/heads/master@{#370220}
* Let GraphisLayer::paintController() return a reference and ensure drawsContent()wangxianzhu2015-12-161-3/+0
| | | | | | Review URL: https://codereview.chromium.org/1520013003 Cr-Commit-Position: refs/heads/master@{#365466}
* Auto-rebaseline for r364120Walter Korman2015-12-091-1/+2
| | | | | | | | | | | https://chromium.googlesource.com/chromium/src/+/9653a8175 BUG=543655 TBR=tdresser@chromium.org Review URL: https://codereview.chromium.org/1507373005 . Cr-Commit-Position: refs/heads/master@{#364164}
* Fix flattening for scrollable areas.tdresser2015-12-091-1/+2
| | | | | | | | | | | | Previously we flattened the scrollingContentsLayer, but not the graphics or scrolling layers. This resulted in incorrect hit testing sometimes. BUG=543655 Review URL: https://codereview.chromium.org/1407383005 Cr-Commit-Position: refs/heads/master@{#364120}
* Auto-rebaseline for r361055Walter Korman2015-11-231-0/+1
| | | | | | | | | | | https://chromium.googlesource.com/chromium/src/+/928e603a BUG=549174 TBR=skobes@chromium.org Review URL: https://codereview.chromium.org/1466203002 . Cr-Commit-Position: refs/heads/master@{#361064}
* Clip scrollbars to box bounds when they don't fit.skobes2015-11-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are three cases: (1) scroller is a non-composited self-painting layer (2) scroller is not a self-painting layer (3) scroller is a composited layer (3a) scroller is a composited layer that does not use composited scrolling Case (1) already worked correctly through the background clip applied by PaintLayerPainter. Case (2) is addressed by the change in BlockPainter. Case (3) is addressed by the changes in CompositedLayerMapping. The clip is applied by m_overflowControlsHostLayer. GraphicsLayerTreeBuilder is modified to preserve the layer tree in case (3a). I have renamed m_overflowControlsClippingLayer for clarity, since the overflow controls can now be clipped for two different reasons. Note that for an iframe with CSS "resize", the scroll corner comes from the iframe element's CompositedLayerMapping, not the inner PaintLayerCompositor. For this reason, PLC::attachFrameContentLayersToIframeLayer must preserve overflow controls just like the "!parented" path of GraphicsLayerTreeBuilder. BUG=549174 Committed: https://crrev.com/bf0a5ac073c0844a514a979beab5c8b08a445393 Cr-Commit-Position: refs/heads/master@{#360860} Review URL: https://codereview.chromium.org/1448253002 Cr-Commit-Position: refs/heads/master@{#361037}
* Revert of Clip scrollbars to box bounds when they don't fit. (patchset #6 ↵grt2015-11-201-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:180001 of https://codereview.chromium.org/1448253002/ ) Reason for revert: Speculative revert for various test failures, e.g. http://build.chromium.org/p/chromium.linux/builders/Linux%20Tests%20%28dbg%29%281%29%2832%29/builds/22662/steps/browser_tests/logs/stdio and http://build.chromium.org/p/chromium.win/builders/Win7%20Tests%20%28dbg%29%281%29/builds/43345/steps/browser_tests/logs/stdio Original issue's description: > Clip scrollbars to box bounds when they don't fit. > > There are three cases: > > (1) scroller is a non-composited self-painting layer > (2) scroller is not a self-painting layer > (3) scroller is a composited layer > (3a) scroller is a composited layer that does not use composited scrolling > > Case (1) already worked correctly through the background clip applied by > PaintLayerPainter. Case (2) is addressed by the change in BlockPainter. > > Case (3) is addressed by the changes in CompositedLayerMapping. The clip is > applied by m_overflowControlsHostLayer. GraphicsLayerTreeBuilder is modified > to preserve the layer tree in case (3a). > > I have renamed m_overflowControlsClippingLayer for clarity, since the overflow > controls can now be clipped for two different reasons. > > Note that for an iframe with CSS "resize", the scroll corner comes from the > iframe element's CompositedLayerMapping, not the inner PaintLayerCompositor. > For this reason, PLC::attachFrameContentLayersToIframeLayer must preserve > overflow controls just like the "!parented" path of GraphicsLayerTreeBuilder. > > BUG=549174 > > Committed: https://crrev.com/bf0a5ac073c0844a514a979beab5c8b08a445393 > Cr-Commit-Position: refs/heads/master@{#360860} TBR=chrishtr@chromium.org,vollick@chromium.org,skobes@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=549174 Review URL: https://codereview.chromium.org/1457963006 Cr-Commit-Position: refs/heads/master@{#360913}
* Clip scrollbars to box bounds when they don't fit.skobes2015-11-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are three cases: (1) scroller is a non-composited self-painting layer (2) scroller is not a self-painting layer (3) scroller is a composited layer (3a) scroller is a composited layer that does not use composited scrolling Case (1) already worked correctly through the background clip applied by PaintLayerPainter. Case (2) is addressed by the change in BlockPainter. Case (3) is addressed by the changes in CompositedLayerMapping. The clip is applied by m_overflowControlsHostLayer. GraphicsLayerTreeBuilder is modified to preserve the layer tree in case (3a). I have renamed m_overflowControlsClippingLayer for clarity, since the overflow controls can now be clipped for two different reasons. Note that for an iframe with CSS "resize", the scroll corner comes from the iframe element's CompositedLayerMapping, not the inner PaintLayerCompositor. For this reason, PLC::attachFrameContentLayersToIframeLayer must preserve overflow controls just like the "!parented" path of GraphicsLayerTreeBuilder. BUG=549174 Review URL: https://codereview.chromium.org/1448253002 Cr-Commit-Position: refs/heads/master@{#360860}
* Auto-rebaseline for r356568Walter Korman2015-10-283-112/+103
| | | | | | | | | | | https://chromium.googlesource.com/chromium/src/+/09947d0b BUG=535212 TBR=chrishtr@chromium.org Review URL: https://codereview.chromium.org/1405313004 . Cr-Commit-Position: refs/heads/master@{#356606}
* Auto-rebaseline for r351979Joel Ong2015-10-032-0/+104
| | | | | | | | | | | https://chromium.googlesource.com/chromium/src/+/c25c33c93a BUG=474759 TBR=joelo Review URL: https://codereview.chromium.org/1372393006 . Cr-Commit-Position: refs/heads/master@{#352201}
* Auto-rebaseline for r202308joelo@chromium.org2015-09-161-2/+1
| | | | | | | | | | | http://src.chromium.org/viewvc/blink?view=revision&revision=202308 BUG=530044 TBR=wangxianzhu@chromium.org Review URL: https://codereview.chromium.org/1349553002 . git-svn-id: svn://svn.chromium.org/blink/trunk@202320 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Auto-rebaseline for r202291joelo@chromium.org2015-09-161-0/+6
| | | | | | | | | | | http://src.chromium.org/viewvc/blink?view=revision&revision=202291 BUG=529038 TBR=chrishtr@chromium.org Review URL: https://codereview.chromium.org/1348593002 . git-svn-id: svn://svn.chromium.org/blink/trunk@202300 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Revert of Auto-rebaseline for r202145 (patchset #1 id:1 of ↵kochi@chromium.org2015-09-151-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1332413003/ ) Reason for revert: The original change caused a layout test failure: see https://code.google.com/p/chromium/issues/detail?id=531811 Original issue's description: > Auto-rebaseline for r202145 > > http://src.chromium.org/viewvc/blink?view=revision&revision=202145 > > BUG=529038 > TBR=chrishtr@chromium.org > > Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=202156 TBR=chrishtr@chromium.org,joelo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=529038, 531811 Review URL: https://codereview.chromium.org/1338583004 git-svn-id: svn://svn.chromium.org/blink/trunk@202252 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Auto-rebaseline for r202145joelo@chromium.org2015-09-111-0/+6
| | | | | | | | | | | http://src.chromium.org/viewvc/blink?view=revision&revision=202145 BUG=529038 TBR=chrishtr@chromium.org Review URL: https://codereview.chromium.org/1332413003 . git-svn-id: svn://svn.chromium.org/blink/trunk@202156 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Include the whole outline into visual overflowwangxianzhu@chromium.org2015-08-281-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is another preparation CL for combining outline and focus ring paths (https://codereview.chromium.org/1224933002/). Not including the whole outline into visual overflow caused incorrect layout and painting of outlines when the element having outline has clipping or is composited because the overflow doesn't cover the whole outline. Not including outlines of block continuations into visual overflow required us to - propagate outline style to block continuations on style change; - paint outlines for block continuations separately, causing unconnected or duplicated outline edges. Both of the above caused complex code. With this CL, we always include the whole outline into visual overflow of the object having outline style. - For LayoutBoxes, combine code paths about overflow for focus ring and outline; - For LayoutBlockFlows, we need to include the visual overflow of descendant LayoutInlines having continuation and outline. Let the containing LayoutBlockFlow record LayoutInlines with outline and continuation, and include the outline rects of continuations into visual overflow of the block. (FYI, cases that we already included outlines into visual overflow: - LayoutBlockFlow containing descendant LayoutInlines having outline but not continuation: we already included such outlines in visual overflow of InlineFlowBoxes and in turn into the LayoutBlockFlow; - LayoutInlines having outline: previously we include outlines by calling rectWithOutlineForPaintInvalidation(); with this CL we call addOutlineRects().) This CL will have real effect with https://codereview.chromium.org/1224933002/. BUG=506669 Review URL: https://codereview.chromium.org/1278543002 git-svn-id: svn://svn.chromium.org/blink/trunk@201418 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Auto-rebaseline for r201138joelo@chromium.org2015-08-251-51/+0
| | | | | | | | | | | http://src.chromium.org/viewvc/blink?view=revision&revision=201138 BUG=521768 TBR=jbroman@chromium.org Review URL: https://codereview.chromium.org/1316723004 . git-svn-id: svn://svn.chromium.org/blink/trunk@201154 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Delete blink code for scroll-blocks-onrbyers@chromium.org2015-08-1312-374/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | We've decided that controlling scroll blocking behavior is something that really needs to be tied to event listeners via a JS API, not a CSS property. The platform needs to mediate the composition here (eg. for two unrelated libraries both adding touch handlers to the document), and there's no good way to mediate that composition using CSS. It's really a property of the event handler and so should be specified at addEventListener time. http://crbug.com/489802 tracks the first step of that design (EventListenerOptions). So it's time to remove the scroll-blocks-on CSS support from blink. I expect the utlimate compositor integration for EventListenerOptions mayCancel to be similar, and so for now I'm leaving the hooks in place in GraphicsLayer. This change also fixes a regression where iframes could occasionally not get displayed. I don't understand how the scroll-blocks-on code (even when not enabled) was triggering that problem, but since it's going away I'm not going to investigate further. BUG=347272, 490358 Review URL: https://codereview.chromium.org/1287623002 git-svn-id: svn://svn.chromium.org/blink/trunk@200448 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Rebuild GraphicsLayer tree when a LayoutPart's CDPLM configuration changesajuma@chromium.org2015-06-192-0/+77
| | | | | | | | | | | | | | | | | | When a CompositedDeprecatedPaintLayerMapping's internal configuration changes, the GraphicsLayer tree is rebuilt so that the CDPLM's GraphicsLayers are reconnected to ancestors and descendants. However, for CDPLMs owned by LayoutParts, the decision to rebuild ignores whether the CDPLMs internal configuration has changed. This means that after an internal configuration change (e.g., the removal of an ancestor clipping layer), such a CDPLM's GraphicsLayers can be left disconnected from the rest of the GraphicsLayer tree. This CL rebuilds the GraphicsLayer tree when such a CDPLM's internal configuration changes. BUG=497271 Review URL: https://codereview.chromium.org/1181743003 git-svn-id: svn://svn.chromium.org/blink/trunk@197471 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Where an ancestor has overflow style, a fixed child needs to be composited.shivamidow@gmail.com2015-06-152-0/+92
| | | | | | | | | | | | | | A block child with fixed style is composited where frameview has an enough long height to scroll. But that does not cover the other case. Where an ancestor of the fixed child has a overflow style but frameview is not scrollable, we don't composite the fixed block. For the result, the fixed child is scrolled according to its ancestor block. We need to composite it in a separate composited layer for the case. BUG=490141 Review URL: https://codereview.chromium.org/1167073002 git-svn-id: svn://svn.chromium.org/blink/trunk@197099 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Replaced page scale methods in layout tests from EventSender to Internals.bokan@chromium.org2015-06-014-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added setPageScaleFactor and setPageScaleFactorLimits to Internals and replaced all uses in LayoutTests. These methods don't belong in EventSender (they don't send an event). setPageScaleFactor in particular was using an obsolete API in blink::WebView that can be removed as EventSender is the last user of WebView::setPageScale(float, int, int) There's lots of layout test changes, but they're all mechanical: Replaced eventSender.setPageScaleFactorLimits with internals.setPageScaleFactorLimits: git grep -l "setPageScaleFactorLimits(" -- ./LayoutTests/* | xargs perl -pi -e 's|eventSender.setPageScaleFactorLimits\(|internals.setPageScaleFactorLimits\(|' Removed last two arguments in setPageScaleFactor with: git grep -l "setPageScaleFactor(" -- ./LayoutTests/* | xargs perl -pi -e 's|setPageScaleFactor\((.*?),.*?,.*?\)|setPageScaleFactor\(\1)|' Replaced eventSender.setPageScaleFactor with internals.setPageScaleFactor with: git grep -l "setPageScaleFactor(" -- ./LayoutTests/* | xargs perl -pi -e 's|eventSender.setPageScaleFactor\((.*?)\)|internals.setPageScaleFactor\(\1)|' BUG=447667 Review URL: https://codereview.chromium.org/1146813006 git-svn-id: svn://svn.chromium.org/blink/trunk@196254 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Use testRunner.layoutAndPaintAsyncThen() in layout testswangxianzhu@chromium.org2015-05-083-7/+7
| | | | | | | | | | | | | | | | | | | | It has better performance than testRunner.displayAsyncThen(). - Rename LayoutTests/resources/run-after-display.js to resources/run-after-layout-and-paint.js, and rename runAfterDisplay() to runAfterLayoutAndPaint(). - Remove runAfterDisplay() function from text-based-repaint.js to avoid duplication. - Remove LayoutTests/fast/repaint/resources/display-then-call.js which is a duplication of run-after-layout-and-paint.js. BUG=484706 Review URL: https://codereview.chromium.org/1131743002 git-svn-id: svn://svn.chromium.org/blink/trunk@195090 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Simplify application of perspective origin.jbroman@chromium.org2015-04-071-2/+4
| | | | | | | | | | | | | | | | | | | | | | Previously, we tried to translate the origin to be relative to the layer centre, which is what Core Animation wanted, and then translate it back. Not only is this unnecessarily complicated, but it caused an error in the positioning of the perspective origin when scrollbars exist. There is still a bug in this case (cf the second example in the layout test), but this brings us closer to spec compliance and alignment with Gecko. This CL also makes perspective always create a child transform layer in the CompositedDeprecatedPaintLayerMapping, since using the other graphics layers is not always correct (in particular, they may have different bounds and cause an incorrect perspective origin). BUG=471275 Review URL: https://codereview.chromium.org/1030323005 git-svn-id: svn://svn.chromium.org/blink/trunk@193291 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Fixed tests broken by enabling virtual-viewport.bokan@chromium.org2015-03-161-8/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Each of these tests needed a slight fix to work properly in the new world. fixed-right-bottom-in-page-scale.html Needed to scroll all the way to the bottom right since the fixed:position element no longer sticks to the visual viewport. fixed-right-in-page-scale.html Similarly, the fixed position element was off screen in this case; I moved it more so it would appear in the viewport without additional scrolling (since it needs to align to some position:absolute elements). selection-bounds-in-transformed-view.html Not sure why the expectation here is 863(.5) but doing the math, the text box is 20px tall, located at (0px, 1000px). The 800x600 viewport is scaled 2X so it is 400x300 in content-space. Therefore the viewport should be vertically centered about 1010px. 1010 - 300/2 = 860px. fixed-position-out-of-view-scaled-scroll.html Since the position:fixed elements are now attached directly to the layout viewport, they don't need to account for the 100px scroll offset applied to them. BUG=428980 Review URL: https://codereview.chromium.org/1003973002 git-svn-id: svn://svn.chromium.org/blink/trunk@191939 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Don't squash fixed position elements.chrishtr@chromium.org2015-03-111-15/+12
| | | | | | | | BUG=462523 Review URL: https://codereview.chromium.org/996963002 git-svn-id: svn://svn.chromium.org/blink/trunk@191736 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Inhibit paint invalidations on accelerated 2D canvasesjunov@chromium.org2015-03-101-1/+0
| | | | | | | | | | | | | | | When 2D canvases are GPU-accelerated, the invalidation of the content layer is handled in Canvas2DLayerBridge::finalizeFrame. The additional invalidation of on the canvas's render object in HTMLCanvasElement::didFinalizeFrame() was therefore unnecessary, and resulted in the unnecessary re-paint of the parent layer. This change removes the unnecessary invalidation. BUG=464034 Review URL: https://codereview.chromium.org/981743002 git-svn-id: svn://svn.chromium.org/blink/trunk@191594 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Auto-rebaseline for r191480pdr@chromium.org2015-03-086-13/+49
| | | | | | | | | | | http://src.chromium.org/viewvc/blink?view=revision&revision=191480 BUG=451235 TBR=wangxianzhu@chromium.org Review URL: https://codereview.chromium.org/988113003 git-svn-id: svn://svn.chromium.org/blink/trunk@191494 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Auto-rebaseline for r189151pdr@chromium.org2015-01-291-0/+1
| | | | | | | | | | | http://src.chromium.org/viewvc/blink?view=revision&revision=189151 BUG=451485 TBR=junov@chromium.org Review URL: https://codereview.chromium.org/882143003 git-svn-id: svn://svn.chromium.org/blink/trunk@189155 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Initial scroll-blocks-on compositor integrationrbyers@chromium.org2015-01-1212-0/+338
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Causes elements with scroll-blocks-on set to be promoted to a composited layer and plumbs the value through to WebLayer. By default (for compatibility) we must block on start-touch and wheel-event. In order to allow that to be explicitly disabled we apply it using a user-agent stylesheet. We're careful not to create any additional RenderLayers (and so composited layers) when only these defaults are present. Consumed by cc in https://codereview.chromium.org/784463002/ Promotes scroll-blocks-on support to "experimental" status. Note that a number of things are required before we'd consider shipping this feature, including a mitigation mechanism for super-janky pages (scroll block timeout and failure notification). Intent to implement: https://groups.google.com/a/chromium.org/forum/#!topic/input-dev/N3YrsrHus-k Test/demo page: http://rbyers.net/scroll-blocks-on.html BUG=347272 Review URL: https://codereview.chromium.org/784453003 git-svn-id: svn://svn.chromium.org/blink/trunk@188230 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Delete the Layer Squashing runtime feature.chrishtr@chromium.org2014-12-111-1/+0
| | | | | | | | It's been live long enough, and there are no outstanding bugs. Review URL: https://codereview.chromium.org/785333002 git-svn-id: svn://svn.chromium.org/blink/trunk@186899 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Remove the HasOwnBackingButPaintsIntoAncestor compositing state.chrishtr@chromium.org2014-11-082-0/+2
| | | | | | | | | | | | | | | | | | | The referenced bug is caused by a composited descendant that has an opacity animation not having the correct background painted for its ancestor that it needs to blend with. However, HasOwnBackingButPaintsIntoAncestor is also just an optimization to reduce the number of composited layers that draw content, in cases where we think we can get away with it. (e.g. only existing to pass along preserves-3d state). In exchange for these optimizations, the feature introduces significant complexity, and has caused a number of bugs. Let's just kill it. BUG=418521 Review URL: https://codereview.chromium.org/708213002 git-svn-id: svn://svn.chromium.org/blink/trunk@185007 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Main-thread scroll if we have fixed-pos children and overflow:hidden.awoloszyn@chromium.org2014-11-062-0/+45
| | | | | | | | | | | | | | | | | | | | If we are overflow:hidden and have fixed-pos children we would transition to impl-side scrolling. This was exposing another bug (304810) where on impl-side where we do not correctly stop body elements from scrolling. This lead us to scroll elements on the impl-thread even if they need to be main-thread scrolled. Here we do not short-circuit the main-thread requirements if the frame is overflow:hidden. This is equivalent to our old implementation, and lets gmail continue to be on impl-thread, which is what abarth had originally changed that caused this issue. BUG=411767 R=vollick@chromium.org Review URL: https://codereview.chromium.org/699183004 git-svn-id: svn://svn.chromium.org/blink/trunk@184891 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Unprefix usage of -webkit-transform in testssamli@chromium.org2014-10-1837-62/+62
| | | | | | | | BUG=421268 Review URL: https://codereview.chromium.org/637763002 git-svn-id: svn://svn.chromium.org/blink/trunk@183941 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Auto-rebaseline for r182920wangxianzhu@chromium.org2014-09-301-39/+0
| | | | | | | | | | | http://src.chromium.org/viewvc/blink?view=revision&revision=182920 BUG=334269 TBR=dominik.rottsches@intel.com Review URL: https://codereview.chromium.org/615073002 git-svn-id: svn://svn.chromium.org/blink/trunk@182933 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Auto-rebaseline for r182366wangxianzhu@chromium.org2014-09-2217-0/+22
| | | | | | | | | | http://src.chromium.org/viewvc/blink?view=revision&revision=182366 TBR=vollick@chromium.org Review URL: https://codereview.chromium.org/590993002 git-svn-id: svn://svn.chromium.org/blink/trunk@182388 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Remove computePaintInvalidationRectsIncludingNonCompositingDescendantsjchaffraix@chromium.org2014-09-181-2/+0
| | | | | | | | | | | | | | | | | | The function was used by the compositor code only so inlined it here. Also fixed some issues with the function: - it wasn't clearing the paint invalidation bits thus generating extra unneeded invalidations. The fix is to make it generate the invaliation as part of the paint invalidation phase by marking the renderer for full invalidation. - Removed tree walks as part of updating the previous paint invalidation rectangle. We only really needed to clear it so that we don't invalidate at the wrong position, the updating will be taken care of in a more optimized way during the paint invalidation phase. Review URL: https://codereview.chromium.org/580223002 git-svn-id: svn://svn.chromium.org/blink/trunk@182277 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Revert 181400 "Partial revert of r178392"keishi@chromium.org2014-09-052-2/+9
| | | | | | | | | | | | | | | | | | | | > Partial revert of r178392 > > An unnecessary modification that was made in Blink r178392 was causing > a regression in the rendering of the inspector timeline. Pulling it > out > > BUG=408080 > R=kbr@chromium.org > > Review URL: https://codereview.chromium.org/541783002 TBR=junov@chromium.org BUG= Review URL: https://codereview.chromium.org/542963002 git-svn-id: svn://svn.chromium.org/blink/trunk@181433 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Partial revert of r178392junov@chromium.org2014-09-042-9/+2
| | | | | | | | | | | | An unnecessary modification that was made in Blink r178392 was causing a regression in the rendering of the inspector timeline. Pulling it out BUG=408080 R=kbr@chromium.org Review URL: https://codereview.chromium.org/541783002 git-svn-id: svn://svn.chromium.org/blink/trunk@181400 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Don't require main-thread scrolling for Gmailabarth@chromium.org2014-08-214-3/+48
| | | | | | | | | | | | | | | | | | In Gmail, the FrameView doesn't scroll, which means we don't create a composited layer for fixed position elements. However, when checking for main-thread scrolling reasons, we'd notice these non-composited fixed-position elements and think that meant we needed main-thread scrolling. This CL skips the check for non-composited fixed-position elements if the FrameView isn't scrollable. If the FrameView isn't scrollable, there's no reason to force main thread scrolling in this case. R=vollick@chromium.org BUG=404332 Review URL: https://codereview.chromium.org/480573007 git-svn-id: svn://svn.chromium.org/blink/trunk@180688 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Auto-rebaseline for r180492wangxianzhu@chromium.org2014-08-191-13/+0
| | | | | | | | | | | http://src.chromium.org/viewvc/blink?view=revision&revision=180492 BUG=365851 TBR=danakj@chromium.org Review URL: https://codereview.chromium.org/470803003 git-svn-id: svn://svn.chromium.org/blink/trunk@180576 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Invisible fixed-position elements should not trigger main thread scrollingabarth@chromium.org2014-08-192-0/+40
| | | | | | | | | | | | There no reason to scroll on the main thread if the only non-composited fixed position elements are invisible. R=vollick@chromium.org BUG=404332 Review URL: https://codereview.chromium.org/481223002 git-svn-id: svn://svn.chromium.org/blink/trunk@180511 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Merge AcceleratedCompositingForOverflowScroll into PreferCompositingToLCDText.danakj@chromium.org2014-08-182-2/+2
| | | | | | | | | | | | | This removes the AcceleratedCompositingForOverflowScroll setting and changes code that checked for it to instead check for the PreferCompositingToLCDText setting. R=abarth@chromium.org, vollick@chromium.org, abarth BUG=365851 Review URL: https://codereview.chromium.org/486493002 git-svn-id: svn://svn.chromium.org/blink/trunk@180492 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Rename acceleratedCompositingForFixedPosition to preferCompositingToLCDText.danakj@chromium.org2014-08-1518-18/+18
| | | | | | | | | | | | | | | | | | This adds a preferCompositingToLCDText setting, and makes it be set by the setAcceleratedCompositingForFixedPositionEnabled() WebSettings method so that behaviour is not changed. Next, Chromium will be changed to call setPreferCompositingToLCDTextEnabled instead so we can remove this method from settings. Later, other accelerated compositing trigger settings will be merged with preferCompositingToLCDText. R=abarth BUG=365851 Review URL: https://codereview.chromium.org/476273003 git-svn-id: svn://svn.chromium.org/blink/trunk@180392 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Non-composited scrolling div should invalidate when it has descendant paints ↵trchen@chromium.org2014-08-151-0/+1
| | | | | | | | | | | | | | to its backing This CL fixes a bug that non-composited scrolling div forgets to invalidate because the div believed all its descandants are composited, when actually some descendants paints to ancestor backing although composited. BUG=401047 Review URL: https://codereview.chromium.org/460883002 git-svn-id: svn://svn.chromium.org/blink/trunk@180309 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Non-composited, fixed position should trigger main thread scrollingabarth@chromium.org2014-08-142-0/+45
| | | | | | | | | | | | | | In a recent change, I broke the logic for determining whether fixed position elements should trigger main thread scrolling. This CL fixes the logic to trigger main thread scrolling if we have fixed position elements that lack composited layers. R=vollick@chromium.org BUG=402359 Review URL: https://codereview.chromium.org/465333004 git-svn-id: svn://svn.chromium.org/blink/trunk@180226 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Auto-rebaseline for r179749wangxianzhu@chromium.org2014-08-076-17/+184
| | | | | | | | | | http://src.chromium.org/viewvc/blink?view=revision&revision=179749 TBR=abarth@chromium.org Review URL: https://codereview.chromium.org/448313002 git-svn-id: svn://svn.chromium.org/blink/trunk@179761 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Convert more tests into text-based-repaint testswangxianzhu@chromium.org2014-07-211-18/+3
| | | | | | | | | - less code - to be able to use features of text-based-repaint.js Review URL: https://codereview.chromium.org/408843004 git-svn-id: svn://svn.chromium.org/blink/trunk@178600 bbb929c8-8fbe-4397-9dbb-9b2b20218538
* Fixing 2D canvas invalidation region tracking.junov@chromium.org2014-07-172-2/+8
| | | | | | | | | | | | | | | | | | | The partial layer invalidation logic that was added in r176815 was not properly transforming the invalidation region from the layer's local frame of reference to the layer's content area. The proper logic already existed for non-accelerated 2d canvases, but we were short- circuiting it whith acceleration enabled because we did not support partial invalidations in the past. This fix makes accelerated 2D canvases use the same invalidation code path as non-accelerated canvases. TEST=fast/canvas/canvas-partial-invalidation-zoomed.html BUG=393192 NOTRY=true Review URL: https://codereview.chromium.org/402613006 git-svn-id: svn://svn.chromium.org/blink/trunk@178392 bbb929c8-8fbe-4397-9dbb-9b2b20218538