diff options
Diffstat (limited to 'chromium/content/shell/renderer/webkit_test_runner.cc')
-rw-r--r-- | chromium/content/shell/renderer/webkit_test_runner.cc | 703 |
1 files changed, 0 insertions, 703 deletions
diff --git a/chromium/content/shell/renderer/webkit_test_runner.cc b/chromium/content/shell/renderer/webkit_test_runner.cc deleted file mode 100644 index e9b96aecddb..00000000000 --- a/chromium/content/shell/renderer/webkit_test_runner.cc +++ /dev/null @@ -1,703 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/shell/renderer/webkit_test_runner.h" - -#include <algorithm> -#include <clocale> -#include <cmath> - -#include "base/base64.h" -#include "base/command_line.h" -#include "base/debug/debugger.h" -#include "base/files/file_path.h" -#include "base/md5.h" -#include "base/memory/scoped_ptr.h" -#include "base/message_loop/message_loop.h" -#include "base/strings/string_util.h" -#include "base/strings/stringprintf.h" -#include "base/strings/sys_string_conversions.h" -#include "base/strings/utf_string_conversions.h" -#include "base/time/time.h" -#include "content/public/common/content_switches.h" -#include "content/public/common/url_constants.h" -#include "content/public/renderer/history_item_serialization.h" -#include "content/public/renderer/render_view.h" -#include "content/public/renderer/render_view_visitor.h" -#include "content/public/test/layouttest_support.h" -#include "content/shell/common/shell_messages.h" -#include "content/shell/common/webkit_test_helpers.h" -#include "content/shell/renderer/shell_render_process_observer.h" -#include "net/base/net_errors.h" -#include "net/base/net_util.h" -#include "skia/ext/platform_canvas.h" -#include "third_party/WebKit/public/platform/Platform.h" -#include "third_party/WebKit/public/platform/WebCString.h" -#include "third_party/WebKit/public/platform/WebPoint.h" -#include "third_party/WebKit/public/platform/WebRect.h" -#include "third_party/WebKit/public/platform/WebSize.h" -#include "third_party/WebKit/public/platform/WebString.h" -#include "third_party/WebKit/public/platform/WebURL.h" -#include "third_party/WebKit/public/platform/WebURLError.h" -#include "third_party/WebKit/public/platform/WebURLRequest.h" -#include "third_party/WebKit/public/platform/WebURLResponse.h" -#include "third_party/WebKit/public/testing/WebTask.h" -#include "third_party/WebKit/public/testing/WebTestInterfaces.h" -#include "third_party/WebKit/public/testing/WebTestProxy.h" -#include "third_party/WebKit/public/testing/WebTestRunner.h" -#include "third_party/WebKit/public/web/WebArrayBufferView.h" -#include "third_party/WebKit/public/web/WebContextMenuData.h" -#include "third_party/WebKit/public/web/WebDataSource.h" -#include "third_party/WebKit/public/web/WebDevToolsAgent.h" -#include "third_party/WebKit/public/web/WebDocument.h" -#include "third_party/WebKit/public/web/WebElement.h" -#include "third_party/WebKit/public/web/WebFrame.h" -#include "third_party/WebKit/public/web/WebHistoryItem.h" -#include "third_party/WebKit/public/web/WebKit.h" -#include "third_party/WebKit/public/web/WebScriptSource.h" -#include "third_party/WebKit/public/web/WebTestingSupport.h" -#include "third_party/WebKit/public/web/WebView.h" -#include "ui/gfx/rect.h" -#include "webkit/common/webpreferences.h" - -using blink::Platform; -using blink::WebArrayBufferView; -using blink::WebContextMenuData; -using blink::WebDevToolsAgent; -using blink::WebDeviceMotionData; -using blink::WebDeviceOrientationData; -using blink::WebElement; -using blink::WebFrame; -using blink::WebGamepads; -using blink::WebHistoryItem; -using blink::WebPoint; -using blink::WebRect; -using blink::WebScriptSource; -using blink::WebSize; -using blink::WebString; -using blink::WebURL; -using blink::WebURLError; -using blink::WebURLRequest; -using blink::WebTestingSupport; -using blink::WebVector; -using blink::WebView; -using WebTestRunner::WebTask; -using WebTestRunner::WebTestInterfaces; -using WebTestRunner::WebTestProxyBase; - -namespace content { - -namespace { - -void InvokeTaskHelper(void* context) { - WebTask* task = reinterpret_cast<WebTask*>(context); - task->run(); - delete task; -} - -#if !defined(OS_MACOSX) -void MakeBitmapOpaque(SkBitmap* bitmap) { - SkAutoLockPixels lock(*bitmap); - DCHECK_EQ(bitmap->config(), SkBitmap::kARGB_8888_Config); - for (int y = 0; y < bitmap->height(); ++y) { - uint32_t* row = bitmap->getAddr32(0, y); - for (int x = 0; x < bitmap->width(); ++x) - row[x] |= 0xFF000000; // Set alpha bits to 1. - } -} -#endif - -void CopyCanvasToBitmap(SkCanvas* canvas, SkBitmap* snapshot) { - SkBaseDevice* device = skia::GetTopDevice(*canvas); - const SkBitmap& bitmap = device->accessBitmap(false); - const bool success = bitmap.copyTo(snapshot, SkBitmap::kARGB_8888_Config); - DCHECK(success); - -#if !defined(OS_MACOSX) - // Only the expected PNGs for Mac have a valid alpha channel. - if (!CommandLine::ForCurrentProcess()->HasSwitch( - switches::kEnableOverlayFullscreenVideo)) - MakeBitmapOpaque(snapshot); -#endif -} - -class SyncNavigationStateVisitor : public RenderViewVisitor { - public: - SyncNavigationStateVisitor() {} - virtual ~SyncNavigationStateVisitor() {} - - virtual bool Visit(RenderView* render_view) OVERRIDE { - SyncNavigationState(render_view); - return true; - } - private: - DISALLOW_COPY_AND_ASSIGN(SyncNavigationStateVisitor); -}; - -class ProxyToRenderViewVisitor : public RenderViewVisitor { - public: - explicit ProxyToRenderViewVisitor(WebTestProxyBase* proxy) - : proxy_(proxy), - render_view_(NULL) { - } - virtual ~ProxyToRenderViewVisitor() {} - - RenderView* render_view() const { return render_view_; } - - virtual bool Visit(RenderView* render_view) OVERRIDE { - WebKitTestRunner* test_runner = WebKitTestRunner::Get(render_view); - if (!test_runner) { - NOTREACHED(); - return true; - } - if (test_runner->proxy() == proxy_) { - render_view_ = render_view; - return false; - } - return true; - } - - private: - WebTestProxyBase* proxy_; - RenderView* render_view_; - - DISALLOW_COPY_AND_ASSIGN(ProxyToRenderViewVisitor); -}; - -class NavigateAwayVisitor : public RenderViewVisitor { - public: - explicit NavigateAwayVisitor(RenderView* main_render_view) - : main_render_view_(main_render_view) {} - virtual ~NavigateAwayVisitor() {} - - virtual bool Visit(RenderView* render_view) OVERRIDE { - if (render_view == main_render_view_) - return true; - render_view->GetWebView()->mainFrame()->loadRequest( - WebURLRequest(GURL(kAboutBlankURL))); - return true; - } - - private: - RenderView* main_render_view_; - - DISALLOW_COPY_AND_ASSIGN(NavigateAwayVisitor); -}; - -class UseSynchronousResizeModeVisitor : public RenderViewVisitor { - public: - explicit UseSynchronousResizeModeVisitor(bool enable) : enable_(enable) {} - virtual ~UseSynchronousResizeModeVisitor() {} - - virtual bool Visit(RenderView* render_view) OVERRIDE { - UseSynchronousResizeMode(render_view, enable_); - return true; - } - - private: - bool enable_; -}; - -} // namespace - -WebKitTestRunner::WebKitTestRunner(RenderView* render_view) - : RenderViewObserver(render_view), - RenderViewObserverTracker<WebKitTestRunner>(render_view), - proxy_(NULL), - focused_view_(NULL), - is_main_window_(false), - focus_on_next_commit_(false) { - UseMockMediaStreams(render_view); -} - -WebKitTestRunner::~WebKitTestRunner() { -} - -// WebTestDelegate ----------------------------------------------------------- - -void WebKitTestRunner::clearEditCommand() { - render_view()->ClearEditCommands(); -} - -void WebKitTestRunner::setEditCommand(const std::string& name, - const std::string& value) { - render_view()->SetEditCommandForNextKeyEvent(name, value); -} - -void WebKitTestRunner::setGamepadData(const WebGamepads& gamepads) { - SetMockGamepads(gamepads); -} - -void WebKitTestRunner::setDeviceMotionData(const WebDeviceMotionData& data) { - SetMockDeviceMotionData(data); -} - -void WebKitTestRunner::setDeviceOrientationData( - const WebDeviceOrientationData& data) { - SetMockDeviceOrientationData(data); -} - -void WebKitTestRunner::printMessage(const std::string& message) { - Send(new ShellViewHostMsg_PrintMessage(routing_id(), message)); -} - -void WebKitTestRunner::postTask(WebTask* task) { - Platform::current()->callOnMainThread(InvokeTaskHelper, task); -} - -void WebKitTestRunner::postDelayedTask(WebTask* task, long long ms) { - base::MessageLoop::current()->PostDelayedTask( - FROM_HERE, - base::Bind(&WebTask::run, base::Owned(task)), - base::TimeDelta::FromMilliseconds(ms)); -} - -WebString WebKitTestRunner::registerIsolatedFileSystem( - const blink::WebVector<blink::WebString>& absolute_filenames) { - std::vector<base::FilePath> files; - for (size_t i = 0; i < absolute_filenames.size(); ++i) - files.push_back(base::FilePath::FromUTF16Unsafe(absolute_filenames[i])); - std::string filesystem_id; - Send(new ShellViewHostMsg_RegisterIsolatedFileSystem( - routing_id(), files, &filesystem_id)); - return WebString::fromUTF8(filesystem_id); -} - -long long WebKitTestRunner::getCurrentTimeInMillisecond() { - return base::TimeDelta(base::Time::Now() - - base::Time::UnixEpoch()).ToInternalValue() / - base::Time::kMicrosecondsPerMillisecond; -} - -WebString WebKitTestRunner::getAbsoluteWebStringFromUTF8Path( - const std::string& utf8_path) { - base::FilePath path = base::FilePath::FromUTF8Unsafe(utf8_path); - if (!path.IsAbsolute()) { - GURL base_url = - net::FilePathToFileURL(test_config_.current_working_directory.Append( - FILE_PATH_LITERAL("foo"))); - net::FileURLToFilePath(base_url.Resolve(utf8_path), &path); - } - return path.AsUTF16Unsafe(); -} - -WebURL WebKitTestRunner::localFileToDataURL(const WebURL& file_url) { - base::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; - base::Base64Encode(contents, &contents_base64); - - 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)); - - base::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)); -} - -WebTestRunner::WebPreferences* WebKitTestRunner::preferences() { - return &prefs_; -} - -void WebKitTestRunner::applyPreferences() { - WebPreferences prefs = render_view()->GetWebkitPreferences(); - ExportLayoutTestSpecificPreferences(prefs_, &prefs); - render_view()->SetWebkitPreferences(prefs); - Send(new ShellViewHostMsg_OverridePreferences(routing_id(), prefs)); -} - -std::string WebKitTestRunner::makeURLErrorDescription( - const WebURLError& error) { - std::string domain = error.domain.utf8(); - int code = error.reason; - - if (domain == net::kErrorDomain) { - domain = "NSURLErrorDomain"; - switch (error.reason) { - case net::ERR_ABORTED: - code = -999; // NSURLErrorCancelled - break; - case net::ERR_UNSAFE_PORT: - // Our unsafe port checking happens at the network stack level, but we - // make this translation here to match the behavior of stock WebKit. - domain = "WebKitErrorDomain"; - code = 103; - break; - case net::ERR_ADDRESS_INVALID: - case net::ERR_ADDRESS_UNREACHABLE: - case net::ERR_NETWORK_ACCESS_DENIED: - code = -1004; // NSURLErrorCannotConnectToHost - break; - } - } else { - DLOG(WARNING) << "Unknown error domain"; - } - - return base::StringPrintf("<NSError domain %s, code %d, failing URL \"%s\">", - domain.c_str(), code, error.unreachableURL.spec().data()); -} - -void WebKitTestRunner::useUnfortunateSynchronousResizeMode(bool enable) { - UseSynchronousResizeModeVisitor visitor(enable); - RenderView::ForEach(&visitor); -} - -void WebKitTestRunner::enableAutoResizeMode(const WebSize& min_size, - const WebSize& max_size) { - EnableAutoResizeMode(render_view(), min_size, max_size); -} - -void WebKitTestRunner::disableAutoResizeMode(const WebSize& new_size) { - DisableAutoResizeMode(render_view(), new_size); - if (!new_size.isEmpty()) - ForceResizeRenderView(render_view(), new_size); -} - -void WebKitTestRunner::showDevTools() { - Send(new ShellViewHostMsg_ShowDevTools(routing_id())); -} - -void WebKitTestRunner::closeDevTools() { - Send(new ShellViewHostMsg_CloseDevTools(routing_id())); - WebDevToolsAgent* agent = render_view()->GetWebView()->devToolsAgent(); - if (agent) - agent->detach(); -} - -void WebKitTestRunner::evaluateInWebInspector(long call_id, - const std::string& script) { - WebDevToolsAgent* agent = render_view()->GetWebView()->devToolsAgent(); - if (agent) - agent->evaluateInWebInspector(call_id, WebString::fromUTF8(script)); -} - -void WebKitTestRunner::clearAllDatabases() { - Send(new ShellViewHostMsg_ClearAllDatabases(routing_id())); -} - -void WebKitTestRunner::setDatabaseQuota(int quota) { - Send(new ShellViewHostMsg_SetDatabaseQuota(routing_id(), quota)); -} - -void WebKitTestRunner::setDeviceScaleFactor(float factor) { - SetDeviceScaleFactor(render_view(), factor); -} - -void WebKitTestRunner::setFocus(WebTestProxyBase* proxy, bool focus) { - ProxyToRenderViewVisitor visitor(proxy); - RenderView::ForEach(&visitor); - if (!visitor.render_view()) { - NOTREACHED(); - return; - } - - // Check whether the focused view was closed meanwhile. - if (!WebKitTestRunner::Get(focused_view_)) - focused_view_ = NULL; - - if (focus) { - if (focused_view_ != visitor.render_view()) { - if (focused_view_) - SetFocusAndActivate(focused_view_, false); - SetFocusAndActivate(visitor.render_view(), true); - focused_view_ = visitor.render_view(); - } - } else { - if (focused_view_ == visitor.render_view()) { - SetFocusAndActivate(visitor.render_view(), false); - focused_view_ = NULL; - } - } -} - -void WebKitTestRunner::setAcceptAllCookies(bool accept) { - Send(new ShellViewHostMsg_AcceptAllCookies(routing_id(), accept)); -} - -std::string WebKitTestRunner::pathToLocalResource(const std::string& resource) { -#if defined(OS_WIN) - if (resource.find("/tmp/") == 0) { - // We want a temp file. - GURL base_url = net::FilePathToFileURL(test_config_.temp_path); - return base_url.Resolve(resource.substr(strlen("/tmp/"))).spec(); - } -#endif - - // Some layout tests use file://// which we resolve as a UNC path. Normalize - // them to just file:///. - std::string result = resource; - while (StringToLowerASCII(result).find("file:////") == 0) { - result = result.substr(0, strlen("file:///")) + - result.substr(strlen("file:////")); - } - return rewriteLayoutTestsURL(result).spec(); -} - -void WebKitTestRunner::setLocale(const std::string& locale) { - setlocale(LC_ALL, locale.c_str()); -} - -void WebKitTestRunner::testFinished() { - if (!is_main_window_) { - Send(new ShellViewHostMsg_TestFinishedInSecondaryWindow(routing_id())); - return; - } - WebTestInterfaces* interfaces = - ShellRenderProcessObserver::GetInstance()->test_interfaces(); - interfaces->setTestIsRunning(false); - if (interfaces->testRunner()->shouldDumpBackForwardList()) { - SyncNavigationStateVisitor visitor; - RenderView::ForEach(&visitor); - Send(new ShellViewHostMsg_CaptureSessionHistory(routing_id())); - } else { - CaptureDump(); - } -} - -void WebKitTestRunner::closeRemainingWindows() { - NavigateAwayVisitor visitor(render_view()); - RenderView::ForEach(&visitor); - Send(new ShellViewHostMsg_CloseRemainingWindows(routing_id())); -} - -void WebKitTestRunner::deleteAllCookies() { - Send(new ShellViewHostMsg_DeleteAllCookies(routing_id())); -} - -int WebKitTestRunner::navigationEntryCount() { - return GetLocalSessionHistoryLength(render_view()); -} - -void WebKitTestRunner::goToOffset(int offset) { - Send(new ShellViewHostMsg_GoToOffset(routing_id(), offset)); -} - -void WebKitTestRunner::reload() { - Send(new ShellViewHostMsg_Reload(routing_id())); -} - -void WebKitTestRunner::loadURLForFrame(const WebURL& url, - const std::string& frame_name) { - Send(new ShellViewHostMsg_LoadURLForFrame( - routing_id(), url, frame_name)); -} - -bool WebKitTestRunner::allowExternalPages() { - return test_config_.allow_external_pages; -} - -void WebKitTestRunner::captureHistoryForWindow( - WebTestProxyBase* proxy, - WebVector<blink::WebHistoryItem>* history, - size_t* currentEntryIndex) { - size_t pos = 0; - std::vector<int>::iterator id; - for (id = routing_ids_.begin(); id != routing_ids_.end(); ++id, ++pos) { - RenderView* render_view = RenderView::FromRoutingID(*id); - if (!render_view) { - NOTREACHED(); - continue; - } - if (WebKitTestRunner::Get(render_view)->proxy() == proxy) - break; - } - - if (id == routing_ids_.end()) { - NOTREACHED(); - return; - } - size_t num_entries = session_histories_[pos].size(); - *currentEntryIndex = current_entry_indexes_[pos]; - WebVector<WebHistoryItem> result(num_entries); - for (size_t entry = 0; entry < num_entries; ++entry) { - result[entry] = - PageStateToHistoryItem(session_histories_[pos][entry]); - } - history->swap(result); -} - -// RenderViewObserver -------------------------------------------------------- - -void WebKitTestRunner::DidClearWindowObject(WebFrame* frame) { - WebTestingSupport::injectInternalsObject(frame); - ShellRenderProcessObserver::GetInstance()->test_interfaces()->bindTo(frame); -} - -bool WebKitTestRunner::OnMessageReceived(const IPC::Message& message) { - bool handled = true; - IPC_BEGIN_MESSAGE_MAP(WebKitTestRunner, message) - IPC_MESSAGE_HANDLER(ShellViewMsg_SetTestConfiguration, - OnSetTestConfiguration) - IPC_MESSAGE_HANDLER(ShellViewMsg_SessionHistory, OnSessionHistory) - IPC_MESSAGE_HANDLER(ShellViewMsg_Reset, OnReset) - IPC_MESSAGE_HANDLER(ShellViewMsg_NotifyDone, OnNotifyDone) - IPC_MESSAGE_UNHANDLED(handled = false) - IPC_END_MESSAGE_MAP() - - return handled; -} - -void WebKitTestRunner::Navigate(const GURL& url) { - focus_on_next_commit_ = true; - if (!is_main_window_ && - ShellRenderProcessObserver::GetInstance()->main_test_runner() == this) { - WebTestInterfaces* interfaces = - ShellRenderProcessObserver::GetInstance()->test_interfaces(); - interfaces->setTestIsRunning(true); - interfaces->configureForTestWithURL(GURL(), false); - ForceResizeRenderView(render_view(), WebSize(800, 600)); - } -} - -void WebKitTestRunner::DidCommitProvisionalLoad(WebFrame* frame, - bool is_new_navigation) { - if (!focus_on_next_commit_) - return; - focus_on_next_commit_ = false; - render_view()->GetWebView()->setFocusedFrame(frame); -} - -void WebKitTestRunner::DidFailProvisionalLoad(WebFrame* frame, - const WebURLError& error) { - focus_on_next_commit_ = false; -} - -// Public methods - ----------------------------------------------------------- - -void WebKitTestRunner::Reset() { - // The proxy_ is always non-NULL, it is set right after construction. - proxy_->setWidget(render_view()->GetWebView()); - proxy_->reset(); - prefs_.reset(); - routing_ids_.clear(); - session_histories_.clear(); - current_entry_indexes_.clear(); - - render_view()->ClearEditCommands(); - render_view()->GetWebView()->mainFrame()->setName(WebString()); - render_view()->GetWebView()->mainFrame()->clearOpener(); - render_view()->GetWebView()->setPageScaleFactorLimits(-1, -1); - render_view()->GetWebView()->setPageScaleFactor(1, WebPoint(0, 0)); - - // Resetting the internals object also overrides the WebPreferences, so we - // have to sync them to WebKit again. - WebTestingSupport::resetInternalsObject( - render_view()->GetWebView()->mainFrame()); - render_view()->SetWebkitPreferences(render_view()->GetWebkitPreferences()); -} - -// Private methods ----------------------------------------------------------- - -void WebKitTestRunner::CaptureDump() { - WebTestInterfaces* interfaces = - ShellRenderProcessObserver::GetInstance()->test_interfaces(); - - if (interfaces->testRunner()->shouldDumpAsAudio()) { - const WebArrayBufferView* audio_data = - interfaces->testRunner()->audioData(); - std::vector<unsigned char> vector_data( - static_cast<const unsigned char*>(audio_data->baseAddress()), - static_cast<const unsigned char*>(audio_data->baseAddress()) + - audio_data->byteLength()); - Send(new ShellViewHostMsg_AudioDump(routing_id(), vector_data)); - } else { - Send(new ShellViewHostMsg_TextDump(routing_id(), - proxy()->captureTree(false))); - - if (test_config_.enable_pixel_dumping && - interfaces->testRunner()->shouldGeneratePixelResults()) { - SkBitmap snapshot; - CopyCanvasToBitmap(proxy()->capturePixels(), &snapshot); - - SkAutoLockPixels snapshot_lock(snapshot); - base::MD5Digest digest; - base::MD5Sum(snapshot.getPixels(), snapshot.getSize(), &digest); - std::string actual_pixel_hash = base::MD5DigestToBase16(digest); - - if (actual_pixel_hash == test_config_.expected_pixel_hash) { - SkBitmap empty_image; - Send(new ShellViewHostMsg_ImageDump( - routing_id(), actual_pixel_hash, empty_image)); - } else { - Send(new ShellViewHostMsg_ImageDump( - routing_id(), actual_pixel_hash, snapshot)); - } - } - } - - render_view()->GetWebView()->mainFrame()->stopLoading(); - - base::MessageLoop::current()->PostTask( - FROM_HERE, - base::Bind(base::IgnoreResult(&WebKitTestRunner::Send), - base::Unretained(this), - new ShellViewHostMsg_TestFinished(routing_id()))); -} - -void WebKitTestRunner::OnSetTestConfiguration( - const ShellTestConfiguration& params) { - test_config_ = params; - is_main_window_ = true; - - ForceResizeRenderView( - render_view(), - WebSize(params.initial_size.width(), params.initial_size.height())); - setFocus(proxy_, true); - - WebTestInterfaces* interfaces = - ShellRenderProcessObserver::GetInstance()->test_interfaces(); - interfaces->setTestIsRunning(true); - interfaces->configureForTestWithURL(params.test_url, - params.enable_pixel_dumping); -} - -void WebKitTestRunner::OnSessionHistory( - const std::vector<int>& routing_ids, - const std::vector<std::vector<PageState> >& session_histories, - const std::vector<unsigned>& current_entry_indexes) { - routing_ids_ = routing_ids; - session_histories_ = session_histories; - current_entry_indexes_ = current_entry_indexes; - CaptureDump(); -} - -void WebKitTestRunner::OnReset() { - ShellRenderProcessObserver::GetInstance()->test_interfaces()->resetAll(); - Reset(); - // Navigating to about:blank will make sure that no new loads are initiated - // by the renderer. - render_view()->GetWebView()->mainFrame()->loadRequest( - WebURLRequest(GURL(kAboutBlankURL))); - Send(new ShellViewHostMsg_ResetDone(routing_id())); -} - -void WebKitTestRunner::OnNotifyDone() { - render_view()->GetWebView()->mainFrame()->executeScript( - WebScriptSource(WebString::fromUTF8("testRunner.notifyDone();"))); -} - -} // namespace content |