| Index: content/browser/service_worker/service_worker_test_utils.h
|
| diff --git a/content/browser/service_worker/service_worker_test_utils.h b/content/browser/service_worker/service_worker_test_utils.h
|
| index 279faf37c1c6e87ae7f6db350dbee76ad29fee9a..2c9a08681db536de76f22171a7c6ca1760d60cee 100644
|
| --- a/content/browser/service_worker/service_worker_test_utils.h
|
| +++ b/content/browser/service_worker/service_worker_test_utils.h
|
| @@ -11,6 +11,7 @@
|
| #include "base/callback.h"
|
| #include "base/command_line.h"
|
| #include "base/memory/weak_ptr.h"
|
| +#include "content/common/service_worker/service_worker_provider_interfaces.mojom.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "content/public/common/content_switches.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| @@ -20,6 +21,7 @@ namespace content {
|
| class ServiceWorkerContextCore;
|
| class ServiceWorkerDispatcherHost;
|
| class ServiceWorkerProviderHost;
|
| +struct ServiceWorkerProviderHostInfo;
|
|
|
| template <typename Arg>
|
| void ReceiveResult(BrowserThread::ID run_quit_thread,
|
| @@ -46,25 +48,58 @@ base::Callback<void(Arg)> CreateReceiverOnCurrentThread(
|
| return base::Bind(&ReceiveResult<Arg>, id, quit, out);
|
| }
|
|
|
| +// Container for keeping the Mojo connection to the service worker provider on
|
| +// the renderer alive.
|
| +class ServiceWorkerRemoteProviderEndpoint {
|
| + public:
|
| + ServiceWorkerRemoteProviderEndpoint();
|
| + ServiceWorkerRemoteProviderEndpoint(
|
| + ServiceWorkerRemoteProviderEndpoint&& other);
|
| + ~ServiceWorkerRemoteProviderEndpoint();
|
| +
|
| + void BindWithProviderHostInfo(ServiceWorkerProviderHostInfo* info);
|
| +
|
| + mojom::ServiceWorkerProviderHostAssociatedPtr* host_ptr() {
|
| + return &host_ptr_;
|
| + }
|
| +
|
| + mojom::ServiceWorkerProviderAssociatedRequest* client_request() {
|
| + return &client_request_;
|
| + }
|
| +
|
| + private:
|
| + // Bound with content::ServiceWorkerProviderHost. The provider host will be
|
| + // removed asynchronously when this pointer is closed.
|
| + mojom::ServiceWorkerProviderHostAssociatedPtr host_ptr_;
|
| + // This is the other end of ServiceWorkerProviderAssociatedPtr owned by
|
| + // content::ServiceWorkerProviderHost.
|
| + mojom::ServiceWorkerProviderAssociatedRequest client_request_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(ServiceWorkerRemoteProviderEndpoint);
|
| +};
|
| +
|
| std::unique_ptr<ServiceWorkerProviderHost> CreateProviderHostForWindow(
|
| int process_id,
|
| int provider_id,
|
| bool is_parent_frame_secure,
|
| - base::WeakPtr<ServiceWorkerContextCore> context);
|
| + base::WeakPtr<ServiceWorkerContextCore> context,
|
| + ServiceWorkerRemoteProviderEndpoint* output_endpoint);
|
|
|
| std::unique_ptr<ServiceWorkerProviderHost>
|
| CreateProviderHostForServiceWorkerContext(
|
| int process_id,
|
| int provider_id,
|
| bool is_parent_frame_secure,
|
| - base::WeakPtr<ServiceWorkerContextCore> context);
|
| + base::WeakPtr<ServiceWorkerContextCore> context,
|
| + ServiceWorkerRemoteProviderEndpoint* output_endpoint);
|
|
|
| std::unique_ptr<ServiceWorkerProviderHost> CreateProviderHostWithDispatcherHost(
|
| int process_id,
|
| int provider_id,
|
| base::WeakPtr<ServiceWorkerContextCore> context,
|
| int route_id,
|
| - ServiceWorkerDispatcherHost* dispatcher_host);
|
| + ServiceWorkerDispatcherHost* dispatcher_host,
|
| + ServiceWorkerRemoteProviderEndpoint* output_endpoint);
|
|
|
| } // namespace content
|
|
|
|
|