~jlisee/rescuetime-linux-uploader/experimental

« back to all changes in this revision

Viewing changes to firefox_extension/chrome/content/overlay.js

  • Committer: Piotr Kilczuk
  • Date: 2009-12-22 20:56:06 UTC
  • Revision ID: info@3lancer.eu-20091222205606-hardp50utdou1b3f
New Firefox extension compatible with 3.5 family

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
try{
2
 
var rescuetime_exporter = {
3
 
        onLoad: function() {
4
 
                // Listen for page load
5
 
                // There were two examples in developer.mozilla.org on how to
6
 
                // do this, maybe they are for older/newer firefox versions?
7
 
                // I've added both
8
 
                try{
9
 
                        gBrowser.addEventListener("load", this.onPageLoad, true);
10
 
                } catch (e){alert(e.name + " exception adding 'load' event listener.  Message: " + e.message)}
11
 
 
12
 
                try{
13
 
                        var appcontent = document.getElementById("appcontent")
14
 
                        if(appcontent)
15
 
                                appcontent.addEventListener("DOMContentLoaded", this.onPageLoad, true)          
16
 
                } catch (e){alert(e.name + " exception adding 'DOMContentLoaded' event listener.  Message: " + e.message)}
17
 
 
18
 
                try{
19
 
                        // Firefox 2+
20
 
                        var container = gBrowser.tabContainer;
21
 
                        container.addEventListener("TabSelect", this.onTabSelect, false);
22
 
                } catch (e){alert(e.name + " exception adding 'TabSelect' event listener.  Message: " + e.message)}
23
 
 
24
 
                try{
25
 
                        // Firefox <= 1.5
26
 
                        var container = gBrowser.mPanelContainer;
27
 
                        container.addEventListener("select", this.onTabSelect, false);
28
 
                } catch (e){alert(e.name + " exception adding 'select' event listener.  Message: " + e.message)}
29
 
        },
30
 
 
31
 
        printOutURL: function(){
32
 
                var file = Components.classes["@mozilla.org/file/directory_service;1"]
33
 
                        .getService(Components.interfaces.nsIProperties)
34
 
                        .get("DefProfRt", Components.interfaces.nsIFile)
35
 
                file.append("currentURL")
36
 
 
37
 
                // Writing to the file
38
 
                // file is nsIFile, data is a string
39
 
                if(content == null)
40
 
                        return;
41
 
                var data = content.location.href
42
 
                var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"]
43
 
                        .createInstance(Components.interfaces.nsIFileOutputStream)
44
 
                
45
 
                // use 0x02 | 0x10 to open file for appending.
46
 
                foStream.init(file, 0x02 | 0x08 | 0x20, 0666, 0); // write, create, truncate
47
 
                // In a c file operation, we have no need to set file mode with or operation, directly using "r" or "w" usually.
48
 
                foStream.write(data, data.length)
49
 
                foStream.close()
50
 
        },
51
 
 
52
 
        onMenuItemCommand: function(e) {
53
 
                try{
54
 
                        this.printOutURL()
55
 
                } catch (e){alert(e.name + " exception calling printOutURL from onMenuItemCommand.  Message: " + e.message)}
56
 
        },
57
 
 
58
 
        onPageLoad: function(e){
59
 
                try{
60
 
                        rescuetime_exporter.printOutURL()
61
 
                } catch (e){alert(e.name + " exception calling printOutURL from onPageLoad.  Message: " + e.message)}
62
 
        },
63
 
 
64
 
        onTabSelect: function(e){
65
 
                try{
66
 
                        rescuetime_exporter.printOutURL()
67
 
                } catch (e){alert(e.name + " exception calling printOutURL from onTabSelect.  Message: " + e.message)}
68
 
        }
69
 
 
70
 
};
71
 
} catch (e){alert(e.name + " exception creating rescuetime_exporter variable.  Message: " + e.message)}
72
 
try{
73
 
        window.addEventListener("load", function(e) { rescuetime_exporter.onLoad(e); }, false);
74
 
} catch (e){alert(e.name + " exception adding initial 'load' event listener.  Message: " + e.message)}