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 7 #include "public/platform/WebPermissionCallbacks.h" 8 9 #include "platform/PermissionCallbacks.h" 10 11 namespace blink { 12 13 class WebPermissionCallbacksPrivate : public RefCounted<WebPermissionCallbacksPrivate> { 14 public: create(const PassOwnPtr<PermissionCallbacks> & callbacks)15 static PassRefPtr<WebPermissionCallbacksPrivate> create(const PassOwnPtr<PermissionCallbacks>& callbacks) 16 { 17 return adoptRef(new WebPermissionCallbacksPrivate(callbacks)); 18 } 19 callbacks()20 PermissionCallbacks* callbacks() { return m_callbacks.get(); } 21 22 private: WebPermissionCallbacksPrivate(const PassOwnPtr<PermissionCallbacks> & callbacks)23 WebPermissionCallbacksPrivate(const PassOwnPtr<PermissionCallbacks>& callbacks) : m_callbacks(callbacks) { } 24 OwnPtr<PermissionCallbacks> m_callbacks; 25 }; 26 WebPermissionCallbacks(const PassOwnPtr<PermissionCallbacks> & callbacks)27WebPermissionCallbacks::WebPermissionCallbacks(const PassOwnPtr<PermissionCallbacks>& callbacks) 28 { 29 m_private = WebPermissionCallbacksPrivate::create(callbacks); 30 } 31 reset()32void WebPermissionCallbacks::reset() 33 { 34 m_private.reset(); 35 } 36 assign(const WebPermissionCallbacks & other)37void WebPermissionCallbacks::assign(const WebPermissionCallbacks& other) 38 { 39 m_private = other.m_private; 40 } 41 doAllow()42void WebPermissionCallbacks::doAllow() 43 { 44 ASSERT(!m_private.isNull()); 45 m_private->callbacks()->onAllowed(); 46 m_private.reset(); 47 } 48 doDeny()49void WebPermissionCallbacks::doDeny() 50 { 51 ASSERT(!m_private.isNull()); 52 m_private->callbacks()->onDenied(); 53 m_private.reset(); 54 } 55 56 } // namespace blink 57