| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/memory/ref_counted.h" | 5 #include "base/memory/ref_counted.h" |
| 6 #include "base/stringprintf.h" | 6 #include "base/stringprintf.h" |
| 7 #include "base/utf_string_conversions.h" |
| 7 #include "chrome/browser/extensions/extension_devtools_browsertest.h" | 8 #include "chrome/browser/extensions/extension_devtools_browsertest.h" |
| 8 #include "chrome/browser/extensions/extension_error_reporter.h" | 9 #include "chrome/browser/extensions/extension_error_reporter.h" |
| 9 #include "chrome/browser/extensions/extension_host.h" | 10 #include "chrome/browser/extensions/extension_host.h" |
| 10 #include "chrome/browser/extensions/extension_process_manager.h" | 11 #include "chrome/browser/extensions/extension_process_manager.h" |
| 11 #include "chrome/browser/extensions/extension_service.h" | 12 #include "chrome/browser/extensions/extension_service.h" |
| 12 #include "chrome/browser/extensions/extension_tab_util.h" | 13 #include "chrome/browser/extensions/extension_tab_util.h" |
| 13 #include "chrome/browser/profiles/profile.h" | 14 #include "chrome/browser/profiles/profile.h" |
| 14 #include "chrome/browser/ui/browser.h" | 15 #include "chrome/browser/ui/browser.h" |
| 15 #include "chrome/browser/ui/browser_list.h" | 16 #include "chrome/browser/ui/browser_list.h" |
| 16 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 17 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 // Grab a handle to the DevToolsManager so we can forward messages to it. | 69 // Grab a handle to the DevToolsManager so we can forward messages to it. |
| 69 DevToolsManager* devtools_manager = DevToolsManager::GetInstance(); | 70 DevToolsManager* devtools_manager = DevToolsManager::GetInstance(); |
| 70 | 71 |
| 71 // Grab the tab_id of whatever tab happens to be first. | 72 // Grab the tab_id of whatever tab happens to be first. |
| 72 WebContents* web_contents = browser()->GetWebContentsAt(0); | 73 WebContents* web_contents = browser()->GetWebContentsAt(0); |
| 73 ASSERT_TRUE(web_contents); | 74 ASSERT_TRUE(web_contents); |
| 74 int tab_id = ExtensionTabUtil::GetTabId(web_contents); | 75 int tab_id = ExtensionTabUtil::GetTabId(web_contents); |
| 75 | 76 |
| 76 // Test setup. | 77 // Test setup. |
| 77 bool result = false; | 78 bool result = false; |
| 78 std::wstring register_listeners_js = base::StringPrintf( | 79 std::wstring register_listeners_js = ASCIIToWide(base::StringPrintf( |
| 79 L"setListenersOnTab(%d)", tab_id); | 80 "setListenersOnTab(%d)", tab_id)); |
| 80 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 81 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
| 81 host->render_view_host(), L"", register_listeners_js, &result)); | 82 host->render_view_host(), L"", register_listeners_js, &result)); |
| 82 EXPECT_TRUE(result); | 83 EXPECT_TRUE(result); |
| 83 | 84 |
| 84 // Setting the events should have caused an ExtensionDevToolsBridge to be | 85 // Setting the events should have caused an ExtensionDevToolsBridge to be |
| 85 // registered for the tab's RenderViewHost. | 86 // registered for the tab's RenderViewHost. |
| 86 DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost( | 87 DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost( |
| 87 web_contents->GetRenderViewHost()); | 88 web_contents->GetRenderViewHost()); |
| 88 DevToolsClientHost* devtools_client_host = | 89 DevToolsClientHost* devtools_client_host = |
| 89 devtools_manager->GetDevToolsClientHostFor(agent); | 90 devtools_manager->GetDevToolsClientHostFor(agent); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 | 128 |
| 128 DevToolsManager* devtools_manager = DevToolsManager::GetInstance(); | 129 DevToolsManager* devtools_manager = DevToolsManager::GetInstance(); |
| 129 | 130 |
| 130 // Grab the tab_id of whatever tab happens to be first. | 131 // Grab the tab_id of whatever tab happens to be first. |
| 131 WebContents* web_contents = browser()->GetWebContentsAt(0); | 132 WebContents* web_contents = browser()->GetWebContentsAt(0); |
| 132 ASSERT_TRUE(web_contents); | 133 ASSERT_TRUE(web_contents); |
| 133 int tab_id = ExtensionTabUtil::GetTabId(web_contents); | 134 int tab_id = ExtensionTabUtil::GetTabId(web_contents); |
| 134 | 135 |
| 135 // Test setup. | 136 // Test setup. |
| 136 bool result = false; | 137 bool result = false; |
| 137 std::wstring register_listeners_js = base::StringPrintf( | 138 std::wstring register_listeners_js = ASCIIToWide(base::StringPrintf( |
| 138 L"setListenersOnTab(%d)", tab_id); | 139 "setListenersOnTab(%d)", tab_id)); |
| 139 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 140 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
| 140 host_one->render_view_host(), L"", register_listeners_js, &result)); | 141 host_one->render_view_host(), L"", register_listeners_js, &result)); |
| 141 EXPECT_TRUE(result); | 142 EXPECT_TRUE(result); |
| 142 | 143 |
| 143 // Setting the event listeners should have caused an ExtensionDevToolsBridge | 144 // Setting the event listeners should have caused an ExtensionDevToolsBridge |
| 144 // to be registered for the tab's RenderViewHost. | 145 // to be registered for the tab's RenderViewHost. |
| 145 ASSERT_TRUE(devtools_manager->GetDevToolsClientHostFor( | 146 ASSERT_TRUE(devtools_manager->GetDevToolsClientHostFor( |
| 146 DevToolsAgentHostRegistry::GetDevToolsAgentHost( | 147 DevToolsAgentHostRegistry::GetDevToolsAgentHost( |
| 147 web_contents->GetRenderViewHost()))); | 148 web_contents->GetRenderViewHost()))); |
| 148 | 149 |
| 149 // Register listeners from the second extension as well. | 150 // Register listeners from the second extension as well. |
| 150 std::wstring script = base::StringPrintf(L"registerListenersForTab(%d)", | 151 std::wstring script = ASCIIToWide(base::StringPrintf( |
| 151 tab_id); | 152 "registerListenersForTab(%d)", tab_id)); |
| 152 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 153 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
| 153 host_two->render_view_host(), L"", script, &result)); | 154 host_two->render_view_host(), L"", script, &result)); |
| 154 EXPECT_TRUE(result); | 155 EXPECT_TRUE(result); |
| 155 | 156 |
| 156 // Removing the listeners from the first extension should leave the bridge | 157 // Removing the listeners from the first extension should leave the bridge |
| 157 // alive. | 158 // alive. |
| 158 result = false; | 159 result = false; |
| 159 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 160 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
| 160 host_one->render_view_host(), L"", L"unregisterListeners()", &result)); | 161 host_one->render_view_host(), L"", L"unregisterListeners()", &result)); |
| 161 EXPECT_TRUE(result); | 162 EXPECT_TRUE(result); |
| 162 ASSERT_TRUE(devtools_manager->GetDevToolsClientHostFor( | 163 ASSERT_TRUE(devtools_manager->GetDevToolsClientHostFor( |
| 163 DevToolsAgentHostRegistry::GetDevToolsAgentHost( | 164 DevToolsAgentHostRegistry::GetDevToolsAgentHost( |
| 164 web_contents->GetRenderViewHost()))); | 165 web_contents->GetRenderViewHost()))); |
| 165 | 166 |
| 166 // Removing the listeners from the second extension should tear the bridge | 167 // Removing the listeners from the second extension should tear the bridge |
| 167 // down. | 168 // down. |
| 168 result = false; | 169 result = false; |
| 169 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 170 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
| 170 host_two->render_view_host(), L"", L"unregisterListeners()", &result)); | 171 host_two->render_view_host(), L"", L"unregisterListeners()", &result)); |
| 171 EXPECT_TRUE(result); | 172 EXPECT_TRUE(result); |
| 172 ASSERT_FALSE(devtools_manager->GetDevToolsClientHostFor( | 173 ASSERT_FALSE(devtools_manager->GetDevToolsClientHostFor( |
| 173 DevToolsAgentHostRegistry::GetDevToolsAgentHost( | 174 DevToolsAgentHostRegistry::GetDevToolsAgentHost( |
| 174 web_contents->GetRenderViewHost()))); | 175 web_contents->GetRenderViewHost()))); |
| 175 } | 176 } |
| OLD | NEW |