Move compositor InputHandler from RenderViewImpl to RenderWidget.
At present the input handler for cross-process iframes is installed
only on the RenderViewImpl, meaning that events sent to them can only
be handled on the main thread (instead of the compositor thread).
Note: The compositor layer tree on the RenderViewImpl for a cross-
process frame renderer is actually empty.
This CL attaches an input handler to each RenderWidget instead,
allowing compositor-thread handling of input events for all
the frames. This is a precursor for handling GesturePinch events for
subframes.
[email protected]
BUG=654917
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
Review-Url: https://codereview.chromium.org/2479663002
Cr-Commit-Position: refs/heads/master@{#445295}
diff --git a/content/renderer/gpu/render_widget_compositor.h b/content/renderer/gpu/render_widget_compositor.h
index ae14ea5..a87b545 100644
--- a/content/renderer/gpu/render_widget_compositor.h
+++ b/content/renderer/gpu/render_widget_compositor.h
@@ -113,6 +113,7 @@
void SetFrameSinkId(const cc::FrameSinkId& frame_sink_id);
void SetPaintedDeviceScaleFactor(float device_scale);
void SetDeviceColorSpace(const gfx::ColorSpace& color_space);
+ void SetIsForOopif(bool is_for_oopif);
// WebLayerTreeView implementation.
void setRootLayer(const blink::WebLayer& layer) override;
@@ -157,6 +158,7 @@
void setEventListenerProperties(
blink::WebEventListenerClass eventClass,
blink::WebEventListenerProperties properties) override;
+ void updateTouchRectsForSubframeIfNecessary() override;
blink::WebEventListenerProperties eventListenerProperties(
blink::WebEventListenerClass eventClass) const override;
void setHaveScrollEventHandlers(bool) override;
@@ -227,6 +229,7 @@
std::unique_ptr<cc::AnimationHost> animation_host_;
std::unique_ptr<cc::LayerTreeHost> layer_tree_host_;
bool never_visible_;
+ bool is_for_oopif_;
blink::WebLayoutAndPaintAsyncCallback* layout_and_paint_async_callback_;