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

Unified Diff: content/browser/debugger/devtools_manager_unittest.cc

Issue 7565008: DevTools: don't show the unresponsive dialog for inspected tabs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Don't reset DevToolsManager Created 9 years, 4 months 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 | « chrome/test/testing_browser_process.cc ('k') | content/browser/tab_contents/tab_contents.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/debugger/devtools_manager_unittest.cc
diff --git a/content/browser/debugger/devtools_manager_unittest.cc b/content/browser/debugger/devtools_manager_unittest.cc
index 62accb22ac9182d025a72fd029224519d602f373..304bcd97bd220dac86199202f906211d9474f8b0 100644
--- a/content/browser/debugger/devtools_manager_unittest.cc
+++ b/content/browser/debugger/devtools_manager_unittest.cc
@@ -3,11 +3,16 @@
// found in the LICENSE file.
#include "base/basictypes.h"
+#include "base/time.h"
#include "content/browser/debugger/devtools_client_host.h"
#include "content/browser/debugger/devtools_manager.h"
#include "content/browser/renderer_host/test_render_view_host.h"
+#include "content/browser/tab_contents/tab_contents_delegate.h"
+#include "content/browser/tab_contents/test_tab_contents.h"
#include "testing/gtest/include/gtest/gtest.h"
+using base::TimeDelta;
+
namespace {
class TestDevToolsClientHost : public DevToolsClientHost {
@@ -59,6 +64,24 @@ class TestDevToolsClientHost : public DevToolsClientHost {
int TestDevToolsClientHost::close_counter = 0;
+
+class TestTabContentsDelegate : public TabContentsDelegate {
+ public:
+ TestTabContentsDelegate() : renderer_unresponsive_received_(false) {}
+
+ // Notification that the tab is hung.
+ virtual void RendererUnresponsive(TabContents* source) {
+ renderer_unresponsive_received_ = true;
+ }
+
+ bool renderer_unresponsive_received() const {
+ return renderer_unresponsive_received_;
+ }
+
+ private:
+ bool renderer_unresponsive_received_;
+};
+
} // namespace
class DevToolsManagerTest : public RenderViewHostTestHarness {
@@ -111,3 +134,38 @@ TEST_F(DevToolsManagerTest, ForwardMessageToClient) {
client_host.Close();
EXPECT_EQ(1, TestDevToolsClientHost::close_counter);
}
+
+TEST_F(DevToolsManagerTest, NoUnresponsiveDialogInInspectedTab) {
+ TestRenderViewHost* inspected_rvh = rvh();
+ inspected_rvh->set_render_view_created(true);
+ EXPECT_FALSE(contents()->delegate());
+ TestTabContentsDelegate delegate;
+ contents()->set_delegate(&delegate);
+
+ testing_browser_process_.get()->SetDevToolsManager(new DevToolsManager());
+ DevToolsManager* manager = DevToolsManager::GetInstance();
+ ASSERT_TRUE(manager);
+
+ TestDevToolsClientHost client_host;
+ manager->RegisterDevToolsClientHostFor(inspected_rvh, &client_host);
+
+ // Start with a short timeout.
+ inspected_rvh->StartHangMonitorTimeout(TimeDelta::FromMilliseconds(10));
+ // Wait long enough for first timeout and see if it fired.
+ MessageLoop::current()->PostDelayedTask(FROM_HERE,
+ new MessageLoop::QuitTask(), 10);
+ MessageLoop::current()->Run();
+ EXPECT_FALSE(delegate.renderer_unresponsive_received());
+
+ // Now close devtools and check that the notification is delivered.
+ client_host.Close();
+ // Start with a short timeout.
+ inspected_rvh->StartHangMonitorTimeout(TimeDelta::FromMilliseconds(10));
+ // Wait long enough for first timeout and see if it fired.
+ MessageLoop::current()->PostDelayedTask(FROM_HERE,
+ new MessageLoop::QuitTask(), 10);
+ MessageLoop::current()->Run();
+ EXPECT_TRUE(delegate.renderer_unresponsive_received());
+
+ contents()->set_delegate(NULL);
+}
« no previous file with comments | « chrome/test/testing_browser_process.cc ('k') | content/browser/tab_contents/tab_contents.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698