1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "config.h"
6#include "modules/push_messaging/PushController.h"
7
8#include "public/platform/WebPushClient.h"
9#include "wtf/PassOwnPtr.h"
10
11namespace blink {
12
13PushController::PushController(WebPushClient* client)
14    : m_client(client)
15{
16}
17
18PassOwnPtrWillBeRawPtr<PushController> PushController::create(WebPushClient* client)
19{
20    return adoptPtrWillBeNoop(new PushController(client));
21}
22
23WebPushClient* PushController::clientFrom(Page* page)
24{
25    if (PushController* controller = PushController::from(page))
26        return controller->client();
27    return 0;
28}
29
30const char* PushController::supplementName()
31{
32    return "PushController";
33}
34
35void providePushControllerTo(Page& page, WebPushClient* client)
36{
37    PushController::provideTo(page, PushController::supplementName(), PushController::create(client));
38}
39
40} // namespace blink
41