| Index: chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
|
| diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc b/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
|
| index b2a18ddde0706b08c554de4b418336d169a9184b..468adf7f11532a578712a079b0c2613db5377aab 100644
|
| --- a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
|
| +++ b/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
|
| @@ -1047,6 +1047,54 @@
|
| AssertNoInterstitial(true);
|
| }
|
|
|
| +namespace {
|
| +
|
| +class SecurityStyleTestObserver : public content::WebContentsObserver {
|
| + public:
|
| + explicit SecurityStyleTestObserver(content::WebContents* web_contents)
|
| + : content::WebContentsObserver(web_contents),
|
| + latest_security_style_(blink::WebSecurityStyleUnknown){};
|
| +
|
| + blink::WebSecurityStyle latest_security_style() const {
|
| + return latest_security_style_;
|
| + }
|
| +
|
| + // WebContentsObserver:
|
| + void SecurityStyleChanged(blink::WebSecurityStyle security_style,
|
| + const content::SecurityStyleExplanations&
|
| + security_style_explanations) override {
|
| + latest_security_style_ = security_style;
|
| + }
|
| +
|
| + private:
|
| + blink::WebSecurityStyle latest_security_style_;
|
| + DISALLOW_COPY_AND_ASSIGN(SecurityStyleTestObserver);
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| +// Test that the security indicator gets updated on a Safe Browsing
|
| +// interstitial triggered by a subresource. Regression test for
|
| +// https://crbug.com/659713.
|
| +IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest,
|
| + SecurityStateDowngradedForSubresourceInterstitial) {
|
| + WebContents* error_tab = browser()->tab_strip_model()->GetActiveWebContents();
|
| + ASSERT_TRUE(error_tab);
|
| + SecurityStyleTestObserver observer(error_tab);
|
| + // The security indicator should be downgraded while the interstitial shows.
|
| + SetupThreatIframeWarningAndNavigate();
|
| + ExpectSecurityIndicatorDowngrade(error_tab, 0u);
|
| + EXPECT_EQ(blink::WebSecurityStyleAuthenticationBroken,
|
| + observer.latest_security_style());
|
| +
|
| + // The security indicator should still be downgraded post-interstitial.
|
| + EXPECT_TRUE(ClickAndWaitForDetach("proceed-link"));
|
| + AssertNoInterstitial(true);
|
| + WebContents* post_tab = browser()->tab_strip_model()->GetActiveWebContents();
|
| + ASSERT_TRUE(post_tab);
|
| + ExpectSecurityIndicatorDowngrade(post_tab, 0u);
|
| +}
|
| +
|
| // Test that the security indicator is downgraded after clicking through a
|
| // Safe Browsing interstitial.
|
| IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest,
|
|
|