Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(751)

Unified Diff: content/browser/service_worker/service_worker_url_request_job_unittest.cc

Issue 2518523003: Limit timeout for foreign fetch events when triggered by another service worker. (Closed)
Patch Set: don't intercept worker main resource fetches Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/service_worker/service_worker_url_request_job.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/service_worker/service_worker_url_request_job_unittest.cc
diff --git a/content/browser/service_worker/service_worker_url_request_job_unittest.cc b/content/browser/service_worker/service_worker_url_request_job_unittest.cc
index 88ed182f957356a8b19f540798cdc7bc0e8bcb50..f6cca3442fac43b29aacb9cef245938aa517257d 100644
--- a/content/browser/service_worker/service_worker_url_request_job_unittest.cc
+++ b/content/browser/service_worker/service_worker_url_request_job_unittest.cc
@@ -15,6 +15,7 @@
#include "base/memory/ptr_util.h"
#include "base/run_loop.h"
#include "base/single_thread_task_runner.h"
+#include "base/test/simple_test_tick_clock.h"
#include "base/threading/thread_task_runner_handle.h"
#include "base/time/time.h"
#include "content/browser/blob_storage/chrome_blob_storage_context.h"
@@ -83,6 +84,9 @@ class MockHttpProtocolHandler
~MockHttpProtocolHandler() override {}
void set_resource_type(ResourceType type) { resource_type_ = type; }
+ void set_custom_timeout(base::Optional<base::TimeDelta> timeout) {
+ custom_timeout_ = timeout;
+ }
net::URLRequestJob* MaybeCreateJob(
net::URLRequest* request,
@@ -101,7 +105,7 @@ class MockHttpProtocolHandler
resource_type_, REQUEST_CONTEXT_TYPE_HYPERLINK,
REQUEST_CONTEXT_FRAME_TYPE_TOP_LEVEL,
scoped_refptr<ResourceRequestBodyImpl>(), ServiceWorkerFetchType::FETCH,
- delegate_);
+ custom_timeout_, delegate_);
job_->ForwardToServiceWorker();
return job_;
}
@@ -114,6 +118,7 @@ class MockHttpProtocolHandler
mutable ServiceWorkerURLRequestJob* job_;
ServiceWorkerURLRequestJob::Delegate* delegate_;
ResourceType resource_type_;
+ base::Optional<base::TimeDelta> custom_timeout_;
};
// Returns a BlobProtocolHandler that uses |blob_storage_context|. Caller owns
@@ -359,6 +364,19 @@ TEST_P(ServiceWorkerURLRequestJobTestP, Simple) {
EXPECT_EQ(std::string(), info->response_cache_storage_cache_name());
}
+TEST_P(ServiceWorkerURLRequestJobTestP, CustomTimeout) {
+ version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
+
+ // Set mock clock on version_ to check timeout behavior.
+ base::SimpleTestTickClock* tick_clock = new base::SimpleTestTickClock();
+ tick_clock->SetNowTicks(base::TimeTicks::Now());
+ version_->SetTickClockForTesting(base::WrapUnique(tick_clock));
+
+ http_protocol_handler_->set_custom_timeout(base::TimeDelta::FromSeconds(5));
+ TestRequest(200, "OK", std::string(), true /* expect_valid_ssl */);
+ EXPECT_EQ(base::TimeDelta::FromSeconds(5), version_->remaining_timeout());
+}
+
class ProviderDeleteHelper : public EmbeddedWorkerTestHelper {
public:
ProviderDeleteHelper() : EmbeddedWorkerTestHelper(base::FilePath()) {}
« no previous file with comments | « content/browser/service_worker/service_worker_url_request_job.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698