#include "chrome/browser/extensions/extension_apitest.h"
#include "chrome/browser/extensions/extension_browsertest.h"
#include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/unpacked_installer.h"
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/profiles/profile.h"
#include "content/public/browser/worker_service_observer.h"
#include "content/public/common/content_switches.h"
#include "content/public/test/browser_test_utils.h"
+#include "extensions/browser/extension_system.h"
#include "extensions/common/switches.h"
#include "net/socket/tcp_listen_socket.h"
#include "net/test/spawned_test_server/spawned_test_server.h"
// files have been loaded) and has runTest method.
ASSERT_TRUE(
content::ExecuteScriptAndExtractString(
- window->GetRenderViewHost(),
+ window->web_contents()->GetRenderViewHost(),
"window.domAutomationController.send("
" '' + (window.uiTests && (typeof uiTests.runTest)));",
&result));
- if (result == "function") {
- ASSERT_TRUE(
- content::ExecuteScriptAndExtractString(
- window->GetRenderViewHost(),
- base::StringPrintf("uiTests.runTest('%s')", test_name),
- &result));
- EXPECT_EQ("[OK]", result);
- } else {
- FAIL() << "DevTools front-end is broken.";
- }
+ ASSERT_EQ("function", result) << "DevTools front-end is broken.";
+ ASSERT_TRUE(content::ExecuteScriptAndExtractString(
+ window->web_contents()->GetRenderViewHost(),
+ base::StringPrintf("uiTests.runTest('%s')", test_name),
+ &result));
+ EXPECT_EQ("[OK]", result);
}
} // namespace
}
void LoadTestPage(const std::string& test_page) {
- content::WindowedNotificationObserver load_observer(
- content::NOTIFICATION_LOAD_STOP,
- content::NotificationService::AllSources());
GURL url = test_server()->GetURL(test_page);
ui_test_utils::NavigateToURL(browser(), url);
- load_observer.Wait();
}
void OpenDevToolsWindow(const std::string& test_page, bool is_docked) {
ASSERT_TRUE(test_server()->Start());
LoadTestPage(test_page);
- content::WindowedNotificationObserver observer(
- content::NOTIFICATION_LOAD_STOP,
- content::NotificationService::AllSources());
inspected_rvh_ = GetInspectedTab()->GetRenderViewHost();
window_ =
DevToolsWindow::OpenDevToolsWindowForTest(inspected_rvh_, is_docked);
- observer.Wait();
+ ui_test_utils::WaitUntilDevToolsWindowLoaded(window_);
}
WebContents* GetInspectedTab() {
DevToolsWindow* OpenDevToolWindowOnWebContents(
content::WebContents* contents, bool is_docked) {
- content::WindowedNotificationObserver observer(
- content::NOTIFICATION_LOAD_STOP,
- content::NotificationService::AllSources());
DevToolsWindow* window = DevToolsWindow::OpenDevToolsWindowForTest(
contents->GetRenderViewHost(), is_docked);
- observer.Wait();
+ ui_test_utils::WaitUntilDevToolsWindowLoaded(window);
return window;
}
};
void TimeoutCallback(const std::string& timeout_message) {
- FAIL() << timeout_message;
+ ADD_FAILURE() << timeout_message;
base::MessageLoop::current()->Quit();
}
size_t num_before = service->extensions()->size();
{
content::NotificationRegistrar registrar;
- registrar.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED,
+ registrar.Add(this,
+ chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED,
content::NotificationService::AllSources());
base::CancelableClosure timeout(
base::Bind(&TimeoutCallback, "Extension load timed out."));
const content::NotificationSource& source,
const content::NotificationDetails& details) OVERRIDE {
switch (type) {
- case chrome::NOTIFICATION_EXTENSION_LOADED:
+ case chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED:
case chrome::NOTIFICATION_EXTENSION_HOST_DID_STOP_LOADING:
base::MessageLoopForUI::current()->Quit();
break;
}
static void TerminateWorkerOnIOThread(scoped_refptr<WorkerData> worker_data) {
- if (WorkerService::GetInstance()->TerminateWorker(
- worker_data->worker_process_id, worker_data->worker_route_id)) {
- WorkerService::GetInstance()->AddObserver(
- new WorkerTerminationObserver(worker_data.get()));
- return;
- }
- FAIL() << "Failed to terminate worker.\n";
+ if (!WorkerService::GetInstance()->TerminateWorker(
+ worker_data->worker_process_id, worker_data->worker_route_id))
+ FAIL() << "Failed to terminate worker.\n";
+ WorkerService::GetInstance()->AddObserver(
+ new WorkerTerminationObserver(worker_data.get()));
}
static void TerminateWorker(scoped_refptr<WorkerData> worker_data) {
worker_data->worker_process_id,
worker_data->worker_route_id));
window_ = DevToolsWindow::OpenDevToolsWindowForWorker(profile, agent_host);
- RenderViewHost* client_rvh = window_->GetRenderViewHost();
+ RenderViewHost* client_rvh = window_->web_contents()->GetRenderViewHost();
WebContents* client_contents = WebContents::FromRenderViewHost(client_rvh);
- if (client_contents->IsLoading()) {
- content::WindowedNotificationObserver observer(
- content::NOTIFICATION_LOAD_STOP,
- content::Source<NavigationController>(
- &client_contents->GetController()));
- observer.Wait();
- }
+ content::WaitForLoadStop(client_contents);
}
void CloseDevToolsWindow() {
content::WindowedNotificationObserver close_observer(
chrome::NOTIFICATION_BROWSER_CLOSED,
content::Source<Browser>(browser()));
- chrome::StartKeepAlive();
+ chrome::IncrementKeepAliveCount();
chrome::CloseAllBrowsers();
AcceptModalDialog();
AcceptModalDialog();
IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestDevToolsExternalNavigation) {
OpenDevToolsWindow(kDebuggerTestPage, true);
GURL url = test_server()->GetURL(kNavigateBackTestPage);
+ // TODO(dgozman): remove this once notifications are gone.
+ // Right now notifications happen after observers, so DevTools window is
+ // already loaded, but we still catch it's notification when looking for
+ // all sources.
+ content::WaitForLoadStop(window_->web_contents());
content::WindowedNotificationObserver observer(
content::NOTIFICATION_LOAD_STOP,
content::NotificationService::AllSources());
observer.Wait();
ASSERT_TRUE(window_->web_contents()->GetURL().
- SchemeIs(chrome::kChromeDevToolsScheme));
- ASSERT_EQ(GetInspectedTab()->GetURL(), url);
+ SchemeIs(content::kChromeDevToolsScheme));
+ ASSERT_EQ(url, GetInspectedTab()->GetURL());
CloseDevToolsWindow();
}
-#if defined(OS_WIN) || defined(OS_MACOSX)
-// Flakily times out: http://crbug.com/163411
-#define MAYBE_TestReattachAfterCrash DISABLED_TestReattachAfterCrash
-#else
-#define MAYBE_TestReattachAfterCrash TestReattachAfterCrash
-#endif
// Tests that inspector will reattach to inspected page when it is reloaded
// after a crash. See http://crbug.com/101952
-IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, MAYBE_TestReattachAfterCrash) {
- OpenDevToolsWindow(kDebuggerTestPage, false);
-
- content::CrashTab(GetInspectedTab());
- content::WindowedNotificationObserver observer(
- content::NOTIFICATION_LOAD_STOP,
- content::Source<NavigationController>(
- &browser()->tab_strip_model()->GetActiveWebContents()->
- GetController()));
- chrome::Reload(browser(), CURRENT_TAB);
- observer.Wait();
-
- RunTestFunction(window_, "testReattachAfterCrash");
- CloseDevToolsWindow();
+IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestReattachAfterCrash) {
+ RunTest("testReattachAfterCrash", std::string());
}
IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestPageWithNoJavaScript) {
std::string result;
ASSERT_TRUE(
content::ExecuteScriptAndExtractString(
- window_->GetRenderViewHost(),
+ window_->web_contents()->GetRenderViewHost(),
"window.domAutomationController.send("
" '' + (window.uiTests && (typeof uiTests.runTest)));",
&result));