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