summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/extensions/AddonManagerStartup.h
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/extensions/AddonManagerStartup.h')
-rw-r--r--toolkit/mozapps/extensions/AddonManagerStartup.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/toolkit/mozapps/extensions/AddonManagerStartup.h b/toolkit/mozapps/extensions/AddonManagerStartup.h
new file mode 100644
index 0000000000..a1cb5c9506
--- /dev/null
+++ b/toolkit/mozapps/extensions/AddonManagerStartup.h
@@ -0,0 +1,59 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef AddonManagerStartup_h
+#define AddonManagerStartup_h
+
+#include "amIAddonManagerStartup.h"
+#include "mozilla/Result.h"
+#include "nsCOMArray.h"
+#include "nsCOMPtr.h"
+#include "nsIFile.h"
+#include "nsIObserver.h"
+#include "nsISupports.h"
+
+namespace mozilla {
+
+class Addon;
+
+class AddonManagerStartup final : public amIAddonManagerStartup,
+ public nsIObserver {
+ public:
+ NS_DECL_ISUPPORTS
+ NS_DECL_AMIADDONMANAGERSTARTUP
+ NS_DECL_NSIOBSERVER
+
+ AddonManagerStartup();
+
+ static AddonManagerStartup& GetSingleton();
+
+ static already_AddRefed<AddonManagerStartup> GetInstance() {
+ RefPtr<AddonManagerStartup> inst = &GetSingleton();
+ return inst.forget();
+ }
+
+ private:
+ nsIFile* ProfileDir();
+
+ nsCOMPtr<nsIFile> mProfileDir;
+
+ protected:
+ virtual ~AddonManagerStartup() = default;
+};
+
+} // namespace mozilla
+
+#define NS_ADDONMANAGERSTARTUP_CONTRACTID \
+ "@mozilla.org/addons/addon-manager-startup;1"
+
+// {17a59a6b-92b8-42e5-bce0-ab434c7a7135
+#define NS_ADDON_MANAGER_STARTUP_CID \
+ { \
+ 0x17a59a6b, 0x92b8, 0x42e5, { \
+ 0xbc, 0xe0, 0xab, 0x43, 0x4c, 0x7a, 0x71, 0x35 \
+ } \
+ }
+
+#endif // AddonManagerStartup_h