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 8317f926a84f0285dcf30d37c09e49e73e3e40ef..42b201594d01e4dadbe1a42df9fa970ff440d4fa 100644 |
--- a/content/browser/service_worker/embedded_worker_test_helper.h |
+++ b/content/browser/service_worker/embedded_worker_test_helper.h |
@@ -113,6 +113,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. |
@@ -275,6 +278,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_ |