Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(141)

Side by Side Diff: extensions/renderer/guest_view/extensions_guest_view_container.cc

Issue 801173002: Fix message routing for BrowserPlugin in iframe (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix tests that don't have a RenderThreadImpl Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698