Mercurial > firefox-enso
annotate enso_pyxpcom.py @ 1:6e4335fa3321
Fixed some things.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Thu, 08 May 2008 11:16:05 -0700 |
parents | b1c0ab5d5f14 |
children | 4f22928c7a2c |
rev | line source |
---|---|
0
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
1 from xpcom import components, verbose |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
2 import sys, os |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
3 import logging |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
4 import platform |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
5 |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
6 _ensoStarted = False |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
7 |
1 | 8 ENSO_PATH = os.path.join(os.getenv("HOME"), "Documents/enso-svn") |
9 LOGGING_FILE = os.path.join(os.getenv("HOME"), "enso_pyxpcom.log") | |
10 | |
0
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
11 def getAbout(): |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
12 global _ensoStarted |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
13 |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
14 if not _ensoStarted: |
1 | 15 logging.info("Importing Enso.") |
16 sys.path.append(ENSO_PATH) | |
17 | |
18 import enso | |
0
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
19 logging.info("Launching Enso.") |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
20 _ensoStarted = True |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
21 enso.run() |
1 | 22 |
0
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
23 return "Enso is running." |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
24 |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
25 class ShutdownObserver: |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
26 _com_interfaces_ = components.interfaces.nsIObserver |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
27 |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
28 def observe(self, subject, topic, data): |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
29 print "quit-application received; calling sys.exitfunc()." |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
30 sys.exitfunc() |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
31 |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
32 class AboutPython: |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
33 _com_interfaces_ = components.interfaces.nsIAboutModule |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
34 _reg_contractid_ = '@mozilla.org/network/protocol/about;1?what=enso' |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
35 _reg_clsid_ = '{6d5d462e-6de7-4bca-bbc6-c488d481351c}' |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
36 _reg_desc_ = "about:enso handler" |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
37 |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
38 def __init__(self): |
1 | 39 logging.basicConfig(level=logging.INFO, |
40 filename=LOGGING_FILE, | |
41 filemode="w") | |
0
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
42 logging.info("Setting shutdown observer.") |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
43 observerService = components.classes["@mozilla.org/observer-service;1"].getService(components.interfaces.nsIObserverService) |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
44 observerService.addObserver(ShutdownObserver(), "quit-application", False) |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
45 |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
46 def newChannel(self, aURI): |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
47 ioService = components.classes["@mozilla.org/network/io-service;1"] \ |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
48 .getService(); |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
49 |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
50 istream = components.classes["@mozilla.org/io/string-input-stream;1"] \ |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
51 .createInstance() |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
52 |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
53 about = getAbout() |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
54 istream.setData(about, len(about)) |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
55 |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
56 channel = components.classes["@mozilla.org/network/input-stream-channel;1"] \ |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
57 .createInstance(components.interfaces.nsIInputStreamChannel) |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
58 |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
59 channel.setURI(aURI) |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
60 #channel.contentType = "text/html" |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
61 channel.contentStream = istream |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
62 return channel |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
63 |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
64 def getURIFlags(self, aURI): |
b1c0ab5d5f14
Origination, originally taken from the about:python source code from pyxpcom.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
65 return 0; |