blob: c971b0c8b676c14c0ea8c438becf0bbc423ad962 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/modules/cookie_store/service_worker_global_scope_cookie_store.h"
#include <utility>
#include "services/network/public/mojom/restricted_cookie_manager.mojom-blink.h"
#include "services/service_manager/public/cpp/interface_provider.h"
#include "third_party/blink/renderer/core/workers/worker_thread.h"
#include "third_party/blink/renderer/modules/cookie_store/cookie_store.h"
#include "third_party/blink/renderer/modules/cookie_store/global_cookie_store_impl.h"
#include "third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h"
namespace blink {
template <>
CookieStore* GlobalCookieStoreImpl<WorkerGlobalScope>::BuildCookieStore(
ExecutionContext* execution_context,
service_manager::InterfaceProvider* interface_provider) {
network::mojom::blink::RestrictedCookieManagerPtr cookie_manager_ptr;
interface_provider->GetInterface(mojo::MakeRequest(&cookie_manager_ptr));
blink::mojom::blink::CookieStorePtr cookie_store_ptr;
interface_provider->GetInterface(mojo::MakeRequest(&cookie_store_ptr));
return CookieStore::Create(execution_context, std::move(cookie_manager_ptr),
std::move(cookie_store_ptr));
}
CookieStore* ServiceWorkerGlobalScopeCookieStore::cookieStore(
ServiceWorkerGlobalScope& worker) {
// ServiceWorkerGlobalScope is Supplementable<WorkerGlobalScope>, not
// Supplementable<ServiceWorkerGlobalScope>.
return GlobalCookieStoreImpl<WorkerGlobalScope>::From(worker).GetCookieStore(
worker);
}
} // namespace blink