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; | |
Charlie Reis
2013/03/26 17:02:32
I don't understand this line. We currently set it
Fady Samuel
2013/03/26 17:15:40
Possibly but I'm not sure what's a good name for i
Charlie Reis
2013/03/26 17:49:30
If that's the use case, then you could flip it aro
| |
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 = | |
464 (params.persist_storage ? browser_plugin::kPersistPrefix : "") + | |
465 params.storage_partition_id; | |
466 UpdateDOMAttribute(browser_plugin::kAttributePartition, partition_name); | |
467 } | |
468 } | |
469 | |
454 void BrowserPlugin::OnBuffersSwapped(int instance_id, | 470 void BrowserPlugin::OnBuffersSwapped(int instance_id, |
455 const gfx::Size& size, | 471 const gfx::Size& size, |
456 std::string mailbox_name, | 472 std::string mailbox_name, |
457 int gpu_route_id, | 473 int gpu_route_id, |
458 int gpu_host_id) { | 474 int gpu_host_id) { |
459 DCHECK(instance_id == instance_id_); | 475 DCHECK(instance_id == instance_id_); |
460 EnableCompositing(true); | 476 EnableCompositing(true); |
461 | 477 |
462 compositing_helper_->OnBuffersSwapped(size, | 478 compositing_helper_->OnBuffersSwapped(size, |
463 mailbox_name, | 479 mailbox_name, |
(...skipping 754 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1218 if (container_) | 1234 if (container_) |
1219 return container_->windowToLocalPoint(WebKit::WebPoint(point)); | 1235 return container_->windowToLocalPoint(WebKit::WebPoint(point)); |
1220 return gfx::Point(point.x() - plugin_rect_.x(), point.y() - plugin_rect_.y()); | 1236 return gfx::Point(point.x() - plugin_rect_.x(), point.y() - plugin_rect_.y()); |
1221 } | 1237 } |
1222 | 1238 |
1223 // static | 1239 // static |
1224 bool BrowserPlugin::ShouldForwardToBrowserPlugin( | 1240 bool BrowserPlugin::ShouldForwardToBrowserPlugin( |
1225 const IPC::Message& message) { | 1241 const IPC::Message& message) { |
1226 switch (message.type()) { | 1242 switch (message.type()) { |
1227 case BrowserPluginMsg_AdvanceFocus::ID: | 1243 case BrowserPluginMsg_AdvanceFocus::ID: |
1244 case BrowserPluginMsg_Attach_ACK::ID: | |
1228 case BrowserPluginMsg_BuffersSwapped::ID: | 1245 case BrowserPluginMsg_BuffersSwapped::ID: |
1229 case BrowserPluginMsg_GuestContentWindowReady::ID: | 1246 case BrowserPluginMsg_GuestContentWindowReady::ID: |
1230 case BrowserPluginMsg_GuestGone::ID: | 1247 case BrowserPluginMsg_GuestGone::ID: |
1231 case BrowserPluginMsg_GuestResponsive::ID: | 1248 case BrowserPluginMsg_GuestResponsive::ID: |
1232 case BrowserPluginMsg_GuestUnresponsive::ID: | 1249 case BrowserPluginMsg_GuestUnresponsive::ID: |
1233 case BrowserPluginMsg_LoadAbort::ID: | 1250 case BrowserPluginMsg_LoadAbort::ID: |
1234 case BrowserPluginMsg_LoadCommit::ID: | 1251 case BrowserPluginMsg_LoadCommit::ID: |
1235 case BrowserPluginMsg_LoadRedirect::ID: | 1252 case BrowserPluginMsg_LoadRedirect::ID: |
1236 case BrowserPluginMsg_LoadStart::ID: | 1253 case BrowserPluginMsg_LoadStart::ID: |
1237 case BrowserPluginMsg_LoadStop::ID: | 1254 case BrowserPluginMsg_LoadStop::ID: |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1498 const WebKit::WebMouseEvent& event) { | 1515 const WebKit::WebMouseEvent& event) { |
1499 browser_plugin_manager()->Send( | 1516 browser_plugin_manager()->Send( |
1500 new BrowserPluginHostMsg_HandleInputEvent(render_view_routing_id_, | 1517 new BrowserPluginHostMsg_HandleInputEvent(render_view_routing_id_, |
1501 instance_id_, | 1518 instance_id_, |
1502 plugin_rect_, | 1519 plugin_rect_, |
1503 &event)); | 1520 &event)); |
1504 return true; | 1521 return true; |
1505 } | 1522 } |
1506 | 1523 |
1507 } // namespace content | 1524 } // namespace content |
OLD | NEW |