Project: chromium Issues People Development process History Sign in
New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Issue 148816 Enable virtual viewport pinch-zoom
Starred by 47 users Reported by twiz@chromium.org, Sep 12 2012 Back to list
This issue is for tracking the progress of the chromium side of the compositor changes to enable a pinch-zoom path that does not use a CSS transformation.

High level summary:
 - Explained best by this demo.  Set the mode to pin to outer. http://www/~johnme/clank/position-fixed/prototype/
 - Implementation strategy:  https://docs.google.com/a/google.com/document/d/109AJe6VifVwDQZ-belLMKz5Yjq7kK0FC2aI21445S0k/edit

This issue was initially tracked on a webkit change: https://bugs.webkit.org/show_bug.cgi?id=93292

 
Comment 1 by aelias@chromium.org, Sep 26 2012
Blocking: chromium:152505
Comment 2 by twiz@chromium.org, Sep 26 2012
Status: Started
Project Member Comment 3 by bugdroid1@chromium.org, Sep 27 2012
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=159151

------------------------------------------------------------------------
r159151 | twiz@chromium.org | 2012-09-27T23:32:30.251177Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_widget_host_view_win.cc?r1=159151&r2=159150&pathrev=159151

Disable pinch-zoom gesture by default on windows builds.  

Pinch can be re-enabled by passing --enable-pinch on the command line.

The compositor based pinch zoom, and existing gesture-based pinch zoom isn't ready for prime time.

BUG= 148816 
TEST=None

Review URL: https://chromiumcodereview.appspot.com/10987078
------------------------------------------------------------------------
Labels: Merge-Requested
The CL from #2 will need to be merged to the M23 branch if we are to enable threaded compositing on windows. Karen, can we do that pro-actively.  It's a safe CL to merge.

Comment 5 by twiz@chromium.org, Oct 1 2012
Cc: wjmaclean@chromium.org
Comment 6 by twiz@chromium.org, Oct 3 2012
Labels: Mstone-23 ReleaseBlock-Stable
Comment 7 by kareng@google.com, Oct 3 2012
i prefer we wait until we deicde to turn it back on. no need to take this until then.
Comment 8 by twiz@chromium.org, Oct 3 2012
Blocking: chromium:153860
Comment 9 by twiz@chromium.org, Oct 3 2012
A related webkit change just landed at wk rev r130321.

This patch exposes the necessary plumbing for a flag to enable the page-scale pinch zoom.
https://bugs.webkit.org/show_bug.cgi?id=93292
Comment 10 by kareng@google.com, Oct 8 2012
uhm this patch is not small. 
Project Member Comment 11 by bugdroid1@chromium.org, Oct 8 2012
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=160730

------------------------------------------------------------------------
r160730 | aelias@chromium.org | 2012-10-08T22:41:48.587927Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/glue/webpreferences.h?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/CCLayerTreeHost.cpp?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/CCLayerTreeHostTest.cpp?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/CCLayerImpl.cpp?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/CCLayerImplTest.cpp?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/CCLayerTreeHost.h?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/CCSettings.cpp?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/renderer_host/render_process_host_impl.cc?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/CCLayerImpl.h?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/CCLayerTreeHostCommon.cpp?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/CCSettings.h?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/CCThreadProxy.cpp?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/web_contents/web_contents_impl.cc?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/LayerChromium.cpp?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/public/common/content_switches.cc?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/CCLayerTreeHostImplTest.cpp?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/CCLayerTreeHostImpl.cpp?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/common/view_messages.h?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/public/common/content_switches.h?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/CCThreadProxy.h?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/LayerChromium.h?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/render_thread_impl.cc?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/compositor_bindings/web_compositor_support_impl.cc?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/CCLayerTreeHostImpl.h?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/render_view_impl.cc?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/compositor_bindings/web_compositor_support_impl.h?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/compositor_bindings/WebCompositorImpl.cpp?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/render_view_impl.h?r1=160730&r2=160729&pathrev=160730
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/glue/webpreferences.cc?r1=160730&r2=160729&pathrev=160730

Pinch-zoom applied via compositor instead of CSS transformation.

This is a rebased version of twiz's patch in 10916279.

Corresponding WK change: https://bugs.webkit.org/show_bug.cgi?id=93292

BUG= 148816 


Review URL: https://chromiumcodereview.appspot.com/11094004
------------------------------------------------------------------------
Cc: -wjmaclean@chromium.org twiz@chromium.org aelias@chromium.org
Owner: wjmaclean@chromium.org
Comment 13 by kareng@google.com, Oct 9 2012
Labels: -ReleaseBlock-Stable
removing this as blocker since we're likely not trunign it back on.
Comment 14 by karen@chromium.org, Oct 10 2012
Labels: -Mstone-23 MovedFrom-23 Mstone-24
Moving all non essential bugs to the next Milestone
Comment 15 by kareng@google.com, Oct 10 2012
Labels: -Mstone-24 Mstone-23
Labels: OS-All
Comment 17 by kareng@google.com, Oct 15 2012
Labels: -Merge-Requested -Mstone-23 Merge-Rejected Mstone-24
at this point we're not turning it back on.
Cc: trchen@chromium.org
Blockedon: chromium:156978
Blockedon: chromium:158089
Labels: Iteration-68
Labels: -Mstone-24
Please target the right milestone to which this can be fixed. For now, removing the milestone label.
Blockedon: chromium:162482
Labels: Feature-Ash-Gestures
Blockedon: chromium:165842
Labels: -Type-Bug -Merge-Rejected -MovedFrom-23 Type-Feature MStone-26
Summary: Enable page-scale-pinch-zoom (was: Tracking issue for page-scale-pinch-zoom)
Issue 168471 has been merged into this issue.
Labels: Iteration-73
Started -> Iteration-73
Comment 30 Deleted
Comment 31 Deleted
Cc: rbyers@google.com adlr@chromium.org jessj@chromium.org jackyhayward@chromium.org trond@chromium.org
Issue chrome-os-partner:17196 has been merged into this issue.
Blockedon: chromium:169904
Cc: -twiz@chromium.org
Cc: wangxianzhu@chromium.org
Blockedon: chromium:170650 chromium:170661
Labels: Iteration-74
Note that we probably need to have some mechanism for sites to disable pinch before we enable the feature by default.  Perhaps just implement the user-scalable flag in the viewport meta tag?
Seems like a reasonable way to go (or something similar). Does that flag work on Chrome for Android (or how is it handled there)?

James, do you still hope to turn this on for M26?
Blockedon: chromium:173143
Labels: Iteration-75
James, how's this looking for 26? 
It's dead for M26. The last minute re-architecting for CY is still incomplete, and this is stuck behind that.
Labels: MovedFrom26
M26 has branched, bulk moving to M27.  If this is really needed in 26, please move it back and add a ReleaseBlock label. 
Labels: -MStone-26 MStone-27
Labels: Iteration-76
Labels: Iteration-77
Project Member Comment 47 by bugdroid1@chromium.org, Mar 10 2013
Labels: -Area-WebKit -Feature-GPU-Compositing -Feature-Ash-Gestures -MStone-27 Cr-Content Cr-UI-Shell-Gestures Cr-Internals-GPU-Compositing M-27
With issue 175542 solved and GPU acceleration really pulling its weight (good smoothness) it seems as though pinch zoom should compliment it well.  How does the inclusion of pinch zoom affect pages globally/how does IE10 handle it in rules?
Labels: Iteration-78
Blocking: chromium:132607
Cc: reve...@chromium.org
For M27 we're trying to get impl-side-painting turned on for CrOS. How, if at all, does that impact pinch/zoom on CrOS?
Cc: wiltzius@chromium.org
The semantic incompatibilities between pinch zoom and impl-side painting are now all fixed.  So it shouldn't have an impact except for altering the performance and appearance of pinch zoom (in theory for the better).
I don't think impl-side painting should cause any problems with pinch-zoom ... I've been testing with impl-side painting both turned on and turned off all the way, with the goal of having pinch-zoom ready for both cases.
Got it, thanks guys!
Labels: -Cr-UI-Shell-Gestures Cr-UI-Input-Touch-Screen OS-Chrome CR-UI-Shell
Labels: -Pri-2 -M-27 Pri-1 M-28
Project Member Comment 58 by bugdroid1@chromium.org, Apr 5 2013
Labels: -Cr-Internals-GPU-Compositing Cr-Internals-Compositing
Project Member Comment 59 by bugdroid1@chromium.org, Apr 5 2013
Labels: -Cr-Content Cr-Blink
Issue 96955 has been merged into this issue.
Labels: Iteration-80
Blockedon: chromium:229614
Blockedon: chromium:232098
Labels: -M-28 M-29
Labels: Iteration-81
Blockedon: chromium:229458
Labels: Iteration-83
Labels: Iteration-84
Labels: -M-29 M-30
Labels: Iteration-85
Blocking: chromium:243388
Comment 72 Deleted
Labels: Iteration-86
Labels: -M-30 M-31
Labels: Iteration-88
Labels: Iteration-89
Issue 176934 has been merged into this issue.
Labels: Iteration-90
Labels: -M-31 M-32
Blocking: chromium:304869
Labels: Iteration-92
Labels: -Cr-UI-Input-Touch-Screen Cr-Internals-Input-Touch-Screen
Labels: -M-32 -Iteration-92 -Cr-Internals-Input-Touch-Screen
wjmaclean@ - what's the status of this bug? Is this still on track to go into M32? 
Labels: -Iteration-68 -Iteration-73 -Iteration-74 -Iteration-75 -Iteration-76 -Iteration-77 -Iteration-78 M-33 Cr-Internals-Input-Touch-Screen
This has slipped again to M33.
Adding back removed labels (I think we may have hit the max label count!).
Ugh. What a depressing state of affairs :-(
Labels: -Iteration-80 -Iteration-81 -Iteration-83 -Iteration-84 -Iteration-85 Iteration-68
Labels: Proj-Windows8
Labels: -M-33 M-34
Given that the blocking issues are not Windows related, from an outside perspective it would seem to make sense to enable pinch zoom by default at least on Windows. 

FWIW, running Chrome Stable on Win 8.1 with pinch enabled on a daily basis I haven't seen what I would consider show stopping bugs. 
Agreed; enable by default where there are no blockers
Can we enable pinch to zoom by default now?
I believe James still has some critical patches to land.  James, can you
give us an update please?

There's a separate debate about whether we enable for Aura in advance of
enabling the new code path on Android (which will take longer).
aelias@argues we should block enabling the flag on Aura until we're
ready to
switch Android over to the new path (to avoid accumulating debt).
One remaining bug in pinch zoom, or at least in Version 32.0.1700.76 stable is that some menu overlays don't properly scale. 

For example, the top menu menu bar on arstechnica.com gets misplaced upon scaling, see partial screenshot. In the unscaled version, the menu does not overlap with the image. 


arstechica-pinch-problem.jpg
111 KB View Download
Pinch-Zoom with proper handling of fixed position elements has not yet landed.
We should land this for Aura in advance of Android if that is quicker. 

1) We need this in Aura and have nothing in its place right now (unlike Android) - it is an often requested feature
2) The earlier we land it on Aura, the more bugs we will find
3) It is a critical piece for touchview mode on new devices - the earlier we land it, the less risk we have there

I filed launch bugs etc for this for 34 and we have most of the the approvals so nothing should hold us back at this point from pushing this out. 
Cc: vollick@chromium.org enne@chromium.org
To repost what I said to some folks in private arguing that we should aim to ship on Android at the same time:

"I observe a lot of changes will be needed to get this shippable on Android.  If it's already shipped on ChromeOS when we start this work, we'll be in a position of potentially regressing shipped ChromeOS behavior and getting those patches reverted, which will slow things down a lot.  It's going to lead to another long period of forked code.  Also this would keep us honest and the incentives aligned correctly.  Basically I see pinch zoom code that's incompatible with Android as technical debt in our codebase, and similarly to the policy of requiring tests to ship, it would avoid the declare-feature-complete-and-move-on-to-next-thing-despite-messy-code problem."

I think the primary risk by far here is to miss bugs that are ship-blocking on Android but not Aura, and lock in a burdensome forked codepath for a long time.  I think we should either aim for simultaneous shipping, or alternatively make it 80% compatible with Android and have a clear plan for who is going to complete the transition and own pinch in the future (cc'ing vollick@ since Rick mentioned you as potentially interested in this).
Cc: cpu@chromium.org
Project Member Comment 98 by bugdroid1@chromium.org, Jan 24 2014
------------------------------------------------------------------------
r246812 | wjmaclean@chromium.org | 2014-01-24T07:43:49.334731Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_impl_base.h?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl_unittest.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/public/common/common_param_traits_macros.h?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_impl.h?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_interface.h?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_thinning_unittest.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_thinning.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_position_constraint_unittest.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/painted_scrollbar_layer_impl.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_animation.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer.h?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_unittest.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host.h?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/test/web_layer_tree_view_impl_for_testing.h?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_context.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_linear_fade.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_scrollbar_layer_impl.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_common_unittest.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/painted_scrollbar_layer.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/gpu/render_widget_compositor.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer_impl.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_perftest.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/test/fake_painted_scrollbar_layer.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/gfx/transform.h?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer_impl.h?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl.h?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_impl.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/tree_synchronizer.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl.h?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_damage.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/test/web_layer_tree_view_impl_for_testing.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_layer_impl.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_linear_fade_unittest.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_layer_impl.h?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer.h?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_unittest.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/test/layer_tree_json_parser.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_scrollbar_layer_impl.h?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/painted_scrollbar_layer.h?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_scroll.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_impl_base.cc?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/test/fake_painted_scrollbar_layer.h?r1=246812&r2=246811&pathrev=246812
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl_unittest.cc?r1=246812&r2=246811&pathrev=246812

Pinch/Zoom Infrastructure & Plumbing CL

This CL supplies the necessary changes to CC to support the
inner/outer viewport model for pinch-zoom and fixed-position 
elements. The specification for these changes is contained in 
the document "Layer-based Solution for Pinch Zoom / Fixed 
Position".

It incorporates a change to how scrollbar parameters are 
computed (removes the notion of max_scroll_offset as a 
quantity set be the embedder, and instead inferred from the 
relative sizes of a clip layer w.r.t. the scroll layer).

Scrollbars are generalized so that a layer may have more than 
two scrollbars, and the parameters of the scrollbar are set 
w.r.t. the sizes and positions of a clip and a scroll layer. 
Further, changes to the scrip/scroll layer automatically 
notify any attached scrollbars.

The CL also removes existing references to root_scroll_layer 
from LTH, LTI and LTHI and replaces them with either 
Inner/OuterViewportScrollLayer (dual-layer operation only 
exists at present if the --enable-pinch-virtual-viewport flag 
is specified, otherwise behavior is unchanged).

Logic is added to (i) combine scroll offsets for the two 
viewports before passing it to the embedder, and (ii) 
splitting any offsets received from the embedder 
appropriately between the two viewports.

This CL relies on https://codereview.chromium.org/138453004/ 
for changes in Blink to support it.

BUG= 148816 

Review URL: https://codereview.chromium.org/23983047
------------------------------------------------------------------------
Project Member Comment 99 by bugdroid1@chromium.org, Jan 24 2014
------------------------------------------------------------------------
r246842 | mkwst@chromium.org | 2014-01-24T12:10:25.175502Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/test/web_layer_tree_view_impl_for_testing.h?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_layer_impl.h?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_scrollbar_layer_impl.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_scrollbar_layer_impl.h?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_common_unittest.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer_impl.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_perftest.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/test/fake_painted_scrollbar_layer.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_impl_base.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/test/fake_painted_scrollbar_layer.h?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl_unittest.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl.h?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_impl.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/tree_synchronizer.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/public/common/common_param_traits_macros.h?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_impl.h?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_thinning_unittest.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_damage.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_animation.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_layer_impl.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_linear_fade_unittest.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host.h?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer.h?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_unittest.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_linear_fade.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_context.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/test/layer_tree_json_parser.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/painted_scrollbar_layer.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/painted_scrollbar_layer.h?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/gpu/render_widget_compositor.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_scroll.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer_impl.h?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/gfx/transform.h?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl_unittest.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_impl_base.h?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl.h?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_interface.h?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_thinning.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_position_constraint_unittest.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/painted_scrollbar_layer_impl.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer.h?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/test/web_layer_tree_view_impl_for_testing.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_unittest.cc?r1=246842&r2=246841&pathrev=246842
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer.cc?r1=246842&r2=246841&pathrev=246842

Revert of Pinch/Zoom Infrastructure & Plumbing CL (https://codereview.chromium.org/23983047/)

Reason for revert:
This patch broke several blink-side compositing/rtl tests[1][2]. It's
unclear whether these tests are valuable, given some comments
in TestExpectations, but since I know nothing about compositing
I'll leave the decision about what to do with these tests up to
someone who does.

[1]: http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20Blink&tests=compositing/rtl/rtl-iframe-absolute-overflow-scrolled.html,compositing/rtl/rtl-iframe-absolute-overflow.html,compositing/rtl/rtl-iframe-fixed-overflow-scrolled.html,compositing/rtl/rtl-iframe-fixed-overflow.html
[2]: http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.7/builds/22131

Original issue's description:
> Pinch/Zoom Infrastructure & Plumbing CL
> 
> This CL supplies the necessary changes to CC to support the
> inner/outer viewport model for pinch-zoom and fixed-position 
> elements. The specification for these changes is contained in 
> the document "Layer-based Solution for Pinch Zoom / Fixed 
> Position".
> 
> It incorporates a change to how scrollbar parameters are 
> computed (removes the notion of max_scroll_offset as a 
> quantity set be the embedder, and instead inferred from the 
> relative sizes of a clip layer w.r.t. the scroll layer).
> 
> Scrollbars are generalized so that a layer may have more than 
> two scrollbars, and the parameters of the scrollbar are set 
> w.r.t. the sizes and positions of a clip and a scroll layer. 
> Further, changes to the scrip/scroll layer automatically 
> notify any attached scrollbars.
> 
> The CL also removes existing references to root_scroll_layer 
> from LTH, LTI and LTHI and replaces them with either 
> Inner/OuterViewportScrollLayer (dual-layer operation only 
> exists at present if the --enable-pinch-virtual-viewport flag 
> is specified, otherwise behavior is unchanged).
> 
> Logic is added to (i) combine scroll offsets for the two 
> viewports before passing it to the embedder, and (ii) 
> splitting any offsets received from the embedder 
> appropriately between the two viewports.
> 
> This CL relies on https://codereview.chromium.org/138453004/ 
> for changes in Blink to support it.
> 
> BUG= 148816 
> 
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=246812

TBR=enne@chromium.org,aelias@chromium.org,joi@chromium.org,sky@chromium.org,piman@chromium.org,tony@chromium.org,wjmaclean@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG= 148816 

Review URL: https://codereview.chromium.org/146713002
------------------------------------------------------------------------
Blocking: chromium:175502
Project Member Comment 101 by bugdroid1@chromium.org, Jan 29 2014
------------------------------------------------------------------------
r247684 | wjmaclean@chromium.org | 2014-01-29T13:54:33.437851Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/painted_scrollbar_layer_impl.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_animation.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer.h?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_unittest.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host.h?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/test/web_layer_tree_view_impl_for_testing.h?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_linear_fade.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_context.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_scrollbar_layer_impl.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_common_unittest.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/painted_scrollbar_layer.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/gpu/render_widget_compositor.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer_impl.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_perftest.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/test/fake_painted_scrollbar_layer.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer_impl.h?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/gfx/transform.h?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl.h?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_impl.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/tree_synchronizer.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl.h?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_damage.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/test/web_layer_tree_view_impl_for_testing.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_layer_impl.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_linear_fade_unittest.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer.h?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_unittest.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_layer_impl.h?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/test/layer_tree_json_parser.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_scrollbar_layer_impl.h?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/painted_scrollbar_layer.h?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_perftest.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_scroll.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_impl_base.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/test/fake_painted_scrollbar_layer.h?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl_unittest.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl_unittest.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_impl_base.h?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/public/common/common_param_traits_macros.h?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_impl.h?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_interface.h?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_thinning_unittest.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_thinning.cc?r1=247684&r2=247683&pathrev=247684
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_position_constraint_unittest.cc?r1=247684&r2=247683&pathrev=247684

Pinch/Zoom Infrastructure & Plumbing CL

This CL supplies the necessary changes to CC to support the
inner/outer viewport model for pinch-zoom and fixed-position
elements. The specification for these changes is contained in
the document "Layer-based Solution for Pinch Zoom / Fixed
Position".

It incorporates a change to how scrollbar parameters are
computed (removes the notion of max_scroll_offset as a
quantity set be the embedder, and instead inferred from the
relative sizes of a clip layer w.r.t. the scroll layer).

Scrollbars are generalized so that a layer may have more than
two scrollbars, and the parameters of the scrollbar are set
w.r.t. the sizes and positions of a clip and a scroll layer.
Further, changes to the scrip/scroll layer automatically
notify any attached scrollbars.

The CL also removes existing references to root_scroll_layer
from LTH, LTI and LTHI and replaces them with either
Inner/OuterViewportScrollLayer (dual-layer operation only
exists at present if the --enable-pinch-virtual-viewport flag
is specified, otherwise behavior is unchanged).

Logic is added to (i) combine scroll offsets for the two
viewports before passing it to the embedder, and (ii)
splitting any offsets received from the embedder
appropriately between the two viewports.

This CL relies on https://codereview.chromium.org/138453004/
for changes in Blink to support it.

BUG= 148816 

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=246812

R=aelias@chromium.org, enne@chromium.org, joi@chromium.org, piman@chromium.org, sky@chromium.org

Review URL: https://codereview.chromium.org/23983047
------------------------------------------------------------------------
Project Member Comment 102 by bugdroid1@chromium.org, Jan 29 2014
------------------------------------------------------------------------
r247688 | ricea@chromium.org | 2014-01-29T14:32:46.468482Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl.h?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_impl.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/tree_synchronizer.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/public/common/common_param_traits_macros.h?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_impl.h?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_thinning_unittest.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_damage.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_animation.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_layer_impl.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host.h?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_linear_fade_unittest.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_unittest.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_linear_fade.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer.h?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_context.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/test/layer_tree_json_parser.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/painted_scrollbar_layer.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/painted_scrollbar_layer.h?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/gpu/render_widget_compositor.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_scroll.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer_impl.h?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/gfx/transform.h?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl_unittest.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_impl_base.h?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl.h?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_interface.h?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_thinning.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_position_constraint_unittest.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/painted_scrollbar_layer_impl.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer.h?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/test/web_layer_tree_view_impl_for_testing.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_unittest.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/test/web_layer_tree_view_impl_for_testing.h?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_layer_impl.h?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_scrollbar_layer_impl.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_scrollbar_layer_impl.h?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_common_unittest.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_perftest.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_perftest.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer_impl.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/test/fake_painted_scrollbar_layer.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_impl_base.cc?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/test/fake_painted_scrollbar_layer.h?r1=247688&r2=247687&pathrev=247688
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl_unittest.cc?r1=247688&r2=247687&pathrev=247688

Revert of Pinch/Zoom Infrastructure & Plumbing CL (https://codereview.chromium.org/23983047/)

Reason for revert:
Broke Linux ASAN Tests (3) bot.

Original issue's description:
> Pinch/Zoom Infrastructure & Plumbing CL
> 
> This CL supplies the necessary changes to CC to support the
> inner/outer viewport model for pinch-zoom and fixed-position
> elements. The specification for these changes is contained in
> the document "Layer-based Solution for Pinch Zoom / Fixed
> Position".
> 
> It incorporates a change to how scrollbar parameters are
> computed (removes the notion of max_scroll_offset as a
> quantity set be the embedder, and instead inferred from the
> relative sizes of a clip layer w.r.t. the scroll layer).
> 
> Scrollbars are generalized so that a layer may have more than
> two scrollbars, and the parameters of the scrollbar are set
> w.r.t. the sizes and positions of a clip and a scroll layer.
> Further, changes to the scrip/scroll layer automatically
> notify any attached scrollbars.
> 
> The CL also removes existing references to root_scroll_layer
> from LTH, LTI and LTHI and replaces them with either
> Inner/OuterViewportScrollLayer (dual-layer operation only
> exists at present if the --enable-pinch-virtual-viewport flag
> is specified, otherwise behavior is unchanged).
> 
> Logic is added to (i) combine scroll offsets for the two
> viewports before passing it to the embedder, and (ii)
> splitting any offsets received from the embedder
> appropriately between the two viewports.
> 
> This CL relies on https://codereview.chromium.org/138453004/
> for changes in Blink to support it.
> 
> BUG= 148816 
> 
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=246812
> 
> R=aelias@chromium.org, enne@chromium.org, joi@chromium.org, piman@chromium.org, sky@chromium.org
> 
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=247684

TBR=enne@chromium.org,aelias@chromium.org,joi@chromium.org,sky@chromium.org,piman@chromium.org,tony@chromium.org,wjmaclean@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG= 148816 

Review URL: https://codereview.chromium.org/135183016
------------------------------------------------------------------------
Summary: Enable virtual viewport pinch-zoom (was: Enable page-scale-pinch-zoom)
Project Member Comment 104 by bugdroid1@chromium.org, Jan 31 2014
------------------------------------------------------------------------
r248092 | wjmaclean@chromium.org | 2014-01-31T00:49:47.973169Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_impl.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/tree_synchronizer.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/public/common/common_param_traits_macros.h?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_impl.h?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_thinning_unittest.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_damage.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_animation.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_layer_impl.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_linear_fade_unittest.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host.h?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_unittest.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer.h?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_linear_fade.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/test/layer_tree_json_parser.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/painted_scrollbar_layer.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/painted_scrollbar_layer.h?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/gpu/render_widget_compositor.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest_scroll.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/gfx/transform.h?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer_impl.h?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl_unittest.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_impl_base.h?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl.h?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_interface.h?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_position_constraint_unittest.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/animation/scrollbar_animation_controller_thinning.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/painted_scrollbar_layer_impl.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer.h?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_unittest.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/test/web_layer_tree_view_impl_for_testing.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_unittest.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/content/test/web_layer_tree_view_impl_for_testing.h?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_layer_impl.h?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_scrollbar_layer_impl.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/webkit/renderer/compositor_bindings/web_scrollbar_layer_impl.h?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_common_unittest.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_perftest.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/solid_color_scrollbar_layer_impl.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_perftest.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/scrollbar_layer_impl_base.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/layers/layer_impl_unittest.cc?r1=248092&r2=248091&pathrev=248092
   M http://src.chromium.org/viewvc/chrome/trunk/src/cc/trees/layer_tree_host_impl.h?r1=248092&r2=248091&pathrev=248092

Pinch/Zoom Infrastructure & Plumbing CL

This CL supplies the necessary changes to CC to support the
inner/outer viewport model for pinch-zoom and fixed-position
elements. The specification for these changes is contained in
the document "Layer-based Solution for Pinch Zoom / Fixed
Position".

It incorporates a change to how scrollbar parameters are
computed (removes the notion of max_scroll_offset as a
quantity set be the embedder, and instead inferred from the
relative sizes of a clip layer w.r.t. the scroll layer).

Scrollbars are generalized so that a layer may have more than
two scrollbars, and the parameters of the scrollbar are set
w.r.t. the sizes and positions of a clip and a scroll layer.
Further, changes to the scrip/scroll layer automatically
notify any attached scrollbars.

The CL also removes existing references to root_scroll_layer
from LTH, LTI and LTHI and replaces them with either
Inner/OuterViewportScrollLayer (dual-layer operation only
exists at present if the --enable-pinch-virtual-viewport flag
is specified, otherwise behavior is unchanged).

Logic is added to (i) combine scroll offsets for the two
viewports before passing it to the embedder, and (ii)
splitting any offsets received from the embedder
appropriately between the two viewports.

This CL relies on https://codereview.chromium.org/138453004/
for changes in Blink to support it.

BUG= 148816 

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=246812

R=aelias@chromium.org, enne@chromium.org, joi@chromium.org, piman@chromium.org, sky@chromium.org

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=247684

Review URL: https://codereview.chromium.org/23983047
------------------------------------------------------------------------
Project Member Comment 105 by bugdroid1@chromium.org, Feb 5 2014
The following revision refers to this bug:
    http://src.chromium.org/viewvc/blink?view=rev&rev=166454

------------------------------------------------------------------------
r166454 | deepak.sa@samsung.com | 2014-02-05T05:40:52.659528Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/page/scrolling/ScrollingCoordinator.cpp?r1=166454&r2=166453&pathrev=166454
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/PinchViewports.cpp?r1=166454&r2=166453&pathrev=166454
   M http://src.chromium.org/viewvc/blink/trunk/public/platform/WebLayer.h?r1=166454&r2=166453&pathrev=166454
   M http://src.chromium.org/viewvc/blink/trunk/public/platform/WebScrollbarLayer.h?r1=166454&r2=166453&pathrev=166454

[Cleanup] Follow Up of Pinch/Zoom Infrastucture & Plumbing CL

Follow up of Pinch/Zoom Infrastructure & Plumbing CL to remove methods
related to max scroll offset and making clip layer methods pure virtual.

This CL is followup on https://codereview.chromium.org/23983047.

BUG= 148816 

Review URL: https://codereview.chromium.org/139923006
------------------------------------------------------------------------
Is this feature still targeting M-34?
Cc: smokana@chromium.org
Issue 347478 has been merged into this issue.
Labels: -Pri-1 -M-34 MovedFrom-34 Pri-2 M-35
This issue is Pri-1 but has already been moved once, therefore lowering to Pri-2 and moving to next milesone.
Labels: -M-35 MovedFrom-35
This issue has already been moved once and is lower than Priority 1,therefore removing mstone.
Issue 364158 has been merged into this issue.
Comment 111 by meh@chromium.org, May 5 2014
Labels: Hotlist-Input-Dev
Cc: wjmaclean@chromium.org
Labels: -MovedFrom26 -OS-Chrome -CR-UI-Shell -Iteration-68 -Iteration-86 -Iteration-88 -Iteration-89 -Iteration-90 -Proj-Windows8 -MovedFrom-34 -MovedFrom-35 M-39
Owner: bokan@chromium.org
Status: Assigned
bokan@, can we aim to ship this on all platforms for 39?  I should have some cycles to help with Android bug triage in the next month.
Yup, my goal for this quarter is to launch it in 39
Labels: Hotlist-Jank
Comment 115 by cpu@chromium.org, Aug 15 2014
we (windows folks) can provide tactical support as needed so this happens on windows as well.

Blocking: chromium:404284
Blocking: chromium:410894
Blocking: chromium:404315
Project Member Comment 119 by bugdroid1@chromium.org, Sep 8 2014
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/da8d23046f07279bba6049a8111897e46a39361b

commit da8d23046f07279bba6049a8111897e46a39361b
Author: bokan <bokan@chromium.org>
Date: Mon Sep 08 15:15:09 2014

Turn on pinch virtual-viewport by default on Windows

BUG= 148816 

Review URL: https://codereview.chromium.org/516653002

Cr-Commit-Position: refs/heads/master@{#293727}

[modify] https://chromium.googlesource.com/chromium/src.git/+/da8d23046f07279bba6049a8111897e46a39361b/content/browser/gpu/compositor_util.cc

Project Member Comment 120 by bugdroid1@chromium.org, Sep 8 2014
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/57ab8ee565e31218adb9494d46d23de486c3d1ee

commit 57ab8ee565e31218adb9494d46d23de486c3d1ee
Author: grt <grt@chromium.org>
Date: Mon Sep 08 17:55:24 2014

Revert of Turn on pinch virtual-viewport by default on Windows (patchset #1 id:1 of https://codereview.chromium.org/516653002/)

Reason for revert:
Tentative revert to see if this is the cause of AppWindowInteractiveTest.TestInnerBounds failures on Win7 waterfall builders.

Original issue's description:
> Turn on pinch virtual-viewport by default on Windows
>
> BUG= 148816 
>
> Committed: https://chromium.googlesource.com/chromium/src/+/44fc05214f6c86da5c8f8d192f514ff55fb72932

TBR=cpu@chromium.org,luken@chromium.org,piman@chromium.org,bokan@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG= 148816 

Review URL: https://codereview.chromium.org/549203002

Cr-Commit-Position: refs/heads/master@{#293754}

[modify] https://chromium.googlesource.com/chromium/src.git/+/57ab8ee565e31218adb9494d46d23de486c3d1ee/content/browser/gpu/compositor_util.cc

Labels: -M-39 M-40
Blocking: chromium:339938
Labels: pinch-to-zoom
Issue 334686 has been merged into this issue.
Blockedon: chromium:426891
Project Member Comment 127 by bugdroid1@chromium.org, Oct 27 2014
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/66210b6064d371b7a280d6ef4b41ae8152217fe7

commit 66210b6064d371b7a280d6ef4b41ae8152217fe7
Author: leviw <leviw@chromium.org>
Date: Mon Oct 27 03:21:18 2014

Revert of Enable virtual viewport on all platforms (patchset #5 id:80001 of https://codereview.chromium.org/665963002/)

Reason for revert:
This appears to break the entire world as far as LayoutTests are concerned. Here's a small sample: http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&tests=css1%2Fbasic%2Fcontainment.html%2Ccss1%2Fbasic%2Fcomments.html%2Ccss1%2Fbasic%2Fgrouping.html%2Ccss1%2Fbasic%2Fclass_as_selector.html%2Ccss1%2Fbasic%2Finheritance.html%2Ccss1%2Fbasic%2Fcontextual_selectors.html%2Ccss1%2Fbasic%2Fid_as_selector.html

Original issue's description:
> Enable virtual viewport on all platforms except Android WebView.
>
> BUG= 148816 
>
> Committed: https://crrev.com/e52372c24d2e1e9785703f0563ffc3423f7161cc
> Cr-Commit-Position: refs/heads/master@{#301307}

TBR=aelias@chromium.org,mkosiba@chromium.org,cpu@chromium.org,bokan@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG= 148816 

Review URL: https://codereview.chromium.org/679973003

Cr-Commit-Position: refs/heads/master@{#301311}

[modify] https://chromium.googlesource.com/chromium/src.git/+/66210b6064d371b7a280d6ef4b41ae8152217fe7/android_webview/lib/main/aw_main_delegate.cc
[modify] https://chromium.googlesource.com/chromium/src.git/+/66210b6064d371b7a280d6ef4b41ae8152217fe7/content/browser/gpu/compositor_util.cc

Cc: ccameron@chromium.org
Project Member Comment 129 by bugdroid1@chromium.org, Oct 28 2014
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/edb0ccdf75d9133adfcf9d3ef28c81f8075a7746

commit edb0ccdf75d9133adfcf9d3ef28c81f8075a7746
Author: bokan <bokan@chromium.org>
Date: Tue Oct 28 22:11:03 2014

Enable virtual viewport on all platforms except Android WebView.

BUG= 148816 

Committed: https://crrev.com/e52372c24d2e1e9785703f0563ffc3423f7161cc
Cr-Commit-Position: refs/heads/master@{#301307}

Review URL: https://codereview.chromium.org/665963002

Cr-Commit-Position: refs/heads/master@{#301722}

[modify] https://chromium.googlesource.com/chromium/src.git/+/edb0ccdf75d9133adfcf9d3ef28c81f8075a7746/android_webview/lib/main/aw_main_delegate.cc
[modify] https://chromium.googlesource.com/chromium/src.git/+/edb0ccdf75d9133adfcf9d3ef28c81f8075a7746/content/browser/gpu/compositor_util.cc

Cc: bokan@chromium.org
Issue 428910 has been merged into this issue.
Project Member Comment 131 by bugdroid1@chromium.org, Oct 30 2014
The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=184669

------------------------------------------------------------------
r184669 | bokan@chromium.org | 2014-10-30T20:46:26.192542Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/frame/PinchViewport.cpp?r1=184669&r2=184668&pathrev=184669

Make scrollbars in pinch viewport invisible until compositor makes them visible.

This will prevent the pinch viewport overlay scrollbars from showing up
in layout tests. Does not change visibility in normal browser usage.

BUG= 148816 

Review URL: https://codereview.chromium.org/689543004
-----------------------------------------------------------------
Project Member Comment 132 by bugdroid1@chromium.org, Oct 31 2014
The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=184682

------------------------------------------------------------------
r184682 | bokan@chromium.org | 2014-10-31T01:20:50.615671Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/PageScaleConstraintsSet.cpp?r1=184682&r2=184681&pathrev=184682
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/WebViewImpl.cpp?r1=184682&r2=184681&pathrev=184682
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/PageScaleConstraintsSet.h?r1=184682&r2=184681&pathrev=184682

FrameView's size should be calculated based on contentWidth+scrollbarWidth

In virtual viewport mode, the main FrameView's size is calculated based on
the content width of the page. On platforms where scrollbars take up layout
space (non-overlay scrollbars), this should include the scrollbar width as
well as the content width since the PinchViewport encompasses both when
fully zoomed out and the PinchViewport is bounded by the outer viewport.

BUG= 148816 

Review URL: https://codereview.chromium.org/686293003
-----------------------------------------------------------------
Project Member Comment 133 by bugdroid1@chromium.org, Oct 31 2014
The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=184736

------------------------------------------------------------------
r184736 | bokan@chromium.org | 2014-10-31T15:00:29.511907Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/inspector/InspectorLayerTreeAgent.cpp?r1=184736&r2=184735&pathrev=184736
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/frame/PinchViewport.cpp?r1=184736&r2=184735&pathrev=184736
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/inspector/InspectorLayerTreeAgent.h?r1=184736&r2=184735&pathrev=184736

Fixing crashes in layout tests when virtual-viewport is enabled.

There are two fixes in this patch. The first is using the pinch viewport's
root layer when building a layer tree for printing in text. In virtual
viewport mode, the RenderLayerCompositor is no longer at the top of the
hierarchy as PinchViewport inserts layers above it. This caused exceptions
in devtools.js as layers were referencing parent layer id's that weren't
passed down.

The second is giving the transform layer in PinchViewport a name so that the
ASSERT_NOT_REACHED isn't triggered.

BUG= 148816 

Review URL: https://codereview.chromium.org/684373003
-----------------------------------------------------------------
Project Member Comment 134 by bugdroid1@chromium.org, Nov 4 2014
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/879b23ff025295c97d950a2917d67f6714f17bd5

commit 879b23ff025295c97d950a2917d67f6714f17bd5
Author: aelias <aelias@chromium.org>
Date: Tue Nov 04 23:54:28 2014

Fix tests and enable virtual viewport on Android WebView.

In pinch virtual viewport mode, the viewport visible to Javascript is sized
to the width of the content and its height is that width multiplied by the
aspect ratio of the true viewport.  So I changed the Android WebView tests
to only do vertical scrolling, and also changed the width of the test page
to not be larger than the viewport (so that vertical scrolling also behaves as expected).

NOTRY=true
BUG= 148816 

Review URL: https://codereview.chromium.org/694113002

Cr-Commit-Position: refs/heads/master@{#302712}

[modify] https://chromium.googlesource.com/chromium/src.git/+/879b23ff025295c97d950a2917d67f6714f17bd5/android_webview/javatests/src/org/chromium/android_webview/test/AndroidScrollIntegrationTest.java
[modify] https://chromium.googlesource.com/chromium/src.git/+/879b23ff025295c97d950a2917d67f6714f17bd5/android_webview/lib/main/aw_main_delegate.cc

I'll look into it. Are there any other perf regressions from that CL you know of?
Labels: -M-40 M-41 MovedFrom-40
Moving all non essential bugs to the next Milestone.
Labels: -Pri-2 -M-41 -MovedFrom-40 Pri-1 M-40
Status: Fixed
This is enabled for Android in M40, so we should call this bug fixed.  I believe all outstanding issues are filed as M40 release blockers.  Dave, please file bugs for anything else you were tracking here (eg. enabling for Windows, any outstanding perf issues, etc.).
Blockedon: -chromium:426891
Blocking: chromium:426891
Blocking: chromium:438064
Is there any spec text and/or CSS working-group discussion about how this should behave?
It's been hard to make progress in specs since a bunch of key pieces (like anything to do with pinch-zoom) are currently unspecified.  But we've made some good progress working with the IE team in CSS WG.  See, for example: https://lists.w3.org/Archives/Public/www-style/2015Jan/0004.html
Sign in to add a comment