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

Side by Side Diff: extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container.cc

Issue 1115563002: extensions/renderer: Use v8::Local instead of v8::Handle. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 months 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/mime_handler_view/mime_handler_view_con tainer.h" 5 #include "extensions/renderer/guest_view/mime_handler_view/mime_handler_view_con tainer.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 9
10 #include "content/public/child/v8_value_converter.h" 10 #include "content/public/child/v8_value_converter.h"
(...skipping 20 matching lines...) Expand all
31 31
32 const char kPostMessageName[] = "postMessage"; 32 const char kPostMessageName[] = "postMessage";
33 33
34 // The gin-backed scriptable object which is exposed by the BrowserPlugin for 34 // The gin-backed scriptable object which is exposed by the BrowserPlugin for
35 // MimeHandlerViewContainer. This currently only implements "postMessage". 35 // MimeHandlerViewContainer. This currently only implements "postMessage".
36 class ScriptableObject : public gin::Wrappable<ScriptableObject>, 36 class ScriptableObject : public gin::Wrappable<ScriptableObject>,
37 public gin::NamedPropertyInterceptor { 37 public gin::NamedPropertyInterceptor {
38 public: 38 public:
39 static gin::WrapperInfo kWrapperInfo; 39 static gin::WrapperInfo kWrapperInfo;
40 40
41 static v8::Handle<v8::Object> Create( 41 static v8::Local<v8::Object> Create(
42 v8::Isolate* isolate, 42 v8::Isolate* isolate,
43 base::WeakPtr<MimeHandlerViewContainer> container) { 43 base::WeakPtr<MimeHandlerViewContainer> container) {
44 ScriptableObject* scriptable_object = 44 ScriptableObject* scriptable_object =
45 new ScriptableObject(isolate, container); 45 new ScriptableObject(isolate, container);
46 return gin::CreateHandle(isolate, scriptable_object).ToV8()->ToObject(); 46 return gin::CreateHandle(isolate, scriptable_object).ToV8()->ToObject();
47 } 47 }
48 48
49 // gin::NamedPropertyInterceptor 49 // gin::NamedPropertyInterceptor
50 v8::Local<v8::Value> GetNamedProperty( 50 v8::Local<v8::Value> GetNamedProperty(
51 v8::Isolate* isolate, 51 v8::Isolate* isolate,
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 202
203 void MimeHandlerViewContainer::didFinishLoading( 203 void MimeHandlerViewContainer::didFinishLoading(
204 blink::WebURLLoader* /* unused */, 204 blink::WebURLLoader* /* unused */,
205 double /* unused */, 205 double /* unused */,
206 int64_t /* unused */) { 206 int64_t /* unused */) {
207 DCHECK(is_embedded_); 207 DCHECK(is_embedded_);
208 CreateMimeHandlerViewGuest(); 208 CreateMimeHandlerViewGuest();
209 } 209 }
210 210
211 void MimeHandlerViewContainer::PostMessage(v8::Isolate* isolate, 211 void MimeHandlerViewContainer::PostMessage(v8::Isolate* isolate,
212 v8::Handle<v8::Value> message) { 212 v8::Local<v8::Value> message) {
213 if (!guest_loaded_) { 213 if (!guest_loaded_) {
214 linked_ptr<v8::Global<v8::Value>> global( 214 linked_ptr<v8::Global<v8::Value>> global(
215 new v8::Global<v8::Value>(isolate, message)); 215 new v8::Global<v8::Value>(isolate, message));
216 pending_messages_.push_back(global); 216 pending_messages_.push_back(global);
217 return; 217 return;
218 } 218 }
219 219
220 content::RenderView* guest_proxy_render_view = 220 content::RenderView* guest_proxy_render_view =
221 content::RenderView::FromRoutingID(guest_proxy_routing_id_); 221 content::RenderView::FromRoutingID(guest_proxy_routing_id_);
222 if (!guest_proxy_render_view) 222 if (!guest_proxy_render_view)
223 return; 223 return;
224 blink::WebFrame* guest_proxy_frame = 224 blink::WebFrame* guest_proxy_frame =
225 guest_proxy_render_view->GetWebView()->mainFrame(); 225 guest_proxy_render_view->GetWebView()->mainFrame();
226 if (!guest_proxy_frame) 226 if (!guest_proxy_frame)
227 return; 227 return;
228 228
229 v8::Context::Scope context_scope( 229 v8::Context::Scope context_scope(
230 render_frame()->GetWebFrame()->mainWorldScriptContext()); 230 render_frame()->GetWebFrame()->mainWorldScriptContext());
231 v8::Local<v8::Object> guest_proxy_window = 231 v8::Local<v8::Object> guest_proxy_window =
232 guest_proxy_frame->mainWorldScriptContext()->Global(); 232 guest_proxy_frame->mainWorldScriptContext()->Global();
233 gin::Dictionary window_object(isolate, guest_proxy_window); 233 gin::Dictionary window_object(isolate, guest_proxy_window);
234 v8::Handle<v8::Function> post_message; 234 v8::Local<v8::Function> post_message;
235 if (!window_object.Get(std::string(kPostMessageName), &post_message)) 235 if (!window_object.Get(std::string(kPostMessageName), &post_message))
236 return; 236 return;
237 237
238 v8::Handle<v8::Value> args[] = { 238 v8::Local<v8::Value> args[] = {
239 message, 239 message,
240 // Post the message to any domain inside the browser plugin. The embedder 240 // Post the message to any domain inside the browser plugin. The embedder
241 // should already know what is embedded. 241 // should already know what is embedded.
242 gin::StringToV8(isolate, "*") 242 gin::StringToV8(isolate, "*")};
243 };
244 guest_proxy_frame->callFunctionEvenIfScriptDisabled( 243 guest_proxy_frame->callFunctionEvenIfScriptDisabled(
245 post_message.As<v8::Function>(), 244 post_message.As<v8::Function>(),
246 guest_proxy_window, 245 guest_proxy_window,
247 arraysize(args), 246 arraysize(args),
248 args); 247 args);
249 } 248 }
250 249
251 void MimeHandlerViewContainer::PostMessageFromValue( 250 void MimeHandlerViewContainer::PostMessageFromValue(
252 const base::Value& message) { 251 const base::Value& message) {
253 blink::WebFrame* frame = render_frame()->GetWebFrame(); 252 blink::WebFrame* frame = render_frame()->GetWebFrame();
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 if (!render_frame()) 312 if (!render_frame())
314 return; 313 return;
315 314
316 render_frame()->Send( 315 render_frame()->Send(
317 new ExtensionsGuestViewHostMsg_CreateMimeHandlerViewGuest( 316 new ExtensionsGuestViewHostMsg_CreateMimeHandlerViewGuest(
318 render_frame()->GetRoutingID(), view_id_, element_instance_id(), 317 render_frame()->GetRoutingID(), view_id_, element_instance_id(),
319 element_size_)); 318 element_size_));
320 } 319 }
321 320
322 } // namespace extensions 321 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698