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 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
320 const NPVariant* args, | 320 const NPVariant* args, |
321 NPVariant* result) OVERRIDE { | 321 NPVariant* result) OVERRIDE { |
322 bindings->instance()->TrackObjectLifetime(args, IntFromNPVariant(args[1])); | 322 bindings->instance()->TrackObjectLifetime(args, IntFromNPVariant(args[1])); |
323 return true; | 323 return true; |
324 } | 324 } |
325 | 325 |
326 private: | 326 private: |
327 DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingTrackObjectLifetime); | 327 DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingTrackObjectLifetime); |
328 }; | 328 }; |
329 | 329 |
330 // Note: This is a method that is used internally by the <webview> shim only. | |
331 // This should not be exposed to developers. | |
332 class BrowserPluginBindingSetPermission : public BrowserPluginMethodBinding { | |
333 public: | |
334 BrowserPluginBindingSetPermission() | |
335 : BrowserPluginMethodBinding( | |
336 browser_plugin::kMethodInternalSetPermission, 3) { | |
337 } | |
338 | |
339 virtual bool Invoke(BrowserPluginBindings* bindings, | |
340 const NPVariant* args, | |
341 NPVariant* result) OVERRIDE { | |
342 int request_id = IntFromNPVariant(args[0]); | |
343 bool allow = NPVARIANT_TO_BOOLEAN(args[1]); | |
344 std::string user_input = StringFromNPVariant(args[2]); | |
345 bool request_was_pending = | |
346 bindings->instance()->RespondPermissionIfRequestIsPending( | |
347 request_id, allow, user_input); | |
348 BOOLEAN_TO_NPVARIANT(request_was_pending, *result); | |
349 return true; | |
350 } | |
351 | |
352 private: | |
353 DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingSetPermission); | |
354 }; | |
355 | |
356 // BrowserPluginPropertyBinding ------------------------------------------------ | 330 // BrowserPluginPropertyBinding ------------------------------------------------ |
357 | 331 |
358 class BrowserPluginPropertyBinding { | 332 class BrowserPluginPropertyBinding { |
359 public: | 333 public: |
360 explicit BrowserPluginPropertyBinding(const char name[]) : name_(name) {} | 334 explicit BrowserPluginPropertyBinding(const char name[]) : name_(name) {} |
361 virtual ~BrowserPluginPropertyBinding() {} | 335 virtual ~BrowserPluginPropertyBinding() {} |
362 const std::string& name() const { return name_; } | 336 const std::string& name() const { return name_; } |
363 bool MatchesName(NPIdentifier name) const { | 337 bool MatchesName(NPIdentifier name) const { |
364 return WebBindings::getStringIdentifier(name_.c_str()) == name; | 338 return WebBindings::getStringIdentifier(name_.c_str()) == name; |
365 } | 339 } |
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
705 weak_ptr_factory_(this) { | 679 weak_ptr_factory_(this) { |
706 NPObject* obj = | 680 NPObject* obj = |
707 WebBindings::createObject(instance->pluginNPP(), | 681 WebBindings::createObject(instance->pluginNPP(), |
708 &browser_plugin_message_class); | 682 &browser_plugin_message_class); |
709 np_object_ = static_cast<BrowserPluginBindings::BrowserPluginNPObject*>(obj); | 683 np_object_ = static_cast<BrowserPluginBindings::BrowserPluginNPObject*>(obj); |
710 np_object_->message_channel = weak_ptr_factory_.GetWeakPtr(); | 684 np_object_->message_channel = weak_ptr_factory_.GetWeakPtr(); |
711 | 685 |
712 method_bindings_.push_back(new BrowserPluginBindingAttach); | 686 method_bindings_.push_back(new BrowserPluginBindingAttach); |
713 method_bindings_.push_back(new BrowserPluginBindingAttachWindowTo); | 687 method_bindings_.push_back(new BrowserPluginBindingAttachWindowTo); |
714 method_bindings_.push_back(new BrowserPluginBindingGetGuestInstanceID); | 688 method_bindings_.push_back(new BrowserPluginBindingGetGuestInstanceID); |
715 method_bindings_.push_back(new BrowserPluginBindingSetPermission); | |
716 method_bindings_.push_back(new BrowserPluginBindingTrackObjectLifetime); | 689 method_bindings_.push_back(new BrowserPluginBindingTrackObjectLifetime); |
717 | 690 |
718 property_bindings_.push_back(new BrowserPluginPropertyBindingAutoSize); | 691 property_bindings_.push_back(new BrowserPluginPropertyBindingAutoSize); |
719 property_bindings_.push_back(new BrowserPluginPropertyBindingContentWindow); | 692 property_bindings_.push_back(new BrowserPluginPropertyBindingContentWindow); |
720 property_bindings_.push_back(new BrowserPluginPropertyBindingMaxHeight); | 693 property_bindings_.push_back(new BrowserPluginPropertyBindingMaxHeight); |
721 property_bindings_.push_back(new BrowserPluginPropertyBindingMaxWidth); | 694 property_bindings_.push_back(new BrowserPluginPropertyBindingMaxWidth); |
722 property_bindings_.push_back(new BrowserPluginPropertyBindingMinHeight); | 695 property_bindings_.push_back(new BrowserPluginPropertyBindingMinHeight); |
723 property_bindings_.push_back(new BrowserPluginPropertyBindingMinWidth); | 696 property_bindings_.push_back(new BrowserPluginPropertyBindingMinWidth); |
724 property_bindings_.push_back(new BrowserPluginPropertyBindingName); | 697 property_bindings_.push_back(new BrowserPluginPropertyBindingName); |
725 property_bindings_.push_back(new BrowserPluginPropertyBindingPartition); | 698 property_bindings_.push_back(new BrowserPluginPropertyBindingPartition); |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
796 for (PropertyBindingList::iterator iter = property_bindings_.begin(); | 769 for (PropertyBindingList::iterator iter = property_bindings_.begin(); |
797 iter != property_bindings_.end(); | 770 iter != property_bindings_.end(); |
798 ++iter) { | 771 ++iter) { |
799 if ((*iter)->MatchesName(name)) | 772 if ((*iter)->MatchesName(name)) |
800 return (*iter)->GetProperty(this, result); | 773 return (*iter)->GetProperty(this, result); |
801 } | 774 } |
802 return false; | 775 return false; |
803 } | 776 } |
804 | 777 |
805 } // namespace content | 778 } // namespace content |
OLD | NEW |