Index: content/browser/service_worker/service_worker_browsertest.cc |
diff --git a/content/browser/service_worker/service_worker_browsertest.cc b/content/browser/service_worker/service_worker_browsertest.cc |
index 4e3574436a07ee7c57560f3683c2d4d36684cf36..5d0b9fb5920a399dc6ddfc1602f8d532beda96b8 100644 |
--- a/content/browser/service_worker/service_worker_browsertest.cc |
+++ b/content/browser/service_worker/service_worker_browsertest.cc |
@@ -21,11 +21,14 @@ |
#include "content/common/service_worker/service_worker_types.h" |
#include "content/public/browser/browser_context.h" |
#include "content/public/browser/browser_thread.h" |
+#include "content/public/browser/navigation_entry.h" |
#include "content/public/browser/render_process_host.h" |
#include "content/public/browser/storage_partition.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/common/content_switches.h" |
#include "content/public/common/referrer.h" |
+#include "content/public/common/security_style.h" |
+#include "content/public/common/ssl_status.h" |
#include "content/public/test/browser_test_utils.h" |
#include "content/public/test/content_browser_test.h" |
#include "content/public/test/content_browser_test_utils.h" |
@@ -800,6 +803,80 @@ IN_PROC_BROWSER_TEST_F(ServiceWorkerBrowserTest, Reload) { |
} |
} |
+IN_PROC_BROWSER_TEST_F(ServiceWorkerBrowserTest, |
+ ResponseFromHTTPSServiceWorkerIsMarkedAsSecure) { |
+ net::SpawnedTestServer https_server( |
+ net::SpawnedTestServer::TYPE_HTTPS, |
+ net::BaseTestServer::SSLOptions( |
+ net::BaseTestServer::SSLOptions::CERT_OK), |
+ base::FilePath(FILE_PATH_LITERAL("content/test/data/"))); |
+ ASSERT_TRUE(https_server.Start()); |
+ const std::string kPageUrl = "files/service_worker/fetch_event_blob.html"; |
Ryan Sleevi
2015/01/30 23:20:43
nit: I find the "const std::string" here a little
horo
2015/01/31 08:34:07
Done.
|
+ const std::string kWorkerUrl = "files/service_worker/fetch_event_blob.js"; |
+ { |
+ scoped_refptr<WorkerActivatedObserver> observer = |
+ new WorkerActivatedObserver(wrapper()); |
+ observer->Init(); |
+ public_context()->RegisterServiceWorker( |
+ https_server.GetURL(kPageUrl), |
+ https_server.GetURL(kWorkerUrl), |
+ base::Bind(&ExpectResultAndRun, true, base::Bind(&base::DoNothing))); |
+ observer->Wait(); |
+ } |
Ryan Sleevi
2015/01/30 23:20:43
Why is this in a block? Is the destruction of obse
horo
2015/01/31 08:34:07
Removed the bracket.
|
+ { |
+ const base::string16 title = base::ASCIIToUTF16("Title"); |
+ TitleWatcher title_watcher(shell()->web_contents(), title); |
+ NavigateToURL(shell(), https_server.GetURL(kPageUrl)); |
+ EXPECT_EQ(title, title_watcher.WaitAndGetTitle()); |
+ EXPECT_FALSE(shell()->web_contents()->DisplayedInsecureContent()); |
+ NavigationEntry* entry = |
+ shell()->web_contents()->GetController().GetVisibleEntry(); |
+ EXPECT_EQ(SECURITY_STYLE_AUTHENTICATED, entry->GetSSL().security_style); |
+ } |
Ryan Sleevi
2015/01/30 23:20:43
Why is this in a block?
horo
2015/01/31 08:34:07
Removed the bracket.
|
+ shell()->Close(); |
+ { |
+ base::RunLoop run_loop; |
+ public_context()->UnregisterServiceWorker( |
+ https_server.GetURL(kPageUrl), |
+ base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure())); |
+ run_loop.Run(); |
+ } |
Ryan Sleevi
2015/01/30 23:20:43
Why is this in a block? Is the destruction of the
horo
2015/01/31 08:34:07
We don't need put them to the block.
Removed the b
|
+} |
+ |
+IN_PROC_BROWSER_TEST_F(ServiceWorkerBrowserTest, |
+ ResponseFromHTTPServiceWorkerIsNotMarkedAsSecure) { |
+ const std::string kPageUrl = "/service_worker/fetch_event_blob.html"; |
+ const std::string kWorkerUrl = "/service_worker/fetch_event_blob.js"; |
+ { |
Ryan Sleevi
2015/01/30 23:20:43
ditto comments above with these tests.
horo
2015/01/31 08:34:07
Done.
|
+ scoped_refptr<WorkerActivatedObserver> observer = |
+ new WorkerActivatedObserver(wrapper()); |
+ observer->Init(); |
+ public_context()->RegisterServiceWorker( |
+ embedded_test_server()->GetURL(kPageUrl), |
+ embedded_test_server()->GetURL(kWorkerUrl), |
+ base::Bind(&ExpectResultAndRun, true, base::Bind(&base::DoNothing))); |
+ observer->Wait(); |
+ } |
+ { |
+ const base::string16 title = base::ASCIIToUTF16("Title"); |
+ TitleWatcher title_watcher(shell()->web_contents(), title); |
+ NavigateToURL(shell(), embedded_test_server()->GetURL(kPageUrl)); |
+ EXPECT_EQ(title, title_watcher.WaitAndGetTitle()); |
+ EXPECT_FALSE(shell()->web_contents()->DisplayedInsecureContent()); |
+ NavigationEntry* entry = |
+ shell()->web_contents()->GetController().GetVisibleEntry(); |
+ EXPECT_EQ(SECURITY_STYLE_UNAUTHENTICATED, entry->GetSSL().security_style); |
+ } |
+ shell()->Close(); |
+ { |
+ base::RunLoop run_loop; |
+ public_context()->UnregisterServiceWorker( |
+ embedded_test_server()->GetURL(kPageUrl), |
+ base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure())); |
+ run_loop.Run(); |
+ } |
+} |
+ |
IN_PROC_BROWSER_TEST_F(ServiceWorkerBrowserTest, ImportsBustMemcache) { |
const std::string kScopeUrl = "/service_worker/imports_bust_memcache_scope/"; |
const std::string kPageUrl = "/service_worker/imports_bust_memcache.html"; |