1 dump('entering util/window.js\n');
3 if (typeof util == 'undefined') util = {};
4 util.window = function () {
5 JSAN.use('util.error'); this.error = new util.error(); this.win = window;
9 util.window.prototype = {
11 // list of open window references, used for debugging in shell
14 // list of Top Level menu interface window references
17 // list of documents for debugging. BROKEN
20 // Windows need unique names. This number helps.
21 'window_name_increment' : 0,
23 // This number gets put into the title bar for Top Level menu interface windows
24 'appshell_name_increment' : 0,
26 // From: Bryan White on netscape.public.mozilla.xpfe, Oct 13, 2004
27 // Message-ID: <ckjh7a$18q1@ripley.netscape.com>
28 // Modified by Jason for Evergreen
29 'SafeWindowOpen' : function (url,title,features) {
32 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
33 netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesRead");
34 netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesWrite");
35 netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
36 netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite");
38 const CI = Components.interfaces;
39 const PB = Components.classes["@mozilla.org/preferences-service;1"].getService(CI.nsIPrefBranch);
43 // pref 'dom.disable_open_during_load' is the main popup blocker preference
44 blocked = PB.getBoolPref("dom.disable_open_during_load");
45 if(blocked) PB.setBoolPref("dom.disable_open_during_load",false);
46 w = this.win.open(url,title,features);
48 this.error.sdump('D_ERROR','window.SafeWindowOpen: ' + E + '\n');
51 if(blocked) PB.setBoolPref("dom.disable_open_during_load",true);
56 'open' : function(url,title,features) {
57 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
58 if (!title) title = 'anon' + window_name_increment++;
59 if (!features) features = 'chrome';
60 this.error.sdump('D_WIN',
61 'opening ' + url + ', ' + title + ', ' + features + ' from ' + this.win + '\n');
62 var w = this.SafeWindowOpen(url,title,features);
66 try { w.title = title; } catch(E) { dump('**'+E+'\n'); }
67 try { w.document.title = title; } catch(E) { dump('**'+E+'\n'); }
75 dump('exiting util/window.js\n');