LCOV - code coverage report
Current view: top level - toolkit/components/alerts - nsXULAlerts.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 15 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 17 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode:nil; c-basic-offset: 2 -*- */
       2             : /* This Source Code Form is subject to the terms of the Mozilla Public
       3             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       4             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       5             : 
       6             : #ifndef nsXULAlerts_h__
       7             : #define nsXULAlerts_h__
       8             : 
       9             : #include "nsCycleCollectionParticipant.h"
      10             : #include "nsDataHashtable.h"
      11             : #include "nsHashKeys.h"
      12             : #include "nsInterfaceHashtable.h"
      13             : 
      14             : #include "mozIDOMWindow.h"
      15             : #include "nsIObserver.h"
      16             : 
      17           0 : struct PendingAlert
      18             : {
      19           0 :   void Init(nsIAlertNotification* aAlert, nsIObserver* aListener)
      20             :   {
      21           0 :     mAlert = aAlert;
      22           0 :     mListener = aListener;
      23           0 :   }
      24             :   nsCOMPtr<nsIAlertNotification> mAlert;
      25             :   nsCOMPtr<nsIObserver> mListener;
      26             : };
      27             : 
      28             : class nsXULAlerts : public nsIAlertsService,
      29             :                     public nsIAlertsDoNotDisturb,
      30             :                     public nsIAlertsIconURI
      31             : {
      32             :   friend class nsXULAlertObserver;
      33             : public:
      34             :   NS_DECL_NSIALERTSICONURI
      35             :   NS_DECL_NSIALERTSDONOTDISTURB
      36             :   NS_DECL_NSIALERTSSERVICE
      37             :   NS_DECL_ISUPPORTS
      38             : 
      39           0 :   nsXULAlerts()
      40           0 :   {
      41           0 :   }
      42             : 
      43             :   static already_AddRefed<nsXULAlerts> GetInstance();
      44             : 
      45             : protected:
      46           0 :   virtual ~nsXULAlerts() {}
      47             :   void PersistentAlertFinished();
      48             : 
      49             :   nsInterfaceHashtable<nsStringHashKey, mozIDOMWindowProxy> mNamedWindows;
      50             :   uint32_t mPersistentAlertCount = 0;
      51             :   nsTArray<PendingAlert> mPendingPersistentAlerts;
      52             :   bool mDoNotDisturb = false;
      53             : };
      54             : 
      55             : /**
      56             :  * This class wraps observers for alerts and watches
      57             :  * for the "alertfinished" event in order to release
      58             :  * the reference on the nsIDOMWindow of the XUL alert.
      59             :  */
      60             : class nsXULAlertObserver : public nsIObserver {
      61             : public:
      62             :   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
      63             :   NS_DECL_NSIOBSERVER
      64           0 :   NS_DECL_CYCLE_COLLECTION_CLASS(nsXULAlertObserver)
      65             : 
      66           0 :   nsXULAlertObserver(nsXULAlerts* aXULAlerts, const nsAString& aAlertName,
      67             :                      nsIObserver* aObserver, bool aIsPersistent)
      68           0 :     : mXULAlerts(aXULAlerts), mAlertName(aAlertName),
      69           0 :       mObserver(aObserver), mIsPersistent(aIsPersistent) {}
      70             : 
      71           0 :   void SetAlertWindow(mozIDOMWindowProxy* aWindow) { mAlertWindow = aWindow; }
      72             : 
      73             : protected:
      74           0 :   virtual ~nsXULAlertObserver() {}
      75             : 
      76             :   RefPtr<nsXULAlerts> mXULAlerts;
      77             :   nsString mAlertName;
      78             :   nsCOMPtr<mozIDOMWindowProxy> mAlertWindow;
      79             :   nsCOMPtr<nsIObserver> mObserver;
      80             :   bool mIsPersistent;
      81             : };
      82             : 
      83             : #endif /* nsXULAlerts_h__ */
      84             : 

Generated by: LCOV version 1.13