summaryrefslogtreecommitdiffstats
path: root/webkit/tools/test_shell/layout_test_controller.cc
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-21 01:19:46 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-21 01:19:46 +0000
commit9d72e8a3a4beb44db73b7bbe6b76e0eaef623fec (patch)
treebf0c34ace7cda675da622b7a1ebdb6bee1f7cf89 /webkit/tools/test_shell/layout_test_controller.cc
parent9f20a6d0e6153489efe035c860f249c7cbc28890 (diff)
downloadchromium_src-9d72e8a3a4beb44db73b7bbe6b76e0eaef623fec.zip
chromium_src-9d72e8a3a4beb44db73b7bbe6b76e0eaef623fec.tar.gz
chromium_src-9d72e8a3a4beb44db73b7bbe6b76e0eaef623fec.tar.bz2
Plumb whiteListAccessFromOrigin() through Chromium's WebKit API
and enable the related layout tests. BUG=47548,12129 TEST=Covered by layout tests Review URL: http://codereview.chromium.org/174175 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23931 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/tools/test_shell/layout_test_controller.cc')
-rw-r--r--webkit/tools/test_shell/layout_test_controller.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/webkit/tools/test_shell/layout_test_controller.cc b/webkit/tools/test_shell/layout_test_controller.cc
index fe09e99..d226575 100644
--- a/webkit/tools/test_shell/layout_test_controller.cc
+++ b/webkit/tools/test_shell/layout_test_controller.cc
@@ -15,7 +15,9 @@
#include "base/path_service.h"
#include "base/string_util.h"
#include "webkit/api/public/WebFrame.h"
+#include "webkit/api/public/WebKit.h"
#include "webkit/api/public/WebScriptSource.h"
+#include "webkit/api/public/WebURL.h"
#include "webkit/glue/dom_operations.h"
#include "webkit/glue/webpreferences.h"
#include "webkit/glue/webview.h"
@@ -118,6 +120,7 @@ LayoutTestController::LayoutTestController(TestShell* shell) {
BindMethod("setCustomPolicyDelegate", &LayoutTestController::setCustomPolicyDelegate);
BindMethod("waitForPolicyDelegate", &LayoutTestController::waitForPolicyDelegate);
BindMethod("setWillSendRequestReturnsNullOnRedirect", &LayoutTestController::setWillSendRequestReturnsNullOnRedirect);
+ BindMethod("whiteListAccessFromOrigin", &LayoutTestController::whiteListAccessFromOrigin);
// The following are stubs.
BindMethod("dumpAsWebArchive", &LayoutTestController::dumpAsWebArchive);
@@ -425,6 +428,8 @@ void LayoutTestController::Reset() {
globalFlag_.Set(false);
webHistoryItemCount_.Set(0);
+ WebKit::resetOriginAccessWhiteLists();
+
if (close_remaining_windows_) {
// Iterate through the window list and close everything except the original
// shell. We don't want to delete elements as we're iterating, so we copy
@@ -924,3 +929,22 @@ void LayoutTestController::fallbackMethod(
}
result->SetNull();
}
+
+void LayoutTestController::whiteListAccessFromOrigin(
+ const CppArgumentList& args, CppVariant* result)
+{
+ result->SetNull();
+
+ if (args.size() != 4 || !args[0].isString() || !args[1].isString() ||
+ !args[2].isString() || !args[3].isBool())
+ return;
+
+ WebKit::WebURL url(GURL(args[0].ToString()));
+ if (!url.isValid())
+ return;
+
+ WebKit::whiteListAccessFromOrigin(url,
+ WebString::fromUTF8(args[1].ToString()),
+ WebString::fromUTF8(args[2].ToString()),
+ args[3].ToBoolean());
+}