Index: content/browser/service_worker/embedded_worker_test_helper.h |
diff --git a/content/browser/service_worker/embedded_worker_test_helper.h b/content/browser/service_worker/embedded_worker_test_helper.h |
index 136b089e60df444a23afa9fe1ea71cb8c46ec074..2e3e16d4efe01afea82f4592715339a19251256c 100644 |
--- a/content/browser/service_worker/embedded_worker_test_helper.h |
+++ b/content/browser/service_worker/embedded_worker_test_helper.h |
@@ -123,6 +123,9 @@ class EmbeddedWorkerTestHelper : public IPC::Sender, |
void RegisterMockInstanceClient( |
std::unique_ptr<MockEmbeddedWorkerInstanceClient> client); |
+ template <typename MockType, typename... Args> |
+ MockType* CreateAndRegisterMockInstanceClient(Args&&... args); |
+ |
// IPC sink for EmbeddedWorker messages. |
IPC::TestSink* ipc_sink() { return &sink_; } |
// Inner IPC sink for script context messages sent via EmbeddedWorker. |
@@ -287,6 +290,16 @@ class EmbeddedWorkerTestHelper : public IPC::Sender, |
DISALLOW_COPY_AND_ASSIGN(EmbeddedWorkerTestHelper); |
}; |
+template <typename MockType, typename... Args> |
+MockType* EmbeddedWorkerTestHelper::CreateAndRegisterMockInstanceClient( |
+ Args&&... args) { |
+ std::unique_ptr<MockType> mock = |
+ base::MakeUnique<MockType>(std::forward<Args>(args)...); |
+ MockType* mock_rawptr = mock.get(); |
+ RegisterMockInstanceClient(std::move(mock)); |
+ return mock_rawptr; |
+} |
+ |
} // namespace content |
#endif // CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ |