Index: content/renderer/browser_plugin/browser_plugin_bindings.cc |
diff --git a/content/renderer/browser_plugin/browser_plugin_bindings.cc b/content/renderer/browser_plugin/browser_plugin_bindings.cc |
index a9d5bb97b8666511ec7e5ba0ce2ff92c6d0f9437..8420e09662b65236fac8dfcaa6326afb2591b8ae 100644 |
--- a/content/renderer/browser_plugin/browser_plugin_bindings.cc |
+++ b/content/renderer/browser_plugin/browser_plugin_bindings.cc |
@@ -37,14 +37,15 @@ namespace content { |
namespace { |
-const char kAddEventListener[] = "addEventListener"; |
+const char kAddEventListener[] = "addCustomEventListener"; |
+const char kContentWindow[] = "contentWindow"; |
const char kBackMethod[] = "back"; |
const char kForwardMethod[] = "forward"; |
const char kGetProcessId[] = "getProcessId"; |
const char kGoMethod[] = "go"; |
const char kPartitionAttribute[] = "partition"; |
const char kReloadMethod[] = "reload"; |
-const char kRemoveEventListener[] = "removeEventListener"; |
+const char kRemoveEventListener[] = "removeCustomEventListener"; |
const char kSrcAttribute[] = "src"; |
const char kStopMethod[] = "stop"; |
@@ -65,6 +66,10 @@ bool IdentifierIsAddEventListener(NPIdentifier identifier) { |
return WebBindings::getStringIdentifier(kAddEventListener) == identifier; |
} |
+bool IdentifierIsContentWindow(NPIdentifier identifier) { |
+ return WebBindings::getStringIdentifier(kContentWindow) == identifier; |
+} |
+ |
bool IdentifierIsBackMethod(NPIdentifier identifier) { |
return WebBindings::getStringIdentifier(kBackMethod) == identifier; |
} |
@@ -251,6 +256,7 @@ bool BrowserPluginBindingsInvokeDefault(NPObject* np_obj, |
bool BrowserPluginBindingsHasProperty(NPObject* np_obj, NPIdentifier name) { |
return IdentifierIsSrcAttribute(name) || |
+ IdentifierIsContentWindow(name) || |
IdentifierIsPartitionAttribute(name); |
} |
@@ -273,6 +279,14 @@ bool BrowserPluginBindingsGetProperty(NPObject* np_obj, NPIdentifier name, |
return StringToNPVariant(src, result); |
} |
+ if (IdentifierIsContentWindow(name)) { |
+ NPObject* obj = bindings->instance()->GetContentWindow(); |
+ result->type = NPVariantType_Object; |
+ WebBindings::retainObject(obj); |
nasko
2012/10/02 17:52:31
Do we need to have an extra explicit retainObject?
Fady Samuel
2012/10/02 22:04:08
Ooops, good catch fixed.
|
+ result->value.objectValue = WebBindings::retainObject(obj); |
+ return true; |
+ } |
+ |
if (IdentifierIsPartitionAttribute(name)) { |
std::string partition_id = bindings->instance()->GetPartitionAttribute(); |
return StringToNPVariant(partition_id, result); |