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

Unified Diff: content/browser/renderer_host/delegated_frame_host.cc

Issue 2417463003: Account for failure of coordinate space transformations in browser (Closed)
Patch Set: Review comments addressed Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/delegated_frame_host.cc
diff --git a/content/browser/renderer_host/delegated_frame_host.cc b/content/browser/renderer_host/delegated_frame_host.cc
index a5f9b79a96f409a5e730246ad0aa397d7b712ddb..413b7da9e5c53b5ff22305f17e2928acf74e399a 100644
--- a/content/browser/renderer_host/delegated_frame_host.cc
+++ b/content/browser/renderer_host/delegated_frame_host.cc
@@ -228,28 +228,31 @@ cc::SurfaceId DelegatedFrameHost::SurfaceIdAtPoint(
return target_local_frame_id;
}
-gfx::Point DelegatedFrameHost::TransformPointToLocalCoordSpace(
+bool DelegatedFrameHost::TransformPointToLocalCoordSpace(
const gfx::Point& point,
- const cc::SurfaceId& original_surface) {
+ const cc::SurfaceId& original_surface,
+ gfx::Point* transformed_point) {
cc::SurfaceId surface_id(frame_sink_id_, local_frame_id_);
- if (surface_id.is_null() || original_surface == surface_id)
- return point;
+ if (surface_id.is_null())
+ return false;
+ *transformed_point = point;
+ if (original_surface == surface_id)
+ return true;
- gfx::Point transformed_point = point;
cc::SurfaceHittest hittest(nullptr, GetSurfaceManager());
- hittest.TransformPointToTargetSurface(original_surface, surface_id,
- &transformed_point);
- return transformed_point;
+ return hittest.TransformPointToTargetSurface(original_surface, surface_id,
+ transformed_point);
}
-gfx::Point DelegatedFrameHost::TransformPointToCoordSpaceForView(
+bool DelegatedFrameHost::TransformPointToCoordSpaceForView(
const gfx::Point& point,
- RenderWidgetHostViewBase* target_view) {
+ RenderWidgetHostViewBase* target_view,
+ gfx::Point* transformed_point) {
if (local_frame_id_.is_null())
- return point;
+ return false;
return target_view->TransformPointToLocalCoordSpace(
- point, cc::SurfaceId(frame_sink_id_, local_frame_id_));
+ point, cc::SurfaceId(frame_sink_id_, local_frame_id_), transformed_point);
}
bool DelegatedFrameHost::ShouldSkipFrame(gfx::Size size_in_dip) const {

Powered by Google App Engine
This is Rietveld 408576698