| 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 |