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 24 matching lines...) Expand all Loading... |
35 namespace content { | 35 namespace content { |
36 | 36 |
37 namespace { | 37 namespace { |
38 | 38 |
39 // Method bindings. | 39 // Method bindings. |
40 const char kMethodBack[] = "back"; | 40 const char kMethodBack[] = "back"; |
41 const char kMethodCanGoBack[] = "canGoBack"; | 41 const char kMethodCanGoBack[] = "canGoBack"; |
42 const char kMethodCanGoForward[] = "canGoForward"; | 42 const char kMethodCanGoForward[] = "canGoForward"; |
43 const char kMethodForward[] = "forward"; | 43 const char kMethodForward[] = "forward"; |
44 const char kMethodGetProcessId[] = "getProcessId"; | 44 const char kMethodGetProcessId[] = "getProcessId"; |
| 45 const char kMethodGetRouteId[] = "getRouteId"; |
45 const char kMethodGo[] = "go"; | 46 const char kMethodGo[] = "go"; |
46 const char kMethodReload[] = "reload"; | 47 const char kMethodReload[] = "reload"; |
47 const char kMethodStop[] = "stop"; | 48 const char kMethodStop[] = "stop"; |
48 const char kMethodTerminate[] = "terminate"; | 49 const char kMethodTerminate[] = "terminate"; |
49 | 50 |
50 // Attributes. | 51 // Attributes. |
51 const char kAttributeAutoSize[] = "autoSize"; | 52 const char kAttributeAutoSize[] = "autoSize"; |
52 const char kAttributeContentWindow[] = "contentWindow"; | 53 const char kAttributeContentWindow[] = "contentWindow"; |
53 const char kAttributeMaxHeight[] = "maxHeight"; | 54 const char kAttributeMaxHeight[] = "maxHeight"; |
54 const char kAttributeMaxWidth[] = "maxWidth"; | 55 const char kAttributeMaxWidth[] = "maxWidth"; |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
294 const NPVariant* args, | 295 const NPVariant* args, |
295 NPVariant* result) OVERRIDE { | 296 NPVariant* result) OVERRIDE { |
296 bindings->instance()->Forward(); | 297 bindings->instance()->Forward(); |
297 return true; | 298 return true; |
298 } | 299 } |
299 | 300 |
300 private: | 301 private: |
301 DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingForward); | 302 DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingForward); |
302 }; | 303 }; |
303 | 304 |
| 305 // Note: This is a method that is used internally by the <webview> shim only. |
| 306 // This should not be exposed to developers. |
| 307 class BrowserPluginBindingGetRouteID : public BrowserPluginMethodBinding { |
| 308 public: |
| 309 BrowserPluginBindingGetRouteID() |
| 310 : BrowserPluginMethodBinding(kMethodGetRouteId, 0) { |
| 311 } |
| 312 |
| 313 virtual bool Invoke(BrowserPluginBindings* bindings, |
| 314 const NPVariant* args, |
| 315 NPVariant* result) OVERRIDE { |
| 316 int route_id = bindings->instance()->guest_route_id(); |
| 317 INT32_TO_NPVARIANT(route_id, *result); |
| 318 return true; |
| 319 } |
| 320 |
| 321 private: |
| 322 DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingGetRouteID); |
| 323 }; |
| 324 |
304 class BrowserPluginBindingGetProcessID : public BrowserPluginMethodBinding { | 325 class BrowserPluginBindingGetProcessID : public BrowserPluginMethodBinding { |
305 public: | 326 public: |
306 BrowserPluginBindingGetProcessID() | 327 BrowserPluginBindingGetProcessID() |
307 : BrowserPluginMethodBinding(kMethodGetProcessId, 0) { | 328 : BrowserPluginMethodBinding(kMethodGetProcessId, 0) { |
308 } | 329 } |
309 | 330 |
310 virtual bool Invoke(BrowserPluginBindings* bindings, | 331 virtual bool Invoke(BrowserPluginBindings* bindings, |
311 const NPVariant* args, | 332 const NPVariant* args, |
312 NPVariant* result) OVERRIDE { | 333 NPVariant* result) OVERRIDE { |
313 int process_id = bindings->instance()->process_id(); | 334 int process_id = bindings->instance()->process_id(); |
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
682 NPObject* obj = | 703 NPObject* obj = |
683 WebBindings::createObject(NULL, &browser_plugin_message_class); | 704 WebBindings::createObject(NULL, &browser_plugin_message_class); |
684 np_object_ = static_cast<BrowserPluginBindings::BrowserPluginNPObject*>(obj); | 705 np_object_ = static_cast<BrowserPluginBindings::BrowserPluginNPObject*>(obj); |
685 np_object_->message_channel = weak_ptr_factory_.GetWeakPtr(); | 706 np_object_->message_channel = weak_ptr_factory_.GetWeakPtr(); |
686 | 707 |
687 method_bindings_.push_back(new BrowserPluginBindingBack); | 708 method_bindings_.push_back(new BrowserPluginBindingBack); |
688 method_bindings_.push_back(new BrowserPluginBindingCanGoBack); | 709 method_bindings_.push_back(new BrowserPluginBindingCanGoBack); |
689 method_bindings_.push_back(new BrowserPluginBindingCanGoForward); | 710 method_bindings_.push_back(new BrowserPluginBindingCanGoForward); |
690 method_bindings_.push_back(new BrowserPluginBindingForward); | 711 method_bindings_.push_back(new BrowserPluginBindingForward); |
691 method_bindings_.push_back(new BrowserPluginBindingGetProcessID); | 712 method_bindings_.push_back(new BrowserPluginBindingGetProcessID); |
| 713 method_bindings_.push_back(new BrowserPluginBindingGetRouteID); |
692 method_bindings_.push_back(new BrowserPluginBindingGo); | 714 method_bindings_.push_back(new BrowserPluginBindingGo); |
693 method_bindings_.push_back(new BrowserPluginBindingReload); | 715 method_bindings_.push_back(new BrowserPluginBindingReload); |
694 method_bindings_.push_back(new BrowserPluginBindingStop); | 716 method_bindings_.push_back(new BrowserPluginBindingStop); |
695 method_bindings_.push_back(new BrowserPluginBindingTerminate); | 717 method_bindings_.push_back(new BrowserPluginBindingTerminate); |
696 | 718 |
697 property_bindings_.push_back(new BrowserPluginPropertyBindingAutoSize); | 719 property_bindings_.push_back(new BrowserPluginPropertyBindingAutoSize); |
698 property_bindings_.push_back(new BrowserPluginPropertyBindingContentWindow); | 720 property_bindings_.push_back(new BrowserPluginPropertyBindingContentWindow); |
699 property_bindings_.push_back(new BrowserPluginPropertyBindingMaxHeight); | 721 property_bindings_.push_back(new BrowserPluginPropertyBindingMaxHeight); |
700 property_bindings_.push_back(new BrowserPluginPropertyBindingMaxWidth); | 722 property_bindings_.push_back(new BrowserPluginPropertyBindingMaxWidth); |
701 property_bindings_.push_back(new BrowserPluginPropertyBindingMinHeight); | 723 property_bindings_.push_back(new BrowserPluginPropertyBindingMinHeight); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
763 for (PropertyBindingList::iterator iter = property_bindings_.begin(); | 785 for (PropertyBindingList::iterator iter = property_bindings_.begin(); |
764 iter != property_bindings_.end(); | 786 iter != property_bindings_.end(); |
765 ++iter) { | 787 ++iter) { |
766 if ((*iter)->MatchesName(name)) | 788 if ((*iter)->MatchesName(name)) |
767 return (*iter)->GetProperty(this, result); | 789 return (*iter)->GetProperty(this, result); |
768 } | 790 } |
769 return false; | 791 return false; |
770 } | 792 } |
771 | 793 |
772 } // namespace content | 794 } // namespace content |
OLD | NEW |