| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "extensions/renderer/guest_view/extensions_guest_view_container.h" | 5 #include "extensions/renderer/guest_view/extensions_guest_view_container.h" |
| 6 | 6 |
| 7 #include "content/public/renderer/render_frame.h" | 7 #include "content/public/renderer/render_frame.h" |
| 8 #include "content/public/renderer/render_view.h" | 8 #include "content/public/renderer/render_view.h" |
| 9 #include "extensions/common/extension_messages.h" | |
| 10 #include "extensions/common/guest_view/guest_view_constants.h" | 9 #include "extensions/common/guest_view/guest_view_constants.h" |
| 10 #include "extensions/common/guest_view/guest_view_messages.h" |
| 11 #include "third_party/WebKit/public/web/WebLocalFrame.h" | 11 #include "third_party/WebKit/public/web/WebLocalFrame.h" |
| 12 #include "third_party/WebKit/public/web/WebScopedMicrotaskSuppression.h" | 12 #include "third_party/WebKit/public/web/WebScopedMicrotaskSuppression.h" |
| 13 #include "third_party/WebKit/public/web/WebView.h" | 13 #include "third_party/WebKit/public/web/WebView.h" |
| 14 | 14 |
| 15 namespace { | 15 namespace { |
| 16 typedef std::map<int, extensions::ExtensionsGuestViewContainer*> | 16 typedef std::map<int, extensions::ExtensionsGuestViewContainer*> |
| 17 ExtensionsGuestViewContainerMap; | 17 ExtensionsGuestViewContainerMap; |
| 18 static base::LazyInstance<ExtensionsGuestViewContainerMap> | 18 static base::LazyInstance<ExtensionsGuestViewContainerMap> |
| 19 g_guest_view_container_map = LAZY_INSTANCE_INITIALIZER; | 19 g_guest_view_container_map = LAZY_INSTANCE_INITIALIZER; |
| 20 } // namespace | 20 } // namespace |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 | 55 |
| 56 ExtensionsGuestViewContainer::AttachRequest::~AttachRequest() { | 56 ExtensionsGuestViewContainer::AttachRequest::~AttachRequest() { |
| 57 } | 57 } |
| 58 | 58 |
| 59 void ExtensionsGuestViewContainer::AttachRequest::PerformRequest() { | 59 void ExtensionsGuestViewContainer::AttachRequest::PerformRequest() { |
| 60 if (!container()->render_frame()) | 60 if (!container()->render_frame()) |
| 61 return; | 61 return; |
| 62 | 62 |
| 63 // Step 1, send the attach params to extensions/. | 63 // Step 1, send the attach params to extensions/. |
| 64 container()->render_frame()->Send( | 64 container()->render_frame()->Send( |
| 65 new ExtensionHostMsg_AttachGuest(container()->render_view_routing_id(), | 65 new GuestViewHostMsg_AttachGuest(container()->render_view_routing_id(), |
| 66 container()->element_instance_id(), | 66 container()->element_instance_id(), |
| 67 guest_instance_id_, | 67 guest_instance_id_, |
| 68 *params_)); | 68 *params_)); |
| 69 | 69 |
| 70 // Step 2, attach plugin through content/. | 70 // Step 2, attach plugin through content/. |
| 71 container()->render_frame()->AttachGuest(container()->element_instance_id()); | 71 container()->render_frame()->AttachGuest(container()->element_instance_id()); |
| 72 } | 72 } |
| 73 | 73 |
| 74 void ExtensionsGuestViewContainer::AttachRequest::HandleResponse( | 74 void ExtensionsGuestViewContainer::AttachRequest::HandleResponse( |
| 75 const IPC::Message& message) { | 75 const IPC::Message& message) { |
| 76 ExtensionMsg_GuestAttached::Param param; | 76 GuestViewMsg_GuestAttached::Param param; |
| 77 if (!ExtensionMsg_GuestAttached::Read(&message, ¶m)) | 77 if (!GuestViewMsg_GuestAttached::Read(&message, ¶m)) |
| 78 return; | 78 return; |
| 79 | 79 |
| 80 // If we don't have a callback then there's nothing more to do. | 80 // If we don't have a callback then there's nothing more to do. |
| 81 if (!HasCallback()) | 81 if (!HasCallback()) |
| 82 return; | 82 return; |
| 83 | 83 |
| 84 content::RenderView* guest_proxy_render_view = | 84 content::RenderView* guest_proxy_render_view = |
| 85 content::RenderView::FromRoutingID(get<1>(param)); | 85 content::RenderView::FromRoutingID(get<1>(param)); |
| 86 // TODO(fsamuel): Should we be reporting an error to JavaScript or DCHECKing? | 86 // TODO(fsamuel): Should we be reporting an error to JavaScript or DCHECKing? |
| 87 if (!guest_proxy_render_view) | 87 if (!guest_proxy_render_view) |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 249 } | 249 } |
| 250 | 250 |
| 251 void ExtensionsGuestViewContainer::HandlePendingResponseCallback( | 251 void ExtensionsGuestViewContainer::HandlePendingResponseCallback( |
| 252 const IPC::Message& message) { | 252 const IPC::Message& message) { |
| 253 CHECK(pending_response_.get()); | 253 CHECK(pending_response_.get()); |
| 254 linked_ptr<Request> pending_response(pending_response_.release()); | 254 linked_ptr<Request> pending_response(pending_response_.release()); |
| 255 pending_response->HandleResponse(message); | 255 pending_response->HandleResponse(message); |
| 256 } | 256 } |
| 257 | 257 |
| 258 } // namespace extensions | 258 } // namespace extensions |
| OLD | NEW |