| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 <Windows.h> | 5 #include <Windows.h> |
| 6 #include <Wincrypt.h> | 6 #include <Wincrypt.h> |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "chrome/common/filter_policy.h" | 10 #include "chrome/common/filter_policy.h" |
| 11 #include "chrome/common/pref_names.h" | 11 #include "chrome/common/pref_names.h" |
| 12 #include "chrome/test/automation/browser_proxy.h" | 12 #include "chrome/test/automation/browser_proxy.h" |
| 13 #include "chrome/test/automation/tab_proxy.h" | 13 #include "chrome/test/automation/tab_proxy.h" |
| 14 #include "chrome/test/ui/ui_test.h" | 14 #include "chrome/test/ui/ui_test.h" |
| 15 #include "net/base/ssl_test_util.h" | 15 #include "net/base/ssl_test_util.h" |
| 16 #include "net/url_request/url_request_unittest.h" | 16 #include "net/url_request/url_request_unittest.h" |
| 17 | 17 |
| 18 namespace { | 18 namespace { |
| 19 | 19 |
| 20 const wchar_t kDocRoot[] = L"chrome/test/data"; | 20 const wchar_t kDocRoot[] = L"chrome/test/data"; |
| 21 | 21 |
| 22 class SSLUITest : public UITest { | 22 class SSLUITest : public UITest { |
| 23 protected: | 23 protected: |
| 24 SSLUITest() { | 24 SSLUITest() { |
| 25 dom_automation_enabled_ = true; | 25 dom_automation_enabled_ = true; |
| 26 } | 26 } |
| 27 | 27 |
| 28 TabProxy* GetActiveTabProxy() { | 28 scoped_refptr<TabProxy> GetActiveTabProxy() { |
| 29 scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); | 29 scoped_refptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0))
; |
| 30 EXPECT_TRUE(browser_proxy.get()); | 30 EXPECT_TRUE(browser_proxy.get()); |
| 31 return browser_proxy->GetActiveTab(); | 31 return browser_proxy->GetActiveTab(); |
| 32 } | 32 } |
| 33 | 33 |
| 34 void NavigateTab(TabProxy* tab_proxy, const GURL& url) { | 34 void NavigateTab(TabProxy* tab_proxy, const GURL& url) { |
| 35 ASSERT_TRUE(tab_proxy->NavigateToURL(url)); | 35 ASSERT_TRUE(tab_proxy->NavigateToURL(url)); |
| 36 } | 36 } |
| 37 | 37 |
| 38 void AppendTab(const GURL& url) { | 38 void AppendTab(const GURL& url) { |
| 39 scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); | 39 scoped_refptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0))
; |
| 40 EXPECT_TRUE(browser_proxy.get()); | 40 EXPECT_TRUE(browser_proxy.get()); |
| 41 EXPECT_TRUE(browser_proxy->AppendTab(url)); | 41 EXPECT_TRUE(browser_proxy->AppendTab(url)); |
| 42 } | 42 } |
| 43 | 43 |
| 44 // Before using returned value you should check that the assertion below | 44 // Before using returned value you should check that the assertion below |
| 45 // didn't fail. To do so, use HasFailure(). | 45 // didn't fail. To do so, use HasFailure(). |
| 46 scoped_refptr<HTTPTestServer> PlainServer() { | 46 scoped_refptr<HTTPTestServer> PlainServer() { |
| 47 scoped_refptr<HTTPTestServer> server( | 47 scoped_refptr<HTTPTestServer> server( |
| 48 HTTPTestServer::CreateServer(kDocRoot, NULL)); | 48 HTTPTestServer::CreateServer(kDocRoot, NULL)); |
| 49 EXPECT_TRUE(server.get()); | 49 EXPECT_TRUE(server.get()); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 73 }; | 73 }; |
| 74 | 74 |
| 75 } // namespace | 75 } // namespace |
| 76 | 76 |
| 77 // Visits a regular page over http. | 77 // Visits a regular page over http. |
| 78 TEST_F(SSLUITest, TestHTTP) { | 78 TEST_F(SSLUITest, TestHTTP) { |
| 79 scoped_refptr<HTTPTestServer> server = PlainServer(); | 79 scoped_refptr<HTTPTestServer> server = PlainServer(); |
| 80 if (HasFailure()) | 80 if (HasFailure()) |
| 81 return; | 81 return; |
| 82 | 82 |
| 83 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 83 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 84 NavigateTab(tab.get(), server->TestServerPageW(L"files/ssl/google.html")); | 84 NavigateTab(tab.get(), server->TestServerPageW(L"files/ssl/google.html")); |
| 85 | 85 |
| 86 NavigationEntry::PageType page_type; | 86 NavigationEntry::PageType page_type; |
| 87 EXPECT_TRUE(tab->GetPageType(&page_type)); | 87 EXPECT_TRUE(tab->GetPageType(&page_type)); |
| 88 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); | 88 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); |
| 89 | 89 |
| 90 SecurityStyle security_style; | 90 SecurityStyle security_style; |
| 91 int cert_status; | 91 int cert_status; |
| 92 int mixed_content_state; | 92 int mixed_content_state; |
| 93 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, | 93 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, |
| 94 &mixed_content_state)); | 94 &mixed_content_state)); |
| 95 EXPECT_EQ(SECURITY_STYLE_UNAUTHENTICATED, security_style); | 95 EXPECT_EQ(SECURITY_STYLE_UNAUTHENTICATED, security_style); |
| 96 EXPECT_EQ(0, cert_status); | 96 EXPECT_EQ(0, cert_status); |
| 97 EXPECT_EQ(NavigationEntry::SSLStatus::NORMAL_CONTENT, mixed_content_state); | 97 EXPECT_EQ(NavigationEntry::SSLStatus::NORMAL_CONTENT, mixed_content_state); |
| 98 } | 98 } |
| 99 | 99 |
| 100 // Visits a page over http which includes broken https resources (status should | 100 // Visits a page over http which includes broken https resources (status should |
| 101 // be OK). | 101 // be OK). |
| 102 TEST_F(SSLUITest, TestHTTPWithBrokenHTTPSResource) { | 102 TEST_F(SSLUITest, TestHTTPWithBrokenHTTPSResource) { |
| 103 scoped_refptr<HTTPTestServer> http_server = PlainServer(); | 103 scoped_refptr<HTTPTestServer> http_server = PlainServer(); |
| 104 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); | 104 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); |
| 105 if (HasFailure()) | 105 if (HasFailure()) |
| 106 return; | 106 return; |
| 107 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 107 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 108 | 108 |
| 109 NavigateTab( | 109 NavigateTab( |
| 110 tab.get(), | 110 tab.get(), |
| 111 http_server->TestServerPageW( | 111 http_server->TestServerPageW( |
| 112 L"files/ssl/page_with_unsafe_contents.html")); | 112 L"files/ssl/page_with_unsafe_contents.html")); |
| 113 | 113 |
| 114 SecurityStyle security_style; | 114 SecurityStyle security_style; |
| 115 int cert_status; | 115 int cert_status; |
| 116 int mixed_content_state; | 116 int mixed_content_state; |
| 117 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, | 117 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, |
| 118 &mixed_content_state)); | 118 &mixed_content_state)); |
| 119 EXPECT_EQ(SECURITY_STYLE_UNAUTHENTICATED, security_style); | 119 EXPECT_EQ(SECURITY_STYLE_UNAUTHENTICATED, security_style); |
| 120 EXPECT_EQ(0, cert_status); | 120 EXPECT_EQ(0, cert_status); |
| 121 EXPECT_EQ(NavigationEntry::SSLStatus::NORMAL_CONTENT, mixed_content_state); | 121 EXPECT_EQ(NavigationEntry::SSLStatus::NORMAL_CONTENT, mixed_content_state); |
| 122 } | 122 } |
| 123 | 123 |
| 124 // Visits a page over OK https: | 124 // Visits a page over OK https: |
| 125 TEST_F(SSLUITest, TestOKHTTPS) { | 125 TEST_F(SSLUITest, TestOKHTTPS) { |
| 126 scoped_refptr<HTTPSTestServer> https_server = GoodCertServer(); | 126 scoped_refptr<HTTPSTestServer> https_server = GoodCertServer(); |
| 127 if (HasFailure()) | 127 if (HasFailure()) |
| 128 return; | 128 return; |
| 129 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 129 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 130 NavigateTab(tab.get(), | 130 NavigateTab(tab.get(), |
| 131 https_server->TestServerPageW(L"files/ssl/google.html")); | 131 https_server->TestServerPageW(L"files/ssl/google.html")); |
| 132 | 132 |
| 133 NavigationEntry::PageType page_type; | 133 NavigationEntry::PageType page_type; |
| 134 EXPECT_TRUE(tab->GetPageType(&page_type)); | 134 EXPECT_TRUE(tab->GetPageType(&page_type)); |
| 135 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); | 135 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); |
| 136 | 136 |
| 137 SecurityStyle security_style; | 137 SecurityStyle security_style; |
| 138 int cert_status; | 138 int cert_status; |
| 139 int mixed_content_state; | 139 int mixed_content_state; |
| 140 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, | 140 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, |
| 141 &mixed_content_state)); | 141 &mixed_content_state)); |
| 142 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATED, security_style); | 142 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATED, security_style); |
| 143 EXPECT_EQ(0, cert_status & net::CERT_STATUS_ALL_ERRORS); | 143 EXPECT_EQ(0, cert_status & net::CERT_STATUS_ALL_ERRORS); |
| 144 EXPECT_EQ(NavigationEntry::SSLStatus::NORMAL_CONTENT, mixed_content_state); | 144 EXPECT_EQ(NavigationEntry::SSLStatus::NORMAL_CONTENT, mixed_content_state); |
| 145 } | 145 } |
| 146 | 146 |
| 147 // Visits a page with https error and proceed: | 147 // Visits a page with https error and proceed: |
| 148 TEST_F(SSLUITest, TestHTTPSExpiredCertAndProceed) { | 148 TEST_F(SSLUITest, TestHTTPSExpiredCertAndProceed) { |
| 149 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); | 149 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); |
| 150 if (HasFailure()) | 150 if (HasFailure()) |
| 151 return; | 151 return; |
| 152 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 152 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 153 NavigateTab(tab.get(), | 153 NavigateTab(tab.get(), |
| 154 bad_https_server->TestServerPageW(L"files/ssl/google.html")); | 154 bad_https_server->TestServerPageW(L"files/ssl/google.html")); |
| 155 | 155 |
| 156 NavigationEntry::PageType page_type; | 156 NavigationEntry::PageType page_type; |
| 157 EXPECT_TRUE(tab->GetPageType(&page_type)); | 157 EXPECT_TRUE(tab->GetPageType(&page_type)); |
| 158 EXPECT_EQ(NavigationEntry::INTERSTITIAL_PAGE, page_type); | 158 EXPECT_EQ(NavigationEntry::INTERSTITIAL_PAGE, page_type); |
| 159 | 159 |
| 160 SecurityStyle security_style; | 160 SecurityStyle security_style; |
| 161 int cert_status; | 161 int cert_status; |
| 162 int mixed_content_state; | 162 int mixed_content_state; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 179 } | 179 } |
| 180 | 180 |
| 181 // Visits a page with https error and don't proceed (and ensure we can still | 181 // Visits a page with https error and don't proceed (and ensure we can still |
| 182 // navigate at that point): | 182 // navigate at that point): |
| 183 TEST_F(SSLUITest, TestHTTPSExpiredCertAndDontProceed) { | 183 TEST_F(SSLUITest, TestHTTPSExpiredCertAndDontProceed) { |
| 184 scoped_refptr<HTTPTestServer> http_server = PlainServer(); | 184 scoped_refptr<HTTPTestServer> http_server = PlainServer(); |
| 185 scoped_refptr<HTTPSTestServer> good_https_server = GoodCertServer(); | 185 scoped_refptr<HTTPSTestServer> good_https_server = GoodCertServer(); |
| 186 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); | 186 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); |
| 187 if (HasFailure()) | 187 if (HasFailure()) |
| 188 return; | 188 return; |
| 189 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 189 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 190 | 190 |
| 191 // First navigate to an OK page. | 191 // First navigate to an OK page. |
| 192 NavigateTab(tab.get(), | 192 NavigateTab(tab.get(), |
| 193 good_https_server->TestServerPageW(L"files/ssl/google.html")); | 193 good_https_server->TestServerPageW(L"files/ssl/google.html")); |
| 194 | 194 |
| 195 GURL cross_site_url = | 195 GURL cross_site_url = |
| 196 bad_https_server->TestServerPageW(L"files/ssl/google.html"); | 196 bad_https_server->TestServerPageW(L"files/ssl/google.html"); |
| 197 // Change the host name from 127.0.0.1 to localhost so it triggers a | 197 // Change the host name from 127.0.0.1 to localhost so it triggers a |
| 198 // cross-site navigation so we can test http://crbug.com/5800 is gone. | 198 // cross-site navigation so we can test http://crbug.com/5800 is gone. |
| 199 ASSERT_EQ("127.0.0.1", cross_site_url.host()); | 199 ASSERT_EQ("127.0.0.1", cross_site_url.host()); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 | 244 |
| 245 // Visits a page with mixed content. | 245 // Visits a page with mixed content. |
| 246 TEST_F(SSLUITest, TestMixedContents) { | 246 TEST_F(SSLUITest, TestMixedContents) { |
| 247 scoped_refptr<HTTPSTestServer> https_server = GoodCertServer(); | 247 scoped_refptr<HTTPSTestServer> https_server = GoodCertServer(); |
| 248 scoped_refptr<HTTPTestServer> http_server = PlainServer(); | 248 scoped_refptr<HTTPTestServer> http_server = PlainServer(); |
| 249 if (HasFailure()) | 249 if (HasFailure()) |
| 250 return; | 250 return; |
| 251 | 251 |
| 252 // Load a page with mixed-content, the default behavior is to show the mixed | 252 // Load a page with mixed-content, the default behavior is to show the mixed |
| 253 // content. | 253 // content. |
| 254 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 254 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 255 NavigateTab( | 255 NavigateTab( |
| 256 tab.get(), | 256 tab.get(), |
| 257 https_server->TestServerPageW( | 257 https_server->TestServerPageW( |
| 258 L"files/ssl/page_with_mixed_contents.html")); | 258 L"files/ssl/page_with_mixed_contents.html")); |
| 259 NavigationEntry::PageType page_type; | 259 NavigationEntry::PageType page_type; |
| 260 EXPECT_TRUE(tab->GetPageType(&page_type)); | 260 EXPECT_TRUE(tab->GetPageType(&page_type)); |
| 261 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); | 261 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); |
| 262 | 262 |
| 263 SecurityStyle security_style; | 263 SecurityStyle security_style; |
| 264 int cert_status; | 264 int cert_status; |
| 265 int mixed_content_state; | 265 int mixed_content_state; |
| 266 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, | 266 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, |
| 267 &mixed_content_state)); | 267 &mixed_content_state)); |
| 268 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATED, security_style); | 268 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATED, security_style); |
| 269 EXPECT_EQ(0, | 269 EXPECT_EQ(0, |
| 270 cert_status & net::CERT_STATUS_ALL_ERRORS); // No errors expected. | 270 cert_status & net::CERT_STATUS_ALL_ERRORS); // No errors expected. |
| 271 EXPECT_EQ(NavigationEntry::SSLStatus::MIXED_CONTENT, mixed_content_state); | 271 EXPECT_EQ(NavigationEntry::SSLStatus::MIXED_CONTENT, mixed_content_state); |
| 272 } | 272 } |
| 273 | 273 |
| 274 // Visits a page with mixed content. | 274 // Visits a page with mixed content. |
| 275 TEST_F(SSLUITest, TestMixedContentsFilterAll) { | 275 TEST_F(SSLUITest, TestMixedContentsFilterAll) { |
| 276 scoped_refptr<HTTPSTestServer> https_server = GoodCertServer(); | 276 scoped_refptr<HTTPSTestServer> https_server = GoodCertServer(); |
| 277 scoped_refptr<HTTPTestServer> http_server = PlainServer(); | 277 scoped_refptr<HTTPTestServer> http_server = PlainServer(); |
| 278 if (HasFailure()) | 278 if (HasFailure()) |
| 279 return; | 279 return; |
| 280 | 280 |
| 281 // Now select the block mixed-content pref and reload the page. | 281 // Now select the block mixed-content pref and reload the page. |
| 282 scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); | 282 scoped_refptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); |
| 283 EXPECT_TRUE(browser_proxy.get()); | 283 EXPECT_TRUE(browser_proxy.get()); |
| 284 EXPECT_TRUE(browser_proxy->SetIntPreference(prefs::kMixedContentFiltering, | 284 EXPECT_TRUE(browser_proxy->SetIntPreference(prefs::kMixedContentFiltering, |
| 285 FilterPolicy::FILTER_ALL)); | 285 FilterPolicy::FILTER_ALL)); |
| 286 | 286 |
| 287 // Load a page with mixed-content, we've overridden our filtering policy so | 287 // Load a page with mixed-content, we've overridden our filtering policy so |
| 288 // we won't load the mixed content by default. | 288 // we won't load the mixed content by default. |
| 289 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 289 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 290 NavigateTab( | 290 NavigateTab( |
| 291 tab.get(), | 291 tab.get(), |
| 292 https_server->TestServerPageW( | 292 https_server->TestServerPageW( |
| 293 L"files/ssl/page_with_mixed_contents.html")); | 293 L"files/ssl/page_with_mixed_contents.html")); |
| 294 NavigationEntry::PageType page_type; | 294 NavigationEntry::PageType page_type; |
| 295 EXPECT_TRUE(tab->GetPageType(&page_type)); | 295 EXPECT_TRUE(tab->GetPageType(&page_type)); |
| 296 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); | 296 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); |
| 297 | 297 |
| 298 // The image should be filtered. | 298 // The image should be filtered. |
| 299 int img_width; | 299 int img_width; |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 339 | 339 |
| 340 // Visits a page with an http script that tries to suppress our mixed content | 340 // Visits a page with an http script that tries to suppress our mixed content |
| 341 // warnings by randomize location.hash. | 341 // warnings by randomize location.hash. |
| 342 // Based on http://crbug.com/8706 | 342 // Based on http://crbug.com/8706 |
| 343 TEST_F(SSLUITest, TestMixedContentsRandomizeHash) { | 343 TEST_F(SSLUITest, TestMixedContentsRandomizeHash) { |
| 344 scoped_refptr<HTTPSTestServer> https_server = GoodCertServer(); | 344 scoped_refptr<HTTPSTestServer> https_server = GoodCertServer(); |
| 345 scoped_refptr<HTTPTestServer> http_server = PlainServer(); | 345 scoped_refptr<HTTPTestServer> http_server = PlainServer(); |
| 346 if (HasFailure()) | 346 if (HasFailure()) |
| 347 return; | 347 return; |
| 348 | 348 |
| 349 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 349 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 350 NavigateTab( | 350 NavigateTab( |
| 351 tab.get(), | 351 tab.get(), |
| 352 https_server->TestServerPageW( | 352 https_server->TestServerPageW( |
| 353 L"files/ssl/page_with_http_script.html")); | 353 L"files/ssl/page_with_http_script.html")); |
| 354 NavigationEntry::PageType page_type; | 354 NavigationEntry::PageType page_type; |
| 355 EXPECT_TRUE(tab->GetPageType(&page_type)); | 355 EXPECT_TRUE(tab->GetPageType(&page_type)); |
| 356 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); | 356 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); |
| 357 | 357 |
| 358 SecurityStyle security_style; | 358 SecurityStyle security_style; |
| 359 int cert_status; | 359 int cert_status; |
| 360 int mixed_content_state; | 360 int mixed_content_state; |
| 361 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, | 361 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, |
| 362 &mixed_content_state)); | 362 &mixed_content_state)); |
| 363 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATED, security_style); | 363 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATED, security_style); |
| 364 EXPECT_EQ(0, cert_status & net::CERT_STATUS_ALL_ERRORS); | 364 EXPECT_EQ(0, cert_status & net::CERT_STATUS_ALL_ERRORS); |
| 365 EXPECT_EQ(NavigationEntry::SSLStatus::MIXED_CONTENT, mixed_content_state); | 365 EXPECT_EQ(NavigationEntry::SSLStatus::MIXED_CONTENT, mixed_content_state); |
| 366 } | 366 } |
| 367 | 367 |
| 368 // Visits a page with unsafe content and make sure that: | 368 // Visits a page with unsafe content and make sure that: |
| 369 // - frames content is replaced with warning | 369 // - frames content is replaced with warning |
| 370 // - images and scripts are filtered out entirely | 370 // - images and scripts are filtered out entirely |
| 371 TEST_F(SSLUITest, TestUnsafeContents) { | 371 TEST_F(SSLUITest, TestUnsafeContents) { |
| 372 scoped_refptr<HTTPSTestServer> good_https_server = GoodCertServer(); | 372 scoped_refptr<HTTPSTestServer> good_https_server = GoodCertServer(); |
| 373 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); | 373 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); |
| 374 if (HasFailure()) | 374 if (HasFailure()) |
| 375 return; | 375 return; |
| 376 | 376 |
| 377 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 377 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 378 NavigateTab(tab.get(), | 378 NavigateTab(tab.get(), |
| 379 good_https_server->TestServerPageW( | 379 good_https_server->TestServerPageW( |
| 380 L"files/ssl/page_with_unsafe_contents.html")); | 380 L"files/ssl/page_with_unsafe_contents.html")); |
| 381 NavigationEntry::PageType page_type; | 381 NavigationEntry::PageType page_type; |
| 382 EXPECT_TRUE(tab->GetPageType(&page_type)); | 382 EXPECT_TRUE(tab->GetPageType(&page_type)); |
| 383 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); | 383 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); |
| 384 | 384 |
| 385 SecurityStyle security_style; | 385 SecurityStyle security_style; |
| 386 int cert_status; | 386 int cert_status; |
| 387 int mixed_content_state; | 387 int mixed_content_state; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 419 EXPECT_FALSE(js_result); | 419 EXPECT_FALSE(js_result); |
| 420 } | 420 } |
| 421 | 421 |
| 422 // Visits a page with mixed content loaded by JS (after the initial page load). | 422 // Visits a page with mixed content loaded by JS (after the initial page load). |
| 423 TEST_F(SSLUITest, TestMixedContentsLoadedFromJS) { | 423 TEST_F(SSLUITest, TestMixedContentsLoadedFromJS) { |
| 424 scoped_refptr<HTTPSTestServer> https_server = GoodCertServer(); | 424 scoped_refptr<HTTPSTestServer> https_server = GoodCertServer(); |
| 425 scoped_refptr<HTTPTestServer> http_server = PlainServer(); | 425 scoped_refptr<HTTPTestServer> http_server = PlainServer(); |
| 426 if (HasFailure()) | 426 if (HasFailure()) |
| 427 return; | 427 return; |
| 428 | 428 |
| 429 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 429 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 430 NavigateTab(tab.get(), https_server->TestServerPageW( | 430 NavigateTab(tab.get(), https_server->TestServerPageW( |
| 431 L"files/ssl/page_with_dynamic_mixed_contents.html")); | 431 L"files/ssl/page_with_dynamic_mixed_contents.html")); |
| 432 NavigationEntry::PageType page_type; | 432 NavigationEntry::PageType page_type; |
| 433 EXPECT_TRUE(tab->GetPageType(&page_type)); | 433 EXPECT_TRUE(tab->GetPageType(&page_type)); |
| 434 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); | 434 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); |
| 435 SecurityStyle security_style; | 435 SecurityStyle security_style; |
| 436 int cert_status; | 436 int cert_status; |
| 437 int mixed_content_state; | 437 int mixed_content_state; |
| 438 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, | 438 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, |
| 439 &mixed_content_state)); | 439 &mixed_content_state)); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 461 // Visits two pages from the same origin: one with mixed content and one | 461 // Visits two pages from the same origin: one with mixed content and one |
| 462 // without. The test checks that we don't propagate the mixed content state | 462 // without. The test checks that we don't propagate the mixed content state |
| 463 // from one process to another process. This test is expected to fail in | 463 // from one process to another process. This test is expected to fail in |
| 464 // single process mode. | 464 // single process mode. |
| 465 TEST_F(SSLUITest, TestMixedContentsTwoTabs) { | 465 TEST_F(SSLUITest, TestMixedContentsTwoTabs) { |
| 466 scoped_refptr<HTTPSTestServer> https_server = GoodCertServer(); | 466 scoped_refptr<HTTPSTestServer> https_server = GoodCertServer(); |
| 467 scoped_refptr<HTTPTestServer> http_server = PlainServer(); | 467 scoped_refptr<HTTPTestServer> http_server = PlainServer(); |
| 468 if (HasFailure()) | 468 if (HasFailure()) |
| 469 return; | 469 return; |
| 470 | 470 |
| 471 scoped_ptr<TabProxy> tab1(GetActiveTabProxy()); | 471 scoped_refptr<TabProxy> tab1(GetActiveTabProxy()); |
| 472 NavigateTab( | 472 NavigateTab( |
| 473 tab1.get(), | 473 tab1.get(), |
| 474 https_server->TestServerPageW( | 474 https_server->TestServerPageW( |
| 475 L"files/ssl/blank_page.html")); | 475 L"files/ssl/blank_page.html")); |
| 476 NavigationEntry::PageType page_type; | 476 NavigationEntry::PageType page_type; |
| 477 EXPECT_TRUE(tab1->GetPageType(&page_type)); | 477 EXPECT_TRUE(tab1->GetPageType(&page_type)); |
| 478 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); | 478 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); |
| 479 | 479 |
| 480 // This tab should be fine. | 480 // This tab should be fine. |
| 481 SecurityStyle security_style; | 481 SecurityStyle security_style; |
| 482 int cert_status; | 482 int cert_status; |
| 483 int mixed_content_state; | 483 int mixed_content_state; |
| 484 EXPECT_TRUE(tab1->GetSecurityState(&security_style, &cert_status, | 484 EXPECT_TRUE(tab1->GetSecurityState(&security_style, &cert_status, |
| 485 &mixed_content_state)); | 485 &mixed_content_state)); |
| 486 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATED, security_style); | 486 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATED, security_style); |
| 487 EXPECT_EQ(0, cert_status & net::CERT_STATUS_ALL_ERRORS); | 487 EXPECT_EQ(0, cert_status & net::CERT_STATUS_ALL_ERRORS); |
| 488 EXPECT_EQ(NavigationEntry::SSLStatus::NORMAL_CONTENT, mixed_content_state); | 488 EXPECT_EQ(NavigationEntry::SSLStatus::NORMAL_CONTENT, mixed_content_state); |
| 489 | 489 |
| 490 scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); | 490 scoped_refptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); |
| 491 EXPECT_TRUE(browser_proxy.get()); | 491 EXPECT_TRUE(browser_proxy.get()); |
| 492 EXPECT_TRUE(browser_proxy->AppendTab( | 492 EXPECT_TRUE(browser_proxy->AppendTab( |
| 493 https_server->TestServerPageW(L"files/ssl/page_with_http_script.html"))); | 493 https_server->TestServerPageW(L"files/ssl/page_with_http_script.html"))); |
| 494 | 494 |
| 495 scoped_ptr<TabProxy> tab2(GetActiveTabProxy()); | 495 scoped_refptr<TabProxy> tab2(GetActiveTabProxy()); |
| 496 EXPECT_TRUE(tab2->GetPageType(&page_type)); | 496 EXPECT_TRUE(tab2->GetPageType(&page_type)); |
| 497 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); | 497 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); |
| 498 | 498 |
| 499 // The new tab has mixed content. | 499 // The new tab has mixed content. |
| 500 EXPECT_TRUE(tab2->GetSecurityState(&security_style, &cert_status, | 500 EXPECT_TRUE(tab2->GetSecurityState(&security_style, &cert_status, |
| 501 &mixed_content_state)); | 501 &mixed_content_state)); |
| 502 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATED, security_style); | 502 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATED, security_style); |
| 503 EXPECT_EQ(0, cert_status & net::CERT_STATUS_ALL_ERRORS); | 503 EXPECT_EQ(0, cert_status & net::CERT_STATUS_ALL_ERRORS); |
| 504 EXPECT_EQ(NavigationEntry::SSLStatus::MIXED_CONTENT, mixed_content_state); | 504 EXPECT_EQ(NavigationEntry::SSLStatus::MIXED_CONTENT, mixed_content_state); |
| 505 | 505 |
| 506 // The origin for the first tab has not been contaminated with | 506 // The origin for the first tab has not been contaminated with |
| 507 // mixed content because its in a separate process. | 507 // mixed content because its in a separate process. |
| 508 EXPECT_TRUE(tab1->GetSecurityState(&security_style, &cert_status, | 508 EXPECT_TRUE(tab1->GetSecurityState(&security_style, &cert_status, |
| 509 &mixed_content_state)); | 509 &mixed_content_state)); |
| 510 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATED, security_style); | 510 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATED, security_style); |
| 511 EXPECT_EQ(0, cert_status & net::CERT_STATUS_ALL_ERRORS); | 511 EXPECT_EQ(0, cert_status & net::CERT_STATUS_ALL_ERRORS); |
| 512 EXPECT_EQ(NavigationEntry::SSLStatus::NORMAL_CONTENT, mixed_content_state); | 512 EXPECT_EQ(NavigationEntry::SSLStatus::NORMAL_CONTENT, mixed_content_state); |
| 513 } | 513 } |
| 514 | 514 |
| 515 // Visits a page with an image over http. Visits another page over https | 515 // Visits a page with an image over http. Visits another page over https |
| 516 // referencing that same image over http (hoping it is coming from the webcore | 516 // referencing that same image over http (hoping it is coming from the webcore |
| 517 // memory cache). | 517 // memory cache). |
| 518 TEST_F(SSLUITest, TestCachedMixedContents) { | 518 TEST_F(SSLUITest, TestCachedMixedContents) { |
| 519 scoped_refptr<HTTPSTestServer> https_server = GoodCertServer(); | 519 scoped_refptr<HTTPSTestServer> https_server = GoodCertServer(); |
| 520 scoped_refptr<HTTPTestServer> http_server = PlainServer(); | 520 scoped_refptr<HTTPTestServer> http_server = PlainServer(); |
| 521 if (HasFailure()) | 521 if (HasFailure()) |
| 522 return; | 522 return; |
| 523 | 523 |
| 524 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 524 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 525 NavigateTab(tab.get(), http_server->TestServerPageW( | 525 NavigateTab(tab.get(), http_server->TestServerPageW( |
| 526 L"files/ssl/page_with_mixed_contents.html")); | 526 L"files/ssl/page_with_mixed_contents.html")); |
| 527 | 527 |
| 528 NavigationEntry::PageType page_type; | 528 NavigationEntry::PageType page_type; |
| 529 EXPECT_TRUE(tab->GetPageType(&page_type)); | 529 EXPECT_TRUE(tab->GetPageType(&page_type)); |
| 530 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); | 530 EXPECT_EQ(NavigationEntry::NORMAL_PAGE, page_type); |
| 531 SecurityStyle security_style; | 531 SecurityStyle security_style; |
| 532 int cert_status; | 532 int cert_status; |
| 533 int mixed_content_state; | 533 int mixed_content_state; |
| 534 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, | 534 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, |
| (...skipping 22 matching lines...) Expand all Loading... |
| 557 // (see bug #1044942) and that it depends on the host-name. | 557 // (see bug #1044942) and that it depends on the host-name. |
| 558 // TODO(jcampan): this test is flacky and fails sometimes (bug #1065095) | 558 // TODO(jcampan): this test is flacky and fails sometimes (bug #1065095) |
| 559 TEST_F(SSLUITest, DISABLED_TestCNInvalidStickiness) { | 559 TEST_F(SSLUITest, DISABLED_TestCNInvalidStickiness) { |
| 560 const std::string kLocalHost = "localhost"; | 560 const std::string kLocalHost = "localhost"; |
| 561 scoped_refptr<HTTPSTestServer> https_server = | 561 scoped_refptr<HTTPSTestServer> https_server = |
| 562 HTTPSTestServer::CreateMismatchedServer(kDocRoot); | 562 HTTPSTestServer::CreateMismatchedServer(kDocRoot); |
| 563 ASSERT_TRUE(NULL != https_server.get()); | 563 ASSERT_TRUE(NULL != https_server.get()); |
| 564 | 564 |
| 565 // First we hit the server with hostname, this generates an invalid policy | 565 // First we hit the server with hostname, this generates an invalid policy |
| 566 // error. | 566 // error. |
| 567 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 567 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 568 NavigateTab(tab.get(), https_server->TestServerPageW( | 568 NavigateTab(tab.get(), https_server->TestServerPageW( |
| 569 L"files/ssl/google.html")); | 569 L"files/ssl/google.html")); |
| 570 | 570 |
| 571 // We get an interstitial page as a result. | 571 // We get an interstitial page as a result. |
| 572 NavigationEntry::PageType page_type; | 572 NavigationEntry::PageType page_type; |
| 573 EXPECT_TRUE(tab->GetPageType(&page_type)); | 573 EXPECT_TRUE(tab->GetPageType(&page_type)); |
| 574 EXPECT_EQ(NavigationEntry::INTERSTITIAL_PAGE, page_type); | 574 EXPECT_EQ(NavigationEntry::INTERSTITIAL_PAGE, page_type); |
| 575 | 575 |
| 576 SecurityStyle security_style; | 576 SecurityStyle security_style; |
| 577 int cert_status; | 577 int cert_status; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 622 EXPECT_EQ(net::CERT_STATUS_COMMON_NAME_INVALID, | 622 EXPECT_EQ(net::CERT_STATUS_COMMON_NAME_INVALID, |
| 623 cert_status & net::CERT_STATUS_ALL_ERRORS); | 623 cert_status & net::CERT_STATUS_ALL_ERRORS); |
| 624 EXPECT_EQ(NavigationEntry::SSLStatus::NORMAL_CONTENT, mixed_content_state); | 624 EXPECT_EQ(NavigationEntry::SSLStatus::NORMAL_CONTENT, mixed_content_state); |
| 625 } | 625 } |
| 626 | 626 |
| 627 // Test that navigating to a #ref does not change a bad security state. | 627 // Test that navigating to a #ref does not change a bad security state. |
| 628 TEST_F(SSLUITest, TestRefNavigation) { | 628 TEST_F(SSLUITest, TestRefNavigation) { |
| 629 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); | 629 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); |
| 630 if (HasFailure()) | 630 if (HasFailure()) |
| 631 return; | 631 return; |
| 632 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 632 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 633 NavigateTab( | 633 NavigateTab( |
| 634 tab.get(), | 634 tab.get(), |
| 635 bad_https_server->TestServerPageW(L"files/ssl/page_with_refs.html")); | 635 bad_https_server->TestServerPageW(L"files/ssl/page_with_refs.html")); |
| 636 | 636 |
| 637 NavigationEntry::PageType page_type; | 637 NavigationEntry::PageType page_type; |
| 638 EXPECT_TRUE(tab->GetPageType(&page_type)); | 638 EXPECT_TRUE(tab->GetPageType(&page_type)); |
| 639 EXPECT_EQ(page_type, NavigationEntry::INTERSTITIAL_PAGE); | 639 EXPECT_EQ(page_type, NavigationEntry::INTERSTITIAL_PAGE); |
| 640 | 640 |
| 641 SecurityStyle security_style; | 641 SecurityStyle security_style; |
| 642 int cert_status; | 642 int cert_status; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 670 | 670 |
| 671 // Tests that closing a page that has a unsafe pop-up does not crash the browser | 671 // Tests that closing a page that has a unsafe pop-up does not crash the browser |
| 672 // (bug #1966). | 672 // (bug #1966). |
| 673 // Disabled because flaky (bug #2136). | 673 // Disabled because flaky (bug #2136). |
| 674 TEST_F(SSLUITest, DISABLED_TestCloseTabWithUnsafePopup) { | 674 TEST_F(SSLUITest, DISABLED_TestCloseTabWithUnsafePopup) { |
| 675 scoped_refptr<HTTPTestServer> http_server = PlainServer(); | 675 scoped_refptr<HTTPTestServer> http_server = PlainServer(); |
| 676 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); | 676 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); |
| 677 if (HasFailure()) | 677 if (HasFailure()) |
| 678 return; | 678 return; |
| 679 | 679 |
| 680 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 680 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 681 NavigateTab(tab.get(), | 681 NavigateTab(tab.get(), |
| 682 http_server->TestServerPageW( | 682 http_server->TestServerPageW( |
| 683 L"files/ssl/page_with_unsafe_popup.html")); | 683 L"files/ssl/page_with_unsafe_popup.html")); |
| 684 | 684 |
| 685 int popup_count = 0; | 685 int popup_count = 0; |
| 686 EXPECT_TRUE(tab->GetConstrainedWindowCount(&popup_count)); | 686 EXPECT_TRUE(tab->GetConstrainedWindowCount(&popup_count)); |
| 687 EXPECT_EQ(1, popup_count); | 687 EXPECT_EQ(1, popup_count); |
| 688 | 688 |
| 689 // Let's add another tab to make sure the browser does not exit when we close | 689 // Let's add another tab to make sure the browser does not exit when we close |
| 690 // the first tab. | 690 // the first tab. |
| 691 scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); | 691 scoped_refptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); |
| 692 EXPECT_TRUE(browser_proxy.get()); | 692 EXPECT_TRUE(browser_proxy.get()); |
| 693 browser_proxy->AppendTab( | 693 browser_proxy->AppendTab( |
| 694 http_server->TestServerPageW(L"files/ssl/google.html")); | 694 http_server->TestServerPageW(L"files/ssl/google.html")); |
| 695 | 695 |
| 696 // Close the first tab. | 696 // Close the first tab. |
| 697 tab->Close(); | 697 tab->Close(); |
| 698 } | 698 } |
| 699 | 699 |
| 700 // Visit a page over bad https that is a redirect to a page with good https. | 700 // Visit a page over bad https that is a redirect to a page with good https. |
| 701 TEST_F(SSLUITest, TestRedirectBadToGoodHTTPS) { | 701 TEST_F(SSLUITest, TestRedirectBadToGoodHTTPS) { |
| 702 scoped_refptr<HTTPSTestServer> good_https_server = GoodCertServer(); | 702 scoped_refptr<HTTPSTestServer> good_https_server = GoodCertServer(); |
| 703 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); | 703 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); |
| 704 if (HasFailure()) | 704 if (HasFailure()) |
| 705 return; | 705 return; |
| 706 | 706 |
| 707 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 707 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 708 GURL url1 = bad_https_server->TestServerPageW(L"server-redirect?"); | 708 GURL url1 = bad_https_server->TestServerPageW(L"server-redirect?"); |
| 709 GURL url2 = good_https_server->TestServerPageW(L"files/ssl/google.html"); | 709 GURL url2 = good_https_server->TestServerPageW(L"files/ssl/google.html"); |
| 710 NavigateTab(tab.get(), GURL(url1.spec() + url2.spec())); | 710 NavigateTab(tab.get(), GURL(url1.spec() + url2.spec())); |
| 711 | 711 |
| 712 NavigationEntry::PageType page_type; | 712 NavigationEntry::PageType page_type; |
| 713 EXPECT_TRUE(tab->GetPageType(&page_type)); | 713 EXPECT_TRUE(tab->GetPageType(&page_type)); |
| 714 EXPECT_EQ(page_type, NavigationEntry::INTERSTITIAL_PAGE); | 714 EXPECT_EQ(page_type, NavigationEntry::INTERSTITIAL_PAGE); |
| 715 | 715 |
| 716 SecurityStyle security_style; | 716 SecurityStyle security_style; |
| 717 int cert_status; | 717 int cert_status; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 732 EXPECT_EQ(NavigationEntry::SSLStatus::NORMAL_CONTENT, mixed_content_state); | 732 EXPECT_EQ(NavigationEntry::SSLStatus::NORMAL_CONTENT, mixed_content_state); |
| 733 } | 733 } |
| 734 | 734 |
| 735 // Visit a page over good https that is a redirect to a page with bad https. | 735 // Visit a page over good https that is a redirect to a page with bad https. |
| 736 TEST_F(SSLUITest, TestRedirectGoodToBadHTTPS) { | 736 TEST_F(SSLUITest, TestRedirectGoodToBadHTTPS) { |
| 737 scoped_refptr<HTTPSTestServer> good_https_server = GoodCertServer(); | 737 scoped_refptr<HTTPSTestServer> good_https_server = GoodCertServer(); |
| 738 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); | 738 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); |
| 739 if (HasFailure()) | 739 if (HasFailure()) |
| 740 return; | 740 return; |
| 741 | 741 |
| 742 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 742 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 743 GURL url1 = good_https_server->TestServerPageW(L"server-redirect?"); | 743 GURL url1 = good_https_server->TestServerPageW(L"server-redirect?"); |
| 744 GURL url2 = bad_https_server->TestServerPageW(L"files/ssl/google.html"); | 744 GURL url2 = bad_https_server->TestServerPageW(L"files/ssl/google.html"); |
| 745 NavigateTab(tab.get(), GURL(url1.spec() + url2.spec())); | 745 NavigateTab(tab.get(), GURL(url1.spec() + url2.spec())); |
| 746 | 746 |
| 747 NavigationEntry::PageType page_type; | 747 NavigationEntry::PageType page_type; |
| 748 EXPECT_TRUE(tab->GetPageType(&page_type)); | 748 EXPECT_TRUE(tab->GetPageType(&page_type)); |
| 749 EXPECT_EQ(page_type, NavigationEntry::INTERSTITIAL_PAGE); | 749 EXPECT_EQ(page_type, NavigationEntry::INTERSTITIAL_PAGE); |
| 750 | 750 |
| 751 EXPECT_TRUE(tab->TakeActionOnSSLBlockingPage(true)); | 751 EXPECT_TRUE(tab->TakeActionOnSSLBlockingPage(true)); |
| 752 | 752 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 764 // Visit a page over http that is a redirect to a page with https (good and | 764 // Visit a page over http that is a redirect to a page with https (good and |
| 765 // bad). | 765 // bad). |
| 766 TEST_F(SSLUITest, TestRedirectHTTPToHTTPS) { | 766 TEST_F(SSLUITest, TestRedirectHTTPToHTTPS) { |
| 767 scoped_refptr<HTTPTestServer> http_server = PlainServer(); | 767 scoped_refptr<HTTPTestServer> http_server = PlainServer(); |
| 768 scoped_refptr<HTTPSTestServer> good_https_server = GoodCertServer(); | 768 scoped_refptr<HTTPSTestServer> good_https_server = GoodCertServer(); |
| 769 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); | 769 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); |
| 770 if (HasFailure()) | 770 if (HasFailure()) |
| 771 return; | 771 return; |
| 772 | 772 |
| 773 // HTTP redirects to good HTTPS. | 773 // HTTP redirects to good HTTPS. |
| 774 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 774 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 775 GURL http_url = http_server->TestServerPageW(L"server-redirect?"); | 775 GURL http_url = http_server->TestServerPageW(L"server-redirect?"); |
| 776 GURL good_https_url = | 776 GURL good_https_url = |
| 777 good_https_server->TestServerPageW(L"files/ssl/google.html"); | 777 good_https_server->TestServerPageW(L"files/ssl/google.html"); |
| 778 NavigateTab(tab.get(), GURL(http_url.spec() + good_https_url.spec())); | 778 NavigateTab(tab.get(), GURL(http_url.spec() + good_https_url.spec())); |
| 779 | 779 |
| 780 SecurityStyle security_style; | 780 SecurityStyle security_style; |
| 781 int cert_status; | 781 int cert_status; |
| 782 int mixed_content_state; | 782 int mixed_content_state; |
| 783 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, | 783 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, |
| 784 &mixed_content_state)); | 784 &mixed_content_state)); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 807 } | 807 } |
| 808 | 808 |
| 809 // Visit a page over https that is a redirect to a page with http (to make sure | 809 // Visit a page over https that is a redirect to a page with http (to make sure |
| 810 // we don't keep the secure state). | 810 // we don't keep the secure state). |
| 811 TEST_F(SSLUITest, TestRedirectHTTPSToHTTP) { | 811 TEST_F(SSLUITest, TestRedirectHTTPSToHTTP) { |
| 812 scoped_refptr<HTTPTestServer> http_server = PlainServer(); | 812 scoped_refptr<HTTPTestServer> http_server = PlainServer(); |
| 813 scoped_refptr<HTTPSTestServer> https_server = GoodCertServer(); | 813 scoped_refptr<HTTPSTestServer> https_server = GoodCertServer(); |
| 814 if (HasFailure()) | 814 if (HasFailure()) |
| 815 return; | 815 return; |
| 816 | 816 |
| 817 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 817 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 818 GURL https_url = https_server->TestServerPageW(L"server-redirect?"); | 818 GURL https_url = https_server->TestServerPageW(L"server-redirect?"); |
| 819 GURL http_url = http_server->TestServerPageW(L"files/ssl/google.html"); | 819 GURL http_url = http_server->TestServerPageW(L"files/ssl/google.html"); |
| 820 NavigateTab(tab.get(), GURL(https_url.spec() + http_url.spec())); | 820 NavigateTab(tab.get(), GURL(https_url.spec() + http_url.spec())); |
| 821 | 821 |
| 822 SecurityStyle security_style; | 822 SecurityStyle security_style; |
| 823 int cert_status; | 823 int cert_status; |
| 824 int mixed_content_state; | 824 int mixed_content_state; |
| 825 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, | 825 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, |
| 826 &mixed_content_state)); | 826 &mixed_content_state)); |
| 827 EXPECT_EQ(SECURITY_STYLE_UNAUTHENTICATED, security_style); | 827 EXPECT_EQ(SECURITY_STYLE_UNAUTHENTICATED, security_style); |
| 828 EXPECT_EQ(0, cert_status & net::CERT_STATUS_ALL_ERRORS); | 828 EXPECT_EQ(0, cert_status & net::CERT_STATUS_ALL_ERRORS); |
| 829 EXPECT_EQ(NavigationEntry::SSLStatus::NORMAL_CONTENT, mixed_content_state); | 829 EXPECT_EQ(NavigationEntry::SSLStatus::NORMAL_CONTENT, mixed_content_state); |
| 830 } | 830 } |
| 831 | 831 |
| 832 // Visits a page to which we could not connect (bad port) over http and https | 832 // Visits a page to which we could not connect (bad port) over http and https |
| 833 // and make sure the security style is correct. | 833 // and make sure the security style is correct. |
| 834 TEST_F(SSLUITest, TestConnectToBadPort) { | 834 TEST_F(SSLUITest, TestConnectToBadPort) { |
| 835 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 835 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 836 | 836 |
| 837 GURL http_url("http://localhost:17"); | 837 GURL http_url("http://localhost:17"); |
| 838 NavigateTab(tab.get(), http_url); | 838 NavigateTab(tab.get(), http_url); |
| 839 | 839 |
| 840 SecurityStyle security_style; | 840 SecurityStyle security_style; |
| 841 int cert_status; | 841 int cert_status; |
| 842 int mixed_content_state; | 842 int mixed_content_state; |
| 843 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, | 843 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, |
| 844 &mixed_content_state)); | 844 &mixed_content_state)); |
| 845 EXPECT_EQ(SECURITY_STYLE_UNAUTHENTICATED, security_style); | 845 EXPECT_EQ(SECURITY_STYLE_UNAUTHENTICATED, security_style); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 866 // - navigate to a bad HTTPS (expect unsafe content and filtered frame), then | 866 // - navigate to a bad HTTPS (expect unsafe content and filtered frame), then |
| 867 // back | 867 // back |
| 868 // - navigate to HTTP (expect mixed content), then back | 868 // - navigate to HTTP (expect mixed content), then back |
| 869 TEST_F(SSLUITest, TestGoodFrameNavigation) { | 869 TEST_F(SSLUITest, TestGoodFrameNavigation) { |
| 870 scoped_refptr<HTTPTestServer> http_server = PlainServer(); | 870 scoped_refptr<HTTPTestServer> http_server = PlainServer(); |
| 871 scoped_refptr<HTTPSTestServer> good_https_server = GoodCertServer(); | 871 scoped_refptr<HTTPSTestServer> good_https_server = GoodCertServer(); |
| 872 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); | 872 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); |
| 873 if (HasFailure()) | 873 if (HasFailure()) |
| 874 return; | 874 return; |
| 875 | 875 |
| 876 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 876 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 877 NavigateTab(tab.get(), | 877 NavigateTab(tab.get(), |
| 878 good_https_server->TestServerPageW(L"files/ssl/top_frame.html")); | 878 good_https_server->TestServerPageW(L"files/ssl/top_frame.html")); |
| 879 | 879 |
| 880 SecurityStyle security_style; | 880 SecurityStyle security_style; |
| 881 int cert_status; | 881 int cert_status; |
| 882 int mixed_content_state; | 882 int mixed_content_state; |
| 883 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, | 883 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, |
| 884 &mixed_content_state)); | 884 &mixed_content_state)); |
| 885 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATED, security_style); | 885 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATED, security_style); |
| 886 EXPECT_EQ(0, cert_status & net::CERT_STATUS_ALL_ERRORS); | 886 EXPECT_EQ(0, cert_status & net::CERT_STATUS_ALL_ERRORS); |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 963 } | 963 } |
| 964 | 964 |
| 965 // From a bad HTTPS top frame: | 965 // From a bad HTTPS top frame: |
| 966 // - navigate to an OK HTTPS frame (expected to be still authentication broken). | 966 // - navigate to an OK HTTPS frame (expected to be still authentication broken). |
| 967 TEST_F(SSLUITest, TestBadFrameNavigation) { | 967 TEST_F(SSLUITest, TestBadFrameNavigation) { |
| 968 scoped_refptr<HTTPSTestServer> good_https_server = GoodCertServer(); | 968 scoped_refptr<HTTPSTestServer> good_https_server = GoodCertServer(); |
| 969 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); | 969 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); |
| 970 if (HasFailure()) | 970 if (HasFailure()) |
| 971 return; | 971 return; |
| 972 | 972 |
| 973 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 973 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 974 NavigateTab(tab.get(), | 974 NavigateTab(tab.get(), |
| 975 bad_https_server->TestServerPageW(L"files/ssl/top_frame.html")); | 975 bad_https_server->TestServerPageW(L"files/ssl/top_frame.html")); |
| 976 | 976 |
| 977 SecurityStyle security_style; | 977 SecurityStyle security_style; |
| 978 int cert_status; | 978 int cert_status; |
| 979 int mixed_content_state; | 979 int mixed_content_state; |
| 980 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, | 980 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, |
| 981 &mixed_content_state)); | 981 &mixed_content_state)); |
| 982 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATION_BROKEN, security_style); | 982 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATION_BROKEN, security_style); |
| 983 EXPECT_EQ(net::CERT_STATUS_DATE_INVALID, | 983 EXPECT_EQ(net::CERT_STATUS_DATE_INVALID, |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1008 | 1008 |
| 1009 // From an HTTP top frame, navigate to good and bad HTTPS (security state should | 1009 // From an HTTP top frame, navigate to good and bad HTTPS (security state should |
| 1010 // stay unauthenticated). | 1010 // stay unauthenticated). |
| 1011 TEST_F(SSLUITest, TestUnauthenticatedFrameNavigation) { | 1011 TEST_F(SSLUITest, TestUnauthenticatedFrameNavigation) { |
| 1012 scoped_refptr<HTTPTestServer> http_server = PlainServer(); | 1012 scoped_refptr<HTTPTestServer> http_server = PlainServer(); |
| 1013 scoped_refptr<HTTPSTestServer> good_https_server = GoodCertServer(); | 1013 scoped_refptr<HTTPSTestServer> good_https_server = GoodCertServer(); |
| 1014 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); | 1014 scoped_refptr<HTTPSTestServer> bad_https_server = BadCertServer(); |
| 1015 if (HasFailure()) | 1015 if (HasFailure()) |
| 1016 return; | 1016 return; |
| 1017 | 1017 |
| 1018 scoped_ptr<TabProxy> tab(GetActiveTabProxy()); | 1018 scoped_refptr<TabProxy> tab(GetActiveTabProxy()); |
| 1019 NavigateTab(tab.get(), | 1019 NavigateTab(tab.get(), |
| 1020 http_server->TestServerPageW(L"files/ssl/top_frame.html")); | 1020 http_server->TestServerPageW(L"files/ssl/top_frame.html")); |
| 1021 | 1021 |
| 1022 SecurityStyle security_style; | 1022 SecurityStyle security_style; |
| 1023 int cert_status; | 1023 int cert_status; |
| 1024 int mixed_content_state; | 1024 int mixed_content_state; |
| 1025 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, | 1025 EXPECT_TRUE(tab->GetSecurityState(&security_style, &cert_status, |
| 1026 &mixed_content_state)); | 1026 &mixed_content_state)); |
| 1027 EXPECT_EQ(SECURITY_STYLE_UNAUTHENTICATED, security_style); | 1027 EXPECT_EQ(SECURITY_STYLE_UNAUTHENTICATED, security_style); |
| 1028 EXPECT_EQ(0, cert_status & net::CERT_STATUS_ALL_ERRORS); | 1028 EXPECT_EQ(0, cert_status & net::CERT_STATUS_ALL_ERRORS); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1077 | 1077 |
| 1078 // Visit a page over https that contains a frame with a redirect. | 1078 // Visit a page over https that contains a frame with a redirect. |
| 1079 | 1079 |
| 1080 // XMLHttpRequest mixed in synchronous mode. | 1080 // XMLHttpRequest mixed in synchronous mode. |
| 1081 | 1081 |
| 1082 // XMLHttpRequest mixed in asynchronous mode. | 1082 // XMLHttpRequest mixed in asynchronous mode. |
| 1083 | 1083 |
| 1084 // XMLHttpRequest over bad ssl in synchronous mode. | 1084 // XMLHttpRequest over bad ssl in synchronous mode. |
| 1085 | 1085 |
| 1086 // XMLHttpRequest over OK ssl in synchronous mode. | 1086 // XMLHttpRequest over OK ssl in synchronous mode. |
| OLD | NEW |