| 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" | 9 #include "extensions/common/extension_messages.h" |
| 10 #include "extensions/common/guest_view/guest_view_constants.h" | 10 #include "extensions/common/guest_view/guest_view_constants.h" |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 PerformPendingRequest(); | 179 PerformPendingRequest(); |
| 180 } | 180 } |
| 181 | 181 |
| 182 void ExtensionsGuestViewContainer::RegisterDestructionCallback( | 182 void ExtensionsGuestViewContainer::RegisterDestructionCallback( |
| 183 v8::Handle<v8::Function> callback, | 183 v8::Handle<v8::Function> callback, |
| 184 v8::Isolate* isolate) { | 184 v8::Isolate* isolate) { |
| 185 destruction_callback_.reset(callback); | 185 destruction_callback_.reset(callback); |
| 186 destruction_isolate_ = isolate; | 186 destruction_isolate_ = isolate; |
| 187 } | 187 } |
| 188 | 188 |
| 189 bool ExtensionsGuestViewContainer::OnMessageReceived( |
| 190 const IPC::Message& message) { |
| 191 OnHandleCallback(message); |
| 192 return true; |
| 193 } |
| 194 |
| 189 void ExtensionsGuestViewContainer::SetElementInstanceID( | 195 void ExtensionsGuestViewContainer::SetElementInstanceID( |
| 190 int element_instance_id) { | 196 int element_instance_id) { |
| 191 GuestViewContainer::SetElementInstanceID(element_instance_id); | 197 GuestViewContainer::SetElementInstanceID(element_instance_id); |
| 192 | 198 |
| 193 DCHECK(g_guest_view_container_map.Get().find(element_instance_id) == | 199 DCHECK(g_guest_view_container_map.Get().find(element_instance_id) == |
| 194 g_guest_view_container_map.Get().end()); | 200 g_guest_view_container_map.Get().end()); |
| 195 g_guest_view_container_map.Get().insert( | 201 g_guest_view_container_map.Get().insert( |
| 196 std::make_pair(element_instance_id, this)); | 202 std::make_pair(element_instance_id, this)); |
| 197 } | 203 } |
| 198 | 204 |
| 199 void ExtensionsGuestViewContainer::Ready() { | 205 void ExtensionsGuestViewContainer::Ready() { |
| 200 ready_ = true; | 206 ready_ = true; |
| 201 CHECK(!pending_response_.get()); | 207 CHECK(!pending_response_.get()); |
| 202 PerformPendingRequest(); | 208 PerformPendingRequest(); |
| 203 } | 209 } |
| 204 | 210 |
| 205 bool ExtensionsGuestViewContainer::HandlesMessage(const IPC::Message& message) { | |
| 206 return (message.type() == ExtensionMsg_GuestAttached::ID) || | |
| 207 (message.type() == ExtensionMsg_GuestDetached::ID); | |
| 208 } | |
| 209 | |
| 210 bool ExtensionsGuestViewContainer::OnMessage(const IPC::Message& message) { | |
| 211 OnHandleCallback(message); | |
| 212 return true; | |
| 213 } | |
| 214 | |
| 215 void ExtensionsGuestViewContainer::OnHandleCallback( | 211 void ExtensionsGuestViewContainer::OnHandleCallback( |
| 216 const IPC::Message& message) { | 212 const IPC::Message& message) { |
| 217 // Handle the callback for the current request with a pending response. | 213 // Handle the callback for the current request with a pending response. |
| 218 HandlePendingResponseCallback(message); | 214 HandlePendingResponseCallback(message); |
| 219 // Perform the subsequent attach request if one exists. | 215 // Perform the subsequent attach request if one exists. |
| 220 PerformPendingRequest(); | 216 PerformPendingRequest(); |
| 221 } | 217 } |
| 222 | 218 |
| 223 void ExtensionsGuestViewContainer::EnqueueRequest(linked_ptr<Request> request) { | 219 void ExtensionsGuestViewContainer::EnqueueRequest(linked_ptr<Request> request) { |
| 224 pending_requests_.push_back(request); | 220 pending_requests_.push_back(request); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 235 } | 231 } |
| 236 | 232 |
| 237 void ExtensionsGuestViewContainer::HandlePendingResponseCallback( | 233 void ExtensionsGuestViewContainer::HandlePendingResponseCallback( |
| 238 const IPC::Message& message) { | 234 const IPC::Message& message) { |
| 239 CHECK(pending_response_.get()); | 235 CHECK(pending_response_.get()); |
| 240 linked_ptr<Request> pending_response(pending_response_.release()); | 236 linked_ptr<Request> pending_response(pending_response_.release()); |
| 241 pending_response->HandleResponse(message); | 237 pending_response->HandleResponse(message); |
| 242 } | 238 } |
| 243 | 239 |
| 244 } // namespace extensions | 240 } // namespace extensions |
| OLD | NEW |