Chromium Code Reviews| 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 "chrome/browser/task_manager/task_manager.h" | 5 #include "chrome/browser/task_manager/task_manager.h" |
| 6 | 6 |
| 7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
| 8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 48 #include "testing/gtest/include/gtest/gtest.h" | 48 #include "testing/gtest/include/gtest/gtest.h" |
| 49 #include "ui/base/l10n/l10n_util.h" | 49 #include "ui/base/l10n/l10n_util.h" |
| 50 #include "ui/base/page_transition_types.h" | 50 #include "ui/base/page_transition_types.h" |
| 51 | 51 |
| 52 using content::WebContents; | 52 using content::WebContents; |
| 53 using task_manager::browsertest_util::MatchAboutBlankTab; | 53 using task_manager::browsertest_util::MatchAboutBlankTab; |
| 54 using task_manager::browsertest_util::MatchAnyApp; | 54 using task_manager::browsertest_util::MatchAnyApp; |
| 55 using task_manager::browsertest_util::MatchAnyExtension; | 55 using task_manager::browsertest_util::MatchAnyExtension; |
| 56 using task_manager::browsertest_util::MatchAnySubframe; | 56 using task_manager::browsertest_util::MatchAnySubframe; |
| 57 using task_manager::browsertest_util::MatchAnyTab; | 57 using task_manager::browsertest_util::MatchAnyTab; |
| 58 using task_manager::browsertest_util::MatchAnyUtility; | |
| 58 using task_manager::browsertest_util::MatchApp; | 59 using task_manager::browsertest_util::MatchApp; |
| 59 using task_manager::browsertest_util::MatchExtension; | 60 using task_manager::browsertest_util::MatchExtension; |
| 60 using task_manager::browsertest_util::MatchSubframe; | 61 using task_manager::browsertest_util::MatchSubframe; |
| 61 using task_manager::browsertest_util::MatchTab; | 62 using task_manager::browsertest_util::MatchTab; |
| 63 using task_manager::browsertest_util::MatchUtility; | |
| 62 using task_manager::browsertest_util::WaitForTaskManagerRows; | 64 using task_manager::browsertest_util::WaitForTaskManagerRows; |
| 63 using task_manager::browsertest_util::WaitForTaskManagerStatToExceed; | 65 using task_manager::browsertest_util::WaitForTaskManagerStatToExceed; |
| 64 | 66 |
| 65 namespace { | 67 namespace { |
| 66 | 68 |
| 67 const base::FilePath::CharType* kTitle1File = FILE_PATH_LITERAL("title1.html"); | 69 const base::FilePath::CharType* kTitle1File = FILE_PATH_LITERAL("title1.html"); |
| 68 | 70 |
| 69 } // namespace | 71 } // namespace |
| 70 | 72 |
| 71 class TaskManagerBrowserTest : public ExtensionBrowserTest { | 73 class TaskManagerBrowserTest : public ExtensionBrowserTest { |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 113 } | 115 } |
| 114 return -1; | 116 return -1; |
| 115 } | 117 } |
| 116 | 118 |
| 117 protected: | 119 protected: |
| 118 void SetUpCommandLine(base::CommandLine* command_line) override { | 120 void SetUpCommandLine(base::CommandLine* command_line) override { |
| 119 ExtensionBrowserTest::SetUpCommandLine(command_line); | 121 ExtensionBrowserTest::SetUpCommandLine(command_line); |
| 120 | 122 |
| 121 // Do not launch device discovery process. | 123 // Do not launch device discovery process. |
| 122 command_line->AppendSwitch(switches::kDisableDeviceDiscoveryNotifications); | 124 command_line->AppendSwitch(switches::kDisableDeviceDiscoveryNotifications); |
| 125 | |
| 126 // Enable out-of-process proxy resolver. Use a trivial PAC script to ensure | |
| 127 // that some javascript is being executed. | |
| 128 command_line->AppendSwitch(switches::kV8PacMojoOutOfProcess); | |
| 129 command_line->AppendSwitchASCII( | |
| 130 switches::kProxyPacUrl, | |
| 131 "data:,function FindProxyForURL(url, host){return \"DIRECT;\";}"); | |
| 123 } | 132 } |
| 124 | 133 |
| 125 private: | 134 private: |
| 126 DISALLOW_COPY_AND_ASSIGN(TaskManagerBrowserTest); | 135 DISALLOW_COPY_AND_ASSIGN(TaskManagerBrowserTest); |
| 127 }; | 136 }; |
| 128 | 137 |
| 129 // Parameterized variant of TaskManagerBrowserTest which runs with/without | 138 // Parameterized variant of TaskManagerBrowserTest which runs with/without |
| 130 // --site-per-process, which enables out of process iframes (OOPIFs). | 139 // --site-per-process, which enables out of process iframes (OOPIFs). |
| 131 class TaskManagerOOPIFBrowserTest : public TaskManagerBrowserTest, | 140 class TaskManagerOOPIFBrowserTest : public TaskManagerBrowserTest, |
| 132 public testing::WithParamInterface<bool> { | 141 public testing::WithParamInterface<bool> { |
| (...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 834 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( | 843 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( |
| 835 MatchTab("title1.html"), task_manager::browsertest_util::V8_MEMORY, | 844 MatchTab("title1.html"), task_manager::browsertest_util::V8_MEMORY, |
| 836 minimal_heap_size)); | 845 minimal_heap_size)); |
| 837 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( | 846 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( |
| 838 MatchTab("title1.html"), task_manager::browsertest_util::V8_MEMORY_USED, | 847 MatchTab("title1.html"), task_manager::browsertest_util::V8_MEMORY_USED, |
| 839 minimal_heap_size)); | 848 minimal_heap_size)); |
| 840 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 849 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
| 841 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("title1.html"))); | 850 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("title1.html"))); |
| 842 } | 851 } |
| 843 | 852 |
| 853 // Checks that task manager counts utility process JS heap size. | |
| 854 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, UtilityJSHeapMemory) { | |
| 855 ShowTaskManager(); | |
| 856 ui_test_utils::NavigateToURL(browser(), GetTestURL()); | |
| 857 // The PAC script is trivial, so don't expect a large heap. | |
| 858 size_t minimal_heap_size = 1024; | |
| 859 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( | |
| 860 MatchUtility( | |
| 861 l10n_util::GetStringUTF16(IDS_UTILITY_PROCESS_PROXY_RESOLVER_NAME)), | |
| 862 task_manager::browsertest_util::V8_MEMORY, | |
| 863 minimal_heap_size)); | |
| 864 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( | |
| 865 MatchUtility( | |
| 866 l10n_util::GetStringUTF16(IDS_UTILITY_PROCESS_PROXY_RESOLVER_NAME)), | |
| 867 task_manager::browsertest_util::V8_MEMORY_USED, | |
| 868 minimal_heap_size)); | |
| 869 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyUtility())); | |
| 870 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows( | |
| 871 1, MatchUtility(l10n_util::GetStringUTF16( | |
| 872 IDS_UTILITY_PROCESS_PROXY_RESOLVER_NAME)))); | |
|
ncarter (slow)
2015/05/11 20:35:40
Thanks!!!
| |
| 873 } | |
| 874 | |
| 844 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, DevToolsNewDockedWindow) { | 875 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, DevToolsNewDockedWindow) { |
| 845 ShowTaskManager(); // Task manager shown BEFORE dev tools window. | 876 ShowTaskManager(); // Task manager shown BEFORE dev tools window. |
| 846 | 877 |
| 847 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 878 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
| 848 DevToolsWindow* devtools = | 879 DevToolsWindow* devtools = |
| 849 DevToolsWindowTesting::OpenDevToolsWindowSync(browser(), true); | 880 DevToolsWindowTesting::OpenDevToolsWindowSync(browser(), true); |
| 850 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyTab())); | 881 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyTab())); |
| 851 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyTab())); | 882 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyTab())); |
| 852 DevToolsWindowTesting::CloseDevToolsWindowSync(devtools); | 883 DevToolsWindowTesting::CloseDevToolsWindowSync(devtools); |
| 853 } | 884 } |
| (...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1160 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness"))); | 1191 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness"))); |
| 1161 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); | 1192 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); |
| 1162 | 1193 |
| 1163 HideTaskManager(); | 1194 HideTaskManager(); |
| 1164 ShowTaskManager(); | 1195 ShowTaskManager(); |
| 1165 | 1196 |
| 1166 ASSERT_NO_FATAL_FAILURE( | 1197 ASSERT_NO_FATAL_FAILURE( |
| 1167 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness"))); | 1198 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness"))); |
| 1168 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); | 1199 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); |
| 1169 } | 1200 } |
| OLD | NEW |