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

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

Issue 2263863002: Remove implementation of Panels on OSes other than ChromeOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CR feedback Created 4 years, 3 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 <stddef.h> 5 #include <stddef.h>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 10 matching lines...) Expand all
21 #include "chrome/browser/notifications/notification_test_util.h" 21 #include "chrome/browser/notifications/notification_test_util.h"
22 #include "chrome/browser/notifications/notification_ui_manager.h" 22 #include "chrome/browser/notifications/notification_ui_manager.h"
23 #include "chrome/browser/profiles/profile.h" 23 #include "chrome/browser/profiles/profile.h"
24 #include "chrome/browser/task_manager/task_manager_browsertest_util.h" 24 #include "chrome/browser/task_manager/task_manager_browsertest_util.h"
25 #include "chrome/browser/task_manager/task_manager_interface.h" 25 #include "chrome/browser/task_manager/task_manager_interface.h"
26 #include "chrome/browser/task_manager/task_manager_tester.h" 26 #include "chrome/browser/task_manager/task_manager_tester.h"
27 #include "chrome/browser/ui/browser.h" 27 #include "chrome/browser/ui/browser.h"
28 #include "chrome/browser/ui/browser_commands.h" 28 #include "chrome/browser/ui/browser_commands.h"
29 #include "chrome/browser/ui/browser_dialogs.h" 29 #include "chrome/browser/ui/browser_dialogs.h"
30 #include "chrome/browser/ui/browser_window.h" 30 #include "chrome/browser/ui/browser_window.h"
31 #include "chrome/browser/ui/panels/panel.h"
32 #include "chrome/browser/ui/panels/panel_manager.h"
33 #include "chrome/browser/ui/tabs/tab_strip_model.h" 31 #include "chrome/browser/ui/tabs/tab_strip_model.h"
34 #include "chrome/browser/web_applications/web_app.h" 32 #include "chrome/browser/web_applications/web_app.h"
35 #include "chrome/common/chrome_switches.h" 33 #include "chrome/common/chrome_switches.h"
36 #include "chrome/grit/generated_resources.h" 34 #include "chrome/grit/generated_resources.h"
37 #include "chrome/test/base/in_process_browser_test.h" 35 #include "chrome/test/base/in_process_browser_test.h"
38 #include "chrome/test/base/ui_test_utils.h" 36 #include "chrome/test/base/ui_test_utils.h"
39 #include "components/infobars/core/confirm_infobar_delegate.h" 37 #include "components/infobars/core/confirm_infobar_delegate.h"
40 #include "components/infobars/core/infobar.h" 38 #include "components/infobars/core/infobar.h"
41 #include "content/public/browser/notification_service.h" 39 #include "content/public/browser/notification_service.h"
42 #include "content/public/browser/page_navigator.h" 40 #include "content/public/browser/page_navigator.h"
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 298
301 // Now navigate this tab to a different site. This should wind up in a 299 // Now navigate this tab to a different site. This should wind up in a
302 // different renderer process, so it should complete and show up in the task 300 // different renderer process, so it should complete and show up in the task
303 // manager. 301 // manager.
304 tab2->OpenURL(content::OpenURLParams(url3, content::Referrer(), CURRENT_TAB, 302 tab2->OpenURL(content::OpenURLParams(url3, content::Referrer(), CURRENT_TAB,
305 ui::PAGE_TRANSITION_TYPED, false)); 303 ui::PAGE_TRANSITION_TYPED, false));
306 304
307 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("iframe test"))); 305 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchTab("iframe test")));
308 } 306 }
309 307
310 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticePanel) {
311 ASSERT_TRUE(LoadExtension(
312 test_data_dir_.AppendASCII("good").AppendASCII("Extensions")
313 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj")
314 .AppendASCII("1.0.0.0")));
315
316 // Open a new panel to an extension url.
317 GURL url(
318 "chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/french_sentence.html");
319 Panel* docked_panel = PanelManager::GetInstance()->CreatePanel(
320 web_app::GenerateApplicationNameFromExtensionId(
321 last_loaded_extension_id()),
322 browser()->profile(), url, nullptr, gfx::Rect(300, 400),
323 PanelManager::CREATE_AS_DOCKED);
324 docked_panel->Show();
325
326 // Make sure that a task manager model created after the panel shows the
327 // existence of the panel and the extension.
328 ShowTaskManager();
329 ASSERT_NO_FATAL_FAILURE(
330 WaitForTaskManagerRows(1, MatchExtension("My extension 1")));
331 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(
332 1,
333 MatchExtension(
334 "chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/"
335 "french_sentence.html")));
336 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyExtension()));
337 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAboutBlankTab()));
338 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab()));
339
340 // Create a second, detached panel.
341 Panel* detached_panel = PanelManager::GetInstance()->CreatePanel(
342 web_app::GenerateApplicationNameFromExtensionId(
343 last_loaded_extension_id()),
344 browser()->profile(), url, nullptr, gfx::Rect(150, 150),
345 PanelManager::CREATE_AS_DETACHED);
346 detached_panel->ShowInactive();
347
348 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(
349 2, MatchExtension("chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/"
350 "french_sentence.html")));
351 ASSERT_NO_FATAL_FAILURE(
352 WaitForTaskManagerRows(1, MatchExtension("My extension 1")));
353 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(3, MatchAnyExtension()));
354
355 // Close the panels and verify that we notice.
356 docked_panel->Close();
357 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyExtension()));
358 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(
359 1, MatchExtension("chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/"
360 "french_sentence.html")));
361 ASSERT_NO_FATAL_FAILURE(
362 WaitForTaskManagerRows(1, MatchExtension("My extension 1")));
363
364 detached_panel->Close();
365 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyExtension()));
366 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(
367 0,
368 MatchExtension(
369 "chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/"
370 "french_sentence.html")));
371 ASSERT_NO_FATAL_FAILURE(
372 WaitForTaskManagerRows(1, MatchExtension("My extension 1")));
373 }
374
375 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticePanelChanges) {
376 ShowTaskManager();
377 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAboutBlankTab()));
378 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab()));
379
380 ASSERT_TRUE(LoadExtension(
381 test_data_dir_.AppendASCII("good").AppendASCII("Extensions")
382 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj")
383 .AppendASCII("1.0.0.0")));
384
385 // Browser, the New Tab Page and Extension background page.
386 ASSERT_NO_FATAL_FAILURE(
387 WaitForTaskManagerRows(1, MatchExtension("My extension 1")));
388 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyExtension()));
389 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab()));
390
391 // Open a new panel to an extension url and make sure we notice that.
392 GURL url(
393 "chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/french_sentence.html");
394 Panel* panel = PanelManager::GetInstance()->CreatePanel(
395 web_app::GenerateApplicationNameFromExtensionId(
396 last_loaded_extension_id()),
397 browser()->profile(),
398 url,
399 nullptr,
400 gfx::Rect(300, 400),
401 PanelManager::CREATE_AS_DOCKED);
402 panel->ShowInactive();
403
404 ASSERT_NO_FATAL_FAILURE(
405 WaitForTaskManagerRows(1, MatchExtension("My extension 1")));
406 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(
407 1,
408 MatchExtension(
409 "chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/"
410 "french_sentence.html")));
411 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyExtension()));
412 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAboutBlankTab()));
413 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab()));
414
415 // Close the panel and verify that we notice.
416 panel->Close();
417 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyExtension()));
418 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(
419 0,
420 MatchExtension(
421 "chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/"
422 "french_sentence.html")));
423 ASSERT_NO_FATAL_FAILURE(
424 WaitForTaskManagerRows(1, MatchExtension("My extension 1")));
425
426 // Unload extension.
427 UnloadExtension(last_loaded_extension_id());
428 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnyExtension()));
429 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab()));
430 }
431
432 // Kills a process that has more than one task manager entry.
433 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, KillPanelViaExtensionResource) {
434 ShowTaskManager();
435 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("good")
436 .AppendASCII("Extensions")
437 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj")
438 .AppendASCII("1.0.0.0")));
439
440 // Open a new panel to an extension url.
441 GURL url(
442 "chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/"
443 "french_sentence.html");
444 Panel* panel = PanelManager::GetInstance()->CreatePanel(
445 web_app::GenerateApplicationNameFromExtensionId(
446 last_loaded_extension_id()),
447 browser()->profile(),
448 url,
449 nullptr,
450 gfx::Rect(300, 400),
451 PanelManager::CREATE_AS_DETACHED);
452 panel->Show();
453
454 ASSERT_NO_FATAL_FAILURE(
455 WaitForTaskManagerRows(1, MatchExtension("My extension 1")));
456 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(
457 1,
458 MatchExtension(
459 "chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/"
460 "french_sentence.html")));
461 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyExtension()));
462 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAboutBlankTab()));
463 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab()));
464
465 // Kill the process via the BACKGROUND PAGE (not the panel). Verify that both
466 // the background page and the panel go away from the task manager.
467 int background_page = FindResourceIndex(MatchExtension("My extension 1"));
468 ASSERT_NE(-1, background_page);
469 ASSERT_EQ(-1, model()->GetTabId(background_page));
470 model()->Kill(background_page);
471 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnyExtension()));
472 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab()));
473 }
474
475 // Kills a process that has more than one task manager entry. This test is the
476 // same as KillPanelViaExtensionResource except it does the kill via the other
477 // entry.
478 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, KillPanelViaPanelResource) {
479 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("good")
480 .AppendASCII("Extensions")
481 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj")
482 .AppendASCII("1.0.0.0")));
483
484 // Open a new panel to an extension url.
485 GURL url(
486 "chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/"
487 "french_sentence.html");
488 Panel* panel = PanelManager::GetInstance()->CreatePanel(
489 web_app::GenerateApplicationNameFromExtensionId(
490 last_loaded_extension_id()),
491 browser()->profile(),
492 url,
493 nullptr,
494 gfx::Rect(300, 400),
495 PanelManager::CREATE_AS_DETACHED);
496 panel->ShowInactive();
497
498 ShowTaskManager();
499 ASSERT_NO_FATAL_FAILURE(
500 WaitForTaskManagerRows(1, MatchExtension("My extension 1")));
501 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(
502 1,
503 MatchExtension(
504 "chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/"
505 "french_sentence.html")));
506 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(2, MatchAnyExtension()));
507 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAboutBlankTab()));
508 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab()));
509
510 int background_page = FindResourceIndex(MatchExtension("My extension 1"));
511 ASSERT_NE(-1, background_page);
512 ASSERT_EQ(-1, model()->GetTabId(background_page));
513
514 // Kill the process via the PANEL RESOURCE (not the background page). Verify
515 // that both the background page and the panel go away from the task manager.
516 int panel_index = FindResourceIndex(MatchExtension(
517 "chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/"
518 "french_sentence.html"));
519 ASSERT_NE(-1, panel_index);
520 ASSERT_NE(-1, model()->GetTabId(panel_index));
521 model()->Kill(panel_index);
522 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, MatchAnyExtension()));
523 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab()));
524 }
525
526 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeExtensionTabChanges) { 308 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeExtensionTabChanges) {
527 ShowTaskManager(); 309 ShowTaskManager();
528 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAboutBlankTab())); 310 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAboutBlankTab()));
529 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab())); 311 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, MatchAnyTab()));
530 312
531 ASSERT_TRUE(LoadExtension( 313 ASSERT_TRUE(LoadExtension(
532 test_data_dir_.AppendASCII("good").AppendASCII("Extensions") 314 test_data_dir_.AppendASCII("good").AppendASCII("Extensions")
533 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj") 315 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj")
534 .AppendASCII("1.0.0.0"))); 316 .AppendASCII("1.0.0.0")));
535 317
(...skipping 750 matching lines...) Expand 10 before | Expand all | Expand 10 after
1286 1068
1287 // Because the subframes for tab 2 are nested, their order is deterministic. 1069 // Because the subframes for tab 2 are nested, their order is deterministic.
1288 EXPECT_EQ("Subframe: http://a.com/", 1070 EXPECT_EQ("Subframe: http://a.com/",
1289 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 1))); 1071 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 1)));
1290 EXPECT_EQ("Subframe: http://c.com/", 1072 EXPECT_EQ("Subframe: http://c.com/",
1291 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 2))); 1073 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 2)));
1292 EXPECT_EQ("Subframe: http://b.com/", 1074 EXPECT_EQ("Subframe: http://b.com/",
1293 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 3))); 1075 base::UTF16ToUTF8(model()->GetRowTitle(tab2_start + 3)));
1294 } 1076 }
1295 } 1077 }
OLDNEW
« no previous file with comments | « chrome/browser/task_manager/providers/web_contents/panel_task.cc ('k') | chrome/browser/task_manager/web_contents_tags.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698