Chromium Code Reviews| 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); |