Index: chrome/renderer/extensions/document_custom_bindings.cc |
diff --git a/chrome/renderer/extensions/document_custom_bindings.cc b/chrome/renderer/extensions/document_custom_bindings.cc |
index 253b6127f358417c2c39f01c661e53930a12d813..6342d31f1ae78c22211181820e82e66fbaa8f867 100644 |
--- a/chrome/renderer/extensions/document_custom_bindings.cc |
+++ b/chrome/renderer/extensions/document_custom_bindings.cc |
@@ -7,6 +7,7 @@ |
#include <string> |
#include "base/bind.h" |
+#include "chrome/common/extensions/extension.h" |
#include "chrome/renderer/extensions/chrome_v8_context.h" |
#include "third_party/WebKit/public/web/WebDocument.h" |
#include "third_party/WebKit/public/web/WebFrame.h" |
@@ -20,6 +21,27 @@ DocumentCustomBindings::DocumentCustomBindings( |
RouteFunction("RegisterElement", |
base::Bind(&DocumentCustomBindings::RegisterElement, |
base::Unretained(this))); |
+ RouteFunction("CompareURLs", |
+ base::Bind(&DocumentCustomBindings::CompareURLs, |
+ base::Unretained(this))); |
+} |
+ |
+void DocumentCustomBindings::CompareURLs( |
+ const v8::FunctionCallbackInfo<v8::Value>& args) { |
+ if (args.Length() != 2 || !args[0]->IsString() || !args[1]->IsString()) { |
+ NOTREACHED(); |
+ return; |
+ } |
+ |
+ GURL default_url(context()->extension()->url()); |
+ |
+ std::string url1_str(*v8::String::AsciiValue(args[0])); |
+ std::string url2_str(*v8::String::AsciiValue(args[1])); |
+ |
+ GURL resolved_url1(default_url.Resolve(url1_str)); |
+ GURL resolved_url2(default_url.Resolve(url2_str)); |
+ |
+ args.GetReturnValue().Set(v8::Boolean::New(resolved_url1 == resolved_url2)); |
} |
// Attach an event name to an object. |