Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(131)

Issue 2652643004: Make PageScaleFactor work for oopif subframes.

Created:
3 years, 11 months ago by wjmaclean
Modified:
3 years, 10 months ago
CC:
chromium-reviews, mlamouri+watch-content_chromium.org, tyoshino+watch_chromium.org, Nate Chapin, creis+watch_chromium.org, yusukes+watch_chromium.org, kinuko+watch, shuchen+watch_chromium.org, nasko+codewatch_chromium.org, jam, blink-reviews-api_chromium.org, nona+watch_chromium.org, dglazkov+blink, darin-cc_chromium.org, gavinp+loader_chromium.org, blink-reviews, piman+watch_chromium.org, cc-bugs_chromium.org, James Su, loading-reviews_chromium.org, site-isolation-reviews_chromium.org, rjkroege, danakj, sadrul
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Make PageScaleFactor work for oopif subframes. Ooopif sub-frames render in a separate process, with a separate LayerTree and compositor. The current CC framework expects page scale to be a main-frame concept, but at present all the subframe really needs is a correct value for the raster scale. This can be accomplished in CC by always including the layer tree's page scale factor in the raster scale if there's no PageScaleLayer, which is always the case for an oopif sub-frame. This CL includes the basic plumbing to push notification of page scale changes, via the deltas from GesturePinchUpdate, to all the page's RenderViews. It also includes the necessary changes to restore page scale from the history on navigation back to a previously zoomed page. Design doc: https://docs.google.com/document/d/1dBuFglDPE1PoYN33IAR6O5BJ7u5Hityc6sM6jPF4a3M BUG=654917 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Patch Set 1 #

Patch Set 2 : Fix patch gardening error: GesturePinch routing tests. #

Total comments: 20

Patch Set 3 : Address kenrb@'s comments. #

Patch Set 4 : Put function prototype in correct place. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+242 lines, -32 lines) Patch
M cc/input/browser_controls_offset_manager_unittest.cc View 1 chunk +2 lines, -1 line 0 comments Download
M cc/layers/picture_layer_impl.cc View 1 chunk +8 lines, -1 line 0 comments Download
M cc/test/fake_layer_tree_host_impl.cc View 1 chunk +1 line, -1 line 0 comments Download
M cc/trees/layer_tree.h View 2 chunks +5 lines, -0 lines 0 comments Download
M cc/trees/layer_tree.cc View 3 chunks +12 lines, -3 lines 0 comments Download
M cc/trees/layer_tree_host_impl.cc View 5 chunks +17 lines, -9 lines 0 comments Download
M cc/trees/layer_tree_impl.h View 5 chunks +19 lines, -4 lines 0 comments Download
M cc/trees/layer_tree_impl.cc View 8 chunks +57 lines, -10 lines 0 comments Download
M content/browser/frame_host/render_frame_host_delegate.h View 1 2 1 chunk +3 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_frame_host_impl.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/frame_host/render_frame_host_impl.cc View 1 2 2 chunks +13 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_delegate.h View 1 chunk +4 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_input_event_router.cc View 1 2 2 chunks +18 lines, -0 lines 0 comments Download
M content/browser/site_per_process_browsertest.cc View 1 2 chunks +10 lines, -2 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.cc View 1 2 1 chunk +11 lines, -0 lines 0 comments Download
M content/common/frame_messages.h View 1 2 1 chunk +8 lines, -0 lines 0 comments Download
M content/renderer/gpu/render_widget_compositor.h View 1 chunk +2 lines, -0 lines 0 comments Download
M content/renderer/gpu/render_widget_compositor.cc View 1 chunk +8 lines, -0 lines 0 comments Download
M content/renderer/render_frame_impl.h View 1 2 3 2 chunks +3 lines, -0 lines 0 comments Download
M content/renderer/render_frame_impl.cc View 1 2 4 chunks +20 lines, -0 lines 0 comments Download
M content/renderer/render_widget.cc View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/loader/FrameLoader.cpp View 2 chunks +4 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/loader/FrameLoaderClient.h View 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/web/FrameLoaderClientImpl.h View 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp View 1 chunk +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/web/WebViewImpl.h View 2 chunks +1 line, -1 line 0 comments Download
M third_party/WebKit/public/web/WebFrameClient.h View 1 chunk +3 lines, -0 lines 0 comments Download
M third_party/WebKit/public/web/WebView.h View 1 chunk +3 lines, -0 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 37 (20 generated)
wjmaclean
kenrb@ - Would you please do a pre-review on the non-cc parts of this? enne@ ...
3 years, 11 months ago (2017-01-24 15:50:30 UTC) #12
kenrb
Thanks for doing this. I have some suggestions, and a couple of things I need ...
3 years, 11 months ago (2017-01-24 17:13:27 UTC) #13
wjmaclean
Some early answers to kenrb@'s questions. I'll upload a new CL with the changes soon. ...
3 years, 11 months ago (2017-01-24 18:24:26 UTC) #14
kenrb
https://codereview.chromium.org/2652643004/diff/20001/content/browser/renderer_host/render_widget_host_input_event_router.cc File content/browser/renderer_host/render_widget_host_input_event_router.cc (right): https://codereview.chromium.org/2652643004/diff/20001/content/browser/renderer_host/render_widget_host_input_event_router.cc#newcode706 content/browser/renderer_host/render_widget_host_input_event_router.cc:706: entry.second->ProcessGestureEvent(*event, latency); On 2017/01/24 18:24:26, wjmaclean wrote: > On ...
3 years, 11 months ago (2017-01-24 18:47:31 UTC) #15
enne (OOO)
Just so I can understand this problem better, how do scale transforms on oopifs from ...
3 years, 11 months ago (2017-01-24 18:58:47 UTC) #16
wjmaclean
On 2017/01/24 18:58:47, enne wrote: > Just so I can understand this problem better, how ...
3 years, 11 months ago (2017-01-24 21:48:07 UTC) #19
wjmaclean
kenrb@ - I've taken a first pass at addressing your comments ... let me know ...
3 years, 11 months ago (2017-01-24 21:48:47 UTC) #20
enne (OOO)
On 2017/01/24 at 21:48:07, wjmaclean wrote: > On 2017/01/24 18:58:47, enne wrote: > > Just ...
3 years, 11 months ago (2017-01-24 21:49:47 UTC) #21
wjmaclean
On 2017/01/24 21:49:47, enne wrote: > On 2017/01/24 at 21:48:07, wjmaclean wrote: > > > ...
3 years, 11 months ago (2017-01-25 14:25:48 UTC) #26
enne (OOO)
On 2017/01/25 at 14:25:48, wjmaclean wrote: > On 2017/01/24 21:49:47, enne wrote: > > On ...
3 years, 11 months ago (2017-01-25 18:53:39 UTC) #29
wjmaclean
On 2017/01/25 18:53:39, enne wrote: > > I don't see much difference between css transforms ...
3 years, 11 months ago (2017-01-25 19:15:40 UTC) #30
enne (OOO)
On 2017/01/25 at 19:15:40, wjmaclean wrote: > 1) Presumably the child renderers could lag by ...
3 years, 11 months ago (2017-01-25 19:24:10 UTC) #31
Fady Samuel
Adding some mus folks to cc: rjkroege@, danakj@, sadrul@ for future reference (just FYI for ...
3 years, 11 months ago (2017-01-25 19:26:17 UTC) #33
wjmaclean
So I've spent a bit of time investigating the SurfaceDrawQuad angle, and it seems like ...
3 years, 10 months ago (2017-02-06 21:31:20 UTC) #34
wjmaclean
On 2017/02/06 21:31:20, wjmaclean wrote: > > If this seems plausible, I'll come up with ...
3 years, 10 months ago (2017-02-07 15:56:45 UTC) #35
enne (OOO)
Yeah, I think this sounds plausible and it sounds like fsamuel's in favor of it ...
3 years, 10 months ago (2017-02-07 19:51:23 UTC) #36
wjmaclean
3 years, 10 months ago (2017-02-08 16:35:18 UTC) #37
On 2017/02/07 19:51:23, enne wrote:
> Yeah, I think this sounds plausible and it sounds like fsamuel's in favor of
it
> as well.  It does sound like looking through surface quads is a bit more
> complicated than I thought.  Sorry for sending you down a bad path!

heh, no worries! One never knows until they look :-)

> I think most of my questions are for fsamuel, in terms of understanding how
> it'll interact with
>
https://docs.google.com/document/d/1TAc_6IAbmTlChOwqkW_lB8NAKBBktnuquPk_Y0jO6...
> and direct parent->child notifications of surface ids and sizes.  Is page
scale
> something that could just land first and then get modified to include size and
> id later? Should the receiving end of the proposed scale-sending mojo pipe get
> connected further up in Blink (WebViewImpl?) where scale can still be passed
to
> LayerTreeHost but size can get used by Blink in the future?

I'll coordinate locally with fsamuel@ to figure out how best to coordinate/stage
this. There are both similaritites and differences (e.g. if an OOPIF gets the
changed scale information a bit late it may display a bit fuzzy, but that's not
as critical as guttering I think ...).

The receiving end could be connected higher up, perhaps WebFrameWidgetImpl,
although this information could also be plumbed back up from the LayerTree via
RenderWidgetCompositor ... I'll try and figure out the various options, and the
pros/cons (if any) of each.

Powered by Google App Engine
This is Rietveld 408576698