1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4  * License, v. 2.0. If a copy of the MPL was not distributed with this
5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 
7 #ifndef nsOSPermissionRequestBase_h__
8 #define nsOSPermissionRequestBase_h__
9 
10 #include "nsIOSPermissionRequest.h"
11 #include "nsWeakReference.h"
12 
13 namespace mozilla {
14 namespace dom {
15 class Promise;
16 }  // namespace dom
17 }  // namespace mozilla
18 
19 using mozilla::dom::Promise;
20 
21 /*
22  * The base implementation of nsIOSPermissionRequest to be subclassed on
23  * platforms that require permission requests for access to resources such
24  * as media captures devices. This implementation always returns results
25  * indicating access is permitted.
26  */
27 class nsOSPermissionRequestBase : public nsIOSPermissionRequest,
28                                   public nsSupportsWeakReference {
29  public:
30   NS_DECL_ISUPPORTS
31   NS_DECL_NSIOSPERMISSIONREQUEST
32 
33   nsOSPermissionRequestBase() = default;
34 
35  protected:
36   nsresult GetPromise(JSContext* aCx, RefPtr<Promise>& aPromiseOut);
37   virtual ~nsOSPermissionRequestBase() = default;
38 };
39 
40 #endif
41