|
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 const { Trait } = require('../deprecated/traits'); |
|
7 const { isWindowPrivate, getWindowTitle } = require('../window/utils'); |
|
8 const { deprecateUsage } = require('../util/deprecate'); |
|
9 |
|
10 module.metadata = { |
|
11 "stability": "unstable" |
|
12 }; |
|
13 |
|
14 const WindowDom = Trait.compose({ |
|
15 _window: Trait.required, |
|
16 get title() { |
|
17 return getWindowTitle(this._window); |
|
18 }, |
|
19 close: function close() { |
|
20 let window = this._window; |
|
21 if (window) window.close(); |
|
22 return this._public; |
|
23 }, |
|
24 activate: function activate() { |
|
25 let window = this._window; |
|
26 if (window) window.focus(); |
|
27 return this._public; |
|
28 }, |
|
29 get isPrivateBrowsing() { |
|
30 deprecateUsage('`browserWindow.isPrivateBrowsing` is deprecated, please ' + |
|
31 'consider using ' + |
|
32 '`require("sdk/private-browsing").isPrivate(browserWindow)` ' + |
|
33 'instead.'); |
|
34 return isWindowPrivate(this._window); |
|
35 } |
|
36 }); |
|
37 exports.WindowDom = WindowDom; |