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

Issue 2417783005: [Master/Overview CL] Make PageScaleFactor work for oopif subframe.

Created:
4 years, 2 months ago by wjmaclean
Modified:
4 years, 1 month ago
Reviewers:
kenrb, Charlie Reis, lfg
CC:
chromium-reviews, mlamouri+watch-content_chromium.org, creis+watch_chromium.org, yusukes+watch_chromium.org, shuchen+watch_chromium.org, nasko+codewatch_chromium.org, jam, blink-reviews-api_chromium.org, nona+watch_chromium.org, dglazkov+blink, darin-cc_chromium.org, blink-reviews, cc-bugs_chromium.org, James Su, kinuko+watch, site-isolation-reviews_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Make PageScaleFactor work for oopif subframe. 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 accomplised 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. *** This CL is proof-of-concept, and needs work before it is landed. See the TODO's within. BUG=654917 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

Patch Set 1 #

Total comments: 1

Patch Set 2 : Plumb separate value for SubframePageScaleFactor. #

Patch Set 3 : New approach: send GesturePinchX events to all frames. #

Patch Set 4 : Notify WebContents when PSF is retored on load. #

Patch Set 5 : Fix cc unittest compilation. #

Patch Set 6 : Rebase to master@{#428047}. #

Patch Set 7 : Fix propagation of spsf from pending to active tree. #

Patch Set 8 : Revise eventListenerProperties functions in ChromeClient. #

Patch Set 9 : Rebase to master@{#428999}. #

Patch Set 10 : Fix WebFrameTest.SwapWithOpenerCycle (and other WebFrame tests) #

Patch Set 11 : Rebase to master@{#429258}. #

Patch Set 12 : Fix test, don't keep weak ptr to RenderViewImpl in RenderFrameImpl. #

Patch Set 13 : Fix Android compile. #

Patch Set 14 : Rebase to master@{#429656}. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+517 lines, -194 lines) Patch
M cc/blimp/compositor_state_deserializer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +6 lines, -1 line 0 comments Download
M cc/input/browser_controls_offset_manager_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +2 lines, -1 line 0 comments Download
M cc/layers/picture_layer_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +9 lines, -1 line 0 comments Download
M cc/proto/layer_tree.proto View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M cc/test/fake_layer_tree_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -1 line 0 comments Download
M cc/test/test_layer_tree_host_base.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M cc/trees/layer_tree.h View 1 2 3 4 5 6 7 8 2 chunks +5 lines, -0 lines 0 comments Download
M cc/trees/layer_tree.cc View 1 2 3 4 5 6 7 8 5 chunks +14 lines, -3 lines 0 comments Download
M cc/trees/layer_tree_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +16 lines, -9 lines 0 comments Download
M cc/trees/layer_tree_host_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 56 chunks +69 lines, -65 lines 0 comments Download
M cc/trees/layer_tree_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +16 lines, -4 lines 0 comments Download
M cc/trees/layer_tree_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 8 chunks +53 lines, -13 lines 0 comments Download
M cc/trees/layer_tree_impl_unittest.cc View 1 2 3 4 3 chunks +4 lines, -3 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_delegate.h View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_input_event_router.cc View 1 2 3 2 chunks +19 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_base.h View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_base.cc View 1 2 3 4 5 6 7 8 1 chunk +9 lines, -0 lines 0 comments Download
M content/browser/site_per_process_browsertest.cc View 1 2 3 4 5 6 7 8 3 chunks +26 lines, -3 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.cc View 1 2 3 4 5 6 7 8 2 chunks +7 lines, -0 lines 0 comments Download
M content/common/frame_messages.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +3 lines, -0 lines 0 comments Download
M content/common/page_messages.h View 1 chunk +3 lines, -0 lines 0 comments Download
M content/renderer/gpu/render_widget_compositor.h View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M content/renderer/gpu/render_widget_compositor.cc View 1 2 3 4 5 6 7 8 1 chunk +8 lines, -0 lines 0 comments Download
M content/renderer/input/input_handler_manager.h View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M content/renderer/input/input_handler_manager.cc View 1 2 3 chunks +5 lines, -5 lines 0 comments Download
M content/renderer/input/input_handler_wrapper.h View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M content/renderer/input/input_handler_wrapper.cc View 1 2 2 chunks +5 lines, -5 lines 0 comments Download
M content/renderer/render_frame_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +3 lines, -2 lines 0 comments Download
M content/renderer/render_frame_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +10 lines, -5 lines 0 comments Download
M content/renderer/render_view_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 6 chunks +4 lines, -7 lines 0 comments Download
M content/renderer/render_view_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 6 chunks +34 lines, -40 lines 0 comments Download
M content/renderer/render_widget.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 6 chunks +20 lines, -0 lines 0 comments Download
M content/renderer/render_widget.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +43 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/frame/EventHandlerRegistry.h View 1 2 3 4 5 6 7 2 chunks +4 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/frame/EventHandlerRegistry.cpp View 1 2 3 4 5 6 7 4 chunks +10 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/inspector/InspectorLayerTreeAgent.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/loader/EmptyClients.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +4 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/loader/FrameLoader.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +12 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/core/loader/FrameLoaderClient.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/page/ChromeClient.h View 1 2 3 4 5 6 7 8 1 chunk +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/web/ChromeClientImpl.h View 1 2 3 4 5 6 7 8 3 chunks +16 lines, -1 line 0 comments Download
M third_party/WebKit/Source/web/ChromeClientImpl.cpp View 1 2 3 4 5 6 7 8 2 chunks +38 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/web/FrameLoaderClientImpl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/web/WebPagePopupImpl.cpp View 1 2 3 4 5 6 7 3 chunks +6 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/web/WebViewImpl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +1 line, -1 line 0 comments Download
M third_party/WebKit/public/web/WebFrameClient.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +3 lines, -0 lines 0 comments Download
M third_party/WebKit/public/web/WebView.h View 1 2 3 4 5 6 7 8 1 chunk +3 lines, -0 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 28 (24 generated)
wjmaclean
This CL is still very experimental, and certainly needs more testing on my part, but ...
4 years, 2 months ago (2016-10-14 19:06:15 UTC) #4
Charlie Reis
[+lfg, kenrb, site-isolation-reviews] Thanks for looking for a way forward! On 2016/10/14 19:06:15, wjmaclean wrote: ...
4 years, 2 months ago (2016-10-14 19:17:46 UTC) #10
Ian Vollick
https://codereview.chromium.org/2417783005/diff/1/cc/layers/picture_layer_impl.cc File cc/layers/picture_layer_impl.cc (right): https://codereview.chromium.org/2417783005/diff/1/cc/layers/picture_layer_impl.cc#newcode1253 cc/layers/picture_layer_impl.cc:1253: (!layer_tree_impl()->PageScaleLayer() || IsAffectedByPageScale()) So we take the current page ...
4 years, 2 months ago (2016-10-14 19:40:31 UTC) #11
wjmaclean
4 years, 2 months ago (2016-10-14 19:46:59 UTC) #12
On 2016/10/14 19:40:31, Ian Vollick wrote:
>
https://codereview.chromium.org/2417783005/diff/1/cc/layers/picture_layer_imp...
> File cc/layers/picture_layer_impl.cc (right):
> 
>
https://codereview.chromium.org/2417783005/diff/1/cc/layers/picture_layer_imp...
> cc/layers/picture_layer_impl.cc:1253: (!layer_tree_impl()->PageScaleLayer() ||
> IsAffectedByPageScale())
> So we take the current page scale factor if we don't have a page scale layer
at
> all (which is true for subframes today), or we know we're affected by it? (And
> the rest of your CL ensures that the page scale is plumbed so that
> current_page_scale_factor will have what you need?)
> 
> This does seem plausible, but please get the opinion of people that know more
> about raster scale.

Gah, just found a problem with this :-( ... but I think the basic idea is valid,
so I'll try and see if I can fix it ...

Powered by Google App Engine
This is Rietveld 408576698