OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "base/bind_helpers.h" | 5 #include "base/bind_helpers.h" |
6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
9 #include "content/browser/browser_plugin/browser_plugin_guest.h" | 9 #include "content/browser/browser_plugin/browser_plugin_guest.h" |
10 #include "content/browser/frame_host/render_widget_host_view_guest.h" | 10 #include "content/browser/frame_host/render_widget_host_view_guest.h" |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 #endif | 121 #endif |
122 | 122 |
123 gfx::Rect RenderWidgetHostViewGuest::GetViewBounds() const { | 123 gfx::Rect RenderWidgetHostViewGuest::GetViewBounds() const { |
124 if (!guest_) | 124 if (!guest_) |
125 return gfx::Rect(); | 125 return gfx::Rect(); |
126 | 126 |
127 RenderWidgetHostViewBase* rwhv = GetGuestRenderWidgetHostView(); | 127 RenderWidgetHostViewBase* rwhv = GetGuestRenderWidgetHostView(); |
128 gfx::Rect embedder_bounds; | 128 gfx::Rect embedder_bounds; |
129 if (rwhv) | 129 if (rwhv) |
130 embedder_bounds = rwhv->GetViewBounds(); | 130 embedder_bounds = rwhv->GetViewBounds(); |
131 gfx::Rect shifted_rect = guest_->ToGuestRect(embedder_bounds); | 131 return gfx::Rect( |
132 shifted_rect.set_width(size_.width()); | 132 guest_->GetScreenCoordinates(embedder_bounds.origin()), size_); |
133 shifted_rect.set_height(size_.height()); | |
134 return shifted_rect; | |
135 } | 133 } |
136 | 134 |
137 void RenderWidgetHostViewGuest::RenderProcessGone( | 135 void RenderWidgetHostViewGuest::RenderProcessGone( |
138 base::TerminationStatus status, | 136 base::TerminationStatus status, |
139 int error_code) { | 137 int error_code) { |
140 platform_view_->RenderProcessGone(status, error_code); | 138 platform_view_->RenderProcessGone(status, error_code); |
141 // Destroy the guest view instance only, so we don't end up calling | 139 // Destroy the guest view instance only, so we don't end up calling |
142 // platform_view_->Destroy(). | 140 // platform_view_->Destroy(). |
143 DestroyGuestView(); | 141 DestroyGuestView(); |
144 } | 142 } |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 const gfx::Range& range, | 288 const gfx::Range& range, |
291 const std::vector<gfx::Rect>& character_bounds) { | 289 const std::vector<gfx::Rect>& character_bounds) { |
292 if (!guest_) | 290 if (!guest_) |
293 return; | 291 return; |
294 | 292 |
295 RenderWidgetHostViewBase* rwhv = GetGuestRenderWidgetHostView(); | 293 RenderWidgetHostViewBase* rwhv = GetGuestRenderWidgetHostView(); |
296 if (!rwhv) | 294 if (!rwhv) |
297 return; | 295 return; |
298 std::vector<gfx::Rect> guest_character_bounds; | 296 std::vector<gfx::Rect> guest_character_bounds; |
299 for (size_t i = 0; i < character_bounds.size(); ++i) { | 297 for (size_t i = 0; i < character_bounds.size(); ++i) { |
300 gfx::Rect guest_rect = guest_->ToGuestRect(character_bounds[i]); | 298 guest_character_bounds.push_back(gfx::Rect( |
301 guest_character_bounds.push_back(guest_rect); | 299 guest_->GetScreenCoordinates(character_bounds[i].origin()), |
| 300 character_bounds[i].size())); |
302 } | 301 } |
303 // Forward the information to embedding RWHV. | 302 // Forward the information to embedding RWHV. |
304 rwhv->ImeCompositionRangeChanged(range, guest_character_bounds); | 303 rwhv->ImeCompositionRangeChanged(range, guest_character_bounds); |
305 } | 304 } |
306 #endif | 305 #endif |
307 | 306 |
308 void RenderWidgetHostViewGuest::SelectionChanged(const base::string16& text, | 307 void RenderWidgetHostViewGuest::SelectionChanged(const base::string16& text, |
309 size_t offset, | 308 size_t offset, |
310 const gfx::Range& range) { | 309 const gfx::Range& range) { |
311 platform_view_->SelectionChanged(text, offset, range); | 310 platform_view_->SelectionChanged(text, offset, range); |
312 } | 311 } |
313 | 312 |
314 void RenderWidgetHostViewGuest::SelectionBoundsChanged( | 313 void RenderWidgetHostViewGuest::SelectionBoundsChanged( |
315 const ViewHostMsg_SelectionBounds_Params& params) { | 314 const ViewHostMsg_SelectionBounds_Params& params) { |
316 if (!guest_) | 315 if (!guest_) |
317 return; | 316 return; |
318 | 317 |
319 RenderWidgetHostViewBase* rwhv = GetGuestRenderWidgetHostView(); | 318 RenderWidgetHostViewBase* rwhv = GetGuestRenderWidgetHostView(); |
320 if (!rwhv) | 319 if (!rwhv) |
321 return; | 320 return; |
322 ViewHostMsg_SelectionBounds_Params guest_params(params); | 321 ViewHostMsg_SelectionBounds_Params guest_params(params); |
323 guest_params.anchor_rect = guest_->ToGuestRect(params.anchor_rect); | 322 guest_params.anchor_rect.set_origin( |
324 guest_params.focus_rect = guest_->ToGuestRect(params.focus_rect); | 323 guest_->GetScreenCoordinates(params.anchor_rect.origin())); |
| 324 guest_params.focus_rect.set_origin( |
| 325 guest_->GetScreenCoordinates(params.focus_rect.origin())); |
325 rwhv->SelectionBoundsChanged(guest_params); | 326 rwhv->SelectionBoundsChanged(guest_params); |
326 } | 327 } |
327 | 328 |
328 void RenderWidgetHostViewGuest::CopyFromCompositingSurface( | 329 void RenderWidgetHostViewGuest::CopyFromCompositingSurface( |
329 const gfx::Rect& src_subrect, | 330 const gfx::Rect& src_subrect, |
330 const gfx::Size& dst_size, | 331 const gfx::Size& dst_size, |
331 const base::Callback<void(bool, const SkBitmap&)>& callback, | 332 const base::Callback<void(bool, const SkBitmap&)>& callback, |
332 const SkColorType color_type) { | 333 const SkColorType color_type) { |
333 CHECK(guest_); | 334 CHECK(guest_); |
334 guest_->CopyFromCompositingSurface(src_subrect, dst_size, callback); | 335 guest_->CopyFromCompositingSurface(src_subrect, dst_size, callback); |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
523 return kN32_SkColorType; | 524 return kN32_SkColorType; |
524 } | 525 } |
525 | 526 |
526 RenderWidgetHostViewBase* | 527 RenderWidgetHostViewBase* |
527 RenderWidgetHostViewGuest::GetGuestRenderWidgetHostView() const { | 528 RenderWidgetHostViewGuest::GetGuestRenderWidgetHostView() const { |
528 return static_cast<RenderWidgetHostViewBase*>( | 529 return static_cast<RenderWidgetHostViewBase*>( |
529 guest_->GetEmbedderRenderWidgetHostView()); | 530 guest_->GetEmbedderRenderWidgetHostView()); |
530 } | 531 } |
531 | 532 |
532 } // namespace content | 533 } // namespace content |
OLD | NEW |