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

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

Issue 1960703002: [Part 3 of 6] Switch ColumnSpecifier to enum class. This makes straddling namespaces easier. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@tm_file_split2
Patch Set: Rebase Created 4 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
« no previous file with comments | « no previous file | chrome/browser/task_manager/task_manager_browsertest_util.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 #include "content/public/test/content_browser_test_utils.h" 44 #include "content/public/test/content_browser_test_utils.h"
45 #include "extensions/browser/extension_system.h" 45 #include "extensions/browser/extension_system.h"
46 #include "extensions/common/extension.h" 46 #include "extensions/common/extension.h"
47 #include "net/dns/mock_host_resolver.h" 47 #include "net/dns/mock_host_resolver.h"
48 #include "net/test/embedded_test_server/embedded_test_server.h" 48 #include "net/test/embedded_test_server/embedded_test_server.h"
49 #include "testing/gtest/include/gtest/gtest.h" 49 #include "testing/gtest/include/gtest/gtest.h"
50 #include "ui/base/l10n/l10n_util.h" 50 #include "ui/base/l10n/l10n_util.h"
51 #include "ui/base/page_transition_types.h" 51 #include "ui/base/page_transition_types.h"
52 52
53 using content::WebContents; 53 using content::WebContents;
54 using task_manager::browsertest_util::ColumnSpecifier;
54 using task_manager::browsertest_util::MatchAboutBlankTab; 55 using task_manager::browsertest_util::MatchAboutBlankTab;
55 using task_manager::browsertest_util::MatchAnyApp; 56 using task_manager::browsertest_util::MatchAnyApp;
56 using task_manager::browsertest_util::MatchAnyExtension; 57 using task_manager::browsertest_util::MatchAnyExtension;
57 using task_manager::browsertest_util::MatchAnySubframe; 58 using task_manager::browsertest_util::MatchAnySubframe;
58 using task_manager::browsertest_util::MatchAnyTab; 59 using task_manager::browsertest_util::MatchAnyTab;
59 using task_manager::browsertest_util::MatchAnyUtility; 60 using task_manager::browsertest_util::MatchAnyUtility;
60 using task_manager::browsertest_util::MatchApp; 61 using task_manager::browsertest_util::MatchApp;
61 using task_manager::browsertest_util::MatchExtension; 62 using task_manager::browsertest_util::MatchExtension;
62 using task_manager::browsertest_util::MatchSubframe; 63 using task_manager::browsertest_util::MatchSubframe;
63 using task_manager::browsertest_util::MatchTab; 64 using task_manager::browsertest_util::MatchTab;
(...skipping 753 matching lines...) Expand 10 before | Expand all | Expand 10 after
817 ReloadExtension(extension_id); 818 ReloadExtension(extension_id);
818 ASSERT_NO_FATAL_FAILURE( 819 ASSERT_NO_FATAL_FAILURE(
819 WaitForTaskManagerRows(1, MatchExtension("background_page"))); 820 WaitForTaskManagerRows(1, MatchExtension("background_page")));
820 } 821 }
821 } 822 }
822 823
823 // Checks that task manager counts a worker thread JS heap size. 824 // Checks that task manager counts a worker thread JS heap size.
824 // http://crbug.com/241066 825 // http://crbug.com/241066
825 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, WebWorkerJSHeapMemory) { 826 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, WebWorkerJSHeapMemory) {
826 ShowTaskManager(); 827 ShowTaskManager();
827 model()->ToggleColumnVisibility(task_manager::browsertest_util::V8_MEMORY); 828 model()->ToggleColumnVisibility(ColumnSpecifier::V8_MEMORY);
828 ui_test_utils::NavigateToURL(browser(), GetTestURL()); 829 ui_test_utils::NavigateToURL(browser(), GetTestURL());
829 size_t minimal_heap_size = 4 * 1024 * 1024 * sizeof(void*); 830 size_t minimal_heap_size = 4 * 1024 * 1024 * sizeof(void*);
830 std::string test_js = base::StringPrintf( 831 std::string test_js = base::StringPrintf(
831 "var blob = new Blob([\n" 832 "var blob = new Blob([\n"
832 " 'mem = new Array(%lu);',\n" 833 " 'mem = new Array(%lu);',\n"
833 " 'for (var i = 0; i < mem.length; i += 16)'," 834 " 'for (var i = 0; i < mem.length; i += 16)',"
834 " ' mem[i] = i;',\n" 835 " ' mem[i] = i;',\n"
835 " 'postMessage(\"okay\");']);\n" 836 " 'postMessage(\"okay\");']);\n"
836 "blobURL = window.URL.createObjectURL(blob);\n" 837 "blobURL = window.URL.createObjectURL(blob);\n"
837 "var worker = new Worker(blobURL);\n" 838 "var worker = new Worker(blobURL);\n"
838 "worker.addEventListener('message', function(e) {\n" 839 "worker.addEventListener('message', function(e) {\n"
839 " window.domAutomationController.send(e.data);\n" // e.data == "okay" 840 " window.domAutomationController.send(e.data);\n" // e.data == "okay"
840 "});\n" 841 "});\n"
841 "worker.postMessage('go');\n", 842 "worker.postMessage('go');\n",
842 static_cast<unsigned long>(minimal_heap_size)); 843 static_cast<unsigned long>(minimal_heap_size));
843 std::string ok; 844 std::string ok;
844 ASSERT_TRUE(content::ExecuteScriptAndExtractString( 845 ASSERT_TRUE(content::ExecuteScriptAndExtractString(
845 browser()->tab_strip_model()->GetActiveWebContents(), test_js, &ok)); 846 browser()->tab_strip_model()->GetActiveWebContents(), test_js, &ok));
846 ASSERT_EQ("okay", ok); 847 ASSERT_EQ("okay", ok);
847 848
848 // The worker has allocated objects of at least |minimal_heap_size| bytes. 849 // The worker has allocated objects of at least |minimal_heap_size| bytes.
849 // Wait for the heap stats to reflect this. 850 // Wait for the heap stats to reflect this.
850 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( 851 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
851 MatchTab("title1.html"), task_manager::browsertest_util::V8_MEMORY, 852 MatchTab("title1.html"), ColumnSpecifier::V8_MEMORY, minimal_heap_size));
852 minimal_heap_size));
853 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( 853 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
854 MatchTab("title1.html"), task_manager::browsertest_util::V8_MEMORY_USED, 854 MatchTab("title1.html"), ColumnSpecifier::V8_MEMORY_USED,
855 minimal_heap_size)); 855 minimal_heap_size));
856 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); 856 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab()));
857 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("title1.html"))); 857 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("title1.html")));
858 } 858 }
859 859
860 // Checks that task manager counts renderer JS heap size. 860 // Checks that task manager counts renderer JS heap size.
861 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, JSHeapMemory) { 861 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, JSHeapMemory) {
862 ShowTaskManager(); 862 ShowTaskManager();
863 ui_test_utils::NavigateToURL(browser(), GetTestURL()); 863 ui_test_utils::NavigateToURL(browser(), GetTestURL());
864 size_t minimal_heap_size = 4 * 1024 * 1024 * sizeof(void*); 864 size_t minimal_heap_size = 4 * 1024 * 1024 * sizeof(void*);
865 std::string test_js = base::StringPrintf( 865 std::string test_js = base::StringPrintf(
866 "mem = new Array(%lu);\n" 866 "mem = new Array(%lu);\n"
867 "for (var i = 0; i < mem.length; i += 16)\n" 867 "for (var i = 0; i < mem.length; i += 16)\n"
868 " mem[i] = i;\n" 868 " mem[i] = i;\n"
869 "window.domAutomationController.send(\"okay\");\n", 869 "window.domAutomationController.send(\"okay\");\n",
870 static_cast<unsigned long>(minimal_heap_size)); 870 static_cast<unsigned long>(minimal_heap_size));
871 std::string ok; 871 std::string ok;
872 ASSERT_TRUE(content::ExecuteScriptAndExtractString( 872 ASSERT_TRUE(content::ExecuteScriptAndExtractString(
873 browser()->tab_strip_model()->GetActiveWebContents(), test_js, &ok)); 873 browser()->tab_strip_model()->GetActiveWebContents(), test_js, &ok));
874 ASSERT_EQ("okay", ok); 874 ASSERT_EQ("okay", ok);
875 875
876 model()->ToggleColumnVisibility(task_manager::browsertest_util::V8_MEMORY); 876 model()->ToggleColumnVisibility(ColumnSpecifier::V8_MEMORY);
877 877
878 // The page's js has allocated objects of at least |minimal_heap_size| bytes. 878 // The page's js has allocated objects of at least |minimal_heap_size| bytes.
879 // Wait for the heap stats to reflect this. 879 // Wait for the heap stats to reflect this.
880 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( 880 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
881 MatchTab("title1.html"), task_manager::browsertest_util::V8_MEMORY, 881 MatchTab("title1.html"), ColumnSpecifier::V8_MEMORY, minimal_heap_size));
882 minimal_heap_size));
883 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( 882 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
884 MatchTab("title1.html"), task_manager::browsertest_util::V8_MEMORY_USED, 883 MatchTab("title1.html"), ColumnSpecifier::V8_MEMORY_USED,
885 minimal_heap_size)); 884 minimal_heap_size));
886 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); 885 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab()));
887 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("title1.html"))); 886 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("title1.html")));
888 } 887 }
889 888
890 // Checks that task manager counts utility process JS heap size. 889 // Checks that task manager counts utility process JS heap size.
891 IN_PROC_BROWSER_TEST_F(TaskManagerUtilityProcessBrowserTest, 890 IN_PROC_BROWSER_TEST_F(TaskManagerUtilityProcessBrowserTest,
892 UtilityJSHeapMemory) { 891 UtilityJSHeapMemory) {
893 ShowTaskManager(); 892 ShowTaskManager();
894 model()->ToggleColumnVisibility(task_manager::browsertest_util::V8_MEMORY); 893 model()->ToggleColumnVisibility(ColumnSpecifier::V8_MEMORY);
895 894
896 auto proxy_resolver_name = 895 auto proxy_resolver_name =
897 l10n_util::GetStringUTF16(IDS_UTILITY_PROCESS_PROXY_RESOLVER_NAME); 896 l10n_util::GetStringUTF16(IDS_UTILITY_PROCESS_PROXY_RESOLVER_NAME);
898 ui_test_utils::NavigateToURL(browser(), GetTestURL()); 897 ui_test_utils::NavigateToURL(browser(), GetTestURL());
899 // The PAC script is trivial, so don't expect a large heap. 898 // The PAC script is trivial, so don't expect a large heap.
900 size_t minimal_heap_size = 1024; 899 size_t minimal_heap_size = 1024;
901 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( 900 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
902 MatchUtility(proxy_resolver_name), 901 MatchUtility(proxy_resolver_name), ColumnSpecifier::V8_MEMORY,
903 task_manager::browsertest_util::V8_MEMORY, minimal_heap_size)); 902 minimal_heap_size));
904 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed( 903 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerStatToExceed(
905 MatchUtility(proxy_resolver_name), 904 MatchUtility(proxy_resolver_name), ColumnSpecifier::V8_MEMORY_USED,
906 task_manager::browsertest_util::V8_MEMORY_USED, minimal_heap_size)); 905 minimal_heap_size));
907 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyUtility())); 906 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyUtility()));
908 ASSERT_NO_FATAL_FAILURE( 907 ASSERT_NO_FATAL_FAILURE(
909 WaitForTaskManagerRows(1, MatchUtility(proxy_resolver_name))); 908 WaitForTaskManagerRows(1, MatchUtility(proxy_resolver_name)));
910 } 909 }
911 910
912 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, DevToolsNewDockedWindow) { 911 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, DevToolsNewDockedWindow) {
913 // TODO(nick, afakhry): Broken on new task manager because we show 912 // TODO(nick, afakhry): Broken on new task manager because we show
914 // a long chrome-devtools:// URL without a prefix (expecting "Tab: *"). 913 // a long chrome-devtools:// URL without a prefix (expecting "Tab: *").
915 DisableNewTaskManagerForBrokenTest(); 914 DisableNewTaskManagerForBrokenTest();
916 915
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
1234 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness"))); 1233 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness")));
1235 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); 1234 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe()));
1236 1235
1237 HideTaskManager(); 1236 HideTaskManager();
1238 ShowTaskManager(); 1237 ShowTaskManager();
1239 1238
1240 ASSERT_NO_FATAL_FAILURE( 1239 ASSERT_NO_FATAL_FAILURE(
1241 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness"))); 1240 WaitForTaskManagerRows(1, MatchTab("Title Of Awesomeness")));
1242 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe())); 1241 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnySubframe()));
1243 } 1242 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/task_manager/task_manager_browsertest_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698