| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/run_loop.h" | 6 #include "base/run_loop.h" |
| 7 #include "content/browser/service_worker/embedded_worker_registry.h" | 7 #include "content/browser/service_worker/embedded_worker_registry.h" |
| 8 #include "content/browser/service_worker/embedded_worker_test_helper.h" | 8 #include "content/browser/service_worker/embedded_worker_test_helper.h" |
| 9 #include "content/browser/service_worker/service_worker_context_core.h" | 9 #include "content/browser/service_worker/service_worker_context_core.h" |
| 10 #include "content/browser/service_worker/service_worker_registration.h" | 10 #include "content/browser/service_worker/service_worker_registration.h" |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 | 29 |
| 30 namespace { | 30 namespace { |
| 31 | 31 |
| 32 static const int kRenderProcessId = 1; | 32 static const int kRenderProcessId = 1; |
| 33 | 33 |
| 34 class MessageReceiver : public EmbeddedWorkerTestHelper { | 34 class MessageReceiver : public EmbeddedWorkerTestHelper { |
| 35 public: | 35 public: |
| 36 MessageReceiver() | 36 MessageReceiver() |
| 37 : EmbeddedWorkerTestHelper(kRenderProcessId), | 37 : EmbeddedWorkerTestHelper(kRenderProcessId), |
| 38 current_embedded_worker_id_(0) {} | 38 current_embedded_worker_id_(0) {} |
| 39 virtual ~MessageReceiver() {} | 39 ~MessageReceiver() override {} |
| 40 | 40 |
| 41 virtual bool OnMessageToWorker(int thread_id, | 41 bool OnMessageToWorker(int thread_id, |
| 42 int embedded_worker_id, | 42 int embedded_worker_id, |
| 43 const IPC::Message& message) override { | 43 const IPC::Message& message) override { |
| 44 if (EmbeddedWorkerTestHelper::OnMessageToWorker( | 44 if (EmbeddedWorkerTestHelper::OnMessageToWorker( |
| 45 thread_id, embedded_worker_id, message)) { | 45 thread_id, embedded_worker_id, message)) { |
| 46 return true; | 46 return true; |
| 47 } | 47 } |
| 48 current_embedded_worker_id_ = embedded_worker_id; | 48 current_embedded_worker_id_ = embedded_worker_id; |
| 49 bool handled = true; | 49 bool handled = true; |
| 50 IPC_BEGIN_MESSAGE_MAP(MessageReceiver, message) | 50 IPC_BEGIN_MESSAGE_MAP(MessageReceiver, message) |
| 51 IPC_MESSAGE_HANDLER(TestMsg_Message, OnMessage) | 51 IPC_MESSAGE_HANDLER(TestMsg_Message, OnMessage) |
| 52 IPC_MESSAGE_UNHANDLED(handled = false) | 52 IPC_MESSAGE_UNHANDLED(handled = false) |
| 53 IPC_END_MESSAGE_MAP() | 53 IPC_END_MESSAGE_MAP() |
| (...skipping 24 matching lines...) Expand all Loading... |
| 78 base::Bind(&ObserveStatusChanges, base::Unretained(version), statuses)); | 78 base::Bind(&ObserveStatusChanges, base::Unretained(version), statuses)); |
| 79 } | 79 } |
| 80 | 80 |
| 81 // A specialized listener class to receive test messages from a worker. | 81 // A specialized listener class to receive test messages from a worker. |
| 82 class MessageReceiverFromWorker : public EmbeddedWorkerInstance::Listener { | 82 class MessageReceiverFromWorker : public EmbeddedWorkerInstance::Listener { |
| 83 public: | 83 public: |
| 84 explicit MessageReceiverFromWorker(EmbeddedWorkerInstance* instance) | 84 explicit MessageReceiverFromWorker(EmbeddedWorkerInstance* instance) |
| 85 : instance_(instance) { | 85 : instance_(instance) { |
| 86 instance_->AddListener(this); | 86 instance_->AddListener(this); |
| 87 } | 87 } |
| 88 virtual ~MessageReceiverFromWorker() { | 88 ~MessageReceiverFromWorker() override { instance_->RemoveListener(this); } |
| 89 instance_->RemoveListener(this); | |
| 90 } | |
| 91 | 89 |
| 92 virtual void OnStarted() override { NOTREACHED(); } | 90 void OnStarted() override { NOTREACHED(); } |
| 93 virtual void OnStopped() override { NOTREACHED(); } | 91 void OnStopped() override { NOTREACHED(); } |
| 94 virtual bool OnMessageReceived(const IPC::Message& message) override { | 92 bool OnMessageReceived(const IPC::Message& message) override { |
| 95 bool handled = true; | 93 bool handled = true; |
| 96 IPC_BEGIN_MESSAGE_MAP(MessageReceiverFromWorker, message) | 94 IPC_BEGIN_MESSAGE_MAP(MessageReceiverFromWorker, message) |
| 97 IPC_MESSAGE_HANDLER(TestMsg_MessageFromWorker, OnMessageFromWorker) | 95 IPC_MESSAGE_HANDLER(TestMsg_MessageFromWorker, OnMessageFromWorker) |
| 98 IPC_MESSAGE_UNHANDLED(handled = false) | 96 IPC_MESSAGE_UNHANDLED(handled = false) |
| 99 IPC_END_MESSAGE_MAP() | 97 IPC_END_MESSAGE_MAP() |
| 100 return handled; | 98 return handled; |
| 101 } | 99 } |
| 102 | 100 |
| 103 void OnMessageFromWorker(int value) { received_values_.push_back(value); } | 101 void OnMessageFromWorker(int value) { received_values_.push_back(value); } |
| 104 const std::vector<int>& received_values() const { return received_values_; } | 102 const std::vector<int>& received_values() const { return received_values_; } |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 390 | 388 |
| 391 version_->StartWorker( | 389 version_->StartWorker( |
| 392 CreateReceiverOnCurrentThread(&status)); | 390 CreateReceiverOnCurrentThread(&status)); |
| 393 base::RunLoop().RunUntilIdle(); | 391 base::RunLoop().RunUntilIdle(); |
| 394 | 392 |
| 395 // Recreated when the worker starts again. | 393 // Recreated when the worker starts again. |
| 396 EXPECT_TRUE(version_->cache_listener_.get()); | 394 EXPECT_TRUE(version_->cache_listener_.get()); |
| 397 } | 395 } |
| 398 | 396 |
| 399 } // namespace content | 397 } // namespace content |
| OLD | NEW |