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

Side by Side Diff: content/renderer/browser_plugin/browser_plugin.cc

Issue 13032003: Browser Plugin: <webview> should inherit partition attribute of opener on attachment. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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/renderer/browser_plugin/browser_plugin.h" 5 #include "content/renderer/browser_plugin/browser_plugin.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/json/json_string_value_serializer.h" 8 #include "base/json/json_string_value_serializer.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/string_number_conversions.h" 10 #include "base/string_number_conversions.h"
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 WebKit::WebPluginContainer* container) { 165 WebKit::WebPluginContainer* container) {
166 PluginContainerMap* browser_plugins = g_plugin_container_map.Pointer(); 166 PluginContainerMap* browser_plugins = g_plugin_container_map.Pointer();
167 PluginContainerMap::iterator it = browser_plugins->find(container); 167 PluginContainerMap::iterator it = browser_plugins->find(container);
168 return it == browser_plugins->end() ? NULL : it->second; 168 return it == browser_plugins->end() ? NULL : it->second;
169 } 169 }
170 170
171 bool BrowserPlugin::OnMessageReceived(const IPC::Message& message) { 171 bool BrowserPlugin::OnMessageReceived(const IPC::Message& message) {
172 bool handled = true; 172 bool handled = true;
173 IPC_BEGIN_MESSAGE_MAP(BrowserPlugin, message) 173 IPC_BEGIN_MESSAGE_MAP(BrowserPlugin, message)
174 IPC_MESSAGE_HANDLER(BrowserPluginMsg_AdvanceFocus, OnAdvanceFocus) 174 IPC_MESSAGE_HANDLER(BrowserPluginMsg_AdvanceFocus, OnAdvanceFocus)
175 IPC_MESSAGE_HANDLER(BrowserPluginMsg_Attach_ACK, OnAttachACK)
175 IPC_MESSAGE_HANDLER(BrowserPluginMsg_BuffersSwapped, OnBuffersSwapped) 176 IPC_MESSAGE_HANDLER(BrowserPluginMsg_BuffersSwapped, OnBuffersSwapped)
176 IPC_MESSAGE_HANDLER(BrowserPluginMsg_GuestContentWindowReady, 177 IPC_MESSAGE_HANDLER(BrowserPluginMsg_GuestContentWindowReady,
177 OnGuestContentWindowReady) 178 OnGuestContentWindowReady)
178 IPC_MESSAGE_HANDLER(BrowserPluginMsg_GuestGone, OnGuestGone) 179 IPC_MESSAGE_HANDLER(BrowserPluginMsg_GuestGone, OnGuestGone)
179 IPC_MESSAGE_HANDLER(BrowserPluginMsg_GuestResponsive, OnGuestResponsive) 180 IPC_MESSAGE_HANDLER(BrowserPluginMsg_GuestResponsive, OnGuestResponsive)
180 IPC_MESSAGE_HANDLER(BrowserPluginMsg_GuestUnresponsive, OnGuestUnresponsive) 181 IPC_MESSAGE_HANDLER(BrowserPluginMsg_GuestUnresponsive, OnGuestUnresponsive)
181 IPC_MESSAGE_HANDLER(BrowserPluginMsg_LoadAbort, OnLoadAbort) 182 IPC_MESSAGE_HANDLER(BrowserPluginMsg_LoadAbort, OnLoadAbort)
182 IPC_MESSAGE_HANDLER(BrowserPluginMsg_LoadCommit, OnLoadCommit) 183 IPC_MESSAGE_HANDLER(BrowserPluginMsg_LoadCommit, OnLoadCommit)
183 IPC_MESSAGE_HANDLER(BrowserPluginMsg_LoadRedirect, OnLoadRedirect) 184 IPC_MESSAGE_HANDLER(BrowserPluginMsg_LoadRedirect, OnLoadRedirect)
184 IPC_MESSAGE_HANDLER(BrowserPluginMsg_LoadStart, OnLoadStart) 185 IPC_MESSAGE_HANDLER(BrowserPluginMsg_LoadStart, OnLoadStart)
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 414
414 bool BrowserPlugin::UsesPendingDamageBuffer( 415 bool BrowserPlugin::UsesPendingDamageBuffer(
415 const BrowserPluginMsg_UpdateRect_Params& params) { 416 const BrowserPluginMsg_UpdateRect_Params& params) {
416 if (!pending_damage_buffer_.get()) 417 if (!pending_damage_buffer_.get())
417 return false; 418 return false;
418 return damage_buffer_sequence_id_ == params.damage_buffer_sequence_id; 419 return damage_buffer_sequence_id_ == params.damage_buffer_sequence_id;
419 } 420 }
420 421
421 void BrowserPlugin::SetInstanceID(int instance_id, bool new_guest) { 422 void BrowserPlugin::SetInstanceID(int instance_id, bool new_guest) {
422 CHECK(instance_id != browser_plugin::kInstanceIDNone); 423 CHECK(instance_id != browser_plugin::kInstanceIDNone);
424 allocate_instance_id_sent_ = true;
423 instance_id_ = instance_id; 425 instance_id_ = instance_id;
424 browser_plugin_manager()->AddBrowserPlugin(instance_id, this); 426 browser_plugin_manager()->AddBrowserPlugin(instance_id, this);
425 427
426 BrowserPluginHostMsg_CreateGuest_Params create_guest_params; 428 BrowserPluginHostMsg_CreateGuest_Params create_guest_params;
427 create_guest_params.focused = ShouldGuestBeFocused(); 429 create_guest_params.focused = ShouldGuestBeFocused();
428 create_guest_params.visible = visible_; 430 create_guest_params.visible = visible_;
429 create_guest_params.name = GetNameAttribute(); 431 create_guest_params.name = GetNameAttribute();
430 GetDamageBufferWithSizeParams(&create_guest_params.auto_size_params, 432 GetDamageBufferWithSizeParams(&create_guest_params.auto_size_params,
431 &create_guest_params.resize_guest_params); 433 &create_guest_params.resize_guest_params);
432 434
(...skipping 11 matching lines...) Expand all
444 new BrowserPluginHostMsg_CreateGuest(render_view_routing_id_, 446 new BrowserPluginHostMsg_CreateGuest(render_view_routing_id_,
445 instance_id_, 447 instance_id_,
446 create_guest_params)); 448 create_guest_params));
447 } 449 }
448 450
449 void BrowserPlugin::OnAdvanceFocus(int instance_id, bool reverse) { 451 void BrowserPlugin::OnAdvanceFocus(int instance_id, bool reverse) {
450 DCHECK(render_view_); 452 DCHECK(render_view_);
451 render_view_->GetWebView()->advanceFocus(reverse); 453 render_view_->GetWebView()->advanceFocus(reverse);
452 } 454 }
453 455
456 void BrowserPlugin::OnAttachACK(
457 int instance_id,
458 const BrowserPluginMsg_Attach_ACK_Params& params) {
459 // Update BrowserPlugin attributes to match the state of the guest.
460 if (!params.name.empty())
461 OnUpdatedName(instance_id, params.name);
462 if (!params.storage_partition_id.empty()) {
463 std::string partition_name = (params.persist_storage ? "persist:" : "") +
lazyboy 2013/03/25 18:12:55 s/"persist"/browser_plugin::kPersistPrefix
Fady Samuel 2013/03/25 19:28:20 Done.
464 params.storage_partition_id;
465 UpdateDOMAttribute(browser_plugin::kAttributePartition, partition_name);
466 }
467 }
468
454 void BrowserPlugin::OnBuffersSwapped(int instance_id, 469 void BrowserPlugin::OnBuffersSwapped(int instance_id,
455 const gfx::Size& size, 470 const gfx::Size& size,
456 std::string mailbox_name, 471 std::string mailbox_name,
457 int gpu_route_id, 472 int gpu_route_id,
458 int gpu_host_id) { 473 int gpu_host_id) {
459 DCHECK(instance_id == instance_id_); 474 DCHECK(instance_id == instance_id_);
460 EnableCompositing(true); 475 EnableCompositing(true);
461 476
462 compositing_helper_->OnBuffersSwapped(size, 477 compositing_helper_->OnBuffersSwapped(size,
463 mailbox_name, 478 mailbox_name,
(...skipping 754 matching lines...) Expand 10 before | Expand all | Expand 10 after
1218 if (container_) 1233 if (container_)
1219 return container_->windowToLocalPoint(WebKit::WebPoint(point)); 1234 return container_->windowToLocalPoint(WebKit::WebPoint(point));
1220 return gfx::Point(point.x() - plugin_rect_.x(), point.y() - plugin_rect_.y()); 1235 return gfx::Point(point.x() - plugin_rect_.x(), point.y() - plugin_rect_.y());
1221 } 1236 }
1222 1237
1223 // static 1238 // static
1224 bool BrowserPlugin::ShouldForwardToBrowserPlugin( 1239 bool BrowserPlugin::ShouldForwardToBrowserPlugin(
1225 const IPC::Message& message) { 1240 const IPC::Message& message) {
1226 switch (message.type()) { 1241 switch (message.type()) {
1227 case BrowserPluginMsg_AdvanceFocus::ID: 1242 case BrowserPluginMsg_AdvanceFocus::ID:
1243 case BrowserPluginMsg_Attach_ACK::ID:
1228 case BrowserPluginMsg_BuffersSwapped::ID: 1244 case BrowserPluginMsg_BuffersSwapped::ID:
1229 case BrowserPluginMsg_GuestContentWindowReady::ID: 1245 case BrowserPluginMsg_GuestContentWindowReady::ID:
1230 case BrowserPluginMsg_GuestGone::ID: 1246 case BrowserPluginMsg_GuestGone::ID:
1231 case BrowserPluginMsg_GuestResponsive::ID: 1247 case BrowserPluginMsg_GuestResponsive::ID:
1232 case BrowserPluginMsg_GuestUnresponsive::ID: 1248 case BrowserPluginMsg_GuestUnresponsive::ID:
1233 case BrowserPluginMsg_LoadAbort::ID: 1249 case BrowserPluginMsg_LoadAbort::ID:
1234 case BrowserPluginMsg_LoadCommit::ID: 1250 case BrowserPluginMsg_LoadCommit::ID:
1235 case BrowserPluginMsg_LoadRedirect::ID: 1251 case BrowserPluginMsg_LoadRedirect::ID:
1236 case BrowserPluginMsg_LoadStart::ID: 1252 case BrowserPluginMsg_LoadStart::ID:
1237 case BrowserPluginMsg_LoadStop::ID: 1253 case BrowserPluginMsg_LoadStop::ID:
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
1498 const WebKit::WebMouseEvent& event) { 1514 const WebKit::WebMouseEvent& event) {
1499 browser_plugin_manager()->Send( 1515 browser_plugin_manager()->Send(
1500 new BrowserPluginHostMsg_HandleInputEvent(render_view_routing_id_, 1516 new BrowserPluginHostMsg_HandleInputEvent(render_view_routing_id_,
1501 instance_id_, 1517 instance_id_,
1502 plugin_rect_, 1518 plugin_rect_,
1503 &event)); 1519 &event));
1504 return true; 1520 return true;
1505 } 1521 }
1506 1522
1507 } // namespace content 1523 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698