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

Side by Side Diff: content/browser/browser_plugin/browser_plugin_guest.cc

Issue 1203223002: [Experimental, WIP] Demo version of extracting WebView selection data from CompositorFrame. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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 unified diff | Download patch
OLDNEW
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/pickle.h" 10 #include "base/pickle.h"
(...skipping 20 matching lines...) Expand all
31 #include "content/common/input_messages.h" 31 #include "content/common/input_messages.h"
32 #include "content/common/view_messages.h" 32 #include "content/common/view_messages.h"
33 #include "content/public/browser/browser_context.h" 33 #include "content/public/browser/browser_context.h"
34 #include "content/public/browser/browser_plugin_guest_manager.h" 34 #include "content/public/browser/browser_plugin_guest_manager.h"
35 #include "content/public/browser/content_browser_client.h" 35 #include "content/public/browser/content_browser_client.h"
36 #include "content/public/browser/guest_host.h" 36 #include "content/public/browser/guest_host.h"
37 #include "content/public/browser/render_widget_host_view.h" 37 #include "content/public/browser/render_widget_host_view.h"
38 #include "content/public/browser/user_metrics.h" 38 #include "content/public/browser/user_metrics.h"
39 #include "content/public/browser/web_contents_observer.h" 39 #include "content/public/browser/web_contents_observer.h"
40 #include "content/public/common/drop_data.h" 40 #include "content/public/common/drop_data.h"
41 #include "ui/gfx/geometry/point_conversions.h"
41 #include "ui/gfx/geometry/size_conversions.h" 42 #include "ui/gfx/geometry/size_conversions.h"
42 43
43 #if defined(OS_MACOSX) 44 #if defined(OS_MACOSX)
44 #include "content/browser/browser_plugin/browser_plugin_popup_menu_helper_mac.h" 45 #include "content/browser/browser_plugin/browser_plugin_popup_menu_helper_mac.h"
45 #include "content/common/frame_messages.h" 46 #include "content/common/frame_messages.h"
46 #endif 47 #endif
47 48
48 namespace content { 49 namespace content {
49 50
50 class BrowserPluginGuest::EmbedderVisibilityObserver 51 class BrowserPluginGuest::EmbedderVisibilityObserver
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 bool BrowserPluginGuest::StopFinding(StopFindAction action) { 447 bool BrowserPluginGuest::StopFinding(StopFindAction action) {
447 return delegate_->StopFinding(action); 448 return delegate_->StopFinding(action);
448 } 449 }
449 450
450 WebContentsImpl* BrowserPluginGuest::GetWebContents() const { 451 WebContentsImpl* BrowserPluginGuest::GetWebContents() const {
451 return static_cast<WebContentsImpl*>(web_contents()); 452 return static_cast<WebContentsImpl*>(web_contents());
452 } 453 }
453 454
454 gfx::Point BrowserPluginGuest::GetScreenCoordinates( 455 gfx::Point BrowserPluginGuest::GetScreenCoordinates(
455 const gfx::Point& relative_position) const { 456 const gfx::Point& relative_position) const {
457 return gfx::ToRoundedPoint(
458 GetScreenCoordinates(gfx::PointF(relative_position)));
459 }
460
461 gfx::PointF BrowserPluginGuest::GetScreenCoordinates(
462 const gfx::PointF& relative_position) const {
456 if (!attached()) 463 if (!attached())
457 return relative_position; 464 return relative_position;
458 465
459 gfx::Point screen_pos(relative_position); 466 gfx::PointF screen_pos(relative_position);
460 screen_pos += guest_window_rect_.OffsetFromOrigin(); 467 screen_pos += guest_window_rect_.OffsetFromOrigin();
461 if (embedder_web_contents()->GetBrowserPluginGuest()) { 468 if (embedder_web_contents()->GetBrowserPluginGuest()) {
462 BrowserPluginGuest* embedder_guest = 469 BrowserPluginGuest* embedder_guest =
463 embedder_web_contents()->GetBrowserPluginGuest(); 470 embedder_web_contents()->GetBrowserPluginGuest();
464 screen_pos += embedder_guest->guest_window_rect_.OffsetFromOrigin(); 471 screen_pos += embedder_guest->guest_window_rect_.OffsetFromOrigin();
465 } 472 }
466 return screen_pos; 473 return screen_pos;
467 } 474 }
468
469 void BrowserPluginGuest::SendMessageToEmbedder(IPC::Message* msg) { 475 void BrowserPluginGuest::SendMessageToEmbedder(IPC::Message* msg) {
470 if (!attached()) { 476 if (!attached()) {
471 // Some pages such as data URLs, javascript URLs, and about:blank 477 // Some pages such as data URLs, javascript URLs, and about:blank
472 // do not load external resources and so they load prior to attachment. 478 // do not load external resources and so they load prior to attachment.
473 // As a result, we must save all these IPCs until attachment and then 479 // As a result, we must save all these IPCs until attachment and then
474 // forward them so that the embedder gets a chance to see and process 480 // forward them so that the embedder gets a chance to see and process
475 // the load events. 481 // the load events.
476 pending_messages_.push_back(linked_ptr<IPC::Message>(msg)); 482 pending_messages_.push_back(linked_ptr<IPC::Message>(msg));
477 return; 483 return;
478 } 484 }
(...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after
969 void BrowserPluginGuest::OnImeCompositionRangeChanged( 975 void BrowserPluginGuest::OnImeCompositionRangeChanged(
970 const gfx::Range& range, 976 const gfx::Range& range,
971 const std::vector<gfx::Rect>& character_bounds) { 977 const std::vector<gfx::Rect>& character_bounds) {
972 static_cast<RenderWidgetHostViewBase*>( 978 static_cast<RenderWidgetHostViewBase*>(
973 web_contents()->GetRenderWidgetHostView())->ImeCompositionRangeChanged( 979 web_contents()->GetRenderWidgetHostView())->ImeCompositionRangeChanged(
974 range, character_bounds); 980 range, character_bounds);
975 } 981 }
976 #endif 982 #endif
977 983
978 } // namespace content 984 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/browser_plugin/browser_plugin_guest.h ('k') | content/browser/frame_host/render_widget_host_view_guest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698