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

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

Issue 2787883003: [ServiceWorker] Add EmbeddedWorkerInstanceHost Interface. (Closed)
Patch Set: Refine code comments Created 3 years, 8 months 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
Index: content/browser/service_worker/service_worker_version_unittest.cc
diff --git a/content/browser/service_worker/service_worker_version_unittest.cc b/content/browser/service_worker/service_worker_version_unittest.cc
index b34a5b03aed94ab57cd1bfcb753f360b795931de..08aa0d18b0ab8d95ad4c059a8efb366fd8220bf6 100644
--- a/content/browser/service_worker/service_worker_version_unittest.cc
+++ b/content/browser/service_worker/service_worker_version_unittest.cc
@@ -292,15 +292,19 @@ class MessageReceiverDisallowStart : public MessageReceiver {
enum class StartMode { STALL, FAIL, SUCCEED };
- void OnStartWorker(
- int embedded_worker_id,
- int64_t service_worker_version_id,
- const GURL& scope,
- const GURL& script_url,
- bool pause_after_download,
- mojom::ServiceWorkerEventDispatcherRequest request) override {
+ void OnStartWorker(int embedded_worker_id,
+ int64_t service_worker_version_id,
+ const GURL& scope,
+ const GURL& script_url,
+ bool pause_after_download,
+ mojom::ServiceWorkerEventDispatcherRequest request,
+ mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo
+ instance_host) override {
switch (mode_) {
case StartMode::STALL:
+ // Prepare for OnStopWorker().
+ instance_host_ptr_map_[embedded_worker_id].Bind(
+ std::move(instance_host));
break; // Do nothing.
case StartMode::FAIL:
ASSERT_EQ(current_mock_instance_index_ + 1,
@@ -311,17 +315,31 @@ class MessageReceiverDisallowStart : public MessageReceiver {
case StartMode::SUCCEED:
MessageReceiver::OnStartWorker(
embedded_worker_id, service_worker_version_id, scope, script_url,
- pause_after_download, std::move(request));
+ pause_after_download, std::move(request), std::move(instance_host));
break;
}
current_mock_instance_index_++;
}
+ void OnStopWorker(int embedded_worker_id) override {
+ if (instance_host_ptr_map_[embedded_worker_id]) {
+ instance_host_ptr_map_[embedded_worker_id]->OnStopped();
+ base::RunLoop().RunUntilIdle();
+ return;
+ }
+ EmbeddedWorkerTestHelper::OnStopWorker(embedded_worker_id);
+ }
+
void set_start_mode(StartMode mode) { mode_ = mode; }
private:
uint32_t current_mock_instance_index_ = 0;
StartMode mode_ = StartMode::STALL;
+
+ std::map<
+ int /* embedded_worker_id */,
+ mojom::EmbeddedWorkerInstanceHostAssociatedPtr /* instance_host_ptr */>
+ instance_host_ptr_map_;
DISALLOW_COPY_AND_ASSIGN(MessageReceiverDisallowStart);
};
@@ -350,19 +368,13 @@ class NoOpStopWorkerEmbeddedWorkerInstanceClient
base::WeakPtr<EmbeddedWorkerTestHelper> helper)
: EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient(helper) {}
~NoOpStopWorkerEmbeddedWorkerInstanceClient() override {
- // Stop callback should be called once.
- if (pending_stop_callback_)
- pending_stop_callback_.Run();
}
protected:
- void StopWorker(const StopWorkerCallback& callback) override {
- pending_stop_callback_ = std::move(callback);
+ void StopWorker() override {
// Do nothing.
}
- StopWorkerCallback pending_stop_callback_;
-
private:
DISALLOW_COPY_AND_ASSIGN(NoOpStopWorkerEmbeddedWorkerInstanceClient);
};
@@ -375,9 +387,7 @@ class MessageReceiverDisallowStop : public MessageReceiver {
}
~MessageReceiverDisallowStop() override {}
- void OnStopWorker(
- const mojom::EmbeddedWorkerInstanceClient::StopWorkerCallback& callback)
- override {
+ void OnStopWorker(int embedded_worker_id) override {
// Do nothing.
}
@@ -830,11 +840,11 @@ class MessageReceiverControlEvents : public MessageReceiver {
extendable_message_event_callback_ = callback;
}
- void OnStopWorker(
- const mojom::EmbeddedWorkerInstanceClient::StopWorkerCallback& callback)
- override {
+ void OnStopWorker(int embedded_worker_id) override {
EXPECT_FALSE(stop_worker_callback_);
- stop_worker_callback_ = callback;
+ stop_worker_callback_ =
+ base::Bind(&MessageReceiverControlEvents::SimulateWorkerStopped,
+ base::Unretained(this), embedded_worker_id);
}
const mojom::ServiceWorkerEventDispatcher::
@@ -843,15 +853,12 @@ class MessageReceiverControlEvents : public MessageReceiver {
return extendable_message_event_callback_;
}
- const mojom::EmbeddedWorkerInstanceClient::StopWorkerCallback&
- stop_worker_callback() {
- return stop_worker_callback_;
- }
+ const base::Closure& stop_worker_callback() { return stop_worker_callback_; }
private:
mojom::ServiceWorkerEventDispatcher::DispatchExtendableMessageEventCallback
extendable_message_event_callback_;
- mojom::EmbeddedWorkerInstanceClient::StopWorkerCallback stop_worker_callback_;
+ base::Closure stop_worker_callback_;
};
class ServiceWorkerRequestTimeoutTest : public ServiceWorkerVersionTest {
@@ -869,8 +876,7 @@ class ServiceWorkerRequestTimeoutTest : public ServiceWorkerVersionTest {
->extendable_message_event_callback();
}
- const mojom::EmbeddedWorkerInstanceClient::StopWorkerCallback&
- stop_worker_callback() {
+ const base::Closure& stop_worker_callback() {
return static_cast<MessageReceiverControlEvents*>(helper_.get())
->stop_worker_callback();
}
« no previous file with comments | « content/browser/service_worker/service_worker_job_unittest.cc ('k') | content/common/service_worker/embedded_worker.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698