OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/renderer/browser_plugin/browser_plugin_bindings.h" | 5 #include "content/renderer/browser_plugin/browser_plugin_bindings.h" |
6 | 6 |
7 #include <cstdlib> | 7 #include <cstdlib> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 29 matching lines...) Expand all Loading... |
40 const char kAddEventListener[] = "addEventListener"; | 40 const char kAddEventListener[] = "addEventListener"; |
41 const char kBackMethod[] = "back"; | 41 const char kBackMethod[] = "back"; |
42 const char kForwardMethod[] = "forward"; | 42 const char kForwardMethod[] = "forward"; |
43 const char kGetProcessId[] = "getProcessId"; | 43 const char kGetProcessId[] = "getProcessId"; |
44 const char kGoMethod[] = "go"; | 44 const char kGoMethod[] = "go"; |
45 const char kPartitionAttribute[] = "partition"; | 45 const char kPartitionAttribute[] = "partition"; |
46 const char kReloadMethod[] = "reload"; | 46 const char kReloadMethod[] = "reload"; |
47 const char kRemoveEventListener[] = "removeEventListener"; | 47 const char kRemoveEventListener[] = "removeEventListener"; |
48 const char kSrcAttribute[] = "src"; | 48 const char kSrcAttribute[] = "src"; |
49 const char kStopMethod[] = "stop"; | 49 const char kStopMethod[] = "stop"; |
| 50 const char kTerminateMethod[] = "terminate"; |
50 | 51 |
51 BrowserPluginBindings* GetBindings(NPObject* object) { | 52 BrowserPluginBindings* GetBindings(NPObject* object) { |
52 return static_cast<BrowserPluginBindings::BrowserPluginNPObject*>(object)-> | 53 return static_cast<BrowserPluginBindings::BrowserPluginNPObject*>(object)-> |
53 message_channel; | 54 message_channel; |
54 } | 55 } |
55 | 56 |
56 bool IdentifierIsReload(NPIdentifier identifier) { | |
57 return WebBindings::getStringIdentifier(kReloadMethod) == identifier; | |
58 } | |
59 | |
60 bool IdentifierIsStop(NPIdentifier identifier) { | |
61 return WebBindings::getStringIdentifier(kStopMethod) == identifier; | |
62 } | |
63 | |
64 bool IdentifierIsAddEventListener(NPIdentifier identifier) { | 57 bool IdentifierIsAddEventListener(NPIdentifier identifier) { |
65 return WebBindings::getStringIdentifier(kAddEventListener) == identifier; | 58 return WebBindings::getStringIdentifier(kAddEventListener) == identifier; |
66 } | 59 } |
67 | 60 |
68 bool IdentifierIsBackMethod(NPIdentifier identifier) { | 61 bool IdentifierIsBackMethod(NPIdentifier identifier) { |
69 return WebBindings::getStringIdentifier(kBackMethod) == identifier; | 62 return WebBindings::getStringIdentifier(kBackMethod) == identifier; |
70 } | 63 } |
71 | 64 |
72 bool IdentifierIsForwardMethod(NPIdentifier identifier) { | 65 bool IdentifierIsForwardMethod(NPIdentifier identifier) { |
73 return WebBindings::getStringIdentifier(kForwardMethod) == identifier; | 66 return WebBindings::getStringIdentifier(kForwardMethod) == identifier; |
74 } | 67 } |
75 | 68 |
| 69 bool IdentifierIsGetProcessID(NPIdentifier identifier) { |
| 70 return WebBindings::getStringIdentifier(kGetProcessId) == identifier; |
| 71 } |
| 72 |
76 bool IdentifierIsGoMethod(NPIdentifier identifier) { | 73 bool IdentifierIsGoMethod(NPIdentifier identifier) { |
77 return WebBindings::getStringIdentifier(kGoMethod) == identifier; | 74 return WebBindings::getStringIdentifier(kGoMethod) == identifier; |
78 } | 75 } |
79 | 76 |
| 77 bool IdentifierIsPartitionAttribute(NPIdentifier identifier) { |
| 78 return WebBindings::getStringIdentifier(kPartitionAttribute) == identifier; |
| 79 } |
| 80 |
| 81 bool IdentifierIsReload(NPIdentifier identifier) { |
| 82 return WebBindings::getStringIdentifier(kReloadMethod) == identifier; |
| 83 } |
| 84 |
80 bool IdentifierIsRemoveEventListener(NPIdentifier identifier) { | 85 bool IdentifierIsRemoveEventListener(NPIdentifier identifier) { |
81 return WebBindings::getStringIdentifier(kRemoveEventListener) == identifier; | 86 return WebBindings::getStringIdentifier(kRemoveEventListener) == identifier; |
82 } | 87 } |
83 | 88 |
84 bool IdentifierIsGetProcessID(NPIdentifier identifier) { | |
85 return WebBindings::getStringIdentifier(kGetProcessId) == identifier; | |
86 } | |
87 | |
88 bool IdentifierIsSrcAttribute(NPIdentifier identifier) { | 89 bool IdentifierIsSrcAttribute(NPIdentifier identifier) { |
89 return WebBindings::getStringIdentifier(kSrcAttribute) == identifier; | 90 return WebBindings::getStringIdentifier(kSrcAttribute) == identifier; |
90 } | 91 } |
91 | 92 |
92 bool IdentifierIsPartitionAttribute(NPIdentifier identifier) { | 93 bool IdentifierIsStop(NPIdentifier identifier) { |
93 return WebBindings::getStringIdentifier(kPartitionAttribute) == identifier; | 94 return WebBindings::getStringIdentifier(kStopMethod) == identifier; |
| 95 } |
| 96 |
| 97 bool IdentifierIsTerminate(NPIdentifier identifier) { |
| 98 return WebBindings::getStringIdentifier(kTerminateMethod) == identifier; |
94 } | 99 } |
95 | 100 |
96 int Int32FromNPVariant(const NPVariant& variant) { | 101 int Int32FromNPVariant(const NPVariant& variant) { |
97 if (NPVARIANT_IS_INT32(variant)) | 102 if (NPVARIANT_IS_INT32(variant)) |
98 return NPVARIANT_TO_INT32(variant); | 103 return NPVARIANT_TO_INT32(variant); |
99 | 104 |
100 if (NPVARIANT_IS_DOUBLE(variant)) | 105 if (NPVARIANT_IS_DOUBLE(variant)) |
101 return NPVARIANT_TO_DOUBLE(variant); | 106 return NPVARIANT_TO_DOUBLE(variant); |
102 | 107 |
103 return 0; | 108 return 0; |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 | 162 |
158 if (IdentifierIsReload(name)) | 163 if (IdentifierIsReload(name)) |
159 return true; | 164 return true; |
160 | 165 |
161 if (IdentifierIsRemoveEventListener(name)) | 166 if (IdentifierIsRemoveEventListener(name)) |
162 return true; | 167 return true; |
163 | 168 |
164 if (IdentifierIsStop(name)) | 169 if (IdentifierIsStop(name)) |
165 return true; | 170 return true; |
166 | 171 |
| 172 if (IdentifierIsTerminate(name)) |
| 173 return true; |
| 174 |
167 return false; | 175 return false; |
168 } | 176 } |
169 | 177 |
170 bool BrowserPluginBindingsInvoke(NPObject* np_obj, NPIdentifier name, | 178 bool BrowserPluginBindingsInvoke(NPObject* np_obj, NPIdentifier name, |
171 const NPVariant* args, uint32 arg_count, | 179 const NPVariant* args, uint32 arg_count, |
172 NPVariant* result) { | 180 NPVariant* result) { |
173 if (!np_obj) | 181 if (!np_obj) |
174 return false; | 182 return false; |
175 | 183 |
176 BrowserPluginBindings* bindings = GetBindings(np_obj); | 184 BrowserPluginBindings* bindings = GetBindings(np_obj); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 | 239 |
232 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(value); | 240 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(value); |
233 return bindings->instance()->RemoveEventListener(event_name, function); | 241 return bindings->instance()->RemoveEventListener(event_name, function); |
234 } | 242 } |
235 | 243 |
236 if (IdentifierIsStop(name) && !arg_count) { | 244 if (IdentifierIsStop(name) && !arg_count) { |
237 bindings->instance()->Stop(); | 245 bindings->instance()->Stop(); |
238 return true; | 246 return true; |
239 } | 247 } |
240 | 248 |
| 249 if (IdentifierIsTerminate(name)) { |
| 250 bindings->instance()->TerminateGuest(); |
| 251 } |
| 252 |
241 return false; | 253 return false; |
242 } | 254 } |
243 | 255 |
244 bool BrowserPluginBindingsInvokeDefault(NPObject* np_obj, | 256 bool BrowserPluginBindingsInvokeDefault(NPObject* np_obj, |
245 const NPVariant* args, | 257 const NPVariant* args, |
246 uint32 arg_count, | 258 uint32 arg_count, |
247 NPVariant* result) { | 259 NPVariant* result) { |
248 NOTIMPLEMENTED(); | 260 NOTIMPLEMENTED(); |
249 return false; | 261 return false; |
250 } | 262 } |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 WebBindings::createObject(NULL, &browser_plugin_message_class); | 366 WebBindings::createObject(NULL, &browser_plugin_message_class); |
355 np_object_ = static_cast<BrowserPluginBindings::BrowserPluginNPObject*>(obj); | 367 np_object_ = static_cast<BrowserPluginBindings::BrowserPluginNPObject*>(obj); |
356 np_object_->message_channel = weak_ptr_factory_.GetWeakPtr(); | 368 np_object_->message_channel = weak_ptr_factory_.GetWeakPtr(); |
357 } | 369 } |
358 | 370 |
359 BrowserPluginBindings::~BrowserPluginBindings() { | 371 BrowserPluginBindings::~BrowserPluginBindings() { |
360 WebBindings::releaseObject(np_object_); | 372 WebBindings::releaseObject(np_object_); |
361 } | 373 } |
362 | 374 |
363 } // namespace content | 375 } // namespace content |
OLD | NEW |