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 |