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/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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |