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

Side by Side Diff: chrome/browser/task_manager/task_manager_browsertest.cc

Issue 972083002: Report utility process JS memory in task manager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@v8-pac-oop
Patch Set: Update comment. Created 5 years, 7 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 unified diff | Download patch
OLDNEW
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
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698