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

Side by Side Diff: content/browser/service_worker/embedded_worker_test_helper.cc

Issue 1179453002: ServiceWorker: Reset idle timer when we dispatch message event (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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 unified diff | Download patch
OLDNEW
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 "content/browser/service_worker/embedded_worker_test_helper.h" 5 #include "content/browser/service_worker/embedded_worker_test_helper.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/atomic_sequence_num.h"
10 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/memory/scoped_vector.h"
11 #include "base/thread_task_runner_handle.h" 13 #include "base/thread_task_runner_handle.h"
14 #include "content/browser/message_port_message_filter.h"
12 #include "content/browser/service_worker/embedded_worker_instance.h" 15 #include "content/browser/service_worker/embedded_worker_instance.h"
13 #include "content/browser/service_worker/embedded_worker_registry.h" 16 #include "content/browser/service_worker/embedded_worker_registry.h"
14 #include "content/browser/service_worker/service_worker_context_core.h" 17 #include "content/browser/service_worker/service_worker_context_core.h"
15 #include "content/browser/service_worker/service_worker_context_wrapper.h" 18 #include "content/browser/service_worker/service_worker_context_wrapper.h"
16 #include "content/common/service_worker/embedded_worker_messages.h" 19 #include "content/common/service_worker/embedded_worker_messages.h"
17 #include "content/common/service_worker/service_worker_messages.h" 20 #include "content/common/service_worker/service_worker_messages.h"
18 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
19 22
20 namespace content { 23 namespace content {
21 24
25 class MockMessagePortMessageFilter : public MessagePortMessageFilter {
26 public:
27 MockMessagePortMessageFilter()
28 : MessagePortMessageFilter(
29 base::Bind(&base::AtomicSequenceNumber::GetNext,
30 base::Unretained(&next_routing_id_))) {}
31
32 bool Send(IPC::Message* message) override {
33 message_queue_.push_back(message);
34 return true;
35 }
36
37 private:
38 ~MockMessagePortMessageFilter() override {}
39 base::AtomicSequenceNumber next_routing_id_;
40 ScopedVector<IPC::Message> message_queue_;
41 };
42
22 EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper( 43 EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper(
23 const base::FilePath& user_data_directory, 44 const base::FilePath& user_data_directory,
24 int mock_render_process_id) 45 int mock_render_process_id)
25 : wrapper_(new ServiceWorkerContextWrapper(NULL)), 46 : wrapper_(new ServiceWorkerContextWrapper(NULL)),
26 next_thread_id_(0), 47 next_thread_id_(0),
27 mock_render_process_id_(mock_render_process_id), 48 mock_render_process_id_(mock_render_process_id),
28 weak_factory_(this) { 49 weak_factory_(this) {
29 scoped_ptr<MockServiceWorkerDatabaseTaskManager> database_task_manager( 50 scoped_ptr<MockServiceWorkerDatabaseTaskManager> database_task_manager(
30 new MockServiceWorkerDatabaseTaskManager( 51 new MockServiceWorkerDatabaseTaskManager(
31 base::ThreadTaskRunnerHandle::Get())); 52 base::ThreadTaskRunnerHandle::Get()));
32 wrapper_->InitInternal(user_data_directory, 53 wrapper_->InitInternal(user_data_directory,
33 database_task_manager.Pass(), 54 database_task_manager.Pass(),
34 base::ThreadTaskRunnerHandle::Get(), 55 base::ThreadTaskRunnerHandle::Get(),
35 NULL, 56 NULL,
36 NULL); 57 NULL);
37 wrapper_->process_manager()->SetProcessIdForTest(mock_render_process_id); 58 wrapper_->process_manager()->SetProcessIdForTest(mock_render_process_id);
38 registry()->AddChildProcessSender(mock_render_process_id, this, nullptr); 59 registry()->AddChildProcessSender(mock_render_process_id, this,
60 NewMessagePortMessageFilter());
39 } 61 }
40 62
41 EmbeddedWorkerTestHelper::~EmbeddedWorkerTestHelper() { 63 EmbeddedWorkerTestHelper::~EmbeddedWorkerTestHelper() {
42 if (wrapper_.get()) 64 if (wrapper_.get())
43 wrapper_->Shutdown(); 65 wrapper_->Shutdown();
44 } 66 }
45 67
46 void EmbeddedWorkerTestHelper::SimulateAddProcessToPattern( 68 void EmbeddedWorkerTestHelper::SimulateAddProcessToPattern(
47 const GURL& pattern, 69 const GURL& pattern,
48 int process_id) { 70 int process_id) {
49 registry()->AddChildProcessSender(process_id, this, nullptr); 71 registry()->AddChildProcessSender(process_id, this,
72 NewMessagePortMessageFilter());
50 wrapper_->process_manager()->AddProcessReferenceToPattern( 73 wrapper_->process_manager()->AddProcessReferenceToPattern(
51 pattern, process_id); 74 pattern, process_id);
52 } 75 }
53 76
54 bool EmbeddedWorkerTestHelper::Send(IPC::Message* message) { 77 bool EmbeddedWorkerTestHelper::Send(IPC::Message* message) {
55 OnMessageReceived(*message); 78 OnMessageReceived(*message);
56 delete message; 79 delete message;
57 return true; 80 return true;
58 } 81 }
59 82
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 current_embedded_worker_id_, 346 current_embedded_worker_id_,
324 request_id, 347 request_id,
325 request)); 348 request));
326 } 349 }
327 350
328 EmbeddedWorkerRegistry* EmbeddedWorkerTestHelper::registry() { 351 EmbeddedWorkerRegistry* EmbeddedWorkerTestHelper::registry() {
329 DCHECK(context()); 352 DCHECK(context());
330 return context()->embedded_worker_registry(); 353 return context()->embedded_worker_registry();
331 } 354 }
332 355
356 MessagePortMessageFilter*
357 EmbeddedWorkerTestHelper::NewMessagePortMessageFilter() {
358 scoped_refptr<MessagePortMessageFilter> filter(
359 new MockMessagePortMessageFilter);
360 message_port_message_filters_.push_back(filter);
361 return filter.get();
362 }
363
333 } // namespace content 364 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698