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 21 matching lines...) Expand all Loading... |
32 using WebKit::WebPluginContainer; | 32 using WebKit::WebPluginContainer; |
33 using WebKit::WebSerializedScriptValue; | 33 using WebKit::WebSerializedScriptValue; |
34 using WebKit::WebString; | 34 using WebKit::WebString; |
35 | 35 |
36 namespace content { | 36 namespace content { |
37 | 37 |
38 namespace { | 38 namespace { |
39 | 39 |
40 const char kAddEventListener[] = "addEventListener"; | 40 const char kAddEventListener[] = "addEventListener"; |
41 const char kBackMethod[] = "back"; | 41 const char kBackMethod[] = "back"; |
| 42 const char kCanGoBack[] = "canGoBack"; |
| 43 const char kCanGoForward[] = "canGoForward"; |
42 const char kForwardMethod[] = "forward"; | 44 const char kForwardMethod[] = "forward"; |
43 const char kGetProcessId[] = "getProcessId"; | 45 const char kGetProcessId[] = "getProcessId"; |
44 const char kGoMethod[] = "go"; | 46 const char kGoMethod[] = "go"; |
45 const char kPartitionAttribute[] = "partition"; | 47 const char kPartitionAttribute[] = "partition"; |
46 const char kReloadMethod[] = "reload"; | 48 const char kReloadMethod[] = "reload"; |
47 const char kRemoveEventListener[] = "removeEventListener"; | 49 const char kRemoveEventListener[] = "removeEventListener"; |
48 const char kSrcAttribute[] = "src"; | 50 const char kSrcAttribute[] = "src"; |
49 const char kStopMethod[] = "stop"; | 51 const char kStopMethod[] = "stop"; |
50 const char kTerminateMethod[] = "terminate"; | 52 const char kTerminateMethod[] = "terminate"; |
51 | 53 |
52 BrowserPluginBindings* GetBindings(NPObject* object) { | 54 BrowserPluginBindings* GetBindings(NPObject* object) { |
53 return static_cast<BrowserPluginBindings::BrowserPluginNPObject*>(object)-> | 55 return static_cast<BrowserPluginBindings::BrowserPluginNPObject*>(object)-> |
54 message_channel; | 56 message_channel; |
55 } | 57 } |
56 | 58 |
57 bool IdentifierIsAddEventListener(NPIdentifier identifier) { | 59 bool IdentifierIsAddEventListener(NPIdentifier identifier) { |
58 return WebBindings::getStringIdentifier(kAddEventListener) == identifier; | 60 return WebBindings::getStringIdentifier(kAddEventListener) == identifier; |
59 } | 61 } |
60 | 62 |
61 bool IdentifierIsBackMethod(NPIdentifier identifier) { | 63 bool IdentifierIsBackMethod(NPIdentifier identifier) { |
62 return WebBindings::getStringIdentifier(kBackMethod) == identifier; | 64 return WebBindings::getStringIdentifier(kBackMethod) == identifier; |
63 } | 65 } |
64 | 66 |
| 67 bool IdentifierIsCanGoBack(NPIdentifier identifier) { |
| 68 return WebBindings::getStringIdentifier(kCanGoBack) == identifier; |
| 69 } |
| 70 |
| 71 bool IdentifierIsCanGoForward(NPIdentifier identifier) { |
| 72 return WebBindings::getStringIdentifier(kCanGoForward) == identifier; |
| 73 } |
| 74 |
65 bool IdentifierIsForwardMethod(NPIdentifier identifier) { | 75 bool IdentifierIsForwardMethod(NPIdentifier identifier) { |
66 return WebBindings::getStringIdentifier(kForwardMethod) == identifier; | 76 return WebBindings::getStringIdentifier(kForwardMethod) == identifier; |
67 } | 77 } |
68 | 78 |
69 bool IdentifierIsGetProcessID(NPIdentifier identifier) { | 79 bool IdentifierIsGetProcessID(NPIdentifier identifier) { |
70 return WebBindings::getStringIdentifier(kGetProcessId) == identifier; | 80 return WebBindings::getStringIdentifier(kGetProcessId) == identifier; |
71 } | 81 } |
72 | 82 |
73 bool IdentifierIsGoMethod(NPIdentifier identifier) { | 83 bool IdentifierIsGoMethod(NPIdentifier identifier) { |
74 return WebBindings::getStringIdentifier(kGoMethod) == identifier; | 84 return WebBindings::getStringIdentifier(kGoMethod) == identifier; |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 bool BrowserPluginBindingsHasMethod(NPObject* np_obj, NPIdentifier name) { | 154 bool BrowserPluginBindingsHasMethod(NPObject* np_obj, NPIdentifier name) { |
145 if (!np_obj) | 155 if (!np_obj) |
146 return false; | 156 return false; |
147 | 157 |
148 if (IdentifierIsAddEventListener(name)) | 158 if (IdentifierIsAddEventListener(name)) |
149 return true; | 159 return true; |
150 | 160 |
151 if (IdentifierIsBackMethod(name)) | 161 if (IdentifierIsBackMethod(name)) |
152 return true; | 162 return true; |
153 | 163 |
| 164 if (IdentifierIsCanGoBack(name)) |
| 165 return true; |
| 166 |
| 167 if (IdentifierIsCanGoForward(name)) |
| 168 return true; |
| 169 |
154 if (IdentifierIsForwardMethod(name)) | 170 if (IdentifierIsForwardMethod(name)) |
155 return true; | 171 return true; |
156 | 172 |
157 if (IdentifierIsGetProcessID(name)) | 173 if (IdentifierIsGetProcessID(name)) |
158 return true; | 174 return true; |
159 | 175 |
160 if (IdentifierIsGoMethod(name)) | 176 if (IdentifierIsGoMethod(name)) |
161 return true; | 177 return true; |
162 | 178 |
163 if (IdentifierIsReload(name)) | 179 if (IdentifierIsReload(name)) |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 result->value.boolValue = | 216 result->value.boolValue = |
201 bindings->instance()->AddEventListener(event_name, function); | 217 bindings->instance()->AddEventListener(event_name, function); |
202 return true; | 218 return true; |
203 } | 219 } |
204 | 220 |
205 if (IdentifierIsBackMethod(name) && !arg_count) { | 221 if (IdentifierIsBackMethod(name) && !arg_count) { |
206 bindings->instance()->Back(); | 222 bindings->instance()->Back(); |
207 return true; | 223 return true; |
208 } | 224 } |
209 | 225 |
| 226 if (IdentifierIsCanGoBack(name) && !arg_count) { |
| 227 result->type = NPVariantType_Bool; |
| 228 result->value.boolValue = bindings->instance()->CanGoBack(); |
| 229 return true; |
| 230 } |
| 231 |
| 232 if (IdentifierIsCanGoForward(name) && !arg_count) { |
| 233 result->type = NPVariantType_Bool; |
| 234 result->value.boolValue = bindings->instance()->CanGoForward(); |
| 235 return true; |
| 236 } |
| 237 |
210 if (IdentifierIsForwardMethod(name) && !arg_count) { | 238 if (IdentifierIsForwardMethod(name) && !arg_count) { |
211 bindings->instance()->Forward(); | 239 bindings->instance()->Forward(); |
212 return true; | 240 return true; |
213 } | 241 } |
214 | 242 |
215 if (IdentifierIsGetProcessID(name) && !arg_count) { | 243 if (IdentifierIsGetProcessID(name) && !arg_count) { |
216 int process_id = bindings->instance()->process_id(); | 244 int process_id = bindings->instance()->process_id(); |
217 result->type = NPVariantType_Int32; | 245 result->type = NPVariantType_Int32; |
218 result->value.intValue = process_id; | 246 result->value.intValue = process_id; |
219 return true; | 247 return true; |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 WebBindings::createObject(NULL, &browser_plugin_message_class); | 400 WebBindings::createObject(NULL, &browser_plugin_message_class); |
373 np_object_ = static_cast<BrowserPluginBindings::BrowserPluginNPObject*>(obj); | 401 np_object_ = static_cast<BrowserPluginBindings::BrowserPluginNPObject*>(obj); |
374 np_object_->message_channel = weak_ptr_factory_.GetWeakPtr(); | 402 np_object_->message_channel = weak_ptr_factory_.GetWeakPtr(); |
375 } | 403 } |
376 | 404 |
377 BrowserPluginBindings::~BrowserPluginBindings() { | 405 BrowserPluginBindings::~BrowserPluginBindings() { |
378 WebBindings::releaseObject(np_object_); | 406 WebBindings::releaseObject(np_object_); |
379 } | 407 } |
380 | 408 |
381 } // namespace content | 409 } // namespace content |
OLD | NEW |