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 56230a5f84c9e7f7ef3bf6cb3b953080c147fae1..afb0556a27f35540af3215421dd71dc304f61857 100644 |
--- a/content/renderer/browser_plugin/browser_plugin_bindings.cc |
+++ b/content/renderer/browser_plugin/browser_plugin_bindings.cc |
@@ -39,6 +39,8 @@ namespace { |
const char kAddEventListener[] = "addEventListener"; |
const char kBackMethod[] = "back"; |
+const char kCanGoBack[] = "canGoBack"; |
+const char kCanGoForward[] = "canGoForward"; |
const char kForwardMethod[] = "forward"; |
const char kGetProcessId[] = "getProcessId"; |
const char kGoMethod[] = "go"; |
@@ -62,6 +64,14 @@ bool IdentifierIsBackMethod(NPIdentifier identifier) { |
return WebBindings::getStringIdentifier(kBackMethod) == identifier; |
} |
+bool IdentifierIsCanGoBack(NPIdentifier identifier) { |
+ return WebBindings::getStringIdentifier(kCanGoBack) == identifier; |
+} |
+ |
+bool IdentifierIsCanGoForward(NPIdentifier identifier) { |
+ return WebBindings::getStringIdentifier(kCanGoForward) == identifier; |
+} |
+ |
bool IdentifierIsForwardMethod(NPIdentifier identifier) { |
return WebBindings::getStringIdentifier(kForwardMethod) == identifier; |
} |
@@ -151,6 +161,12 @@ bool BrowserPluginBindingsHasMethod(NPObject* np_obj, NPIdentifier name) { |
if (IdentifierIsBackMethod(name)) |
return true; |
+ if (IdentifierIsCanGoBack(name)) |
+ return true; |
+ |
+ if (IdentifierIsCanGoForward(name)) |
+ return true; |
+ |
if (IdentifierIsForwardMethod(name)) |
return true; |
@@ -207,6 +223,18 @@ bool BrowserPluginBindingsInvoke(NPObject* np_obj, NPIdentifier name, |
return true; |
} |
+ if (IdentifierIsCanGoBack(name) && !arg_count) { |
+ result->type = NPVariantType_Bool; |
+ result->value.boolValue = bindings->instance()->CanGoBack(); |
+ return true; |
+ } |
+ |
+ if (IdentifierIsCanGoForward(name) && !arg_count) { |
+ result->type = NPVariantType_Bool; |
+ result->value.boolValue = bindings->instance()->CanGoForward(); |
+ return true; |
+ } |
+ |
if (IdentifierIsForwardMethod(name) && !arg_count) { |
bindings->instance()->Forward(); |
return true; |