summaryrefslogtreecommitdiff
path: root/chromium/content/browser/service_worker/service_worker_version_browsertest.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2021-05-20 09:47:09 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2021-06-07 11:15:42 +0000
commit189d4fd8fad9e3c776873be51938cd31a42b6177 (patch)
tree6497caeff5e383937996768766ab3bb2081a40b2 /chromium/content/browser/service_worker/service_worker_version_browsertest.cc
parent8bc75099d364490b22f43a7ce366b366c08f4164 (diff)
downloadqtwebengine-chromium-189d4fd8fad9e3c776873be51938cd31a42b6177.tar.gz
BASELINE: Update Chromium to 90.0.4430.221
Change-Id: Iff4d9d18d2fcf1a576f3b1f453010f744a232920 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/content/browser/service_worker/service_worker_version_browsertest.cc')
-rw-r--r--chromium/content/browser/service_worker/service_worker_version_browsertest.cc113
1 files changed, 44 insertions, 69 deletions
diff --git a/chromium/content/browser/service_worker/service_worker_version_browsertest.cc b/chromium/content/browser/service_worker/service_worker_version_browsertest.cc
index 2fc43ee9350..a3a5f3d8c67 100644
--- a/chromium/content/browser/service_worker/service_worker_version_browsertest.cc
+++ b/chromium/content/browser/service_worker/service_worker_version_browsertest.cc
@@ -23,7 +23,6 @@
#include "base/task/post_task.h"
#include "base/task/task_traits.h"
#include "base/test/bind.h"
-#include "base/test/scoped_feature_list.h"
#include "base/time/time.h"
#include "build/build_config.h"
#include "content/browser/service_worker/embedded_worker_instance.h"
@@ -44,7 +43,6 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/storage_partition.h"
#include "content/public/common/content_client.h"
-#include "content/public/common/content_features.h"
#include "content/public/common/result_codes.h"
#include "content/public/test/browser_test.h"
#include "content/public/test/browser_test_utils.h"
@@ -57,7 +55,6 @@
#include "mojo/public/cpp/bindings/remote.h"
#include "net/test/embedded_test_server/http_request.h"
#include "net/test/embedded_test_server/http_response.h"
-#include "services/network/public/cpp/features.h"
#include "services/network/public/mojom/fetch_api.mojom.h"
#include "storage/browser/test/blob_test_utils.h"
#include "third_party/blink/public/common/service_worker/service_worker_status_code.h"
@@ -133,9 +130,16 @@ ServiceWorkerRegistry::FindRegistrationCallback CreateFindRegistrationReceiver(
std::move(quit), status);
}
-void ExpectResultAndRun(bool expected,
- base::RepeatingClosure continuation,
- bool actual) {
+void ExpectRegisterResultAndRun(blink::ServiceWorkerStatusCode expected,
+ base::RepeatingClosure continuation,
+ blink::ServiceWorkerStatusCode actual) {
+ EXPECT_EQ(expected, actual);
+ continuation.Run();
+}
+
+void ExpectUnregisterResultAndRun(bool expected,
+ base::RepeatingClosure continuation,
+ bool actual) {
EXPECT_EQ(expected, actual);
continuation.Run();
}
@@ -264,8 +268,28 @@ RequestHandlerForBigWorkerScript(const net::test_server::HttpRequest& request) {
return http_response;
}
-network::CrossOriginEmbedderPolicy CrossOriginEmbedderPolicyNone() {
- return network::CrossOriginEmbedderPolicy();
+// Returns a response with Cross-Origin-Embedder-Policy header matching with
+// |coep|.
+std::unique_ptr<net::test_server::HttpResponse>
+RequestHandlerForWorkerScriptWithCoep(
+ base::Optional<network::mojom::CrossOriginEmbedderPolicyValue> coep,
+ const net::test_server::HttpRequest& request) {
+ static int counter = 0;
+ if (request.relative_url != "/service_worker/generated")
+ return nullptr;
+ auto response = std::make_unique<net::test_server::BasicHttpResponse>();
+ response->set_code(net::HTTP_OK);
+ response->set_content(
+ base::StringPrintf("// empty. counter = %d\n", counter++));
+ response->set_content_type("text/javascript");
+ if (coep.has_value()) {
+ std::string header_value =
+ coep.value() == network::mojom::CrossOriginEmbedderPolicyValue::kNone
+ ? "none"
+ : "require-corp";
+ response->AddCustomHeader("Cross-Origin-Embedder-Policy", header_value);
+ }
+ return response;
}
network::CrossOriginEmbedderPolicy CrossOriginEmbedderPolicyRequireCorp() {
@@ -742,7 +766,7 @@ class MockContentBrowserClient : public TestContentBrowserClient {
return data_saver_enabled_;
}
- void OverrideWebkitPrefs(RenderViewHost* render_view_host,
+ void OverrideWebkitPrefs(WebContents* web_contents,
blink::web_pref::WebPreferences* prefs) override {
prefs->data_saver_enabled = data_saver_enabled_;
}
@@ -1235,7 +1259,8 @@ IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest,
observer->Init();
public_context()->RegisterServiceWorker(
embedded_test_server()->GetURL(kWorkerUrl), options,
- base::BindOnce(&ExpectResultAndRun, true, base::DoNothing()));
+ base::BindOnce(&ExpectRegisterResultAndRun,
+ blink::ServiceWorkerStatusCode::kOk, base::DoNothing()));
observer->Wait();
int64_t registration_id = observer->registration_id();
@@ -1282,7 +1307,8 @@ IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest,
base::RunLoop run_loop;
public_context()->UnregisterServiceWorker(
embedded_test_server()->GetURL(kScope),
- base::BindOnce(&ExpectResultAndRun, true, run_loop.QuitClosure()));
+ base::BindOnce(&ExpectUnregisterResultAndRun, true,
+ run_loop.QuitClosure()));
run_loop.Run();
}
@@ -1306,7 +1332,8 @@ IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest,
observer->Init();
public_context()->RegisterServiceWorker(
embedded_test_server()->GetURL(kWorkerUrl), options,
- base::BindOnce(&ExpectResultAndRun, true, base::DoNothing()));
+ base::BindOnce(&ExpectRegisterResultAndRun,
+ blink::ServiceWorkerStatusCode::kOk, base::DoNothing()));
observer->Wait();
int64_t registration_id = observer->registration_id();
@@ -1324,7 +1351,8 @@ IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest,
base::RunLoop run_loop;
public_context()->UnregisterServiceWorker(
embedded_test_server()->GetURL(kScope),
- base::BindOnce(&ExpectResultAndRun, true, run_loop.QuitClosure()));
+ base::BindOnce(&ExpectUnregisterResultAndRun, true,
+ run_loop.QuitClosure()));
run_loop.Run();
}
@@ -1391,60 +1419,12 @@ IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, RendererCrash) {
version_->RemoveObserver(&observer);
}
-// This tests whether the ServiceWorkerVersion can have the correct value of
-// Cross-Origin-Embedder-Policy and checks if it works either of when
-// CrossOriginIsolation is enabled and disabled.
-class ServiceWorkerVersionCoepTest : public ServiceWorkerVersionBrowserTest,
- public testing::WithParamInterface<bool> {
- public:
- ServiceWorkerVersionCoepTest() {
- if (IsCrossOriginIsolationEnabled()) {
- feature_list_.InitAndEnableFeature(
- network::features::kCrossOriginEmbedderPolicy);
- } else {
- feature_list_.InitAndDisableFeature(
- network::features::kCrossOriginEmbedderPolicy);
- }
- }
-
- static bool IsCrossOriginIsolationEnabled() { return GetParam(); }
-
- // Returns a response with Cross-Origin-Embedder-Policy header matching with
- // |coep|.
- static std::unique_ptr<net::test_server::HttpResponse>
- RequestHandlerForWorkerScriptWithCoep(
- base::Optional<network::mojom::CrossOriginEmbedderPolicyValue> coep,
- const net::test_server::HttpRequest& request) {
- static int counter = 0;
- if (request.relative_url != "/service_worker/generated")
- return nullptr;
- auto response = std::make_unique<net::test_server::BasicHttpResponse>();
- response->set_code(net::HTTP_OK);
- response->set_content(
- base::StringPrintf("// empty. counter = %d\n", counter++));
- response->set_content_type("text/javascript");
- if (coep.has_value()) {
- std::string header_value =
- coep.value() == network::mojom::CrossOriginEmbedderPolicyValue::kNone
- ? "none"
- : "require-corp";
- response->AddCustomHeader("Cross-Origin-Embedder-Policy", header_value);
- }
- return response;
- }
-
- private:
- base::test::ScopedFeatureList feature_list_;
-};
-
-INSTANTIATE_TEST_SUITE_P(All, ServiceWorkerVersionCoepTest, testing::Bool());
-
// Checks if ServiceWorkerVersion has the correct value of COEP when a new
// worker is installed.
-IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionCoepTest,
+IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest,
CrossOriginEmbedderPolicyValue_Install) {
embedded_test_server()->RegisterRequestHandler(base::BindRepeating(
- &ServiceWorkerVersionCoepTest::RequestHandlerForWorkerScriptWithCoep,
+ &RequestHandlerForWorkerScriptWithCoep,
network::mojom::CrossOriginEmbedderPolicyValue::kRequireCorp));
StartServerAndNavigateToSetup();
@@ -1455,9 +1435,7 @@ IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionCoepTest,
// Once it's started, the worker script is read from the network and the COEP
// value is set to the version.
StartWorker(blink::ServiceWorkerStatusCode::kOk);
- EXPECT_EQ(IsCrossOriginIsolationEnabled()
- ? CrossOriginEmbedderPolicyRequireCorp()
- : CrossOriginEmbedderPolicyNone(),
+ EXPECT_EQ(CrossOriginEmbedderPolicyRequireCorp(),
version_->cross_origin_embedder_policy());
}
@@ -1581,9 +1559,6 @@ class CacheStorageEagerReadingTest : public ServiceWorkerVersionBrowserTest {
// the service worker fetch handler.
static constexpr const char* kOtherURL =
"/service_worker/non-matching-url.js";
-
- private:
- base::test::ScopedFeatureList feature_list;
};
IN_PROC_BROWSER_TEST_F(CacheStorageEagerReadingTest,