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/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 "components/guest_view/common/guest_view_constants.h" | 10 #include "components/guest_view/common/guest_view_constants.h" |
(...skipping 25 matching lines...) Expand all Loading... |
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::Local<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) |
| 47 .ToV8() |
| 48 .As<v8::Object>(); |
47 } | 49 } |
48 | 50 |
49 // gin::NamedPropertyInterceptor | 51 // gin::NamedPropertyInterceptor |
50 v8::Local<v8::Value> GetNamedProperty( | 52 v8::Local<v8::Value> GetNamedProperty( |
51 v8::Isolate* isolate, | 53 v8::Isolate* isolate, |
52 const std::string& identifier) override { | 54 const std::string& identifier) override { |
53 if (identifier == kPostMessageName) { | 55 if (identifier == kPostMessageName) { |
54 if (post_message_function_template_.IsEmpty()) { | 56 if (post_message_function_template_.IsEmpty()) { |
55 post_message_function_template_.Reset( | 57 post_message_function_template_.Reset( |
56 isolate, | 58 isolate, |
57 gin::CreateFunctionTemplate( | 59 gin::CreateFunctionTemplate( |
58 isolate, base::Bind(&MimeHandlerViewContainer::PostMessage, | 60 isolate, base::Bind(&MimeHandlerViewContainer::PostMessage, |
59 container_, isolate))); | 61 container_, isolate))); |
60 } | 62 } |
61 return v8::Local<v8::FunctionTemplate>::New( | 63 v8::Local<v8::FunctionTemplate> function_template = |
62 isolate, post_message_function_template_)->GetFunction(); | 64 v8::Local<v8::FunctionTemplate>::New(isolate, |
| 65 post_message_function_template_); |
| 66 v8::Local<v8::Function> interceptor; |
| 67 if (function_template->GetFunction(isolate->GetCurrentContext()) |
| 68 .ToLocal(&interceptor)) |
| 69 return interceptor; |
63 } | 70 } |
64 return v8::Local<v8::Value>(); | 71 return v8::Local<v8::Value>(); |
65 } | 72 } |
66 | 73 |
67 private: | 74 private: |
68 ScriptableObject(v8::Isolate* isolate, | 75 ScriptableObject(v8::Isolate* isolate, |
69 base::WeakPtr<MimeHandlerViewContainer> container) | 76 base::WeakPtr<MimeHandlerViewContainer> container) |
70 : gin::NamedPropertyInterceptor(isolate, this), | 77 : gin::NamedPropertyInterceptor(isolate, this), |
71 container_(container) {} | 78 container_(container) {} |
72 | 79 |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
312 if (!render_frame()) | 319 if (!render_frame()) |
313 return; | 320 return; |
314 | 321 |
315 render_frame()->Send( | 322 render_frame()->Send( |
316 new ExtensionsGuestViewHostMsg_CreateMimeHandlerViewGuest( | 323 new ExtensionsGuestViewHostMsg_CreateMimeHandlerViewGuest( |
317 render_frame()->GetRoutingID(), view_id_, element_instance_id(), | 324 render_frame()->GetRoutingID(), view_id_, element_instance_id(), |
318 element_size_)); | 325 element_size_)); |
319 } | 326 } |
320 | 327 |
321 } // namespace extensions | 328 } // namespace extensions |
OLD | NEW |