From 1ca4fac072a12890b72b899b48da00617f8429ef Mon Sep 17 00:00:00 2001 From: "jochen@chromium.org" <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> Date: Mon, 8 Apr 2013 14:15:11 +0000 Subject: [content shell] add support for invoking testRunner.notifyDone in a different process Some layout tests, e.g. http/tests/navigation/no-referrer-target-blank.html create a new process, and notifyDone() will be invoked in that new process. Add support for forwarding that signal to the main test runner. BUG=111316 R=mkwst@chromium.org TEST=http/tests/navigation/no-referrer-target-blank.html does not time out Review URL: https://codereview.chromium.org/13795002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192819 0039d316-1c4b-4281-b951-d872f2087c98 --- content/shell/notify_done_forwarder.cc | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 content/shell/notify_done_forwarder.cc (limited to 'content/shell/notify_done_forwarder.cc') diff --git a/content/shell/notify_done_forwarder.cc b/content/shell/notify_done_forwarder.cc new file mode 100644 index 0000000..7de67ed --- /dev/null +++ b/content/shell/notify_done_forwarder.cc @@ -0,0 +1,33 @@ +// Copyright (c) 2013 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/notify_done_forwarder.h" + +#include "content/shell/shell_messages.h" +#include "content/shell/webkit_test_controller.h" + +namespace content { + +DEFINE_WEB_CONTENTS_USER_DATA_KEY(NotifyDoneForwarder); + +NotifyDoneForwarder::NotifyDoneForwarder(WebContents* web_contents) + : WebContentsObserver(web_contents) {} + +NotifyDoneForwarder::~NotifyDoneForwarder() {} + +bool NotifyDoneForwarder::OnMessageReceived(const IPC::Message& message) { + bool handled = true; + IPC_BEGIN_MESSAGE_MAP(NotifyDoneForwarder, message) + IPC_MESSAGE_HANDLER(ShellViewHostMsg_TestFinishedInSecondaryWindow, + OnTestFinishedInSecondaryWindow) + IPC_MESSAGE_UNHANDLED(handled = false) + IPC_END_MESSAGE_MAP() + return handled; +} + +void NotifyDoneForwarder::OnTestFinishedInSecondaryWindow() { + WebKitTestController::Get()->TestFinishedInSecondaryWindow(); +} + +} // namespace content -- cgit v1.1