From 1e8cb41427832e2e4ed9b2b95e8fe7c63286c4cd Mon Sep 17 00:00:00 2001 From: "ben%bengoodger.com" Date: Mon, 8 Mar 2004 09:56:16 +0000 Subject: [PATCH] 236744 - replace winhooks with a XP shell service to better allow for system integration on various platforms git-svn-id: svn://10.0.0.236/trunk@153676 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/browser/app/Makefile.in | 3 + .../app/{document-icon.ico => document.ico} | Bin .../browser/app/{mozilla.ico => firefox.ico} | Bin mozilla/browser/app/profile/firefox.js | 4 + mozilla/browser/app/splash.rc | 25 +- mozilla/browser/base/content/browser-sets.inc | 2 + mozilla/browser/base/content/browser.js | 46 +- mozilla/browser/base/content/setWallpaper.xul | 22 +- .../browser/base/locale/browser.properties | 1 + mozilla/browser/components/Makefile.in | 7 +- mozilla/browser/components/build/Makefile.in | 6 +- .../components/build/nsBrowserCompsCID.h | 6 + mozilla/browser/components/build/nsModule.cpp | 35 +- .../prefwindow/content/pref-navigator.js | 77 +- .../prefwindow/content/pref-navigator.xul | 83 +- .../prefwindow/locale/pref-navigator.dtd | 7 + mozilla/browser/components/shell/Makefile.in | 47 ++ .../components/shell/content/dummyWindow.xul | 46 + mozilla/browser/components/shell/jar.mn | 4 + .../shell/locale/shellservice.properties | 5 + .../components/shell/public/Makefile.in | 38 + .../shell/public/nsIShellService.idl | 104 +++ .../shell/public/nsIWindowsShellService.idl | 63 ++ .../browser/components/shell/src/Makefile.in | 70 ++ .../shell/src/nsGNOMEShellService.cpp | 102 +++ .../shell/src/nsGNOMEShellService.h | 57 ++ .../shell/src/nsMacShellService.cpp | 102 +++ .../components/shell/src/nsMacShellService.h | 58 ++ .../shell/src/nsSetDefaultBrowser.js | 168 ++++ .../components/shell/src/nsShellService.h | 41 + .../shell/src/nsWindowsShellService.cpp | 796 ++++++++++++++++++ .../shell/src/nsWindowsShellService.h | 67 ++ 32 files changed, 1931 insertions(+), 161 deletions(-) rename mozilla/browser/app/{document-icon.ico => document.ico} (100%) rename mozilla/browser/app/{mozilla.ico => firefox.ico} (100%) diff --git a/mozilla/browser/app/Makefile.in b/mozilla/browser/app/Makefile.in index d5b0eab4d7b..e649554f8fd 100644 --- a/mozilla/browser/app/Makefile.in +++ b/mozilla/browser/app/Makefile.in @@ -124,6 +124,9 @@ endif ifdef BUILD_STATIC_LIBS RCFLAGS += -DMOZ_STATIC_BUILD endif +ifdef DEBUG +RCFLAGS += -DDEBUG +endif endif ifeq ($(OS_ARCH),OS2) diff --git a/mozilla/browser/app/document-icon.ico b/mozilla/browser/app/document.ico similarity index 100% rename from mozilla/browser/app/document-icon.ico rename to mozilla/browser/app/document.ico diff --git a/mozilla/browser/app/mozilla.ico b/mozilla/browser/app/firefox.ico similarity index 100% rename from mozilla/browser/app/mozilla.ico rename to mozilla/browser/app/firefox.ico diff --git a/mozilla/browser/app/profile/firefox.js b/mozilla/browser/app/profile/firefox.js index e4ab879d6cb..42c56dbad52 100644 --- a/mozilla/browser/app/profile/firefox.js +++ b/mozilla/browser/app/profile/firefox.js @@ -64,6 +64,10 @@ pref("general.autoScroll", false); pref("general.autoScroll", true); #endif +// Whether or not the application should check at startup each time if it +// is the default browser. +pref("browser.shell.checkDefaultBrowser", true); + // 0 = blank, 1 = home (browser.startup.homepage), 2 = last // XXXBlake Remove this stupid pref pref("browser.startup.page", 1); diff --git a/mozilla/browser/app/splash.rc b/mozilla/browser/app/splash.rc index abc388f3fec..79e28dfd187 100644 --- a/mozilla/browser/app/splash.rc +++ b/mozilla/browser/app/splash.rc @@ -41,29 +41,8 @@ 1 24 "firefox.exe.manifest" -// Program icon. -IDI_APPLICATION ICON - "mozilla.ico" - -// Splash screen dialog. -IDD_SPLASH DIALOGEX - DISCARDABLE - 0,0,0,0 - STYLE DS_SETFOREGROUND | DS_CENTER | WS_POPUP - EXSTYLE WS_EX_TOOLWINDOW - FONT 8, "MS Sans Serif" - BEGIN - CONTROL - IDB_SPLASH, - IDB_SPLASH, - "Static", - SS_BITMAP, - 0,0,0,0 - END - -// Splash screen bitmap. -// IDB_SPLASH BITMAP -// "splash.bmp" +IDI_DOCUMENT ICON "document.ico" +IDI_APPLICATION ICON "firefox.ico" STRINGTABLE DISCARDABLE BEGIN diff --git a/mozilla/browser/base/content/browser-sets.inc b/mozilla/browser/base/content/browser-sets.inc index 674932df668..86f94052998 100644 --- a/mozilla/browser/base/content/browser-sets.inc +++ b/mozilla/browser/base/content/browser-sets.inc @@ -36,6 +36,8 @@ # ***** END LICENSE BLOCK ***** + + diff --git a/mozilla/browser/base/content/browser.js b/mozilla/browser/base/content/browser.js index ceed592034b..0c38d0d1e25 100644 --- a/mozilla/browser/base/content/browser.js +++ b/mozilla/browser/base/content/browser.js @@ -512,16 +512,31 @@ function delayedStartup() clearObsoletePrefs(); -#ifdef XP_WIN // Perform default browser checking (after window opens). - try { - var dialogShown = Components.classes["@mozilla.org/winhooks;1"] - .getService(Components.interfaces.nsIWindowsHooks) - .checkSettings(window); - } catch(e) { + var shell = Components.classes["@mozilla.org/browser/shell-service;1"] + .getService(Components.interfaces.nsIShellService); + var shouldCheck = shell.shouldCheckDefaultBrowser; + if (shouldCheck && !shell.isDefaultBrowser(true)) { + var brandBundle = document.getElementById("bundle_brand"); + var shellBundle = document.getElementById("bundle_shell"); + + var brandShortName = brandBundle.getString("brandShortName"); + var promptTitle = shellBundle.getString("setDefaultBrowserTitle"); + var promptMessage = shellBundle.getFormattedString("setDefaultBrowserMessage", + [brandShortName]); + var checkboxLabel = shellBundle.getString("setDefaultBrowserDontAsk"); + const IPS = Components.interfaces.nsIPromptService; + var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] + .getService(IPS); + var checkEveryTime = { value: shouldCheck }; + var rv = ps.confirmEx(window, promptTitle, promptMessage, + (IPS.BUTTON_TITLE_YES * IPS.BUTTON_POS_0) + + (IPS.BUTTON_TITLE_NO * IPS.BUTTON_POS_1), + null, null, null, checkboxLabel, checkEveryTime); + if (rv == 0) + shell.setDefaultBrowser(true); + shell.shouldCheckDefaultBrowser = checkEveryTime.value; } -#endif - } function Shutdown() @@ -4327,20 +4342,23 @@ var MailIntegration = { readMail: function () { - var whs = Components.classes["@mozilla.org/winhooks;1"].getService(Components.interfaces.nsIWindowsHooks); - whs.openDefaultClient("Mail"); + const ss = Components.interfaces.nsIShellService; + var shell = Components.classes["@mozilla.org/browser/shell-service;1"].getService(ss); + shell.openPreferredApplication(ss.APPLICATION_MAIL); }, readNews: function () { - var whs = Components.classes["@mozilla.org/winhooks;1"].getService(Components.interfaces.nsIWindowsHooks); - whs.openDefaultClient("News"); + const ss = Components.interfaces.nsIShellService; + var shell = Components.classes["@mozilla.org/browser/shell-service;1"].getService(Components.interfaces.nsIShellService); + shell.openPreferredApplication(ss.APPLICATION_NEWS); }, updateUnreadCount: function () { - var whs = Components.classes["@mozilla.org/winhooks;1"].getService(Components.interfaces.nsIWindowsHooks); - var unreadCount = whs.unreadMailCount; + var shell = Components.classes["@mozilla.org/browser/shell-service;1"] + .getService(Components.interfaces.nsIWindowsShellService); + var unreadCount = shell.unreadMailCount; var message = gNavigatorBundle.getFormattedString("mailUnreadTooltip", [unreadCount]); var element = document.getElementById("mail-button"); element.setAttribute("tooltiptext", message); diff --git a/mozilla/browser/base/content/setWallpaper.xul b/mozilla/browser/base/content/setWallpaper.xul index a68baefdd89..6bdbdc51c44 100755 --- a/mozilla/browser/base/content/setWallpaper.xul +++ b/mozilla/browser/base/content/setWallpaper.xul @@ -54,8 +54,8 @@ - @@ -170,10 +98,11 @@ - &makeDefaultText; - -