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

Side by Side Diff: chrome/browser/extensions/api/extension_action/browser_action_apitest.cc

Issue 2850793005: Remove command line/field trial support and configs for Isolate Extensions. (Closed)
Patch Set: Rebase. Created 3 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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include "base/files/file_path.h" 7 #include "base/files/file_path.h"
8 #include "base/files/file_util.h" 8 #include "base/files/file_util.h"
9 #include "base/files/scoped_temp_dir.h" 9 #include "base/files/scoped_temp_dir.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 717 matching lines...) Expand 10 before | Expand all | Expand 10 after
728 728
729 // Verify that the browser action turned the background color red. 729 // Verify that the browser action turned the background color red.
730 const std::string script = 730 const std::string script =
731 "window.domAutomationController.send(document.body.style." 731 "window.domAutomationController.send(document.body.style."
732 "backgroundColor);"; 732 "backgroundColor);";
733 std::string result; 733 std::string result;
734 EXPECT_TRUE(content::ExecuteScriptAndExtractString(tab, script, &result)); 734 EXPECT_TRUE(content::ExecuteScriptAndExtractString(tab, script, &result));
735 EXPECT_EQ(result, "red"); 735 EXPECT_EQ(result, "red");
736 } 736 }
737 737
738 // Test that a browser action popup with a web iframe works correctly. This 738 // Test that a browser action popup with a web iframe works correctly. The
739 // primarily targets --isolate-extensions and --site-per-process modes, where 739 // iframe is expected to run in a separate process.
740 // the iframe runs in a separate process. See https://crbug.com/546267. 740 // See https://crbug.com/546267.
741 IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, BrowserActionPopupWithIframe) { 741 IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, BrowserActionPopupWithIframe) {
742 ASSERT_TRUE(embedded_test_server()->Start()); 742 ASSERT_TRUE(embedded_test_server()->Start());
743 743
744 ASSERT_TRUE(LoadExtension( 744 ASSERT_TRUE(LoadExtension(
745 test_data_dir_.AppendASCII("browser_action/popup_with_iframe"))); 745 test_data_dir_.AppendASCII("browser_action/popup_with_iframe")));
746 BrowserActionTestUtil* actions_bar = GetBrowserActionsBar(); 746 BrowserActionTestUtil* actions_bar = GetBrowserActionsBar();
747 const Extension* extension = GetSingleLoadedExtension(); 747 const Extension* extension = GetSingleLoadedExtension();
748 ASSERT_TRUE(extension) << message_; 748 ASSERT_TRUE(extension) << message_;
749 749
750 // Simulate a click on the browser action to open the popup. 750 // Simulate a click on the browser action to open the popup.
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
946 } 946 }
947 947
948 const Extension* popup_extension_; 948 const Extension* popup_extension_;
949 const Extension* other_extension_; 949 const Extension* other_extension_;
950 }; 950 };
951 951
952 // Tests that an extension pop-up cannot be navigated to a web page. 952 // Tests that an extension pop-up cannot be navigated to a web page.
953 IN_PROC_BROWSER_TEST_F(NavigatingExtensionPopupBrowserTest, Webpage) { 953 IN_PROC_BROWSER_TEST_F(NavigatingExtensionPopupBrowserTest, Webpage) {
954 GURL web_url(embedded_test_server()->GetURL("foo.com", "/title1.html")); 954 GURL web_url(embedded_test_server()->GetURL("foo.com", "/title1.html"));
955 955
956 // With and without --isolate-extension the GET request will be blocked in 956 // The GET request will be blocked in ExtensionViewHost::OpenURLFromTab
957 // ExtensionViewHost::OpenURLFromTab (which silently drops navigations with 957 // (which silently drops navigations with CURRENT_TAB disposition).
958 // CURRENT_TAB disposition).
959 TestPopupNavigationViaGet(web_url, EXPECTING_NAVIGATION_FAILURE); 958 TestPopupNavigationViaGet(web_url, EXPECTING_NAVIGATION_FAILURE);
960 959
961 // POST requests don't go through ExtensionViewHost::OpenURLFromTab. 960 // POST requests don't go through ExtensionViewHost::OpenURLFromTab.
962 // 961 TestPopupNavigationViaPost(web_url, EXPECTING_NAVIGATION_FAILURE);
963 // Without --isolate-extensions, there is no process transfer to isolate
964 // extensions into separate processes and therefore
965 // 1) navigating a popup extension to a webpage will succeed (because
966 // ExtensionViewHost::ShouldTransferNavigation won't get called when there
967 // is no transfer),
968 // 2) the webpage will stay in the same renderer process.
969 // This behavior is okay without --isolate-extensions (where webpages and
970 // extensions can coexist in the same process in other scenarios) - therefore
971 // no test verification is needed in this case.
972 //
973 // With --isolate-extensions the navigation should be blocked by
974 // ExtensionViewHost::ShouldTransferNavigation. Test verification is
975 // important in --isolate-extensions mode, because this mode is all about
976 // isolating extensions and webpages into separate processes and therefore we
977 // need to ensure the behavior described above doesn't occur (i.e. that
978 // instead the webpage navigation in an extension popup fails).
979 if (extensions::IsIsolateExtensionsEnabled())
980 TestPopupNavigationViaPost(web_url, EXPECTING_NAVIGATION_FAILURE);
981 } 962 }
982 963
983 // Tests that an extension pop-up can be navigated to another page 964 // Tests that an extension pop-up can be navigated to another page
984 // in the same extension. 965 // in the same extension.
985 IN_PROC_BROWSER_TEST_F(NavigatingExtensionPopupBrowserTest, 966 IN_PROC_BROWSER_TEST_F(NavigatingExtensionPopupBrowserTest,
986 PageInSameExtension) { 967 PageInSameExtension) {
987 GURL other_page_in_same_extension = 968 GURL other_page_in_same_extension =
988 popup_extension().GetResourceURL("other_page.html"); 969 popup_extension().GetResourceURL("other_page.html");
989 TestPopupNavigationViaGet(other_page_in_same_extension, 970 TestPopupNavigationViaGet(other_page_in_same_extension,
990 EXPECTING_NAVIGATION_SUCCESS); 971 EXPECTING_NAVIGATION_SUCCESS);
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1046 // The test verification below is applicable only to scenarios where the 1027 // The test verification below is applicable only to scenarios where the
1047 // download shelf is supported - on ChromeOS, instead of the download shelf, 1028 // download shelf is supported - on ChromeOS, instead of the download shelf,
1048 // there is a download notification in the right-bottom corner of the screen. 1029 // there is a download notification in the right-bottom corner of the screen.
1049 #if !defined(OS_CHROMEOS) 1030 #if !defined(OS_CHROMEOS)
1050 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible()); 1031 EXPECT_TRUE(browser()->window()->IsDownloadShelfVisible());
1051 #endif 1032 #endif
1052 } 1033 }
1053 1034
1054 } // namespace 1035 } // namespace
1055 } // namespace extensions 1036 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/chrome_security_exploit_browsertest.cc ('k') | chrome/browser/extensions/api/tabs/tabs_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698