Index: content/browser/browser_plugin/browser_plugin_guest.cc |
diff --git a/content/browser/browser_plugin/browser_plugin_guest.cc b/content/browser/browser_plugin/browser_plugin_guest.cc |
index 5b88849176f9298bb728523fd702af2b09d731cb..ef729e4b0596498a9955642a94894392af461e54 100644 |
--- a/content/browser/browser_plugin/browser_plugin_guest.cc |
+++ b/content/browser/browser_plugin/browser_plugin_guest.cc |
@@ -292,6 +292,11 @@ BrowserPluginGuest::GetBrowserPluginGuestManager() const { |
gfx::Rect BrowserPluginGuest::ToGuestRect(const gfx::Rect& bounds) { |
gfx::Rect guest_rect(bounds); |
guest_rect.Offset(guest_window_rect_.OffsetFromOrigin()); |
+ if (embedder_web_contents()->GetBrowserPluginGuest()) { |
+ BrowserPluginGuest* embedder_guest = |
+ embedder_web_contents()->GetBrowserPluginGuest(); |
+ guest_rect.Offset(embedder_guest->guest_window_rect_.OffsetFromOrigin()); |
+ } |
return guest_rect; |
} |
@@ -311,8 +316,16 @@ WebContentsImpl* BrowserPluginGuest::GetWebContents() const { |
gfx::Point BrowserPluginGuest::GetScreenCoordinates( |
const gfx::Point& relative_position) const { |
+ if (!attached()) |
+ return relative_position; |
+ |
gfx::Point screen_pos(relative_position); |
screen_pos += guest_window_rect_.OffsetFromOrigin(); |
+ if (embedder_web_contents()->GetBrowserPluginGuest()) { |
+ BrowserPluginGuest* embedder_guest = |
+ embedder_web_contents()->GetBrowserPluginGuest(); |
+ screen_pos += embedder_guest->guest_window_rect_.OffsetFromOrigin(); |
+ } |
return screen_pos; |
} |