| OLD | NEW |
| 1 /* This Source Code Form is subject to the terms of the Mozilla Public | 1 /* This Source Code Form is subject to the terms of the Mozilla Public |
| 2 * License, v. 2.0. If a copy of the MPL was not distributed with this | 2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
| 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| 4 | 4 |
| 5 const Cc = Components.classes; | 5 const Cc = Components.classes; |
| 6 const Ci = Components.interfaces; | 6 const Ci = Components.interfaces; |
| 7 const Cr = Components.results; | 7 const Cr = Components.results; |
| 8 const Cu = Components.utils; | 8 const Cu = Components.utils; |
| 9 | 9 |
| 10 let {Services, atob, btoa, File, TextDecoder, TextEncoder} = Cu.import("resource
://gre/modules/Services.jsm", null); | 10 let {Services, atob, btoa, File, TextDecoder, TextEncoder} = Cu.import("resource
://gre/modules/Services.jsm", null); |
| 11 | 11 |
| 12 {%- if hasXMLHttpRequest %} | 12 {%- if hasXMLHttpRequest %} |
| 13 let XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttpreque
st;1", "nsIXMLHttpRequest"); | 13 let XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttpreque
st;1", "nsIXMLHttpRequest"); |
| 14 {%- endif %} | 14 {%- endif %} |
| 15 | 15 |
| 16 let addonData = null; | 16 let addonData = null; |
| 17 | 17 |
| 18 function startup(params, reason) | 18 function startup(params, reason) |
| 19 { | 19 { |
| 20 addonData = params; | 20 addonData = params; |
| 21 | 21 |
| 22 {%- if hasChromeRequires %} | 22 {%- if hasChromeRequires %} |
| 23 Services.obs.addObserver(RequireObserver, "{{metadata.get('general', 'basename
')}}-require", true); | 23 Services.obs.addObserver(RequireObserver, "{{metadata.get('general', 'basename
')}}-require", true); |
| 24 onShutdown.add(function() Services.obs.removeObserver(RequireObserver, "{{meta
data.get('general', 'basename')}}-require")); | 24 onShutdown.add(() => Services.obs.removeObserver(RequireObserver, "{{metadata.
get('general', 'basename')}}-require")); |
| 25 {%- set hasShutdownHandlers = True %} | 25 {%- set hasShutdownHandlers = True %} |
| 26 {%- endif %} | 26 {%- endif %} |
| 27 | 27 |
| 28 require("main"); | 28 require("main"); |
| 29 } | 29 } |
| 30 | 30 |
| 31 function shutdown(params, reason) | 31 function shutdown(params, reason) |
| 32 { | 32 { |
| 33 {%- if chromeWindows %} | 33 {%- if chromeWindows %} |
| 34 let windowNames = {{chromeWindows|json}}; | 34 let windowNames = {{chromeWindows|json}}; |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 162 wantXrays: false | 162 wantXrays: false |
| 163 }); | 163 }); |
| 164 {%- endif %} | 164 {%- endif %} |
| 165 Services.scriptloader.loadSubScript(url, scopes[module]); | 165 Services.scriptloader.loadSubScript(url, scopes[module]); |
| 166 {%- if 'info' in requires %} | 166 {%- if 'info' in requires %} |
| 167 } | 167 } |
| 168 {%- endif %} | 168 {%- endif %} |
| 169 } | 169 } |
| 170 return scopes[module].exports; | 170 return scopes[module].exports; |
| 171 } | 171 } |
| 172 require.scopes = {__proto__: null}; | 172 require.scopes = Object.create(null); |
| 173 | 173 |
| 174 {%- if hasChromeRequires %} | 174 {%- if hasChromeRequires %} |
| 175 Cu.import("resource://gre/modules/XPCOMUtils.jsm"); | 175 Cu.import("resource://gre/modules/XPCOMUtils.jsm"); |
| 176 | 176 |
| 177 let RequireObserver = | 177 let RequireObserver = |
| 178 { | 178 { |
| 179 observe: function(subject, topic, data) | 179 observe: function(subject, topic, data) |
| 180 { | 180 { |
| 181 if (topic == "{{metadata.get('general', 'basename')}}-require") | 181 if (topic == "{{metadata.get('general', 'basename')}}-require") |
| 182 { | 182 { |
| 183 subject.wrappedJSObject.exports = require(data); | 183 subject.wrappedJSObject.exports = require(data); |
| 184 } | 184 } |
| 185 }, | 185 }, |
| 186 | 186 |
| 187 QueryInterface: XPCOMUtils.generateQI([Ci.nsISupportsWeakReference, Ci.nsIObse
rver]) | 187 QueryInterface: XPCOMUtils.generateQI([Ci.nsISupportsWeakReference, Ci.nsIObse
rver]) |
| 188 }; | 188 }; |
| 189 {%- endif %} | 189 {%- endif %} |
| OLD | NEW |