diff options
Diffstat (limited to 'browser/components')
17 files changed, 68 insertions, 77 deletions
diff --git a/browser/components/build/moz.build b/browser/components/build/moz.build index 8c99b74dd..622cf449c 100644 --- a/browser/components/build/moz.build +++ b/browser/components/build/moz.build @@ -12,8 +12,7 @@ SOURCES += [ 'nsModule.cpp', ] -Library('browsercomps') -FINAL_LIBRARY = 'xul' +XPCOMBinaryComponent('browsercomps') LOCAL_INCLUDES += [ '../about', @@ -22,3 +21,22 @@ LOCAL_INCLUDES += [ '../migration', '../shell', ] + +if CONFIG['OS_ARCH'] == 'WINNT': + OS_LIBS += [ + 'esent', + 'netapi32', + 'ole32', + 'shell32', + 'shlwapi', + 'version', + ] + DELAYLOAD_DLLS += [ + 'esent.dll', + 'netapi32.dll', + ] + +# Mac: Need to link with CoreFoundation for Mac Migrators (PList reading code) +# GTK2: Need to link with glib for GNOME shell service +if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('cocoa', 'gtk2', 'gtk3'): + OS_LIBS += CONFIG['TK_LIBS'] diff --git a/browser/components/customizableui/CustomizableUI.jsm b/browser/components/customizableui/CustomizableUI.jsm index 86ff2708b..01389108d 100644 --- a/browser/components/customizableui/CustomizableUI.jsm +++ b/browser/components/customizableui/CustomizableUI.jsm @@ -262,24 +262,14 @@ var CustomizableUIInternal = { defaultCollapsed: false, }, true); - if (AppConstants.platform != "macosx") { + if (AppConstants.MENUBAR_CAN_AUTOHIDE) { this.registerArea(CustomizableUI.AREA_MENUBAR, { legacy: true, type: CustomizableUI.TYPE_TOOLBAR, defaultPlacements: [ "menubar-items", ], - get defaultCollapsed() { - if (AppConstants.MENUBAR_CAN_AUTOHIDE) { - if (AppConstants.platform == "linux") { - return true; - } - // This is duplicated logic from /browser/base/jar.mn - // for win6BrowserOverlay.xul. - return AppConstants.isPlatformAndVersionAtLeast("win", 6); - } - return false; - } + defaultCollapsed: true, }, true); } diff --git a/browser/components/customizableui/CustomizableWidgets.jsm b/browser/components/customizableui/CustomizableWidgets.jsm index 907e2e0f7..1e68b01c1 100644 --- a/browser/components/customizableui/CustomizableWidgets.jsm +++ b/browser/components/customizableui/CustomizableWidgets.jsm @@ -1187,10 +1187,7 @@ let preferencesButton = { win.openPreferences(); } }; -if (AppConstants.platform == "win") { - preferencesButton.label = "preferences-button.labelWin"; - preferencesButton.tooltiptext = "preferences-button.tooltipWin2"; -} else if (AppConstants.platform == "macosx") { +if (AppConstants.platform == "macosx") { preferencesButton.tooltiptext = "preferences-button.tooltiptext.withshortcut"; preferencesButton.shortcutId = "key_preferencesCmdMac"; } else { diff --git a/browser/components/dirprovider/DirectoryProvider.cpp b/browser/components/dirprovider/DirectoryProvider.cpp index 7b4f81c7d..8b7c0b9e0 100644 --- a/browser/components/dirprovider/DirectoryProvider.cpp +++ b/browser/components/dirprovider/DirectoryProvider.cpp @@ -20,7 +20,7 @@ #include "nsDirectoryServiceUtils.h" #include "mozilla/ModuleUtils.h" #include "nsServiceManagerUtils.h" -#include "nsString.h" +#include "nsStringAPI.h" #include "nsXULAppAPI.h" #include "nsIPrefLocalizedString.h" diff --git a/browser/components/feeds/nsFeedSniffer.cpp b/browser/components/feeds/nsFeedSniffer.cpp index f2d0da776..f314d3d3b 100644 --- a/browser/components/feeds/nsFeedSniffer.cpp +++ b/browser/components/feeds/nsFeedSniffer.cpp @@ -185,15 +185,9 @@ IsDocumentElement(const char *start, const char* end) static bool ContainsTopLevelSubstring(nsACString& dataString, const char *substring) { - nsACString::const_iterator start, end; - dataString.BeginReading(start); - dataString.EndReading(end); - - if (!FindInReadable(nsCString(substring), start, end)){ + int32_t offset = dataString.Find(substring); + if (offset == -1) return false; - } - - auto offset = start.get() - dataString.Data(); const char *begin = dataString.BeginReading(); @@ -318,10 +312,9 @@ nsFeedSniffer::GetMIMETypeFromContent(nsIRequest* request, // RSS 1.0 if (!isFeed) { - bool foundNS_RDF = FindInReadable(NS_LITERAL_CSTRING(NS_RDF), dataString); - bool foundNS_RSS = FindInReadable(NS_LITERAL_CSTRING(NS_RSS), dataString); isFeed = ContainsTopLevelSubstring(dataString, "<rdf:RDF") && - foundNS_RDF && foundNS_RSS; + dataString.Find(NS_RDF) != -1 && + dataString.Find(NS_RSS) != -1; } // If we sniffed a feed, coerce our internal type diff --git a/browser/components/feeds/nsFeedSniffer.h b/browser/components/feeds/nsFeedSniffer.h index b7ac002bd..a0eb9862c 100644 --- a/browser/components/feeds/nsFeedSniffer.h +++ b/browser/components/feeds/nsFeedSniffer.h @@ -6,7 +6,7 @@ #include "nsIContentSniffer.h" #include "nsIStreamListener.h" -#include "nsString.h" +#include "nsStringAPI.h" #include "mozilla/Attributes.h" class nsFeedSniffer final : public nsIContentSniffer, diff --git a/browser/components/migration/nsIEHistoryEnumerator.cpp b/browser/components/migration/nsIEHistoryEnumerator.cpp index 116e9a860..0b377d27e 100644 --- a/browser/components/migration/nsIEHistoryEnumerator.cpp +++ b/browser/components/migration/nsIEHistoryEnumerator.cpp @@ -9,10 +9,9 @@ #include "nsArrayEnumerator.h" #include "nsCOMArray.h" -#include "nsIURI.h" #include "nsIVariant.h" #include "nsNetUtil.h" -#include "nsString.h" +#include "nsStringAPI.h" #include "nsWindowsMigrationUtils.h" #include "prtime.h" @@ -23,7 +22,7 @@ NS_IMPL_ISUPPORTS(nsIEHistoryEnumerator, nsISimpleEnumerator) nsIEHistoryEnumerator::nsIEHistoryEnumerator() { - ::CoInitialize(nullptr); + ::CoInitialize(nullptr); } nsIEHistoryEnumerator::~nsIEHistoryEnumerator() diff --git a/browser/components/nsBrowserGlue.js b/browser/components/nsBrowserGlue.js index d69a11f6b..f97c173a0 100644 --- a/browser/components/nsBrowserGlue.js +++ b/browser/components/nsBrowserGlue.js @@ -64,6 +64,7 @@ XPCOMUtils.defineLazyServiceGetter(this, "AlertsService", "@mozilla.org/alerts-s ["Task", "resource://gre/modules/Task.jsm"], ["UITour", "resource:///modules/UITour.jsm"], ["URLBarZoom", "resource:///modules/URLBarZoom.jsm"], + ["UserAgentOverrides", "resource://gre/modules/UserAgentOverrides.jsm"], ["WebChannel", "resource://gre/modules/WebChannel.jsm"], ["WindowsRegistry", "resource://gre/modules/WindowsRegistry.jsm"], ["webrtcUI", "resource:///modules/webrtcUI.jsm"], @@ -662,6 +663,8 @@ BrowserGlue.prototype = { } } catch (ex) { /* missing any of the prefs is not critical */ } + UserAgentOverrides.init(); + PageThumbs.init(); webrtcUI.init(); AboutHome.init(); @@ -1042,6 +1045,7 @@ BrowserGlue.prototype = { BrowserUsageTelemetry.uninit(); SelfSupportBackend.uninit(); + UserAgentOverrides.uninit(); PageThumbs.uninit(); NewTabMessages.uninit(); AboutNewTab.uninit(); diff --git a/browser/components/preferences/in-content/preferences.xul b/browser/components/preferences/in-content/preferences.xul index e9664eaf4..7ec7ef119 100644 --- a/browser/components/preferences/in-content/preferences.xul +++ b/browser/components/preferences/in-content/preferences.xul @@ -55,18 +55,10 @@ %advancedDTD; ]> -#ifdef XP_WIN -#define USE_WIN_TITLE_STYLE -#endif - <page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:html="http://www.w3.org/1999/xhtml" disablefastfind="true" -#ifdef USE_WIN_TITLE_STYLE - title="&prefWindow.titleWin;"> -#else title="&prefWindow.title;"> -#endif <html:link rel="shortcut icon" href="chrome://browser/skin/preferences/in-content/favicon.ico"/> diff --git a/browser/components/preferences/in-content/security.xul b/browser/components/preferences/in-content/security.xul index a10576c25..b7bdb9361 100644 --- a/browser/components/preferences/in-content/security.xul +++ b/browser/components/preferences/in-content/security.xul @@ -45,6 +45,7 @@ <!-- Passwords --> <preference id="signon.rememberSignons" name="signon.rememberSignons" type="bool"/> + <preference id="signon.autofillForms" name="signon.autofillForms" type="bool"/> </preferences> @@ -103,6 +104,9 @@ accesskey="&passwordExceptions.accesskey;" preference="pref.privacy.disable_button.view_passwords_exceptions"/> </hbox> + <checkbox id="autofillPasswords" flex="1" + label="&autofillPasswords.label;" accesskey="&autofillPasswords.accesskey;" + preference="signon.autofillForms"/> <grid id="passwordGrid"> <columns> <column flex="1"/> diff --git a/browser/components/shell/ShellService.jsm b/browser/components/shell/ShellService.jsm index 2a3400b60..cc225eae0 100644 --- a/browser/components/shell/ShellService.jsm +++ b/browser/components/shell/ShellService.jsm @@ -62,10 +62,10 @@ let ShellServiceInternal = { if (AppConstants.platform == "win") { let optOutValue = WindowsRegistry.readRegKey(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER, - "Software\\Mozilla\\Firefox", + "Software\\Mozilla\\Basilisk", "DefaultBrowserOptOut"); WindowsRegistry.removeRegKey(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER, - "Software\\Mozilla\\Firefox", + "Software\\Mozilla\\Basilisk", "DefaultBrowserOptOut"); if (optOutValue == "True") { Services.prefs.setBoolPref("browser.shell.checkDefaultBrowser", false); diff --git a/browser/components/shell/nsGNOMEShellService.cpp b/browser/components/shell/nsGNOMEShellService.cpp index f6c2613d4..613b5bffc 100644 --- a/browser/components/shell/nsGNOMEShellService.cpp +++ b/browser/components/shell/nsGNOMEShellService.cpp @@ -14,7 +14,7 @@ #include "nsDirectoryServiceDefs.h" #include "nsIPrefService.h" #include "prenv.h" -#include "nsString.h" +#include "nsStringAPI.h" #include "nsIGConfService.h" #include "nsIGIOService.h" #include "nsIGSettingsService.h" @@ -70,16 +70,16 @@ static const MimeTypeAssociation appTypes[] = { // GConf registry key constants #define DG_BACKGROUND "/desktop/gnome/background" -#define kDesktopImageKey DG_BACKGROUND "/picture_filename" -#define kDesktopOptionsKey DG_BACKGROUND "/picture_options" -#define kDesktopDrawBGKey DG_BACKGROUND "/draw_background" -#define kDesktopColorKey DG_BACKGROUND "/primary_color" +static const char kDesktopImageKey[] = DG_BACKGROUND "/picture_filename"; +static const char kDesktopOptionsKey[] = DG_BACKGROUND "/picture_options"; +static const char kDesktopDrawBGKey[] = DG_BACKGROUND "/draw_background"; +static const char kDesktopColorKey[] = DG_BACKGROUND "/primary_color"; -#define kDesktopBGSchema "org.gnome.desktop.background" -#define kDesktopImageGSKey "picture-uri" -#define kDesktopOptionGSKey "picture-options" -#define kDesktopDrawBGGSKey "draw-background" -#define kDesktopColorGSKey "primary-color" +static const char kDesktopBGSchema[] = "org.gnome.desktop.background"; +static const char kDesktopImageGSKey[] = "picture-uri"; +static const char kDesktopOptionGSKey[] = "picture-options"; +static const char kDesktopDrawBGGSKey[] = "draw-background"; +static const char kDesktopColorGSKey[] = "primary-color"; nsresult nsGNOMEShellService::Init() @@ -451,7 +451,7 @@ nsGNOMEShellService::SetDesktopBackground(nsIDOMElement* aElement, // Set the image to an empty string first to force a refresh // (since we could be writing a new image on top of an existing - // Firefox_wallpaper.png and nautilus doesn't monitor the file for changes) + // Basilisk_wallpaper.png and nautilus doesn't monitor the file for changes) gconf->SetString(NS_LITERAL_CSTRING(kDesktopImageKey), EmptyCString()); @@ -508,8 +508,7 @@ static void ColorToCString(uint32_t aColor, nsCString& aResult) { // The #rrrrggggbbbb format is used to match gdk_color_to_string() - aResult.SetLength(13); - char *buf = aResult.BeginWriting(); + char *buf = aResult.BeginWriting(13); if (!buf) return; diff --git a/browser/components/shell/nsGNOMEShellService.h b/browser/components/shell/nsGNOMEShellService.h index b3ef1a918..a7b003802 100644 --- a/browser/components/shell/nsGNOMEShellService.h +++ b/browser/components/shell/nsGNOMEShellService.h @@ -7,7 +7,7 @@ #define nsgnomeshellservice_h____ #include "nsIGNOMEShellService.h" -#include "nsString.h" +#include "nsStringAPI.h" #include "mozilla/Attributes.h" class nsGNOMEShellService final : public nsIGNOMEShellService diff --git a/browser/components/shell/nsMacShellService.cpp b/browser/components/shell/nsMacShellService.cpp index 48db4896b..d8d64039d 100644 --- a/browser/components/shell/nsMacShellService.cpp +++ b/browser/components/shell/nsMacShellService.cpp @@ -20,7 +20,7 @@ #include "nsIProperties.h" #include "nsServiceManagerUtils.h" #include "nsShellService.h" -#include "nsString.h" +#include "nsStringAPI.h" #include "nsIDocShell.h" #include "nsILoadContext.h" diff --git a/browser/components/shell/nsWindowsShellService.cpp b/browser/components/shell/nsWindowsShellService.cpp index 53d128cb9..879b0c7f0 100644 --- a/browser/components/shell/nsWindowsShellService.cpp +++ b/browser/components/shell/nsWindowsShellService.cpp @@ -12,7 +12,6 @@ #include "nsIDOMElement.h" #include "nsIDOMHTMLImageElement.h" #include "nsIImageLoadingContent.h" -#include "nsIOutputStream.h" #include "nsIPrefService.h" #include "nsIPrefLocalizedString.h" #include "nsIServiceManager.h" @@ -136,7 +135,7 @@ OpenKeyForReading(HKEY aKeyRoot, const nsAString& aKeyName, HKEY* aKey) // The following keys are set to make Basilisk appear in the Start Menu as the // browser: // -// HKCU\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\ +// HKCU\SOFTWARE\Clients\StartMenuInternet\BASILISK.EXE\ // (default) REG_SZ <appname> // DefaultIcon (default) REG_SZ <apppath>,0 // InstallInfo HideIconsCommand REG_SZ <uninstpath> /HideShortcuts @@ -466,7 +465,7 @@ nsWindowsShellService::IsDefaultBrowser(bool aStartupCheck, return NS_OK; } - res = ::RegOpenKeyExW(HKEY_CLASSES_ROOT, keyName.get(), + res = ::RegOpenKeyExW(HKEY_CLASSES_ROOT, PromiseFlatString(keyName).get(), 0, KEY_SET_VALUE, &theKey); if (REG_FAILED(res)) { // If updating the open command fails try to update it using the helper @@ -475,9 +474,10 @@ nsWindowsShellService::IsDefaultBrowser(bool aStartupCheck, return NS_OK; } + const nsString &flatValue = PromiseFlatString(valueData); res = ::RegSetValueExW(theKey, L"", 0, REG_SZ, - (const BYTE *) valueData.get(), - (valueData.Length() + 1) * sizeof(char16_t)); + (const BYTE *) flatValue.get(), + (flatValue.Length() + 1) * sizeof(char16_t)); // Close the key that was created. ::RegCloseKey(theKey); if (REG_FAILED(res)) { @@ -529,8 +529,9 @@ nsWindowsShellService::IsDefaultBrowser(bool aStartupCheck, if (REG_FAILED(res) || char16_t('\0') != *currValue) { // Key wasn't set or was set to something other than our registry entry. // Delete the key along with all of its childrean and then recreate it. - ::SHDeleteKeyW(HKEY_CURRENT_USER, keyName.get()); - res = ::RegCreateKeyExW(HKEY_CURRENT_USER, keyName.get(), 0, nullptr, + const nsString &flatName = PromiseFlatString(keyName); + ::SHDeleteKeyW(HKEY_CURRENT_USER, flatName.get()); + res = ::RegCreateKeyExW(HKEY_CURRENT_USER, flatName.get(), 0, nullptr, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, nullptr, &theKey, nullptr); if (REG_FAILED(res)) { @@ -582,9 +583,10 @@ nsWindowsShellService::IsDefaultBrowser(bool aStartupCheck, NS_ConvertUTF8toUTF16 valueData(VAL_OPEN); valueData.Replace(offset, 9, appLongPath); + const nsString &flatValue = PromiseFlatString(valueData); res = ::RegSetValueExW(theKey, L"", 0, REG_SZ, - (const BYTE *) valueData.get(), - (valueData.Length() + 1) * sizeof(char16_t)); + (const BYTE *) flatValue.get(), + (flatValue.Length() + 1) * sizeof(char16_t)); // Close the key that was created. ::RegCloseKey(theKey); // If updating the FTP protocol handlers shell open command fails try to @@ -646,11 +648,6 @@ nsWindowsShellService::LaunchControlPanelDefaultsSelectionUI() nsresult nsWindowsShellService::LaunchControlPanelDefaultPrograms() { - // This Default Programs feature is Win7+ only. - if (!IsWin7OrLater()) { - return NS_ERROR_FAILURE; - } - // Build the path control.exe path safely WCHAR controlEXEPath[MAX_PATH + 1] = { '\0' }; if (!GetSystemDirectoryW(controlEXEPath, MAX_PATH)) { diff --git a/browser/components/shell/nsWindowsShellService.h b/browser/components/shell/nsWindowsShellService.h index b9c473a15..06c6c3c9b 100644 --- a/browser/components/shell/nsWindowsShellService.h +++ b/browser/components/shell/nsWindowsShellService.h @@ -7,7 +7,7 @@ #define nswindowsshellservice_h____ #include "nscore.h" -#include "nsString.h" +#include "nsStringAPI.h" #include "nsIWindowsShellService.h" #include "nsITimer.h" diff --git a/browser/components/webextensions/extension-win-panel.css b/browser/components/webextensions/extension-win-panel.css index ddafe3ea5..9da6da14c 100644 --- a/browser/components/webextensions/extension-win-panel.css +++ b/browser/components/webextensions/extension-win-panel.css @@ -1,6 +1,4 @@ -@media (-moz-os-version: windows-xp), - (-moz-os-version: windows-vista), - (-moz-os-version: windows-win7) { +@media (-moz-os-version: windows-win7) { body { border-radius: 4px; } |