Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(736)

Unified Diff: trunk/src/content/renderer/browser_plugin/browser_plugin_bindings.cc

Issue 446823002: Revert 287732 "<webview>: Move autosize from content to chrome." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: trunk/src/content/renderer/browser_plugin/browser_plugin_bindings.cc
===================================================================
--- trunk/src/content/renderer/browser_plugin/browser_plugin_bindings.cc (revision 287745)
+++ trunk/src/content/renderer/browser_plugin/browser_plugin_bindings.cc (working copy)
@@ -320,6 +320,39 @@
DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingAllowTransparency);
};
+class BrowserPluginPropertyBindingAutoSize
+ : public BrowserPluginPropertyBinding {
+ public:
+ BrowserPluginPropertyBindingAutoSize()
+ : BrowserPluginPropertyBinding(browser_plugin::kAttributeAutoSize) {
+ }
+ virtual bool GetProperty(BrowserPluginBindings* bindings,
+ NPVariant* result) OVERRIDE {
+ bool auto_size = bindings->instance()->GetAutoSizeAttribute();
+ BOOLEAN_TO_NPVARIANT(auto_size, *result);
+ return true;
+ }
+ virtual bool SetProperty(BrowserPluginBindings* bindings,
+ NPObject* np_obj,
+ const NPVariant* variant) OVERRIDE {
+ std::string value = StringFromNPVariant(*variant);
+ if (!bindings->instance()->HasDOMAttribute(name())) {
+ UpdateDOMAttribute(bindings, value);
+ bindings->instance()->ParseAutoSizeAttribute();
+ } else {
+ UpdateDOMAttribute(bindings, value);
+ }
+ return true;
+ }
+ virtual void RemoveProperty(BrowserPluginBindings* bindings,
+ NPObject* np_obj) OVERRIDE {
+ bindings->instance()->RemoveDOMAttribute(name());
+ bindings->instance()->ParseAutoSizeAttribute();
+ }
+ private:
+ DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingAutoSize);
+};
+
class BrowserPluginPropertyBindingContentWindow
: public BrowserPluginPropertyBinding {
public:
@@ -346,7 +379,131 @@
DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingContentWindow);
};
+class BrowserPluginPropertyBindingMaxHeight
+ : public BrowserPluginPropertyBinding {
+ public:
+ BrowserPluginPropertyBindingMaxHeight()
+ : BrowserPluginPropertyBinding(browser_plugin::kAttributeMaxHeight) {
+ }
+ virtual bool GetProperty(BrowserPluginBindings* bindings,
+ NPVariant* result) OVERRIDE {
+ int max_height = bindings->instance()->GetMaxHeightAttribute();
+ INT32_TO_NPVARIANT(max_height, *result);
+ return true;
+ }
+ virtual bool SetProperty(BrowserPluginBindings* bindings,
+ NPObject* np_obj,
+ const NPVariant* variant) OVERRIDE {
+ int new_value = IntFromNPVariant(*variant);
+ if (bindings->instance()->GetMaxHeightAttribute() != new_value) {
+ UpdateDOMAttribute(bindings, base::IntToString(new_value));
+ bindings->instance()->ParseSizeContraintsChanged();
+ }
+ return true;
+ }
+ virtual void RemoveProperty(BrowserPluginBindings* bindings,
+ NPObject* np_obj) OVERRIDE {
+ bindings->instance()->RemoveDOMAttribute(name());
+ bindings->instance()->ParseSizeContraintsChanged();
+ }
+ private:
+ DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingMaxHeight);
+};
+class BrowserPluginPropertyBindingMaxWidth
+ : public BrowserPluginPropertyBinding {
+ public:
+ BrowserPluginPropertyBindingMaxWidth()
+ : BrowserPluginPropertyBinding(browser_plugin::kAttributeMaxWidth) {
+ }
+ virtual bool GetProperty(BrowserPluginBindings* bindings,
+ NPVariant* result) OVERRIDE {
+ int max_width = bindings->instance()->GetMaxWidthAttribute();
+ INT32_TO_NPVARIANT(max_width, *result);
+ return true;
+ }
+ virtual bool SetProperty(BrowserPluginBindings* bindings,
+ NPObject* np_obj,
+ const NPVariant* variant) OVERRIDE {
+ int new_value = IntFromNPVariant(*variant);
+ if (bindings->instance()->GetMaxWidthAttribute() != new_value) {
+ UpdateDOMAttribute(bindings, base::IntToString(new_value));
+ bindings->instance()->ParseSizeContraintsChanged();
+ }
+ return true;
+ }
+ virtual void RemoveProperty(BrowserPluginBindings* bindings,
+ NPObject* np_obj) OVERRIDE {
+ bindings->instance()->RemoveDOMAttribute(name());
+ bindings->instance()->ParseSizeContraintsChanged();
+ }
+ private:
+ DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingMaxWidth);
+};
+
+class BrowserPluginPropertyBindingMinHeight
+ : public BrowserPluginPropertyBinding {
+ public:
+ BrowserPluginPropertyBindingMinHeight()
+ : BrowserPluginPropertyBinding(browser_plugin::kAttributeMinHeight) {
+ }
+ virtual bool GetProperty(BrowserPluginBindings* bindings,
+ NPVariant* result) OVERRIDE {
+ int min_height = bindings->instance()->GetMinHeightAttribute();
+ INT32_TO_NPVARIANT(min_height, *result);
+ return true;
+ }
+ virtual bool SetProperty(BrowserPluginBindings* bindings,
+ NPObject* np_obj,
+ const NPVariant* variant) OVERRIDE {
+ int new_value = IntFromNPVariant(*variant);
+ if (bindings->instance()->GetMinHeightAttribute() != new_value) {
+ UpdateDOMAttribute(bindings, base::IntToString(new_value));
+ bindings->instance()->ParseSizeContraintsChanged();
+ }
+ return true;
+ }
+ virtual void RemoveProperty(BrowserPluginBindings* bindings,
+ NPObject* np_obj) OVERRIDE {
+ bindings->instance()->RemoveDOMAttribute(name());
+ bindings->instance()->ParseSizeContraintsChanged();
+ }
+ private:
+ DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingMinHeight);
+};
+
+class BrowserPluginPropertyBindingMinWidth
+ : public BrowserPluginPropertyBinding {
+ public:
+ BrowserPluginPropertyBindingMinWidth()
+ : BrowserPluginPropertyBinding(browser_plugin::kAttributeMinWidth) {
+ }
+ virtual bool GetProperty(BrowserPluginBindings* bindings,
+ NPVariant* result) OVERRIDE {
+ int min_width = bindings->instance()->GetMinWidthAttribute();
+ INT32_TO_NPVARIANT(min_width, *result);
+ return true;
+ }
+ virtual bool SetProperty(BrowserPluginBindings* bindings,
+ NPObject* np_obj,
+ const NPVariant* variant) OVERRIDE {
+ int new_value = IntFromNPVariant(*variant);
+ if (bindings->instance()->GetMinWidthAttribute() != new_value) {
+ UpdateDOMAttribute(bindings, base::IntToString(new_value));
+ bindings->instance()->ParseSizeContraintsChanged();
+ }
+ return true;
+ }
+ virtual void RemoveProperty(BrowserPluginBindings* bindings,
+ NPObject* np_obj) OVERRIDE {
+ bindings->instance()->RemoveDOMAttribute(name());
+ bindings->instance()->ParseSizeContraintsChanged();
+ }
+ private:
+ DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingMinWidth);
+};
+
+
// BrowserPluginBindings ------------------------------------------------------
BrowserPluginBindings::BrowserPluginNPObject::BrowserPluginNPObject() {
@@ -369,7 +526,12 @@
property_bindings_.push_back(
new BrowserPluginPropertyBindingAllowTransparency);
+ property_bindings_.push_back(new BrowserPluginPropertyBindingAutoSize);
property_bindings_.push_back(new BrowserPluginPropertyBindingContentWindow);
+ property_bindings_.push_back(new BrowserPluginPropertyBindingMaxHeight);
+ property_bindings_.push_back(new BrowserPluginPropertyBindingMaxWidth);
+ property_bindings_.push_back(new BrowserPluginPropertyBindingMinHeight);
+ property_bindings_.push_back(new BrowserPluginPropertyBindingMinWidth);
}
BrowserPluginBindings::~BrowserPluginBindings() {

Powered by Google App Engine
This is Rietveld 408576698