OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/browser_plugin/browser_plugin_guest.h" | 5 #include "content/browser/browser_plugin/browser_plugin_guest.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
285 | 285 |
286 BrowserPluginGuestManager* | 286 BrowserPluginGuestManager* |
287 BrowserPluginGuest::GetBrowserPluginGuestManager() const { | 287 BrowserPluginGuest::GetBrowserPluginGuestManager() const { |
288 return GetWebContents()->GetBrowserContext()->GetGuestManager(); | 288 return GetWebContents()->GetBrowserContext()->GetGuestManager(); |
289 } | 289 } |
290 | 290 |
291 // screen. | 291 // screen. |
292 gfx::Rect BrowserPluginGuest::ToGuestRect(const gfx::Rect& bounds) { | 292 gfx::Rect BrowserPluginGuest::ToGuestRect(const gfx::Rect& bounds) { |
293 gfx::Rect guest_rect(bounds); | 293 gfx::Rect guest_rect(bounds); |
294 guest_rect.Offset(guest_window_rect_.OffsetFromOrigin()); | 294 guest_rect.Offset(guest_window_rect_.OffsetFromOrigin()); |
| 295 if (embedder_web_contents()->GetBrowserPluginGuest()) { |
| 296 BrowserPluginGuest* embedder_guest = |
| 297 embedder_web_contents()->GetBrowserPluginGuest(); |
| 298 guest_rect.Offset(embedder_guest->guest_window_rect_.OffsetFromOrigin()); |
| 299 } |
295 return guest_rect; | 300 return guest_rect; |
296 } | 301 } |
297 | 302 |
298 void BrowserPluginGuest::EmbedderVisibilityChanged(bool visible) { | 303 void BrowserPluginGuest::EmbedderVisibilityChanged(bool visible) { |
299 embedder_visible_ = visible; | 304 embedder_visible_ = visible; |
300 UpdateVisibility(); | 305 UpdateVisibility(); |
301 } | 306 } |
302 | 307 |
303 void BrowserPluginGuest::PointerLockPermissionResponse(bool allow) { | 308 void BrowserPluginGuest::PointerLockPermissionResponse(bool allow) { |
304 SendMessageToEmbedder( | 309 SendMessageToEmbedder( |
305 new BrowserPluginMsg_SetMouseLock(instance_id(), allow)); | 310 new BrowserPluginMsg_SetMouseLock(instance_id(), allow)); |
306 } | 311 } |
307 | 312 |
308 WebContentsImpl* BrowserPluginGuest::GetWebContents() const { | 313 WebContentsImpl* BrowserPluginGuest::GetWebContents() const { |
309 return static_cast<WebContentsImpl*>(web_contents()); | 314 return static_cast<WebContentsImpl*>(web_contents()); |
310 } | 315 } |
311 | 316 |
312 gfx::Point BrowserPluginGuest::GetScreenCoordinates( | 317 gfx::Point BrowserPluginGuest::GetScreenCoordinates( |
313 const gfx::Point& relative_position) const { | 318 const gfx::Point& relative_position) const { |
| 319 if (!attached()) |
| 320 return relative_position; |
| 321 |
314 gfx::Point screen_pos(relative_position); | 322 gfx::Point screen_pos(relative_position); |
315 screen_pos += guest_window_rect_.OffsetFromOrigin(); | 323 screen_pos += guest_window_rect_.OffsetFromOrigin(); |
| 324 if (embedder_web_contents()->GetBrowserPluginGuest()) { |
| 325 BrowserPluginGuest* embedder_guest = |
| 326 embedder_web_contents()->GetBrowserPluginGuest(); |
| 327 screen_pos += embedder_guest->guest_window_rect_.OffsetFromOrigin(); |
| 328 } |
316 return screen_pos; | 329 return screen_pos; |
317 } | 330 } |
318 | 331 |
319 bool BrowserPluginGuest::InAutoSizeBounds(const gfx::Size& size) const { | 332 bool BrowserPluginGuest::InAutoSizeBounds(const gfx::Size& size) const { |
320 return size.width() <= max_auto_size_.width() && | 333 return size.width() <= max_auto_size_.width() && |
321 size.height() <= max_auto_size_.height(); | 334 size.height() <= max_auto_size_.height(); |
322 } | 335 } |
323 | 336 |
324 void BrowserPluginGuest::SendMessageToEmbedder(IPC::Message* msg) { | 337 void BrowserPluginGuest::SendMessageToEmbedder(IPC::Message* msg) { |
325 if (!attached()) { | 338 if (!attached()) { |
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
876 void BrowserPluginGuest::OnImeCompositionRangeChanged( | 889 void BrowserPluginGuest::OnImeCompositionRangeChanged( |
877 const gfx::Range& range, | 890 const gfx::Range& range, |
878 const std::vector<gfx::Rect>& character_bounds) { | 891 const std::vector<gfx::Rect>& character_bounds) { |
879 static_cast<RenderWidgetHostViewBase*>( | 892 static_cast<RenderWidgetHostViewBase*>( |
880 web_contents()->GetRenderWidgetHostView())->ImeCompositionRangeChanged( | 893 web_contents()->GetRenderWidgetHostView())->ImeCompositionRangeChanged( |
881 range, character_bounds); | 894 range, character_bounds); |
882 } | 895 } |
883 #endif | 896 #endif |
884 | 897 |
885 } // namespace content | 898 } // namespace content |
OLD | NEW |