Skip to content

Commit

Permalink
Bug 1386600 - Change nsIStringBundle methods to return |AString| inst…
Browse files Browse the repository at this point in the history
…ead of |wstring|. r=emk,sr=dbaron.

This removes about 2/3 of the occurrences of nsXPIDLString in the tree. The
places where nsXPIDLStrings are null-checked are replaced with |rv| checks.

The patch also removes a couple of unused declarations from
nsIStringBundle.idl.

Note that nsStringBundle::GetStringFromNameHelper() was merged into
GetStringFromName(), because they both would have had the same signature.
  • Loading branch information
nnethercote committed Aug 4, 2017
1 parent b3c6e34 commit 6238ea5
Show file tree
Hide file tree
Showing 101 changed files with 462 additions and 564 deletions.
20 changes: 7 additions & 13 deletions accessible/generic/Accessible.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -317,10 +317,9 @@ Accessible::TranslateString(const nsString& aKey, nsAString& aStringOut)
if (!stringBundle)
return;

nsXPIDLString xsValue;
nsAutoString xsValue;
nsresult rv =
stringBundle->GetStringFromName(NS_ConvertUTF16toUTF8(aKey).get(),
getter_Copies(xsValue));
stringBundle->GetStringFromName(NS_ConvertUTF16toUTF8(aKey).get(), xsValue);
if (NS_SUCCEEDED(rv))
aStringOut.Assign(xsValue);
}
Expand Down Expand Up @@ -2835,37 +2834,32 @@ KeyBinding::ToPlatformFormat(nsAString& aValue) const
return;

nsAutoString separator;
keyStringBundle->GetStringFromName("MODIFIER_SEPARATOR",
getter_Copies(separator));
keyStringBundle->GetStringFromName("MODIFIER_SEPARATOR", separator);

nsAutoString modifierName;
if (mModifierMask & kControl) {
keyStringBundle->GetStringFromName("VK_CONTROL",
getter_Copies(modifierName));
keyStringBundle->GetStringFromName("VK_CONTROL", modifierName);

aValue.Append(modifierName);
aValue.Append(separator);
}

if (mModifierMask & kAlt) {
keyStringBundle->GetStringFromName("VK_ALT",
getter_Copies(modifierName));
keyStringBundle->GetStringFromName("VK_ALT", modifierName);

aValue.Append(modifierName);
aValue.Append(separator);
}

if (mModifierMask & kShift) {
keyStringBundle->GetStringFromName("VK_SHIFT",
getter_Copies(modifierName));
keyStringBundle->GetStringFromName("VK_SHIFT", modifierName);

aValue.Append(modifierName);
aValue.Append(separator);
}

if (mModifierMask & kMeta) {
keyStringBundle->GetStringFromName("VK_META",
getter_Copies(modifierName));
keyStringBundle->GetStringFromName("VK_META", modifierName);

aValue.Append(modifierName);
aValue.Append(separator);
Expand Down
4 changes: 2 additions & 2 deletions accessible/generic/ApplicationAccessible.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ ApplicationAccessible::Name(nsString& aName)
if (NS_FAILED(rv))
return eNameOK;

nsXPIDLString appName;
rv = bundle->GetStringFromName("brandShortName", getter_Copies(appName));
nsAutoString appName;
rv = bundle->GetStringFromName("brandShortName", appName);
if (NS_FAILED(rv) || appName.IsEmpty()) {
NS_WARNING("brandShortName not found, using default app name");
appName.AssignLiteral("Gecko based application");
Expand Down
10 changes: 4 additions & 6 deletions browser/components/shell/nsGNOMEShellService.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -288,9 +288,8 @@ nsGNOMEShellService::SetDefaultBrowser(bool aClaimAllTypes,
rv = bundleService->CreateBundle(BRAND_PROPERTIES, getter_AddRefs(brandBundle));
NS_ENSURE_SUCCESS(rv, rv);

nsString brandShortName;
brandBundle->GetStringFromName("brandShortName",
getter_Copies(brandShortName));
nsAutoString brandShortName;
brandBundle->GetStringFromName("brandShortName", brandShortName);

// use brandShortName as the application id.
NS_ConvertUTF16toUTF8 id(brandShortName);
Expand Down Expand Up @@ -399,16 +398,15 @@ nsGNOMEShellService::SetDesktopBackground(nsIDOMElement* aElement,
nsAutoCString filePath(PR_GetEnv("HOME"));

// get the product brand name from localized strings
nsString brandName;
nsAutoString brandName;
nsCID bundleCID = NS_STRINGBUNDLESERVICE_CID;
nsCOMPtr<nsIStringBundleService> bundleService(do_GetService(bundleCID));
if (bundleService) {
nsCOMPtr<nsIStringBundle> brandBundle;
rv = bundleService->CreateBundle(BRAND_PROPERTIES,
getter_AddRefs(brandBundle));
if (NS_SUCCEEDED(rv) && brandBundle) {
rv = brandBundle->GetStringFromName("brandShortName",
getter_Copies(brandName));
rv = brandBundle->GetStringFromName("brandShortName", brandName);
NS_ENSURE_SUCCESS(rv, rv);
}
}
Expand Down
7 changes: 3 additions & 4 deletions browser/components/shell/nsWindowsShellService.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -614,10 +614,9 @@ nsWindowsShellService::SetDesktopBackground(nsIDOMElement* aElement,
NS_ENSURE_SUCCESS(rv, rv);

// e.g. "Desktop Background.bmp"
nsString fileLeafName;
rv = shellBundle->GetStringFromName
("desktopBackgroundLeafNameWin",
getter_Copies(fileLeafName));
nsAutoString fileLeafName;
rv = shellBundle->GetStringFromName("desktopBackgroundLeafNameWin",
fileLeafName);
NS_ENSURE_SUCCESS(rv, rv);

// get the profile root directory
Expand Down
14 changes: 7 additions & 7 deletions caps/nsScriptSecurityManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1003,14 +1003,14 @@ nsScriptSecurityManager::CheckLoadURIFlags(nsIURI *aSourceURI,
&hasSubsumersFlag);
NS_ENSURE_SUCCESS(rv, rv);
if (!hasFlags && !hasSubsumersFlag) {
nsXPIDLString message;
nsAutoString message;
NS_ConvertASCIItoUTF16 ucsTargetScheme(targetScheme);
const char16_t* formatStrings[] = { ucsTargetScheme.get() };
rv = sStrBundle->
FormatStringFromName("ProtocolFlagError",
formatStrings,
ArrayLength(formatStrings),
getter_Copies(message));
message);
if (NS_SUCCEEDED(rv)) {
nsCOMPtr<nsIConsoleService> console(
do_GetService("@mozilla.org/consoleservice;1"));
Expand Down Expand Up @@ -1041,14 +1041,14 @@ nsScriptSecurityManager::ReportError(JSContext* cx, const char* aMessageTag,
NS_ENSURE_SUCCESS(rv, rv);

// Localize the error message
nsXPIDLString message;
nsAutoString message;
NS_ConvertASCIItoUTF16 ucsSourceSpec(sourceSpec);
NS_ConvertASCIItoUTF16 ucsTargetSpec(targetSpec);
const char16_t *formatStrings[] = { ucsSourceSpec.get(), ucsTargetSpec.get() };
rv = sStrBundle->FormatStringFromName(aMessageTag,
formatStrings,
ArrayLength(formatStrings),
getter_Copies(message));
message);
NS_ENSURE_SUCCESS(rv, rv);

// If a JS context was passed in, set a JS exception.
Expand Down Expand Up @@ -1285,20 +1285,20 @@ nsScriptSecurityManager::CanCreateWrapper(JSContext *cx,
NS_ConvertUTF8toUTF16 originUnicode(origin);
NS_ConvertUTF8toUTF16 classInfoName(objClassInfo.GetName());
nsresult rv;
nsXPIDLString errorMsg;
nsAutoString errorMsg;
if (originUnicode.IsEmpty()) {
const char16_t* formatStrings[] = { classInfoName.get() };
rv = sStrBundle->FormatStringFromName("CreateWrapperDenied",
formatStrings,
1,
getter_Copies(errorMsg));
errorMsg);
} else {
const char16_t* formatStrings[] = { classInfoName.get(),
originUnicode.get() };
rv = sStrBundle->FormatStringFromName("CreateWrapperDeniedForOrigin",
formatStrings,
2,
getter_Copies(errorMsg));
errorMsg);
}
NS_ENSURE_SUCCESS(rv, rv);

Expand Down
20 changes: 8 additions & 12 deletions docshell/base/nsDocShell.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5305,9 +5305,8 @@ nsDocShell::DisplayLoadError(nsresult aError, nsIURI* aURI,
for (uint32_t i = 0; i < formatStrCount; i++) {
strs[i] = formatStrs[i].get();
}
nsXPIDLString str;
rv = stringBundle->FormatStringFromName(error, strs, formatStrCount,
getter_Copies(str));
nsAutoString str;
rv = stringBundle->FormatStringFromName(error, strs, formatStrCount, str);
NS_ENSURE_SUCCESS(rv, rv);
messageStr.Assign(str.get());
}
Expand Down Expand Up @@ -13372,14 +13371,12 @@ nsDocShell::ConfirmRepost(bool* aRepost)
NS_ASSERTION(prompter && brandBundle && appBundle,
"Unable to set up repost prompter.");

nsXPIDLString brandName;
rv = brandBundle->GetStringFromName("brandShortName",
getter_Copies(brandName));
nsAutoString brandName;
rv = brandBundle->GetStringFromName("brandShortName", brandName);

nsXPIDLString msgString, button0Title;
nsAutoString msgString, button0Title;
if (NS_FAILED(rv)) { // No brand, use the generic version.
rv = appBundle->GetStringFromName("confirmRepostPrompt",
getter_Copies(msgString));
rv = appBundle->GetStringFromName("confirmRepostPrompt", msgString);
} else {
// Brand available - if the app has an override file with formatting, the
// app name will be included. Without an override, the prompt will look
Expand All @@ -13388,14 +13385,13 @@ nsDocShell::ConfirmRepost(bool* aRepost)
rv = appBundle->FormatStringFromName("confirmRepostPrompt",
formatStrings,
ArrayLength(formatStrings),
getter_Copies(msgString));
msgString);
}
if (NS_FAILED(rv)) {
return rv;
}

rv = appBundle->GetStringFromName("resendButton.label",
getter_Copies(button0Title));
rv = appBundle->GetStringFromName("resendButton.label", button0Title);
if (NS_FAILED(rv)) {
return rv;
}
Expand Down
4 changes: 2 additions & 2 deletions dom/animation/AnimationPerformanceWarning.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace mozilla {

template<uint32_t N> nsresult
AnimationPerformanceWarning::ToLocalizedStringWithIntParams(
const char* aKey, nsXPIDLString& aLocalizedString) const
const char* aKey, nsAString& aLocalizedString) const
{
nsAutoString strings[N];
const char16_t* charParams[N];
Expand All @@ -28,7 +28,7 @@ AnimationPerformanceWarning::ToLocalizedStringWithIntParams(

bool
AnimationPerformanceWarning::ToLocalizedString(
nsXPIDLString& aLocalizedString) const
nsAString& aLocalizedString) const
{
const char* key = nullptr;

Expand Down
6 changes: 3 additions & 3 deletions dom/animation/AnimationPerformanceWarning.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#include "mozilla/Maybe.h"
#include "nsTArray.h"

class nsXPIDLString;
class nsAString;

namespace mozilla {

Expand Down Expand Up @@ -62,10 +62,10 @@ struct AnimationPerformanceWarning
// Optional parameters that may be used for localization.
Maybe<nsTArray<int32_t>> mParams;

bool ToLocalizedString(nsXPIDLString& aLocalizedString) const;
bool ToLocalizedString(nsAString& aLocalizedString) const;
template<uint32_t N>
nsresult ToLocalizedStringWithIntParams(
const char* aKey, nsXPIDLString& aLocalizedString) const;
const char* aKey, nsAString& aLocalizedString) const;

bool operator==(const AnimationPerformanceWarning& aOther) const
{
Expand Down
4 changes: 2 additions & 2 deletions dom/animation/KeyframeEffectReadOnly.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1139,7 +1139,7 @@ KeyframeEffectReadOnly::GetProperties(
NS_ConvertASCIItoUTF16(nsCSSProps::GetStringValue(property.mProperty));
propertyDetails.mRunningOnCompositor = property.mIsRunningOnCompositor;

nsXPIDLString localizedString;
nsAutoString localizedString;
if (property.mPerformanceWarning &&
property.mPerformanceWarning->ToLocalizedString(localizedString)) {
propertyDetails.mWarning.Construct(localizedString);
Expand Down Expand Up @@ -1621,7 +1621,7 @@ KeyframeEffectReadOnly::SetPerformanceWarning(
*property.mPerformanceWarning != aWarning)) {
property.mPerformanceWarning = Some(aWarning);

nsXPIDLString localizedString;
nsAutoString localizedString;
if (nsLayoutUtils::IsAnimationLoggingEnabled() &&
property.mPerformanceWarning->ToLocalizedString(localizedString)) {
nsAutoCString logMessage = NS_ConvertUTF16toUTF8(localizedString);
Expand Down
7 changes: 3 additions & 4 deletions dom/base/EventSource.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1243,13 +1243,12 @@ EventSourceImpl::PrintErrorOnConsole(const char* aBundleURI,
NS_ENSURE_SUCCESS(rv, rv);

// Localize the error message
nsXPIDLString message;
nsAutoString message;
if (aFormatStrings) {
rv = strBundle->FormatStringFromName(aError, aFormatStrings,
aFormatStringsLen,
getter_Copies(message));
aFormatStringsLen, message);
} else {
rv = strBundle->GetStringFromName(aError, getter_Copies(message));
rv = strBundle->GetStringFromName(aError, message);
}
NS_ENSURE_SUCCESS(rv, rv);

Expand Down
7 changes: 3 additions & 4 deletions dom/base/WebSocket.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -371,13 +371,12 @@ WebSocketImpl::PrintErrorOnConsole(const char *aBundleURI,
NS_ENSURE_SUCCESS_VOID(rv);

// Localize the error message
nsXPIDLString message;
nsAutoString message;
if (aFormatStrings) {
rv = strBundle->FormatStringFromName(aError, aFormatStrings,
aFormatStringsLen,
getter_Copies(message));
aFormatStringsLen, message);
} else {
rv = strBundle->GetStringFromName(aError, getter_Copies(message));
rv = strBundle->GetStringFromName(aError, message);
}
NS_ENSURE_SUCCESS_VOID(rv);

Expand Down
41 changes: 19 additions & 22 deletions dom/base/nsContentUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -864,20 +864,20 @@ nsContentUtils::InitializeModifierStrings()
}

NS_ASSERTION(NS_SUCCEEDED(rv) && bundle, "chrome://global/locale/platformKeys.properties could not be loaded");
nsXPIDLString shiftModifier;
nsXPIDLString metaModifier;
nsXPIDLString osModifier;
nsXPIDLString altModifier;
nsXPIDLString controlModifier;
nsXPIDLString modifierSeparator;
nsAutoString shiftModifier;
nsAutoString metaModifier;
nsAutoString osModifier;
nsAutoString altModifier;
nsAutoString controlModifier;
nsAutoString modifierSeparator;
if (bundle) {
//macs use symbols for each modifier key, so fetch each from the bundle, which also covers i18n
bundle->GetStringFromName("VK_SHIFT", getter_Copies(shiftModifier));
bundle->GetStringFromName("VK_META", getter_Copies(metaModifier));
bundle->GetStringFromName("VK_WIN", getter_Copies(osModifier));
bundle->GetStringFromName("VK_ALT", getter_Copies(altModifier));
bundle->GetStringFromName("VK_CONTROL", getter_Copies(controlModifier));
bundle->GetStringFromName("MODIFIER_SEPARATOR", getter_Copies(modifierSeparator));
bundle->GetStringFromName("VK_SHIFT", shiftModifier);
bundle->GetStringFromName("VK_META", metaModifier);
bundle->GetStringFromName("VK_WIN", osModifier);
bundle->GetStringFromName("VK_ALT", altModifier);
bundle->GetStringFromName("VK_CONTROL", controlModifier);
bundle->GetStringFromName("MODIFIER_SEPARATOR", modifierSeparator);
}
//if any of these don't exist, we get an empty string
sShiftText = new nsString(shiftModifier);
Expand Down Expand Up @@ -3957,41 +3957,38 @@ nsContentUtils::EnsureStringBundle(PropertiesFile aFile)
/* static */
nsresult nsContentUtils::GetLocalizedString(PropertiesFile aFile,
const char* aKey,
nsXPIDLString& aResult)
nsAString& aResult)
{
nsresult rv = EnsureStringBundle(aFile);
NS_ENSURE_SUCCESS(rv, rv);
nsIStringBundle *bundle = sStringBundles[aFile];

return bundle->GetStringFromName(aKey, getter_Copies(aResult));
return bundle->GetStringFromName(aKey, aResult);
}

/* static */
nsresult nsContentUtils::FormatLocalizedString(PropertiesFile aFile,
const char* aKey,
const char16_t **aParams,
uint32_t aParamsLength,
nsXPIDLString& aResult)
nsAString& aResult)
{
nsresult rv = EnsureStringBundle(aFile);
NS_ENSURE_SUCCESS(rv, rv);
nsIStringBundle *bundle = sStringBundles[aFile];

if (!aParams || !aParamsLength) {
return bundle->GetStringFromName(aKey, getter_Copies(aResult));
return bundle->GetStringFromName(aKey, aResult);
}

return bundle->FormatStringFromName(aKey,
aParams, aParamsLength,
getter_Copies(aResult));
return bundle->FormatStringFromName(aKey, aParams, aParamsLength, aResult);
}

/* static */
nsresult nsContentUtils::FormatLocalizedString(
PropertiesFile aFile,
const char* aKey,
const nsTArray<nsString>& aParamArray,
nsXPIDLString& aResult)
nsAString& aResult)
{
MOZ_ASSERT(NS_IsMainThread());

Expand Down Expand Up @@ -4044,7 +4041,7 @@ nsContentUtils::ReportToConsole(uint32_t aErrorFlags,
"parameters and 0.");

nsresult rv;
nsXPIDLString errorText;
nsAutoString errorText;
if (aParams) {
rv = FormatLocalizedString(aFile, aMessageName, aParams, aParamsLength,
errorText);
Expand Down
Loading

0 comments on commit 6238ea5

Please sign in to comment.