Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(708)

Unified Diff: content/shell/webkit_test_runner.cc

Issue 11572041: [content shell] implement additional URL handling methods of the WebTestDelegate (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/shell/webkit_test_runner.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/shell/webkit_test_runner.cc
diff --git a/content/shell/webkit_test_runner.cc b/content/shell/webkit_test_runner.cc
index 20a06c7aa7ca1d8bc3dd598cb7e826a81ea2f7c6..69210e6049ac591b8e8290c4de38e10316222f9f 100644
--- a/content/shell/webkit_test_runner.cc
+++ b/content/shell/webkit_test_runner.cc
@@ -6,6 +6,7 @@
#include <cmath>
+#include "base/base64.h"
#include "base/md5.h"
#include "base/memory/scoped_ptr.h"
#include "base/message_loop.h"
@@ -19,11 +20,6 @@
#include "content/shell/shell_render_process_observer.h"
#include "net/base/net_util.h"
#include "skia/ext/platform_canvas.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebCString.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebRect.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebSize.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebContextMenuData.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebDevToolsAgent.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h"
@@ -31,6 +27,12 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebKit.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebCString.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebRect.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebSize.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURL.h"
#include "third_party/WebKit/Tools/DumpRenderTree/chromium/TestRunner/public/WebTask.h"
#include "third_party/WebKit/Tools/DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h"
#include "webkit/base/file_path_string_conversions.h"
@@ -45,6 +47,7 @@ using WebKit::WebGamepads;
using WebKit::WebRect;
using WebKit::WebSize;
using WebKit::WebString;
+using WebKit::WebURL;
using WebKit::WebVector;
using WebKit::WebView;
using WebTestRunner::WebPreferences;
@@ -236,6 +239,44 @@ WebString WebKitTestRunner::getAbsoluteWebStringFromUTF8Path(
return webkit_base::FilePathToWebString(path);
}
+WebURL WebKitTestRunner::localFileToDataURL(const WebURL& file_url) {
+ FilePath local_path;
+ if (!net::FileURLToFilePath(file_url, &local_path))
+ return WebURL();
+
+ std::string contents;
+ Send(new ShellViewHostMsg_ReadFileToString(
+ routing_id(), local_path, &contents));
+
+ std::string contents_base64;
+ if (!base::Base64Encode(contents, &contents_base64))
+ return WebURL();
+
+ const char data_url_prefix[] = "data:text/css:charset=utf-8;base64,";
+ return WebURL(GURL(data_url_prefix + contents_base64));
+}
+
+WebURL WebKitTestRunner::rewriteLayoutTestsURL(const std::string& utf8_url) {
+ const char kPrefix[] = "file:///tmp/LayoutTests/";
+ const int kPrefixLen = arraysize(kPrefix) - 1;
+
+ if (utf8_url.compare(0, kPrefixLen, kPrefix, kPrefixLen))
+ return WebURL(GURL(utf8_url));
+
+ FilePath replace_path =
+ ShellRenderProcessObserver::GetInstance()->webkit_source_dir().Append(
+ FILE_PATH_LITERAL("LayoutTests/"));
+#if defined(OS_WIN)
+ std::string utf8_path = WideToUTF8(replace_path.value());
+#else
+ std::string utf8_path =
+ WideToUTF8(base::SysNativeMBToWide(replace_path.value()));
+#endif
+ std::string new_url =
+ std::string("file://") + utf8_path + utf8_url.substr(kPrefixLen);
+ return WebURL(GURL(new_url));
+}
+
WebPreferences* WebKitTestRunner::preferences() {
return &prefs_;
}
« no previous file with comments | « content/shell/webkit_test_runner.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698