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/notifications/NotificationPermissionClient.h" 7 8 #include "core/dom/Document.h" 9 #include "core/dom/ExecutionContext.h" 10 #include "core/frame/LocalFrame.h" 11 12 namespace blink { 13 14 const char* NotificationPermissionClient::supplementName() 15 { 16 return "NotificationPermissionClient"; 17 } 18 19 NotificationPermissionClient* NotificationPermissionClient::from(ExecutionContext* context) 20 { 21 if (!context->isDocument()) 22 return 0; 23 24 const Document* document = toDocument(context); 25 ASSERT(document->frame()); 26 27 if (!document->frame()->isLocalFrame()) 28 return 0; 29 30 return static_cast<NotificationPermissionClient*>(WillBeHeapSupplement<LocalFrame>::from(document->frame(), supplementName())); 31 } 32 33 void provideNotificationPermissionClientTo(LocalFrame& frame, PassOwnPtrWillBeRawPtr<NotificationPermissionClient> client) 34 { 35 frame.provideSupplement(NotificationPermissionClient::supplementName(), client); 36 } 37 38 } 39