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 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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); |
123 } | 125 } |
124 | 126 |
125 private: | 127 private: |
126 DISALLOW_COPY_AND_ASSIGN(TaskManagerBrowserTest); | 128 DISALLOW_COPY_AND_ASSIGN(TaskManagerBrowserTest); |
127 }; | 129 }; |
128 | 130 |
| 131 class TaskManagerUtilityProcessBrowserTest : public TaskManagerBrowserTest { |
| 132 public: |
| 133 TaskManagerUtilityProcessBrowserTest() {} |
| 134 |
| 135 protected: |
| 136 void SetUpCommandLine(base::CommandLine* command_line) override { |
| 137 TaskManagerBrowserTest::SetUpCommandLine(command_line); |
| 138 |
| 139 // Enable out-of-process proxy resolver. Use a trivial PAC script to ensure |
| 140 // that some javascript is being executed. |
| 141 command_line->AppendSwitch(switches::kV8PacMojoOutOfProcess); |
| 142 command_line->AppendSwitchASCII( |
| 143 switches::kProxyPacUrl, |
| 144 "data:,function FindProxyForURL(url, host){return \"DIRECT;\";}"); |
| 145 } |
| 146 |
| 147 private: |
| 148 DISALLOW_COPY_AND_ASSIGN(TaskManagerUtilityProcessBrowserTest); |
| 149 }; |
| 150 |
129 // Parameterized variant of TaskManagerBrowserTest which runs with/without | 151 // Parameterized variant of TaskManagerBrowserTest which runs with/without |
130 // --site-per-process, which enables out of process iframes (OOPIFs). | 152 // --site-per-process, which enables out of process iframes (OOPIFs). |
131 class TaskManagerOOPIFBrowserTest : public TaskManagerBrowserTest, | 153 class TaskManagerOOPIFBrowserTest : public TaskManagerBrowserTest, |
132 public testing::WithParamInterface<bool> { | 154 public testing::WithParamInterface<bool> { |
133 public: | 155 public: |
134 TaskManagerOOPIFBrowserTest() {} | 156 TaskManagerOOPIFBrowserTest() {} |
135 | 157 |
136 protected: | 158 protected: |
137 void SetUpCommandLine(base::CommandLine* command_line) override { | 159 void SetUpCommandLine(base::CommandLine* command_line) override { |
138 TaskManagerBrowserTest::SetUpCommandLine(command_line); | 160 TaskManagerBrowserTest::SetUpCommandLine(command_line); |
(...skipping 695 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
834 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( | 856 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( |
835 MatchTab("title1.html"), task_manager::browsertest_util::V8_MEMORY, | 857 MatchTab("title1.html"), task_manager::browsertest_util::V8_MEMORY, |
836 minimal_heap_size)); | 858 minimal_heap_size)); |
837 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( | 859 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( |
838 MatchTab("title1.html"), task_manager::browsertest_util::V8_MEMORY_USED, | 860 MatchTab("title1.html"), task_manager::browsertest_util::V8_MEMORY_USED, |
839 minimal_heap_size)); | 861 minimal_heap_size)); |
840 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 862 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
841 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("title1.html"))); | 863 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("title1.html"))); |
842 } | 864 } |
843 | 865 |
| 866 // Checks that task manager counts utility process JS heap size. |
| 867 IN_PROC_BROWSER_TEST_F(TaskManagerUtilityProcessBrowserTest, |
| 868 UtilityJSHeapMemory) { |
| 869 ShowTaskManager(); |
| 870 ui_test_utils::NavigateToURL(browser(), GetTestURL()); |
| 871 // The PAC script is trivial, so don't expect a large heap. |
| 872 size_t minimal_heap_size = 1024; |
| 873 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( |
| 874 MatchUtility( |
| 875 l10n_util::GetStringUTF16(IDS_UTILITY_PROCESS_PROXY_RESOLVER_NAME)), |
| 876 task_manager::browsertest_util::V8_MEMORY, |
| 877 minimal_heap_size)); |
| 878 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( |
| 879 MatchUtility( |
| 880 l10n_util::GetStringUTF16(IDS_UTILITY_PROCESS_PROXY_RESOLVER_NAME)), |
| 881 task_manager::browsertest_util::V8_MEMORY_USED, |
| 882 minimal_heap_size)); |
| 883 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyUtility())); |
| 884 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows( |
| 885 1, MatchUtility(l10n_util::GetStringUTF16( |
| 886 IDS_UTILITY_PROCESS_PROXY_RESOLVER_NAME)))); |
| 887 } |
| 888 |
844 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, DevToolsNewDockedWindow) { | 889 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, DevToolsNewDockedWindow) { |
845 ShowTaskManager(); // Task manager shown BEFORE dev tools window. | 890 ShowTaskManager(); // Task manager shown BEFORE dev tools window. |
846 | 891 |
847 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); | 892 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); |
848 DevToolsWindow* devtools = | 893 DevToolsWindow* devtools = |
849 DevToolsWindowTesting::OpenDevToolsWindowSync(browser(), true); | 894 DevToolsWindowTesting::OpenDevToolsWindowSync(browser(), true); |
850 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyTab())); | 895 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyTab())); |
851 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyTab())); | 896 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyTab())); |
852 DevToolsWindowTesting::CloseDevToolsWindowSync(devtools); | 897 DevToolsWindowTesting::CloseDevToolsWindowSync(devtools); |
853 } | 898 } |
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1160 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness"))); | 1205 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness"))); |
1161 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); | 1206 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); |
1162 | 1207 |
1163 HideTaskManager(); | 1208 HideTaskManager(); |
1164 ShowTaskManager(); | 1209 ShowTaskManager(); |
1165 | 1210 |
1166 ASSERT_NO_FATAL_FAILURE( | 1211 ASSERT_NO_FATAL_FAILURE( |
1167 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness"))); | 1212 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness"))); |
1168 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); | 1213 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); |
1169 } | 1214 } |
OLD | NEW |