Chromium Code Reviews| Index: chrome/browser/chrome_site_per_process_browsertest.cc |
| diff --git a/chrome/browser/chrome_site_per_process_browsertest.cc b/chrome/browser/chrome_site_per_process_browsertest.cc |
| index ca0ab2506b77b2fa9153922c469f2ca794bf5e32..e079e115c07214f63ead22ce235f8c743c1895ee 100644 |
| --- a/chrome/browser/chrome_site_per_process_browsertest.cc |
| +++ b/chrome/browser/chrome_site_per_process_browsertest.cc |
| @@ -12,6 +12,7 @@ |
| #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| #include "chrome/test/base/in_process_browser_test.h" |
| #include "chrome/test/base/ui_test_utils.h" |
| +#include "content/public/browser/interstitial_page.h" |
| #include "content/public/browser/notification_observer.h" |
| #include "content/public/browser/notification_service.h" |
| #include "content/public/browser/notification_types.h" |
| @@ -23,6 +24,7 @@ |
| #include "content/public/test/test_utils.h" |
| #include "net/dns/mock_host_resolver.h" |
| #include "net/test/embedded_test_server/embedded_test_server.h" |
| +#include "ui/display/display_switches.h" |
| #include "url/gurl.h" |
| class ChromeSitePerProcessTest : public InProcessBrowserTest { |
| @@ -44,6 +46,75 @@ class ChromeSitePerProcessTest : public InProcessBrowserTest { |
| DISALLOW_COPY_AND_ASSIGN(ChromeSitePerProcessTest); |
| }; |
| +class SitePerProcessHighDPIExpiredCertBrowserTest |
| + : public ChromeSitePerProcessTest { |
| + public: |
| + const double kDeviceScaleFactor = 2.0; |
| + |
| + SitePerProcessHighDPIExpiredCertBrowserTest() |
| + : https_server_expired_(net::EmbeddedTestServer::TYPE_HTTPS) { |
| + https_server_expired_.SetSSLConfig(net::EmbeddedTestServer::CERT_EXPIRED); |
| + } |
| + |
| + net::EmbeddedTestServer https_server_expired_; |
|
Lei Zhang
2016/08/24 18:33:51
It would be nice if this wasn't public and there w
wjmaclean
2016/08/24 19:17:07
Done.
I've added a function expired_cert_test_ser
|
| + |
| + protected: |
| + void SetUpCommandLine(base::CommandLine* command_line) override { |
| + ChromeSitePerProcessTest::SetUpCommandLine(command_line); |
| + command_line->AppendSwitchASCII( |
| + switches::kForceDeviceScaleFactor, |
| + base::StringPrintf("%f", kDeviceScaleFactor)); |
| + } |
| + |
| + void SetUpOnMainThread() override { |
| + ChromeSitePerProcessTest::SetUpOnMainThread(); |
| + ASSERT_TRUE(https_server_expired_.Start()); |
| + } |
| +}; |
| + |
| +double GetFrameDeviceScaleFactor(const content::ToRenderFrameHost& adapter) { |
| + double device_scale_factor; |
| + const char kGetFrameDeviceScaleFactor[] = |
| + "window.domAutomationController.send(window.devicePixelRatio);"; |
| + EXPECT_TRUE(ExecuteScriptAndExtractDouble(adapter, kGetFrameDeviceScaleFactor, |
| + &device_scale_factor)); |
| + return device_scale_factor; |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(SitePerProcessHighDPIExpiredCertBrowserTest, |
| + InterstitialLoadsWithCorrectDeviceScaleFactor) { |
| + GURL main_url(embedded_test_server()->GetURL( |
| + "a.com", "/cross_site_iframe_factory.html?a(b)")); |
| + ui_test_utils::NavigateToURL(browser(), main_url); |
| + |
| + EXPECT_EQ(SitePerProcessHighDPIExpiredCertBrowserTest::kDeviceScaleFactor, |
| + GetFrameDeviceScaleFactor( |
| + browser()->tab_strip_model()->GetActiveWebContents())); |
| + |
| + // Navigate to page with expired cert. |
| + GURL bad_cert_url(https_server_expired_.GetURL("c.com", "/title1.html")); |
| + ui_test_utils::NavigateToURL(browser(), bad_cert_url); |
| + WaitForInterstitialAttach( |
| + browser()->tab_strip_model()->GetActiveWebContents()); |
|
Lei Zhang
2016/08/24 18:33:50
You can also save the GetActiveWebContents() retur
wjmaclean
2016/08/24 19:17:07
Done.
|
| + EXPECT_TRUE(browser() |
| + ->tab_strip_model() |
| + ->GetActiveWebContents() |
| + ->ShowingInterstitialPage()); |
| + |
| + // Here we check the device scale factor in use via the interstitial's |
| + // RenderFrameHost; doing the check directly via the 'active web contents' |
| + // does not give us the device scale factor for the interstitial. |
| + content::RenderFrameHost* interstitial_frame_host = |
| + browser() |
| + ->tab_strip_model() |
| + ->GetActiveWebContents() |
| + ->GetInterstitialPage() |
| + ->GetMainFrame(); |
| + |
| + EXPECT_EQ(SitePerProcessHighDPIExpiredCertBrowserTest::kDeviceScaleFactor, |
| + GetFrameDeviceScaleFactor(interstitial_frame_host)); |
| +} |
| + |
| // Verify that browser shutdown path works correctly when there's a |
| // RenderFrameProxyHost for a child frame. |
| IN_PROC_BROWSER_TEST_F(ChromeSitePerProcessTest, RenderFrameProxyHostShutdown) { |