annotate xul/content/sidebar/installer.js @ 474:ecfbc8cd1ee0

servlet version 1.6.0 - parsing of URL parameters accepts & and ; in addition to & - more to come ;-)
author robcast
date Mon, 20 Nov 2006 18:59:30 +0100
parents 49cb8a445126
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
199
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
1 //@@@@@@@@@@@@@@@@
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
2 function MOZ_SidebarInstaller //<c><a>public<d>Mozilla Sidebar installer class
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
3 (
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
4 _title, //<p>string<d>Sidebar title
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
5 _url, //<p>string<d>Sidebar URL
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
6 _customize //<p>string<d>Sidebar customization
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
7 ){
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
8 const
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
9 INTERFACES = Components.interfaces,
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
10 nsIRDFRemoteDataSource = INTERFACES.nsIRDFRemoteDataSource,
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
11 nsIRDFService = INTERFACES.nsIRDFService, RDF_CID = "@mozilla.org/rdf/rdf-service;1",
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
12 nsIRDFContainer = INTERFACES.nsIRDFContainer, CONTAINER_CID = "@mozilla.org/rdf/container;1",
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
13 nsIProperties = INTERFACES.nsIProperties, DIR_SERV_CID = "@mozilla.org/file/directory_service;1",
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
14 nsIIOService = INTERFACES.nsIIOService, IO_SERVICE_CID = '@mozilla.org/network/io-service;1',
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
15 NC_NAMESPACE = 'http://home.netscape.com/NC-rdf#',
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
16 SIDEBAR_PANEL_URN = NC_NAMESPACE + 'panel-list',
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
17 SIDEBAR_CUR_URN = 'urn:sidebar:current-panel-list',
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
18 SIDEBAR_3RD_URN = 'urn:sidebar:3rdparty-panel:',
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
19 PANELS_RDF_FILE = "UPnls"; //directory services property to find panels.rdf
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
20 const
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
21 MSG_PANEL_IN_LIST = ' panel is already in Sidebar list\nSelect it in the Tabs > Customize Sidebar... menu',
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
22 MSG_PANEL_REFRESHED = ' panel successfully refreshed',
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
23 MSG_PANEL_ADDED = ' panel has been successfully added to your sidebar',
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
24 MSG_PANEL_SOURCE = 'Sidebar datasource is busted',
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
25 MSG_NO_RDF_FILE = 'panels.rdf file does not exist in your profile\nInstallation aborted';
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
26
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
27
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
28
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
29 //================
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
30 this.MOZ_SidebarInstaller = function //<m>void<a>private<d>class constructor
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
31 (
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
32 title, //<p>string<d>Sidebar panel title
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
33 url, //<p>string<d>Sidebar panel URL
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
34 customize //<p>string<d>Sidebar panel customization preferences
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
35 ){
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
36 this.className = 'MOZ_SidebarInstaller';
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
37 this.title = title;
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
38 this.url = url;
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
39 this.customize = customize;
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
40 this.setIn();
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
41 }//</m>MOZ_SidebarInstaller
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
42
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
43
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
44
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
45 //================
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
46 this.setIn = function //<m>void<a>private<d>Instance i12n
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
47 (){
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
48 this.rdf = Components.classes[RDF_CID].getService(nsIRDFService);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
49 this.container = Components.classes[CONTAINER_CID].createInstance(nsIRDFContainer);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
50 this.source = this.rdf.GetDataSource(this.getSource());
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
51 this.currentResource = this.rdf.GetResource(SIDEBAR_CUR_URN);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
52 this.installResource = this.rdf.GetResource(SIDEBAR_3RD_URN + this.url);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
53 }//</m>setIn
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
54
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
55
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
56
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
57 //================
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
58 this.setUp = function //<m>void<a>public<d>Installation execution method
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
59 (){
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
60 if(!this.source) return;
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
61 this.container.Init(this.source, this.getPanelList());
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
62 if (this.container.IndexOf(this.installResource) == -1) {
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
63 this.setPanelResource(this.installResource);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
64 this.setPanelRefresh();
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
65 this.setOutput(this.title + MSG_PANEL_ADDED);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
66 } else {
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
67 this.setPanelRefresh();
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
68 this.setOutput(this.title + MSG_PANEL_REFRESHED);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
69 }
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
70 }//</m>setUp
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
71
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
72
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
73
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
74 //================
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
75 this.setPanelResource = function //<m>void<a>public<d>Create a resource for the new panel and add it to the sidebar panel list
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
76 (
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
77 resource //<p>Object<d>Sidebar panel RDF resource
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
78 ){
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
79 this.setRDFTriple(resource, 'title', this.title, true);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
80 this.setRDFTriple(resource, 'content', this.url, true);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
81 if(this.customize) this.setRDFTriple(resource, 'customize', this.customize, true);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
82 this.container.AppendElement(resource);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
83 }//</m>setPanelResource
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
84
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
85
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
86
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
87 //================
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
88 this.setPanelRefresh = function //<m>void<a>public<d>Refresh Sidebar panels
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
89 (){
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
90 this.setRDFTriple(this.currentResource, 'refresh', 'true', true);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
91 this.setRDFTriple(this.currentResource, 'refresh', 'false', false);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
92 this.source.QueryInterface(nsIRDFRemoteDataSource).Flush();
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
93 }//</m>setPanelRefresh<d>&
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
94 /*
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
95 We pass a "refresh" event to all sidebars observers watching for this assertion (in sidebarOverlay.js)
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
96 */
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
97
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
98
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
99
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
100 //================
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
101 this.getPanelList = function //<m>Object<a>public<d>Get Sidebar panel resource
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
102 (){
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
103 var
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
104 panelList = this.source.GetTarget(this.currentResource, this.rdf.GetResource(SIDEBAR_PANEL_URN), true);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
105 if(panelList) panelList.QueryInterface(INTERFACES.nsIRDFResource);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
106 else this.setOutput(MSG_PANEL_SOURCE);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
107 return panelList;
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
108 }//</m>getPanelList
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
109
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
110
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
111
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
112 //================
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
113 this.getSource = function //<m>string<a>private<d>Get the Sidebar panels.rdf datasource URL
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
114 (){
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
115 try{
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
116 var
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
117 dirService = Components.classes[DIR_SERV_CID].getService();
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
118 dirService = dirService.QueryInterface(nsIProperties);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
119 var
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
120 sidebarFile = dirService.get(PANELS_RDF_FILE, INTERFACES.nsIFile);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
121 if(!sidebarFile.exists()) throw MSG_NO_RDF_FILE;
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
122 var
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
123 ioService = Components.classes[IO_SERVICE_CID].getService(nsIIOService),
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
124 fileURL = ioService.newFileURI(sidebarFile);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
125 fileURL = fileURL.QueryInterface(INTERFACES.nsIFileURL);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
126 return fileURL.spec;
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
127 }
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
128 catch(e){
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
129 return this.setOutput(e);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
130 }
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
131 }//</m>getSource<d>&
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
132 /*
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
133 panels.rdf file is located in the user profile directory
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
134 If the file does not exist already, it is copied from /bin/defaults/profile/panels.rdf
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
135 */
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
136
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
137
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
138
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
139 //================
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
140 this.setRDFTriple = function //<m>void<a>private<d>Setup an assertion in the RDF datasource member
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
141 (
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
142 subject, //<p>string<d>Assertion subject
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
143 property, //<p>string<d>Assertion property
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
144 object, //<p>string<d>Assertion object
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
145 asserting //<p>boolean<d>Set or remove Assertion
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
146 ){
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
147 this.source[asserting ? 'Assert' : 'Unassert'](subject, this.rdf.GetResource(NC_NAMESPACE + property), this.rdf.GetLiteral(object), true);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
148 }//</m>setRDFTriple
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
149
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
150
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
151
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
152 //================
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
153 this.setOutput = function //<m>boolean<a>private<d>Dump message to output console
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
154 (
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
155 output //<p>string<d>Message to output
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
156 ){
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
157 var
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
158 /*string*/out = //'[' + this.className + ']\n' +
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
159 output + '\n';
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
160 window.alert(out); //dump(output);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
161 return null;
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
162 }//</m>setOutput<d>&
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
163 /*
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
164 Use either console or window alert output
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
165 */
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
166
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
167
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
168
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
169 this.MOZ_SidebarInstaller(_title, _url, _customize);
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
170 }//</c>MOZ_SidebarInstaller
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
171
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
172
49cb8a445126 restarting with version control of xul sidebar/toolbar
luginbue
parents:
diff changeset
173