Home | History | Annotate | Download | only in notifications
      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