version bump
[guerillascript.git] / main / main.js
blobcb9bcd67b861f9758b8643f4192a93ede4083a53
1 /* coded by Ketmar // Invisible Vector (psyc://ketmar.no-ip.org/~Ketmar)
2  * Understanding is not required. Only obedience.
3  *
4  * This program is free software. It comes without any warranty, to
5  * the extent permitted by applicable law. You can redistribute it
6  * and/or modify it under the terms of the Do What The Fuck You Want
7  * To Public License, Version 2, as published by Sam Hocevar. See
8  * http://www.wtfpl.net/txt/copying/ for more details.
9  */
10 // main extension loader -- user-defined code
11 require("utils/utils");
14 let {PackageDB} = require("pkg/packagedb");
15 let pkgDB = new PackageDB();
17 registerStartupHook("packagedb creation", function () {
18   (function () { let db = pkgDB.db; })();
19 });
21 registerShutdownHook("packagedb closing", function () {
22   //pkgDB.close();
23   pkgDB = null;
24 });
26 let {PkgDownloader} = require("pkg/downpkg");
27 let scacheAPI = require("scriptcache");
28 let pkgman = require("pkg/pkgman");
30 require("injector");
31 require("concmd");
34 const {openTab} = require("sbapi/opentab");
35 registerWindowLoadHook("readme hook", function (win) {
36   // open documentation on first run
37   if (!addonOptions.fsoReadmeViewed) {
38     //addonOptions.fsoReadmeViewed = true;
39     //conlog("win=", win, "; url=", gsdoxUrl+"README.txt");
40     //openTab(win, gsdoxUrl+"README.txt", false);
41     let dwn = win.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindow);
42     if (!dwn) { conlog("000"); return; }
43     let chromeWindow =
44       dwn.QueryInterface(Ci.nsIInterfaceRequestor).
45       getInterface(Ci.nsIWebNavigation).
46       QueryInterface(Ci.nsIDocShellTreeItem).
47       rootTreeItem.
48       QueryInterface(Ci.nsIInterfaceRequestor).
49       getInterface(Ci.nsIDOMWindow);
50     if (!chromeWindow) { conlog("001"); return; }
51     let bro = chromeWindow.gBrowser;
52     if (!bro) { conlog("002"); return; }
53     //conlog("***");
55     let oss = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
56     let observer = {
57       observe: function (aSubject, aTopic, aData) {
58         //conlog("OBS: ", aTopic);
59         if (aTopic === "sessionstore-windows-restored") {
60           if (!addonOptions.fsoReadmeViewed) {
61             bro.selectedTab = bro.addTab(gsdoxUrl+"README.txt");
62             addonOptions.fsoReadmeViewed = true;
63           }
64           //oss.removeObserver(observer, "sessionstore-windows-restored");
65         }
66       },
67     };
68     oss.addObserver(observer, "sessionstore-windows-restored", false);
69   }
70 });