| Index: chrome/browser/permissions/permission_context_base_unittest.cc
 | 
| diff --git a/chrome/browser/permissions/permission_context_base_unittest.cc b/chrome/browser/permissions/permission_context_base_unittest.cc
 | 
| index 4bd7650387c98c5181c9bcb487b7a8e2d16dd6fd..f12026a3b1d5a74bd02008bd03d030a5a993e050 100644
 | 
| --- a/chrome/browser/permissions/permission_context_base_unittest.cc
 | 
| +++ b/chrome/browser/permissions/permission_context_base_unittest.cc
 | 
| @@ -27,6 +27,7 @@
 | 
|  #include "chrome/browser/permissions/permission_request_id.h"
 | 
|  #include "chrome/browser/permissions/permission_uma_util.h"
 | 
|  #include "chrome/browser/permissions/permission_util.h"
 | 
| +#include "chrome/browser/ui/permission_bubble/mock_permission_prompt_factory.h"
 | 
|  #include "chrome/common/chrome_features.h"
 | 
|  #include "chrome/common/chrome_switches.h"
 | 
|  #include "chrome/test/base/chrome_render_view_host_test_harness.h"
 | 
| @@ -247,19 +248,13 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
 | 
|      PermissionRequestManager* manager =
 | 
|          PermissionRequestManager::FromWebContents(web_contents());
 | 
|      manager->TogglePersist(persist);
 | 
| -    switch (response) {
 | 
| -      case CONTENT_SETTING_ALLOW:
 | 
| -        manager->Accept();
 | 
| -        break;
 | 
| -      case CONTENT_SETTING_BLOCK:
 | 
| -        manager->Deny();
 | 
| -        break;
 | 
| -      case CONTENT_SETTING_ASK:
 | 
| -        manager->Closing();
 | 
| -        break;
 | 
| -      default:
 | 
| -        NOTREACHED();
 | 
| -    }
 | 
| +    using AutoResponseType = PermissionRequestManager::AutoResponseType;
 | 
| +    AutoResponseType decision = AutoResponseType::DISMISS;
 | 
| +    if (response == CONTENT_SETTING_ALLOW)
 | 
| +      decision = AutoResponseType::ACCEPT_ALL;
 | 
| +    else if (response == CONTENT_SETTING_BLOCK)
 | 
| +      decision = AutoResponseType::DENY_ALL;
 | 
| +    prompt_factory_->set_response_type(decision);
 | 
|  #endif
 | 
|    }
 | 
|  
 | 
| @@ -268,7 +263,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
 | 
|                                      bool persist) {
 | 
|      TestPermissionContext permission_context(profile(), content_settings_type);
 | 
|      GURL url("https://www.google.com");
 | 
| -    NavigateAndCommit(url);
 | 
| +    SetUpUrl(url);
 | 
|      base::HistogramTester histograms;
 | 
|  
 | 
|      const PermissionRequestID id(
 | 
| @@ -420,7 +415,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
 | 
|  
 | 
|    void TestBlockOnSeveralDismissals_TestContent() {
 | 
|      GURL url("https://www.google.com");
 | 
| -    NavigateAndCommit(url);
 | 
| +    SetUpUrl(url);
 | 
|      base::HistogramTester histograms;
 | 
|  
 | 
|      // First, ensure that > 3 dismissals behaves correctly.
 | 
| @@ -488,7 +483,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
 | 
|  
 | 
|    void TestVariationBlockOnSeveralDismissals_TestContent() {
 | 
|      GURL url("https://www.google.com");
 | 
| -    NavigateAndCommit(url);
 | 
| +    SetUpUrl(url);
 | 
|      base::HistogramTester histograms;
 | 
|  
 | 
|      // Set up the custom parameter and custom value.
 | 
| @@ -595,7 +590,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
 | 
|      TestPermissionContext permission_context(profile(), content_settings_type);
 | 
|      GURL url;
 | 
|      ASSERT_FALSE(url.is_valid());
 | 
| -    NavigateAndCommit(url);
 | 
| +    SetUpUrl(url);
 | 
|  
 | 
|      const PermissionRequestID id(
 | 
|          web_contents()->GetRenderProcessHost()->GetID(),
 | 
| @@ -618,7 +613,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
 | 
|                                        ContentSetting expected_default) {
 | 
|      TestPermissionContext permission_context(profile(), content_settings_type);
 | 
|      GURL url("https://www.google.com");
 | 
| -    NavigateAndCommit(url);
 | 
| +    SetUpUrl(url);
 | 
|  
 | 
|      const PermissionRequestID id(
 | 
|          web_contents()->GetRenderProcessHost()->GetID(),
 | 
| @@ -673,7 +668,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
 | 
|      TestPermissionContext permission_context(
 | 
|          profile(), CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
 | 
|      GURL url("http://www.google.com");
 | 
| -    NavigateAndCommit(url);
 | 
| +    SetUpUrl(url);
 | 
|  
 | 
|      const PermissionRequestID id0(
 | 
|          web_contents()->GetRenderProcessHost()->GetID(),
 | 
| @@ -718,7 +713,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
 | 
|        int timeout,
 | 
|        ContentSetting expected_permission_status,
 | 
|        PermissionEmbargoStatus expected_embargo_reason) {
 | 
| -    NavigateAndCommit(url);
 | 
| +    SetUpUrl(url);
 | 
|      base::HistogramTester histograms;
 | 
|      base::test::ScopedFeatureList scoped_feature_list;
 | 
|      scoped_feature_list.InitAndEnableFeature(features::kPermissionsBlacklist);
 | 
| @@ -761,6 +756,13 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
 | 
|                                    static_cast<int>(expected_embargo_reason), 1);
 | 
|    }
 | 
|  
 | 
| +  void SetUpUrl(const GURL& url) {
 | 
| +    NavigateAndCommit(url);
 | 
| +#if !defined(OS_ANDROID)
 | 
| +    prompt_factory_->DocumentOnLoadCompletedInMainFrame();
 | 
| +#endif
 | 
| +  }
 | 
| +
 | 
|   private:
 | 
|    // ChromeRenderViewHostTestHarness:
 | 
|    void SetUp() override {
 | 
| @@ -769,9 +771,20 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
 | 
|      InfoBarService::CreateForWebContents(web_contents());
 | 
|  #else
 | 
|      PermissionRequestManager::CreateForWebContents(web_contents());
 | 
| +    PermissionRequestManager* manager =
 | 
| +        PermissionRequestManager::FromWebContents(web_contents());
 | 
| +    prompt_factory_.reset(new MockPermissionPromptFactory(manager));
 | 
| +    manager->DisplayPendingRequests();
 | 
|  #endif
 | 
|    }
 | 
|  
 | 
| +  void TearDown() override {
 | 
| +    prompt_factory_.reset();
 | 
| +    ChromeRenderViewHostTestHarness::TearDown();
 | 
| +  }
 | 
| +
 | 
| +  std::unique_ptr<MockPermissionPromptFactory> prompt_factory_;
 | 
| +
 | 
|    DISALLOW_COPY_AND_ASSIGN(PermissionContextBaseTests);
 | 
|  };
 | 
|  
 | 
| 
 |