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

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

Issue 11088043: browser-plugin: Allow accepting drag-n-drop events. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 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 unified diff | Download patch | Annotate | Revision Log
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_embedder.h" 5 #include "content/browser/browser_plugin/browser_plugin_embedder.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 88
89 const std::string& host = 89 const std::string& host =
90 render_view_host->GetSiteInstance()->GetSiteURL().host(); 90 render_view_host->GetSiteInstance()->GetSiteURL().host();
91 guest_web_contents = WebContentsImpl::CreateGuest( 91 guest_web_contents = WebContentsImpl::CreateGuest(
92 web_contents()->GetBrowserContext(), 92 web_contents()->GetBrowserContext(),
93 host, 93 host,
94 instance_id); 94 instance_id);
95 95
96 guest = guest_web_contents->GetBrowserPluginGuest(); 96 guest = guest_web_contents->GetBrowserPluginGuest();
97 guest->set_embedder_render_process_host(render_view_host->GetProcess()); 97 guest->set_embedder_render_process_host(render_view_host->GetProcess());
98 guest->set_embedder_render_view_host(render_view_host);
98 99
99 RendererPreferences* guest_renderer_prefs = 100 RendererPreferences* guest_renderer_prefs =
100 guest_web_contents->GetMutableRendererPrefs(); 101 guest_web_contents->GetMutableRendererPrefs();
101 // Copy renderer preferences (and nothing else) from the embedder's 102 // Copy renderer preferences (and nothing else) from the embedder's
102 // TabContents to the guest. 103 // TabContents to the guest.
103 // 104 //
104 // For GTK and Aura this is necessary to get proper renderer configuration 105 // For GTK and Aura this is necessary to get proper renderer configuration
105 // values for caret blinking interval, colors related to selection and 106 // values for caret blinking interval, colors related to selection and
106 // focus. 107 // focus.
107 *guest_renderer_prefs = *web_contents()->GetMutableRendererPrefs(); 108 *guest_renderer_prefs = *web_contents()->GetMutableRendererPrefs();
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 DestroyGuestByInstanceID(instance_id); 266 DestroyGuestByInstanceID(instance_id);
266 } 267 }
267 268
268 void BrowserPluginEmbedder::SetGuestVisibility(int instance_id, 269 void BrowserPluginEmbedder::SetGuestVisibility(int instance_id,
269 bool guest_visible) { 270 bool guest_visible) {
270 BrowserPluginGuest* guest = GetGuestByInstanceID(instance_id); 271 BrowserPluginGuest* guest = GetGuestByInstanceID(instance_id);
271 if (guest) 272 if (guest)
272 guest->SetVisibility(visible_, guest_visible); 273 guest->SetVisibility(visible_, guest_visible);
273 } 274 }
274 275
276 void BrowserPluginEmbedder::DragStatusUpdate(
277 int instance_id,
278 WebKit::WebDragStatus drag_status,
279 const WebDropData& drop_data,
280 WebKit::WebDragOperationsMask drag_mask,
281 const gfx::Point& location) {
282 BrowserPluginGuest* guest = GetGuestByInstanceID(instance_id);
283 if (guest)
284 guest->DragStatusUpdate(drag_status, drop_data, drag_mask, location);
285 }
286
275 void BrowserPluginEmbedder::Go(int instance_id, int relative_index) { 287 void BrowserPluginEmbedder::Go(int instance_id, int relative_index) {
276 BrowserPluginGuest* guest = GetGuestByInstanceID(instance_id); 288 BrowserPluginGuest* guest = GetGuestByInstanceID(instance_id);
277 if (guest) 289 if (guest)
278 guest->Go(relative_index); 290 guest->Go(relative_index);
279 } 291 }
280 292
281 void BrowserPluginEmbedder::Stop(int instance_id) { 293 void BrowserPluginEmbedder::Stop(int instance_id) {
282 BrowserPluginGuest* guest = GetGuestByInstanceID(instance_id); 294 BrowserPluginGuest* guest = GetGuestByInstanceID(instance_id);
283 if (guest) 295 if (guest)
284 guest->Stop(); 296 guest->Stop();
(...skipping 19 matching lines...) Expand all
304 bool visible = *Details<bool>(details).ptr(); 316 bool visible = *Details<bool>(details).ptr();
305 WebContentsVisibilityChanged(visible); 317 WebContentsVisibilityChanged(visible);
306 break; 318 break;
307 } 319 }
308 default: 320 default:
309 NOTREACHED() << "Unexpected notification type: " << type; 321 NOTREACHED() << "Unexpected notification type: " << type;
310 } 322 }
311 } 323 }
312 324
313 } // namespace content 325 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698