|
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 |
|
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
4 "use strict"; |
|
5 |
|
6 module.metadata = { |
|
7 "stability": "unstable" |
|
8 }; |
|
9 |
|
10 const ON_PREFIX = "on"; |
|
11 const TAB_PREFIX = "Tab"; |
|
12 |
|
13 const EVENTS = { |
|
14 ready: "DOMContentLoaded", |
|
15 load: "load", // Used for non-HTML content |
|
16 pageshow: "pageshow", // Used for cached content |
|
17 open: "TabOpen", |
|
18 close: "TabClose", |
|
19 activate: "TabSelect", |
|
20 deactivate: null, |
|
21 pinned: "TabPinned", |
|
22 unpinned: "TabUnpinned" |
|
23 } |
|
24 exports.EVENTS = EVENTS; |
|
25 |
|
26 Object.keys(EVENTS).forEach(function(name) { |
|
27 EVENTS[name] = { |
|
28 name: name, |
|
29 listener: createListenerName(name), |
|
30 dom: EVENTS[name] |
|
31 } |
|
32 }); |
|
33 |
|
34 function createListenerName (name) { |
|
35 if (name === 'pageshow') |
|
36 return 'onPageShow'; |
|
37 else |
|
38 return ON_PREFIX + name.charAt(0).toUpperCase() + name.substr(1); |
|
39 } |