| Index: chrome/browser/extensions/webstore_inline_installer_browsertest.cc
|
| diff --git a/chrome/browser/extensions/webstore_inline_installer_browsertest.cc b/chrome/browser/extensions/webstore_inline_installer_browsertest.cc
|
| index 32a4bb5b72457b90beb2fab2bdf3fbc3c26911c8..7d71fb4a0bffe71e614aaff45f16d7b010a73690 100644
|
| --- a/chrome/browser/extensions/webstore_inline_installer_browsertest.cc
|
| +++ b/chrome/browser/extensions/webstore_inline_installer_browsertest.cc
|
| @@ -118,8 +118,7 @@
|
| content::RenderFrameHost* host,
|
| const std::string& extension_id,
|
| const GURL& requestor_url,
|
| - const Callback& callback,
|
| - bool enable_safebrowsing_redirects)
|
| + const Callback& callback)
|
| : WebstoreInlineInstaller(
|
| contents,
|
| host,
|
| @@ -140,10 +139,6 @@
|
| return WebstoreInlineInstaller::CheckRequestorAlive();
|
| }
|
|
|
| - bool SafeBrowsingNavigationEventsEnabled() const override {
|
| - return enable_safebrowsing_redirects_;
|
| - }
|
| -
|
| // Tests that care about the actual arguments to the install callback can use
|
| // this to receive a copy in |install_result_target|.
|
| void set_install_result_target(
|
| @@ -171,22 +166,13 @@
|
| // arguments.
|
| std::unique_ptr<InstallResult>* install_result_target_;
|
|
|
| - // This can be set by tests that want to use the new SafeBrowsing redirect
|
| - // tracker.
|
| - bool enable_safebrowsing_redirects_;
|
| -
|
| ProgrammableInstallPrompt* programmable_prompt_;
|
| };
|
|
|
| class WebstoreInlineInstallerForTestFactory :
|
| public WebstoreInlineInstallerFactory {
|
| public:
|
| - WebstoreInlineInstallerForTestFactory()
|
| - : last_installer_(nullptr), enable_safebrowsing_redirects_(false) {}
|
| - explicit WebstoreInlineInstallerForTestFactory(
|
| - bool enable_safebrowsing_redirects)
|
| - : last_installer_(nullptr),
|
| - enable_safebrowsing_redirects_(enable_safebrowsing_redirects) {}
|
| + WebstoreInlineInstallerForTestFactory() : last_installer_(nullptr) {}
|
| ~WebstoreInlineInstallerForTestFactory() override {}
|
|
|
| WebstoreInlineInstallerForTest* last_installer() { return last_installer_; }
|
| @@ -198,16 +184,13 @@
|
| const GURL& requestor_url,
|
| const WebstoreStandaloneInstaller::Callback& callback) override {
|
| last_installer_ = new WebstoreInlineInstallerForTest(
|
| - contents, host, webstore_item_id, requestor_url, callback,
|
| - enable_safebrowsing_redirects_);
|
| + contents, host, webstore_item_id, requestor_url, callback);
|
| return last_installer_;
|
| }
|
|
|
| private:
|
| // The last installer that was created.
|
| WebstoreInlineInstallerForTest* last_installer_;
|
| -
|
| - bool enable_safebrowsing_redirects_;
|
| };
|
|
|
| IN_PROC_BROWSER_TEST_F(WebstoreInlineInstallerTest,
|
| @@ -390,9 +373,7 @@
|
| RunTest("runTest");
|
| }
|
|
|
| -class WebstoreInlineInstallerRedirectTest
|
| - : public WebstoreInlineInstallerTest,
|
| - public ::testing::WithParamInterface<bool> {
|
| +class WebstoreInlineInstallerRedirectTest : public WebstoreInlineInstallerTest {
|
| public:
|
| WebstoreInlineInstallerRedirectTest() : cws_request_received_(false) {}
|
| ~WebstoreInlineInstallerRedirectTest() override {}
|
| @@ -420,16 +401,8 @@
|
|
|
| // Test that an install from a page arrived at via redirects includes the
|
| // redirect information in the webstore request.
|
| -IN_PROC_BROWSER_TEST_P(WebstoreInlineInstallerRedirectTest,
|
| +IN_PROC_BROWSER_TEST_F(WebstoreInlineInstallerRedirectTest,
|
| IncludesRedirectData) {
|
| - const bool using_safe_browsing_tracker = GetParam();
|
| - WebContents* web_contents =
|
| - browser()->tab_strip_model()->GetActiveWebContents();
|
| - TabHelper* tab_helper = TabHelper::FromWebContents(web_contents);
|
| - WebstoreInlineInstallerForTestFactory* factory =
|
| - new WebstoreInlineInstallerForTestFactory(using_safe_browsing_tracker);
|
| - tab_helper->SetWebstoreInlineInstallerFactoryForTests(factory);
|
| -
|
| // Hand craft a url that will cause the test server to issue redirects.
|
| const std::vector<std::string> redirects = {kRedirect1Domain,
|
| kRedirect2Domain};
|
| @@ -446,11 +419,7 @@
|
|
|
| AutoAcceptInstall();
|
| ui_test_utils::NavigateToURL(browser(), install_url);
|
| -
|
| - RunTestAsync("runTest");
|
| - while (!ProgrammableInstallPrompt::Ready())
|
| - base::RunLoop().RunUntilIdle();
|
| - web_contents->Close();
|
| + RunTest("runTest");
|
|
|
| EXPECT_TRUE(cws_request_received_);
|
| ASSERT_NE(nullptr, cws_request_json_data_);
|
| @@ -460,21 +429,15 @@
|
| ASSERT_NE(nullptr, redirect_list);
|
|
|
| // Check that the expected domains are in the redirect list.
|
| - const std::set<std::string> expected_redirect_domains = {
|
| + const std::vector<std::string> expected_redirect_domains = {
|
| kRedirect1Domain, kRedirect2Domain, kAppDomain};
|
| -
|
| - // The SafeBrowsing tracker has a much more liberal definition of "redirect"
|
| - // and it may (based on timing) pick up additional navigations that occur
|
| - // shortly before the navigation we mainly care about here. Be somewhat
|
| - // permissive in what we accept as redirect results.
|
| - ASSERT_LE(expected_redirect_domains.size(), redirect_list->GetSize());
|
| -
|
| + ASSERT_EQ(expected_redirect_domains.size(), redirect_list->GetSize());
|
| + int i = 0;
|
| for (const auto& value : *redirect_list) {
|
| std::string value_string;
|
| ASSERT_TRUE(value.GetAsString(&value_string));
|
| GURL redirect_url(value_string);
|
| - EXPECT_TRUE(expected_redirect_domains.find(redirect_url.host()) !=
|
| - expected_redirect_domains.end());
|
| + EXPECT_EQ(expected_redirect_domains[i++], redirect_url.host());
|
| }
|
| }
|
|
|
| @@ -509,13 +472,6 @@
|
| EXPECT_TRUE(cws_request_received_);
|
| ASSERT_EQ(nullptr, cws_request_json_data_);
|
| }
|
| -
|
| -INSTANTIATE_TEST_CASE_P(NetRedirectTracking,
|
| - WebstoreInlineInstallerRedirectTest,
|
| - testing::Values(false));
|
| -INSTANTIATE_TEST_CASE_P(SafeBrowsingRedirectTracking,
|
| - WebstoreInlineInstallerRedirectTest,
|
| - testing::Values(true));
|
|
|
| class WebstoreInlineInstallerListenerTest : public WebstoreInlineInstallerTest {
|
| public:
|
|
|