| 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 329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 340 const NPVariant* args, | 340 const NPVariant* args, |
| 341 NPVariant* result) OVERRIDE { | 341 NPVariant* result) OVERRIDE { |
| 342 bindings->instance()->TrackObjectLifetime(args, IntFromNPVariant(args[1])); | 342 bindings->instance()->TrackObjectLifetime(args, IntFromNPVariant(args[1])); |
| 343 return true; | 343 return true; |
| 344 } | 344 } |
| 345 | 345 |
| 346 private: | 346 private: |
| 347 DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingTrackObjectLifetime); | 347 DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingTrackObjectLifetime); |
| 348 }; | 348 }; |
| 349 | 349 |
| 350 // Note: This is a method that is used internally by the <webview> shim only. | |
| 351 // This should not be exposed to developers. | |
| 352 class BrowserPluginBindingSetPermission : public BrowserPluginMethodBinding { | |
| 353 public: | |
| 354 BrowserPluginBindingSetPermission() | |
| 355 : BrowserPluginMethodBinding( | |
| 356 browser_plugin::kMethodInternalSetPermission, 3) { | |
| 357 } | |
| 358 | |
| 359 virtual bool Invoke(BrowserPluginBindings* bindings, | |
| 360 const NPVariant* args, | |
| 361 NPVariant* result) OVERRIDE { | |
| 362 int request_id = IntFromNPVariant(args[0]); | |
| 363 bool allow = NPVARIANT_TO_BOOLEAN(args[1]); | |
| 364 std::string user_input = StringFromNPVariant(args[2]); | |
| 365 bool request_was_pending = | |
| 366 bindings->instance()->RespondPermissionIfRequestIsPending( | |
| 367 request_id, allow, user_input); | |
| 368 BOOLEAN_TO_NPVARIANT(request_was_pending, *result); | |
| 369 return true; | |
| 370 } | |
| 371 | |
| 372 private: | |
| 373 DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingSetPermission); | |
| 374 }; | |
| 375 | |
| 376 // BrowserPluginPropertyBinding ------------------------------------------------ | 350 // BrowserPluginPropertyBinding ------------------------------------------------ |
| 377 | 351 |
| 378 class BrowserPluginPropertyBinding { | 352 class BrowserPluginPropertyBinding { |
| 379 public: | 353 public: |
| 380 explicit BrowserPluginPropertyBinding(const char name[]) : name_(name) {} | 354 explicit BrowserPluginPropertyBinding(const char name[]) : name_(name) {} |
| 381 virtual ~BrowserPluginPropertyBinding() {} | 355 virtual ~BrowserPluginPropertyBinding() {} |
| 382 const std::string& name() const { return name_; } | 356 const std::string& name() const { return name_; } |
| 383 bool MatchesName(NPIdentifier name) const { | 357 bool MatchesName(NPIdentifier name) const { |
| 384 return WebBindings::getStringIdentifier(name_.c_str()) == name; | 358 return WebBindings::getStringIdentifier(name_.c_str()) == name; |
| 385 } | 359 } |
| (...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 726 NPObject* obj = | 700 NPObject* obj = |
| 727 WebBindings::createObject(instance->pluginNPP(), | 701 WebBindings::createObject(instance->pluginNPP(), |
| 728 &browser_plugin_message_class); | 702 &browser_plugin_message_class); |
| 729 np_object_ = static_cast<BrowserPluginBindings::BrowserPluginNPObject*>(obj); | 703 np_object_ = static_cast<BrowserPluginBindings::BrowserPluginNPObject*>(obj); |
| 730 np_object_->message_channel = weak_ptr_factory_.GetWeakPtr(); | 704 np_object_->message_channel = weak_ptr_factory_.GetWeakPtr(); |
| 731 | 705 |
| 732 method_bindings_.push_back(new BrowserPluginBindingAttach); | 706 method_bindings_.push_back(new BrowserPluginBindingAttach); |
| 733 method_bindings_.push_back(new BrowserPluginBindingAttachWindowTo); | 707 method_bindings_.push_back(new BrowserPluginBindingAttachWindowTo); |
| 734 method_bindings_.push_back(new BrowserPluginBindingGetInstanceID); | 708 method_bindings_.push_back(new BrowserPluginBindingGetInstanceID); |
| 735 method_bindings_.push_back(new BrowserPluginBindingGetGuestInstanceID); | 709 method_bindings_.push_back(new BrowserPluginBindingGetGuestInstanceID); |
| 736 method_bindings_.push_back(new BrowserPluginBindingSetPermission); | |
| 737 method_bindings_.push_back(new BrowserPluginBindingTrackObjectLifetime); | 710 method_bindings_.push_back(new BrowserPluginBindingTrackObjectLifetime); |
| 738 | 711 |
| 739 property_bindings_.push_back(new BrowserPluginPropertyBindingAutoSize); | 712 property_bindings_.push_back(new BrowserPluginPropertyBindingAutoSize); |
| 740 property_bindings_.push_back(new BrowserPluginPropertyBindingContentWindow); | 713 property_bindings_.push_back(new BrowserPluginPropertyBindingContentWindow); |
| 741 property_bindings_.push_back(new BrowserPluginPropertyBindingMaxHeight); | 714 property_bindings_.push_back(new BrowserPluginPropertyBindingMaxHeight); |
| 742 property_bindings_.push_back(new BrowserPluginPropertyBindingMaxWidth); | 715 property_bindings_.push_back(new BrowserPluginPropertyBindingMaxWidth); |
| 743 property_bindings_.push_back(new BrowserPluginPropertyBindingMinHeight); | 716 property_bindings_.push_back(new BrowserPluginPropertyBindingMinHeight); |
| 744 property_bindings_.push_back(new BrowserPluginPropertyBindingMinWidth); | 717 property_bindings_.push_back(new BrowserPluginPropertyBindingMinWidth); |
| 745 property_bindings_.push_back(new BrowserPluginPropertyBindingName); | 718 property_bindings_.push_back(new BrowserPluginPropertyBindingName); |
| 746 property_bindings_.push_back(new BrowserPluginPropertyBindingPartition); | 719 property_bindings_.push_back(new BrowserPluginPropertyBindingPartition); |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 817 for (PropertyBindingList::iterator iter = property_bindings_.begin(); | 790 for (PropertyBindingList::iterator iter = property_bindings_.begin(); |
| 818 iter != property_bindings_.end(); | 791 iter != property_bindings_.end(); |
| 819 ++iter) { | 792 ++iter) { |
| 820 if ((*iter)->MatchesName(name)) | 793 if ((*iter)->MatchesName(name)) |
| 821 return (*iter)->GetProperty(this, result); | 794 return (*iter)->GetProperty(this, result); |
| 822 } | 795 } |
| 823 return false; | 796 return false; |
| 824 } | 797 } |
| 825 | 798 |
| 826 } // namespace content | 799 } // namespace content |
| OLD | NEW |