2
var rescuetime_exporter = {
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?
9
gBrowser.addEventListener("load", this.onPageLoad, true);
10
} catch (e){alert(e.name + " exception adding 'load' event listener. Message: " + e.message)}
13
var appcontent = document.getElementById("appcontent")
15
appcontent.addEventListener("DOMContentLoaded", this.onPageLoad, true)
16
} catch (e){alert(e.name + " exception adding 'DOMContentLoaded' event listener. Message: " + e.message)}
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)}
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)}
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")
37
// Writing to the file
38
// file is nsIFile, data is a string
41
var data = content.location.href
42
var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"]
43
.createInstance(Components.interfaces.nsIFileOutputStream)
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)
52
onMenuItemCommand: function(e) {
55
} catch (e){alert(e.name + " exception calling printOutURL from onMenuItemCommand. Message: " + e.message)}
58
onPageLoad: function(e){
60
rescuetime_exporter.printOutURL()
61
} catch (e){alert(e.name + " exception calling printOutURL from onPageLoad. Message: " + e.message)}
64
onTabSelect: function(e){
66
rescuetime_exporter.printOutURL()
67
} catch (e){alert(e.name + " exception calling printOutURL from onTabSelect. Message: " + e.message)}
71
} catch (e){alert(e.name + " exception creating rescuetime_exporter variable. Message: " + e.message)}
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)}