Commit 1f60b0e8 authored by haraken's avatar haraken Committed by Commit bot

Use a new Supplement constructor in ServiceWorkerContainer

We're deprecating the default constructor of Supplement.

BUG=610176

Review-Url: https://codereview.chromium.org/2619543002
Cr-Commit-Position: refs/heads/master@{#441922}
parent 082b2bad
...@@ -14,14 +14,15 @@ ...@@ -14,14 +14,15 @@
namespace blink { namespace blink {
ServiceWorkerContainerClient* ServiceWorkerContainerClient::create( ServiceWorkerContainerClient::ServiceWorkerContainerClient(
std::unique_ptr<WebServiceWorkerProvider> provider) { Document& document,
return new ServiceWorkerContainerClient(std::move(provider)); std::unique_ptr<WebServiceWorkerProvider> provider)
} : Supplement<Document>(document), m_provider(std::move(provider)) {}
ServiceWorkerContainerClient::ServiceWorkerContainerClient( ServiceWorkerContainerClient::ServiceWorkerContainerClient(
WorkerClients& clients,
std::unique_ptr<WebServiceWorkerProvider> provider) std::unique_ptr<WebServiceWorkerProvider> provider)
: m_provider(std::move(provider)) {} : Supplement<WorkerClients>(clients), m_provider(std::move(provider)) {}
ServiceWorkerContainerClient::~ServiceWorkerContainerClient() {} ServiceWorkerContainerClient::~ServiceWorkerContainerClient() {}
...@@ -34,10 +35,13 @@ ServiceWorkerContainerClient* ServiceWorkerContainerClient::from( ...@@ -34,10 +35,13 @@ ServiceWorkerContainerClient* ServiceWorkerContainerClient::from(
if (!context) if (!context)
return nullptr; return nullptr;
if (context->isWorkerGlobalScope()) { if (context->isWorkerGlobalScope()) {
WorkerClients* clients = toWorkerGlobalScope(context)->clients(); WorkerClients* workerClients = toWorkerGlobalScope(context)->clients();
ASSERT(clients); DCHECK(workerClients);
return static_cast<ServiceWorkerContainerClient*>( ServiceWorkerContainerClient* client =
Supplement<WorkerClients>::from(clients, supplementName())); static_cast<ServiceWorkerContainerClient*>(
Supplement<WorkerClients>::from(workerClients, supplementName()));
DCHECK(client);
return client;
} }
Document* document = toDocument(context); Document* document = toDocument(context);
if (!document->frame()) if (!document->frame())
...@@ -48,6 +52,7 @@ ServiceWorkerContainerClient* ServiceWorkerContainerClient::from( ...@@ -48,6 +52,7 @@ ServiceWorkerContainerClient* ServiceWorkerContainerClient::from(
Supplement<Document>::from(document, supplementName())); Supplement<Document>::from(document, supplementName()));
if (!client) { if (!client) {
client = new ServiceWorkerContainerClient( client = new ServiceWorkerContainerClient(
*document,
document->frame()->loader().client()->createServiceWorkerProvider()); document->frame()->loader().client()->createServiceWorkerProvider());
Supplement<Document>::provideTo(*document, supplementName(), client); Supplement<Document>::provideTo(*document, supplementName(), client);
} }
...@@ -59,7 +64,7 @@ void provideServiceWorkerContainerClientToWorker( ...@@ -59,7 +64,7 @@ void provideServiceWorkerContainerClientToWorker(
std::unique_ptr<WebServiceWorkerProvider> provider) { std::unique_ptr<WebServiceWorkerProvider> provider) {
clients->provideSupplement( clients->provideSupplement(
ServiceWorkerContainerClient::supplementName(), ServiceWorkerContainerClient::supplementName(),
ServiceWorkerContainerClient::create(std::move(provider))); new ServiceWorkerContainerClient(*clients, std::move(provider)));
} }
} // namespace blink } // namespace blink
...@@ -26,7 +26,9 @@ class MODULES_EXPORT ServiceWorkerContainerClient final ...@@ -26,7 +26,9 @@ class MODULES_EXPORT ServiceWorkerContainerClient final
WTF_MAKE_NONCOPYABLE(ServiceWorkerContainerClient); WTF_MAKE_NONCOPYABLE(ServiceWorkerContainerClient);
public: public:
static ServiceWorkerContainerClient* create( ServiceWorkerContainerClient(Document&,
std::unique_ptr<WebServiceWorkerProvider>);
ServiceWorkerContainerClient(WorkerClients&,
std::unique_ptr<WebServiceWorkerProvider>); std::unique_ptr<WebServiceWorkerProvider>);
virtual ~ServiceWorkerContainerClient(); virtual ~ServiceWorkerContainerClient();
...@@ -40,10 +42,7 @@ class MODULES_EXPORT ServiceWorkerContainerClient final ...@@ -40,10 +42,7 @@ class MODULES_EXPORT ServiceWorkerContainerClient final
Supplement<WorkerClients>::trace(visitor); Supplement<WorkerClients>::trace(visitor);
} }
protected: private:
explicit ServiceWorkerContainerClient(
std::unique_ptr<WebServiceWorkerProvider>);
std::unique_ptr<WebServiceWorkerProvider> m_provider; std::unique_ptr<WebServiceWorkerProvider> m_provider;
}; };
......
...@@ -162,7 +162,8 @@ class ServiceWorkerContainerTest : public ::testing::Test { ...@@ -162,7 +162,8 @@ class ServiceWorkerContainerTest : public ::testing::Test {
void provide(std::unique_ptr<WebServiceWorkerProvider> provider) { void provide(std::unique_ptr<WebServiceWorkerProvider> provider) {
Supplement<Document>::provideTo( Supplement<Document>::provideTo(
m_page->document(), ServiceWorkerContainerClient::supplementName(), m_page->document(), ServiceWorkerContainerClient::supplementName(),
ServiceWorkerContainerClient::create(std::move(provider))); new ServiceWorkerContainerClient(m_page->document(),
std::move(provider)));
} }
void setPageURL(const String& url) { void setPageURL(const String& url) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment