Bug 1344615: Remove nsXPCOMStrings.{h,cpp} r=bsmedberg
authorDavid Major <dmajor@mozilla.com>
Mon, 06 Mar 2017 17:52:54 +1300
changeset 396587 3733b20177e3c0b0dea98b8b9093e62e0ecbcbbf
parent 396586 d5973f50d8664b9599919d13075a7a7c1e50da0d
child 396588 82ec83d69890ab2ebc764f21e5819b87fc4e727b
push id1490
push usermtabara@mozilla.com
push dateMon, 31 Jul 2017 14:08:16 +0000
treeherdermozilla-release@70e32e6bf15e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbsmedberg
bugs1344615
milestone54.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1344615: Remove nsXPCOMStrings.{h,cpp} r=bsmedberg These are now dead code. MozReview-Commit-ID: AClU0Qx3kmN
accessible/atk/AccessibleWrap.cpp
caps/nsScriptSecurityManager.cpp
dom/html/HTMLMediaElement.cpp
dom/html/HTMLVideoElement.cpp
dom/json/nsJSON.cpp
dom/media/android/AndroidMediaPluginHost.cpp
dom/media/webspeech/recognition/SpeechGrammarList.cpp
intl/locale/windows/nsWin32Locale.cpp
intl/unicharutil/util/nsUnicharUtils.cpp
parser/html/nsHtml5TreeOperation.h
security/manager/ssl/ContentSignatureVerifier.cpp
startupcache/StartupCache.cpp
toolkit/components/downloads/ApplicationReputation.cpp
toolkit/components/url-classifier/nsUrlClassifierDBService.cpp
widget/android/AndroidBridge.cpp
widget/windows/nsDataObj.cpp
xpcom/build/moz.build
xpcom/build/nsXPCOMStrings.cpp
xpcom/string/moz.build
xpcom/string/nsSubstring.cpp
xpcom/string/nsXPCOMStrings.h
--- a/accessible/atk/AccessibleWrap.cpp
+++ b/accessible/atk/AccessibleWrap.cpp
@@ -24,17 +24,16 @@
 #include "mozilla/a11y/Platform.h"
 #include "Relation.h"
 #include "RootAccessible.h"
 #include "States.h"
 #include "nsISimpleEnumerator.h"
 
 #include "mozilla/ArrayUtils.h"
 #include "mozilla/Sprintf.h"
-#include "nsXPCOMStrings.h"
 #include "nsComponentManagerUtils.h"
 #include "nsIPersistentProperties2.h"
 
 using namespace mozilla;
 using namespace mozilla::a11y;
 
 MaiAtkObject::EAvailableAtkSignals MaiAtkObject::gAvailableAtkSignals =
   eUnknown;
--- a/caps/nsScriptSecurityManager.cpp
+++ b/caps/nsScriptSecurityManager.cpp
@@ -59,17 +59,16 @@
 #include "mozilla/dom/BindingUtils.h"
 #include <stdint.h>
 #include "mozilla/dom/ScriptSettings.h"
 #include "mozilla/ClearOnShutdown.h"
 #include "mozilla/StaticPtr.h"
 #include "nsContentUtils.h"
 #include "nsJSUtils.h"
 #include "nsILoadInfo.h"
-#include "nsXPCOMStrings.h"
 
 // This should be probably defined on some other place... but I couldn't find it
 #define WEBAPPS_PERM_NAME "webapps-manage"
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 nsIIOService    *nsScriptSecurityManager::sIOService = nullptr;
--- a/dom/html/HTMLMediaElement.cpp
+++ b/dom/html/HTMLMediaElement.cpp
@@ -27,17 +27,16 @@
 #include "nsSize.h"
 #include "nsIFrame.h"
 #include "nsIDocument.h"
 #include "nsIDOMDocument.h"
 #include "nsIDocShell.h"
 #include "nsError.h"
 #include "nsNodeInfoManager.h"
 #include "nsNetUtil.h"
-#include "nsXPCOMStrings.h"
 #include "xpcpublic.h"
 #include "nsThreadUtils.h"
 #include "nsIThreadInternal.h"
 #include "nsContentUtils.h"
 #include "nsIRequest.h"
 #include "nsQueryObject.h"
 #include "nsIObserverService.h"
 #include "nsISupportsPrimitives.h"
--- a/dom/html/HTMLVideoElement.cpp
+++ b/dom/html/HTMLVideoElement.cpp
@@ -8,17 +8,16 @@
 #include "mozilla/dom/HTMLVideoElement.h"
 #include "mozilla/dom/HTMLVideoElementBinding.h"
 #include "nsGenericHTMLElement.h"
 #include "nsGkAtoms.h"
 #include "nsSize.h"
 #include "nsError.h"
 #include "nsNodeInfoManager.h"
 #include "plbase64.h"
-#include "nsXPCOMStrings.h"
 #include "prlock.h"
 #include "nsThreadUtils.h"
 #include "ImageContainer.h"
 #include "VideoFrameContainer.h"
 
 #include "nsIScriptSecurityManager.h"
 #include "nsIXPConnect.h"
 
--- a/dom/json/nsJSON.cpp
+++ b/dom/json/nsJSON.cpp
@@ -10,17 +10,16 @@
 #include "nsIXPConnect.h"
 #include "nsIXPCScriptable.h"
 #include "nsStreamUtils.h"
 #include "nsIInputStream.h"
 #include "nsStringStream.h"
 #include "mozilla/dom/EncodingUtils.h"
 #include "nsIUnicodeEncoder.h"
 #include "nsIUnicodeDecoder.h"
-#include "nsXPCOMStrings.h"
 #include "nsNetUtil.h"
 #include "nsIURI.h"
 #include "nsComponentManagerUtils.h"
 #include "nsContentUtils.h"
 #include "nsIScriptError.h"
 #include "nsCRTGlue.h"
 #include "nsIScriptSecurityManager.h"
 #include "nsNullPrincipal.h"
--- a/dom/media/android/AndroidMediaPluginHost.cpp
+++ b/dom/media/android/AndroidMediaPluginHost.cpp
@@ -5,17 +5,16 @@
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 #include "mozilla/Preferences.h"
 #include "MediaContainerType.h"
 #include "MediaResource.h"
 #include "mozilla/dom/HTMLMediaElement.h"
 #include "mozilla/Services.h"
 #include "AndroidMediaPluginHost.h"
 #include "nsAutoPtr.h"
-#include "nsXPCOMStrings.h"
 #include "nsISeekableStream.h"
 #include "nsIGfxInfo.h"
 #include "gfxCrashReporterUtils.h"
 #include "prmem.h"
 #include "prlink.h"
 #include "AndroidMediaResourceServer.h"
 #include "nsServiceManagerUtils.h"
 
--- a/dom/media/webspeech/recognition/SpeechGrammarList.cpp
+++ b/dom/media/webspeech/recognition/SpeechGrammarList.cpp
@@ -4,17 +4,16 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "SpeechGrammarList.h"
 
 #include "mozilla/dom/SpeechGrammarListBinding.h"
 #include "mozilla/ErrorResult.h"
 #include "nsCOMPtr.h"
-#include "nsXPCOMStrings.h"
 #include "SpeechRecognition.h"
 
 namespace mozilla {
 namespace dom {
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(SpeechGrammarList, mParent, mItems)
 NS_IMPL_CYCLE_COLLECTING_ADDREF(SpeechGrammarList)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(SpeechGrammarList)
--- a/intl/locale/windows/nsWin32Locale.cpp
+++ b/intl/locale/windows/nsWin32Locale.cpp
@@ -2,17 +2,16 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "mozilla/ArrayUtils.h"
 
 #include "nscore.h"
 #include "nsString.h"
-#include "nsXPCOMStrings.h"
 #include "nsReadableUtils.h"
 #include "nsWin32Locale.h"
 #include <windows.h>
 
 using namespace mozilla;
 
 struct iso_pair 
 {
--- a/intl/unicharutil/util/nsUnicharUtils.cpp
+++ b/intl/unicharutil/util/nsUnicharUtils.cpp
@@ -1,15 +1,14 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsUnicharUtils.h"
-#include "nsXPCOMStrings.h"
 #include "nsUTF8Utils.h"
 #include "nsUnicodeProperties.h"
 #include "mozilla/Likely.h"
 #include "mozilla/HashFunctions.h"
 
 // We map x -> x, except for upper-case letters,
 // which we map to their lower-case equivalents.
 static const uint8_t gASCIIToLower [128] = {
--- a/parser/html/nsHtml5TreeOperation.h
+++ b/parser/html/nsHtml5TreeOperation.h
@@ -2,17 +2,16 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  
 #ifndef nsHtml5TreeOperation_h
 #define nsHtml5TreeOperation_h
 
 #include "nsHtml5DocumentMode.h"
 #include "nsHtml5HtmlAttributes.h"
-#include "nsXPCOMStrings.h"
 #include "mozilla/dom/FromParser.h"
 
 class nsIContent;
 class nsHtml5TreeOpExecutor;
 class nsHtml5DocumentBuilder;
 
 enum eHtml5TreeOperation {
   eTreeOpUninitialized,
--- a/security/manager/ssl/ContentSignatureVerifier.cpp
+++ b/security/manager/ssl/ContentSignatureVerifier.cpp
@@ -17,17 +17,16 @@
 #include "nsContentUtils.h"
 #include "nsISupportsPriority.h"
 #include "nsIURI.h"
 #include "nsNSSComponent.h"
 #include "nsPromiseFlatString.h"
 #include "nsSecurityHeaderParser.h"
 #include "nsStreamUtils.h"
 #include "nsWhitespaceTokenizer.h"
-#include "nsXPCOMStrings.h"
 #include "nssb64.h"
 #include "pkix/pkix.h"
 #include "pkix/pkixtypes.h"
 #include "secerr.h"
 
 NS_IMPL_ISUPPORTS(ContentSignatureVerifier,
                   nsIContentSignatureVerifier,
                   nsIInterfaceRequestor,
--- a/startupcache/StartupCache.cpp
+++ b/startupcache/StartupCache.cpp
@@ -1,17 +1,16 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "prio.h"
 #include "PLDHashTable.h"
-#include "nsXPCOMStrings.h"
 #include "mozilla/IOInterposer.h"
 #include "mozilla/MemoryReporting.h"
 #include "mozilla/scache/StartupCache.h"
 
 #include "nsAutoPtr.h"
 #include "nsClassHashtable.h"
 #include "nsComponentManagerUtils.h"
 #include "nsDirectoryServiceUtils.h"
--- a/toolkit/components/downloads/ApplicationReputation.cpp
+++ b/toolkit/components/downloads/ApplicationReputation.cpp
@@ -43,17 +43,16 @@
 #include "nsDependentSubstring.h"
 #include "nsError.h"
 #include "nsNetCID.h"
 #include "nsReadableUtils.h"
 #include "nsServiceManagerUtils.h"
 #include "nsString.h"
 #include "nsTArray.h"
 #include "nsThreadUtils.h"
-#include "nsXPCOMStrings.h"
 
 #include "nsIContentPolicy.h"
 #include "nsILoadInfo.h"
 #include "nsContentUtils.h"
 #include "nsWeakReference.h"
 #include "nsCharSeparatedTokenizer.h"
 
 using namespace mozilla::downloads;
--- a/toolkit/components/url-classifier/nsUrlClassifierDBService.cpp
+++ b/toolkit/components/url-classifier/nsUrlClassifierDBService.cpp
@@ -23,17 +23,16 @@
 #include "nsUrlClassifierUtils.h"
 #include "nsUrlClassifierProxies.h"
 #include "nsURILoader.h"
 #include "nsString.h"
 #include "nsReadableUtils.h"
 #include "nsTArray.h"
 #include "nsNetCID.h"
 #include "nsThreadUtils.h"
-#include "nsXPCOMStrings.h"
 #include "nsProxyRelease.h"
 #include "nsString.h"
 #include "mozilla/Atomics.h"
 #include "mozilla/DebugOnly.h"
 #include "mozilla/ErrorNames.h"
 #include "mozilla/Mutex.h"
 #include "mozilla/Preferences.h"
 #include "mozilla/SizePrintfMacros.h"
--- a/widget/android/AndroidBridge.cpp
+++ b/widget/android/AndroidBridge.cpp
@@ -9,17 +9,16 @@
 #include <GLES2/gl2.h>
 
 #include "mozilla/layers/CompositorBridgeChild.h"
 #include "mozilla/layers/CompositorBridgeParent.h"
 
 #include "mozilla/Hal.h"
 #include "nsXULAppAPI.h"
 #include <prthread.h>
-#include "nsXPCOMStrings.h"
 #include "AndroidBridge.h"
 #include "AndroidJNIWrapper.h"
 #include "AndroidBridgeUtilities.h"
 #include "nsAlertsUtils.h"
 #include "nsAppShell.h"
 #include "nsOSHelperAppService.h"
 #include "nsWindow.h"
 #include "mozilla/Preferences.h"
--- a/widget/windows/nsDataObj.cpp
+++ b/widget/windows/nsDataObj.cpp
@@ -21,17 +21,16 @@
 #include "nsCRT.h"
 #include "nsPrintfCString.h"
 #include "nsIStringBundle.h"
 #include "nsEscape.h"
 #include "nsIURL.h"
 #include "nsNetUtil.h"
 #include "mozilla/Services.h"
 #include "nsIOutputStream.h"
-#include "nsXPCOMStrings.h"
 #include "nscore.h"
 #include "nsDirectoryServiceDefs.h"
 #include "nsITimer.h"
 #include "nsThreadUtils.h"
 #include "mozilla/Preferences.h"
 #include "nsIContentPolicy.h"
 #include "nsContentUtils.h"
 #include "nsIPrincipal.h"
--- a/xpcom/build/moz.build
+++ b/xpcom/build/moz.build
@@ -48,17 +48,16 @@ include('../glue/objs.mozbuild')
 
 UNIFIED_SOURCES += xpcom_gluens_src_cppsrcs
 UNIFIED_SOURCES += xpcom_glue_src_cppsrcs
 
 UNIFIED_SOURCES += [
     'IOInterposer.cpp',
     'LateWriteChecks.cpp',
     'MainThreadIOLogger.cpp',
-    'nsXPCOMStrings.cpp',
     'Services.cpp',
     'XPCOMInit.cpp',
 ]
 
 if CONFIG['OS_ARCH'] != 'WINNT':
     SOURCES += [
         'NSPRInterposer.cpp',
     ]
deleted file mode 100644
--- a/xpcom/build/nsXPCOMStrings.cpp
+++ /dev/null
@@ -1,366 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=8 sts=2 et sw=2 tw=80: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "nsString.h"
-#include "nsCharTraits.h"
-
-#include "nsXPCOMStrings.h"
-#include "nsNativeCharsetUtils.h"
-
-/* ------------------------------------------------------------------------- */
-
-XPCOM_API(nsresult)
-NS_StringContainerInit(nsStringContainer& aContainer)
-{
-  NS_ASSERTION(sizeof(nsStringContainer_base) >= sizeof(nsString),
-               "nsStringContainer is not large enough");
-
-  // use placement new to avoid heap allocating nsString object
-  new (&aContainer) nsString();
-
-  return NS_OK;
-}
-
-XPCOM_API(nsresult)
-NS_StringContainerInit2(nsStringContainer& aContainer,
-                        const char16_t* aData,
-                        uint32_t aDataLength,
-                        uint32_t aFlags)
-{
-  NS_ASSERTION(sizeof(nsStringContainer_base) >= sizeof(nsString),
-               "nsStringContainer is not large enough");
-
-  if (!aData) {
-    new (&aContainer) nsString();
-  } else {
-    if (aDataLength == UINT32_MAX) {
-      if (NS_WARN_IF(aFlags & NS_STRING_CONTAINER_INIT_SUBSTRING)) {
-        return NS_ERROR_INVALID_ARG;
-      }
-      aDataLength = nsCharTraits<char16_t>::length(aData);
-    }
-
-    if (aFlags & (NS_STRING_CONTAINER_INIT_DEPEND |
-                  NS_STRING_CONTAINER_INIT_ADOPT)) {
-      uint32_t flags;
-      if (aFlags & NS_STRING_CONTAINER_INIT_SUBSTRING) {
-        flags = nsSubstring::F_NONE;
-      } else {
-        flags = nsSubstring::F_TERMINATED;
-      }
-
-      if (aFlags & NS_STRING_CONTAINER_INIT_ADOPT) {
-        flags |= nsSubstring::F_OWNED;
-      }
-
-      new (&aContainer) nsSubstring(const_cast<char16_t*>(aData),
-                                    aDataLength, flags);
-    } else {
-      new (&aContainer) nsString(aData, aDataLength);
-    }
-  }
-
-  return NS_OK;
-}
-
-XPCOM_API(void)
-NS_StringContainerFinish(nsStringContainer& aContainer)
-{
-  // call the nsString dtor
-  reinterpret_cast<nsString*>(&aContainer)->~nsString();
-}
-
-/* ------------------------------------------------------------------------- */
-
-XPCOM_API(uint32_t)
-NS_StringGetData(const nsAString& aStr, const char16_t** aData,
-                 bool* aTerminated)
-{
-  if (aTerminated) {
-    *aTerminated = aStr.IsTerminated();
-  }
-
-  *aData = aStr.BeginReading();
-  return aStr.Length();
-}
-
-XPCOM_API(uint32_t)
-NS_StringGetMutableData(nsAString& aStr, uint32_t aDataLength,
-                        char16_t** aData)
-{
-  if (aDataLength != UINT32_MAX) {
-    aStr.SetLength(aDataLength);
-    if (aStr.Length() != aDataLength) {
-      *aData = nullptr;
-      return 0;
-    }
-  }
-
-  *aData = aStr.BeginWriting();
-  return aStr.Length();
-}
-
-XPCOM_API(char16_t*)
-NS_StringCloneData(const nsAString& aStr)
-{
-  return ToNewUnicode(aStr);
-}
-
-XPCOM_API(nsresult)
-NS_StringSetData(nsAString& aStr, const char16_t* aData, uint32_t aDataLength)
-{
-  aStr.Assign(aData, aDataLength);
-  return NS_OK; // XXX report errors
-}
-
-XPCOM_API(nsresult)
-NS_StringSetDataRange(nsAString& aStr,
-                      uint32_t aCutOffset, uint32_t aCutLength,
-                      const char16_t* aData, uint32_t aDataLength)
-{
-  if (aCutOffset == UINT32_MAX) {
-    // append case
-    if (aData) {
-      aStr.Append(aData, aDataLength);
-    }
-    return NS_OK; // XXX report errors
-  }
-
-  if (aCutLength == UINT32_MAX) {
-    aCutLength = aStr.Length() - aCutOffset;
-  }
-
-  if (aData) {
-    if (aDataLength == UINT32_MAX) {
-      aStr.Replace(aCutOffset, aCutLength, nsDependentString(aData));
-    } else {
-      aStr.Replace(aCutOffset, aCutLength, Substring(aData, aDataLength));
-    }
-  } else {
-    aStr.Cut(aCutOffset, aCutLength);
-  }
-
-  return NS_OK; // XXX report errors
-}
-
-XPCOM_API(nsresult)
-NS_StringCopy(nsAString& aDest, const nsAString& aSrc)
-{
-  aDest.Assign(aSrc);
-  return NS_OK; // XXX report errors
-}
-
-XPCOM_API(void)
-NS_StringSetIsVoid(nsAString& aStr, const bool aIsVoid)
-{
-  aStr.SetIsVoid(aIsVoid);
-}
-
-XPCOM_API(bool)
-NS_StringGetIsVoid(const nsAString& aStr)
-{
-  return aStr.IsVoid();
-}
-
-/* ------------------------------------------------------------------------- */
-
-XPCOM_API(nsresult)
-NS_CStringContainerInit(nsCStringContainer& aContainer)
-{
-  NS_ASSERTION(sizeof(nsStringContainer_base) >= sizeof(nsCString),
-               "nsCStringContainer is not large enough");
-
-  // use placement new to avoid heap allocating nsCString object
-  new (&aContainer) nsCString();
-
-  return NS_OK;
-}
-
-XPCOM_API(nsresult)
-NS_CStringContainerInit2(nsCStringContainer& aContainer,
-                         const char* aData,
-                         uint32_t aDataLength,
-                         uint32_t aFlags)
-{
-  NS_ASSERTION(sizeof(nsStringContainer_base) >= sizeof(nsCString),
-               "nsStringContainer is not large enough");
-
-  if (!aData) {
-    new (&aContainer) nsCString();
-  } else {
-    if (aDataLength == UINT32_MAX) {
-      if (NS_WARN_IF(aFlags & NS_CSTRING_CONTAINER_INIT_SUBSTRING)) {
-        return NS_ERROR_INVALID_ARG;
-      }
-      aDataLength = nsCharTraits<char>::length(aData);
-    }
-
-    if (aFlags & (NS_CSTRING_CONTAINER_INIT_DEPEND |
-                  NS_CSTRING_CONTAINER_INIT_ADOPT)) {
-      uint32_t flags;
-      if (aFlags & NS_CSTRING_CONTAINER_INIT_SUBSTRING) {
-        flags = nsCSubstring::F_NONE;
-      } else {
-        flags = nsCSubstring::F_TERMINATED;
-      }
-
-      if (aFlags & NS_CSTRING_CONTAINER_INIT_ADOPT) {
-        flags |= nsCSubstring::F_OWNED;
-      }
-
-      new (&aContainer) nsCSubstring(const_cast<char*>(aData),
-                                     aDataLength, flags);
-    } else {
-      new (&aContainer) nsCString(aData, aDataLength);
-    }
-  }
-
-  return NS_OK;
-}
-
-XPCOM_API(void)
-NS_CStringContainerFinish(nsCStringContainer& aContainer)
-{
-  // call the nsCString dtor
-  reinterpret_cast<nsCString*>(&aContainer)->~nsCString();
-}
-
-/* ------------------------------------------------------------------------- */
-
-XPCOM_API(uint32_t)
-NS_CStringGetData(const nsACString& aStr, const char** aData,
-                  bool* aTerminated)
-{
-  if (aTerminated) {
-    *aTerminated = aStr.IsTerminated();
-  }
-
-  *aData = aStr.BeginReading();
-  return aStr.Length();
-}
-
-XPCOM_API(uint32_t)
-NS_CStringGetMutableData(nsACString& aStr, uint32_t aDataLength, char** aData)
-{
-  if (aDataLength != UINT32_MAX) {
-    aStr.SetLength(aDataLength);
-    if (aStr.Length() != aDataLength) {
-      *aData = nullptr;
-      return 0;
-    }
-  }
-
-  *aData = aStr.BeginWriting();
-  return aStr.Length();
-}
-
-XPCOM_API(char*)
-NS_CStringCloneData(const nsACString& aStr)
-{
-  return ToNewCString(aStr);
-}
-
-XPCOM_API(nsresult)
-NS_CStringSetData(nsACString& aStr, const char* aData, uint32_t aDataLength)
-{
-  aStr.Assign(aData, aDataLength);
-  return NS_OK; // XXX report errors
-}
-
-XPCOM_API(nsresult)
-NS_CStringSetDataRange(nsACString& aStr,
-                       uint32_t aCutOffset, uint32_t aCutLength,
-                       const char* aData, uint32_t aDataLength)
-{
-  if (aCutOffset == UINT32_MAX) {
-    // append case
-    if (aData) {
-      aStr.Append(aData, aDataLength);
-    }
-    return NS_OK; // XXX report errors
-  }
-
-  if (aCutLength == UINT32_MAX) {
-    aCutLength = aStr.Length() - aCutOffset;
-  }
-
-  if (aData) {
-    if (aDataLength == UINT32_MAX) {
-      aStr.Replace(aCutOffset, aCutLength, nsDependentCString(aData));
-    } else {
-      aStr.Replace(aCutOffset, aCutLength, Substring(aData, aDataLength));
-    }
-  } else {
-    aStr.Cut(aCutOffset, aCutLength);
-  }
-
-  return NS_OK; // XXX report errors
-}
-
-XPCOM_API(nsresult)
-NS_CStringCopy(nsACString& aDest, const nsACString& aSrc)
-{
-  aDest.Assign(aSrc);
-  return NS_OK; // XXX report errors
-}
-
-XPCOM_API(void)
-NS_CStringSetIsVoid(nsACString& aStr, const bool aIsVoid)
-{
-  aStr.SetIsVoid(aIsVoid);
-}
-
-XPCOM_API(bool)
-NS_CStringGetIsVoid(const nsACString& aStr)
-{
-  return aStr.IsVoid();
-}
-
-/* ------------------------------------------------------------------------- */
-
-XPCOM_API(nsresult)
-NS_CStringToUTF16(const nsACString& aSrc,
-                  nsCStringEncoding aSrcEncoding,
-                  nsAString& aDest)
-{
-  switch (aSrcEncoding) {
-    case NS_CSTRING_ENCODING_ASCII:
-      CopyASCIItoUTF16(aSrc, aDest);
-      break;
-    case NS_CSTRING_ENCODING_UTF8:
-      CopyUTF8toUTF16(aSrc, aDest);
-      break;
-    case NS_CSTRING_ENCODING_NATIVE_FILESYSTEM:
-      NS_CopyNativeToUnicode(aSrc, aDest);
-      break;
-    default:
-      return NS_ERROR_NOT_IMPLEMENTED;
-  }
-
-  return NS_OK; // XXX report errors
-}
-
-XPCOM_API(nsresult)
-NS_UTF16ToCString(const nsAString& aSrc,
-                  nsCStringEncoding aDestEncoding,
-                  nsACString& aDest)
-{
-  switch (aDestEncoding) {
-    case NS_CSTRING_ENCODING_ASCII:
-      LossyCopyUTF16toASCII(aSrc, aDest);
-      break;
-    case NS_CSTRING_ENCODING_UTF8:
-      CopyUTF16toUTF8(aSrc, aDest);
-      break;
-    case NS_CSTRING_ENCODING_NATIVE_FILESYSTEM:
-      NS_CopyUnicodeToNative(aSrc, aDest);
-      break;
-    default:
-      return NS_ERROR_NOT_IMPLEMENTED;
-  }
-
-  return NS_OK; // XXX report errors
-}
--- a/xpcom/string/moz.build
+++ b/xpcom/string/moz.build
@@ -26,17 +26,16 @@ EXPORTS += [
     'nsTDependentSubstring.h',
     'nsTextFormatter.h',
     'nsTLiteralString.h',
     'nsTPromiseFlatString.h',
     'nsTString.h',
     'nsTSubstring.h',
     'nsTSubstringTuple.h',
     'nsUTF8Utils.h',
-    'nsXPCOMStrings.h',
     'nsXPIDLString.h',
     'string-template-def-char.h',
     'string-template-def-unichar.h',
     'string-template-undef.h',
 ]
 
 UNIFIED_SOURCES += [
     'nsDependentString.cpp',
--- a/xpcom/string/nsSubstring.cpp
+++ b/xpcom/string/nsSubstring.cpp
@@ -338,25 +338,16 @@ nsStringBuffer::SizeOfIncludingThisEvenI
 #include "nsTSubstring.cpp"
 #include "string-template-undef.h"
 
 // define nsCSubstring
 #include "string-template-def-char.h"
 #include "nsTSubstring.cpp"
 #include "string-template-undef.h"
 
-// Check that internal and external strings have the same size.
-// See https://bugzilla.mozilla.org/show_bug.cgi?id=430581
-
-#include "mozilla/Logging.h"
-#include "nsXPCOMStrings.h"
-
-static_assert(sizeof(nsStringContainer_base) == sizeof(nsSubstring),
-              "internal and external strings must have the same size");
-
 // Provide rust bindings to the nsA[C]String types
 extern "C" {
 
 // This is a no-op on release, so we ifdef it out such that using it in release
 // results in a linker error.
 #ifdef DEBUG
 void Gecko_IncrementStringAdoptCount(void* aData)
 {
deleted file mode 100644
--- a/xpcom/string/nsXPCOMStrings.h
+++ /dev/null
@@ -1,748 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=8 sts=2 et sw=2 tw=80: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef nsXPCOMStrings_h__
-#define nsXPCOMStrings_h__
-
-#include <string.h>
-#include "nscore.h"
-#include <limits>
-
-/**
- * nsXPCOMStrings.h
- *
- * This file describes a minimal API for working with XPCOM's abstract
- * string classes.  It divorces the consumer from having any run-time
- * dependency on the implementation details of the abstract string types.
- */
-
-#include "nscore.h"
-
-/* The base string types */
-class nsAString;
-class nsACString;
-
-/* ------------------------------------------------------------------------- */
-
-/**
- * nsStringContainer
- *
- * This is an opaque data type that is large enough to hold the canonical
- * implementation of nsAString.  The binary structure of this class is an
- * implementation detail.
- *
- * The string data stored in a string container is always single fragment
- * and may be null-terminated depending on how it is initialized.
- *
- * Typically, string containers are allocated on the stack for temporary
- * use.  However, they can also be malloc'd if necessary.  In either case,
- * a string container is not useful until it has been initialized with a
- * call to NS_StringContainerInit.  The following example shows how to use
- * a string container to call a function that takes a |nsAString &| out-param.
- *
- *   nsresult GetBlah(nsAString &aBlah);
- *
- *   nsresult MyCode()
- *   {
- *     nsresult rv;
- *
- *     nsStringContainer sc;
- *     rv = NS_StringContainerInit(sc);
- *     if (NS_FAILED(rv))
- *       return rv;
- *
- *     rv = GetBlah(sc);
- *     if (NS_SUCCEEDED(rv))
- *     {
- *       const char16_t *data;
- *       NS_StringGetData(sc, &data);
- *       //
- *       // |data| now points to the result of the GetBlah function
- *       //
- *     }
- *
- *     NS_StringContainerFinish(sc);
- *     return rv;
- *   }
- *
- * The following example show how to use a string container to pass a string
- * parameter to a function taking a |const nsAString &| in-param.
- *
- *   nsresult SetBlah(const nsAString &aBlah);
- *
- *   nsresult MyCode()
- *   {
- *     nsresult rv;
- *
- *     nsStringContainer sc;
- *     rv = NS_StringContainerInit(sc);
- *     if (NS_FAILED(rv))
- *       return rv;
- *
- *     const char16_t kData[] = {'x','y','z','\0'};
- *     rv = NS_StringSetData(sc, kData, sizeof(kData)/2 - 1);
- *     if (NS_SUCCEEDED(rv))
- *       rv = SetBlah(sc);
- *
- *     NS_StringContainerFinish(sc);
- *     return rv;
- *   }
- */
-class nsStringContainer;
-
-
-/**
- * This struct is never used directly. It is designed to have the same
- * size as nsString. It can be stack and heap allocated and the internal
- * functions cast it to nsString.
- * While this practice is a strict aliasing violation, it doesn't seem to
- * cause problems since the the struct is only accessed via the casts to
- * nsString.
- * We use protected instead of private to avoid compiler warnings about
- * the members being unused.
- */
-struct nsStringContainer_base
-{
-protected:
-  void* d1;
-  uint32_t d2;
-  uint32_t d3;
-};
-
-/**
- * Flags that may be OR'd together to pass to NS_StringContainerInit2:
- */
-enum
-{
-  /* Data passed into NS_StringContainerInit2 is not copied; instead, the
-   * string references the passed in data pointer directly.  The caller must
-   * ensure that the data is valid for the lifetime of the string container.
-   * This flag should not be combined with NS_STRING_CONTAINER_INIT_ADOPT. */
-  NS_STRING_CONTAINER_INIT_DEPEND    = (1 << 1),
-
-  /* Data passed into NS_StringContainerInit2 is not copied; instead, the
-   * string takes ownership over the data pointer.  The caller must have
-   * allocated the data array using the XPCOM memory allocator (nsMemory).
-   * This flag should not be combined with NS_STRING_CONTAINER_INIT_DEPEND. */
-  NS_STRING_CONTAINER_INIT_ADOPT     = (1 << 2),
-
-  /* Data passed into NS_StringContainerInit2 is a substring that is not
-   * null-terminated. */
-  NS_STRING_CONTAINER_INIT_SUBSTRING = (1 << 3)
-};
-
-/**
- * NS_StringContainerInit
- *
- * @param aContainer    string container reference
- * @return              NS_OK if string container successfully initialized
- *
- * This function may allocate additional memory for aContainer.  When
- * aContainer is no longer needed, NS_StringContainerFinish should be called.
- */
-XPCOM_API(nsresult) NS_StringContainerInit(nsStringContainer& aContainer);
-
-/**
- * NS_StringContainerInit2
- *
- * @param aContainer    string container reference
- * @param aData         character buffer (may be null)
- * @param aDataLength   number of characters stored at aData (may pass
- *                      UINT32_MAX if aData is null-terminated)
- * @param aFlags        flags affecting how the string container is
- *                      initialized.  this parameter is ignored when aData
- *                      is null.  otherwise, if this parameter is 0, then
- *                      aData is copied into the string.
- *
- * This function resembles NS_StringContainerInit but provides further
- * options that permit more efficient memory usage.  When aContainer is
- * no longer needed, NS_StringContainerFinish should be called.
- *
- * NOTE: NS_StringContainerInit2(container, nullptr, 0, 0) is equivalent to
- * NS_StringContainerInit(container).
- */
-XPCOM_API(nsresult) NS_StringContainerInit2(nsStringContainer& aContainer,
-                                            const char16_t* aData = nullptr,
-                                            uint32_t aDataLength = UINT32_MAX,
-                                            uint32_t aFlags = 0);
-
-/**
- * NS_StringContainerFinish
- *
- * @param aContainer    string container reference
- *
- * This function frees any memory owned by aContainer.
- */
-XPCOM_API(void) NS_StringContainerFinish(nsStringContainer& aContainer);
-
-/* ------------------------------------------------------------------------- */
-
-/**
- * NS_StringGetData
- *
- * This function returns a const character pointer to the string's internal
- * buffer, the length of the string, and a boolean value indicating whether
- * or not the buffer is null-terminated.
- *
- * @param aStr          abstract string reference
- * @param aData         out param that will hold the address of aStr's
- *                      internal buffer
- * @param aTerminated   if non-null, this out param will be set to indicate
- *                      whether or not aStr's internal buffer is null-
- *                      terminated
- * @return              length of aStr's internal buffer
- */
-XPCOM_API(uint32_t) NS_StringGetData(const nsAString& aStr,
-                                     const char16_t** aData,
-                                     bool* aTerminated = nullptr);
-
-/**
- * NS_StringGetMutableData
- *
- * This function provides mutable access to a string's internal buffer.  It
- * returns a pointer to an array of characters that may be modified.  The
- * returned pointer remains valid until the string object is passed to some
- * other string function.
- *
- * Optionally, this function may be used to resize the string's internal
- * buffer.  The aDataLength parameter specifies the requested length of the
- * string's internal buffer.  By passing some value other than UINT32_MAX,
- * the caller can request that the buffer be resized to the specified number of
- * characters before returning.  The caller is not responsible for writing a
- * null-terminator.
- *
- * @param aStr          abstract string reference
- * @param aDataLength   number of characters to resize the string's internal
- *                      buffer to or UINT32_MAX if no resizing is needed
- * @param aData         out param that upon return holds the address of aStr's
- *                      internal buffer or null if the function failed
- * @return              number of characters or zero if the function failed
- *
- * This function does not necessarily null-terminate aStr after resizing its
- * internal buffer.  The behavior depends on the implementation of the abstract
- * string, aStr.  If aStr is a reference to a nsStringContainer, then its data
- * will be null-terminated by this function.
- */
-XPCOM_API(uint32_t) NS_StringGetMutableData(nsAString& aStr,
-                                            uint32_t aDataLength,
-                                            char16_t** aData);
-
-/**
- * NS_StringCloneData
- *
- * This function returns a null-terminated copy of the string's
- * internal buffer.
- *
- * @param aStr          abstract string reference
- * @return              null-terminated copy of the string's internal buffer
- *                      (it must be free'd using using free)
- */
-XPCOM_API(char16_t*) NS_StringCloneData(const nsAString& aStr);
-
-/**
- * NS_StringSetData
- *
- * This function copies aData into aStr.
- *
- * @param aStr          abstract string reference
- * @param aData         character buffer
- * @param aDataLength   number of characters to copy from source string (pass
- *                      UINT32_MAX to copy until end of aData, designated by
- *                      a null character)
- * @return              NS_OK if function succeeded
- *
- * This function does not necessarily null-terminate aStr after copying data
- * from aData.  The behavior depends on the implementation of the abstract
- * string, aStr.  If aStr is a reference to a nsStringContainer, then its data
- * will be null-terminated by this function.
- */
-XPCOM_API(nsresult) NS_StringSetData(nsAString& aStr, const char16_t* aData,
-                                     uint32_t aDataLength = UINT32_MAX);
-
-/**
- * NS_StringSetDataRange
- *
- * This function copies aData into a section of aStr.  As a result it can be
- * used to insert new characters into the string.
- *
- * @param aStr          abstract string reference
- * @param aCutOffset    starting index where the string's existing data
- *                      is to be overwritten (pass UINT32_MAX to cause
- *                      aData to be appended to the end of aStr, in which
- *                      case the value of aCutLength is ignored).
- * @param aCutLength    number of characters to overwrite starting at
- *                      aCutOffset (pass UINT32_MAX to overwrite until the
- *                      end of aStr).
- * @param aData         character buffer (pass null to cause this function
- *                      to simply remove the "cut" range)
- * @param aDataLength   number of characters to copy from source string (pass
- *                      UINT32_MAX to copy until end of aData, designated by
- *                      a null character)
- * @return              NS_OK if function succeeded
- *
- * This function does not necessarily null-terminate aStr after copying data
- * from aData.  The behavior depends on the implementation of the abstract
- * string, aStr.  If aStr is a reference to a nsStringContainer, then its data
- * will be null-terminated by this function.
- */
-XPCOM_API(nsresult) NS_StringSetDataRange(nsAString& aStr,
-                                          uint32_t aCutOffset, uint32_t aCutLength,
-                                          const char16_t* aData,
-                                          uint32_t aDataLength = UINT32_MAX);
-
-/**
- * NS_StringCopy
- *
- * This function makes aDestStr have the same value as aSrcStr.  It is
- * provided as an optimization.
- *
- * @param aDestStr      abstract string reference to be modified
- * @param aSrcStr       abstract string reference containing source string
- * @return              NS_OK if function succeeded
- *
- * This function does not necessarily null-terminate aDestStr after copying
- * data from aSrcStr.  The behavior depends on the implementation of the
- * abstract string, aDestStr.  If aDestStr is a reference to a
- * nsStringContainer, then its data will be null-terminated by this function.
- */
-XPCOM_API(nsresult) NS_StringCopy(nsAString& aDestStr,
-                                  const nsAString& aSrcStr);
-
-/**
- * NS_StringAppendData
- *
- * This function appends data to the existing value of aStr.
- *
- * @param aStr          abstract string reference to be modified
- * @param aData         character buffer
- * @param aDataLength   number of characters to append (pass UINT32_MAX to
- *                      append until a null-character is encountered)
- * @return              NS_OK if function succeeded
- *
- * This function does not necessarily null-terminate aStr upon completion.
- * The behavior depends on the implementation of the abstract string, aStr.
- * If aStr is a reference to a nsStringContainer, then its data will be null-
- * terminated by this function.
- */
-inline NS_HIDDEN_(nsresult)
-NS_StringAppendData(nsAString& aStr, const char16_t* aData,
-                    uint32_t aDataLength = UINT32_MAX)
-{
-  return NS_StringSetDataRange(aStr, UINT32_MAX, 0, aData, aDataLength);
-}
-
-/**
- * NS_StringInsertData
- *
- * This function inserts data into the existing value of aStr at the specified
- * offset.
- *
- * @param aStr          abstract string reference to be modified
- * @param aOffset       specifies where in the string to insert aData
- * @param aData         character buffer
- * @param aDataLength   number of characters to append (pass UINT32_MAX to
- *                      append until a null-character is encountered)
- * @return              NS_OK if function succeeded
- *
- * This function does not necessarily null-terminate aStr upon completion.
- * The behavior depends on the implementation of the abstract string, aStr.
- * If aStr is a reference to a nsStringContainer, then its data will be null-
- * terminated by this function.
- */
-inline NS_HIDDEN_(nsresult)
-NS_StringInsertData(nsAString& aStr, uint32_t aOffset, const char16_t* aData,
-                    uint32_t aDataLength = UINT32_MAX)
-{
-  return NS_StringSetDataRange(aStr, aOffset, 0, aData, aDataLength);
-}
-
-/**
- * NS_StringCutData
- *
- * This function shortens the existing value of aStr, by removing characters
- * at the specified offset.
- *
- * @param aStr          abstract string reference to be modified
- * @param aCutOffset    specifies where in the string to insert aData
- * @param aCutLength    number of characters to remove
- * @return              NS_OK if function succeeded
- */
-inline NS_HIDDEN_(nsresult)
-NS_StringCutData(nsAString& aStr, uint32_t aCutOffset, uint32_t aCutLength)
-{
-  return NS_StringSetDataRange(aStr, aCutOffset, aCutLength, nullptr, 0);
-}
-
-/**
- * NS_StringSetIsVoid
- *
- * This function marks a string as being a "void string".  Any data in the
- * string will be lost.
- */
-XPCOM_API(void) NS_StringSetIsVoid(nsAString& aStr, const bool aIsVoid);
-
-/**
- * NS_StringGetIsVoid
- *
- * This function provides a way to test if a string is a "void string", as
- * marked by NS_StringSetIsVoid.
- */
-XPCOM_API(bool) NS_StringGetIsVoid(const nsAString& aStr);
-
-/* ------------------------------------------------------------------------- */
-
-/**
- * nsCStringContainer
- *
- * This is an opaque data type that is large enough to hold the canonical
- * implementation of nsACString.  The binary structure of this class is an
- * implementation detail.
- *
- * The string data stored in a string container is always single fragment
- * and may be null-terminated depending on how it is initialized.
- *
- * @see nsStringContainer for use cases and further documentation.
- */
-class nsCStringContainer;
-
-/**
- * Flags that may be OR'd together to pass to NS_StringContainerInit2:
- */
-enum
-{
-  /* Data passed into NS_CStringContainerInit2 is not copied; instead, the
-   * string references the passed in data pointer directly.  The caller must
-   * ensure that the data is valid for the lifetime of the string container.
-   * This flag should not be combined with NS_CSTRING_CONTAINER_INIT_ADOPT. */
-  NS_CSTRING_CONTAINER_INIT_DEPEND    = (1 << 1),
-
-  /* Data passed into NS_CStringContainerInit2 is not copied; instead, the
-   * string takes ownership over the data pointer.  The caller must have
-   * allocated the data array using the XPCOM memory allocator (nsMemory).
-   * This flag should not be combined with NS_CSTRING_CONTAINER_INIT_DEPEND. */
-  NS_CSTRING_CONTAINER_INIT_ADOPT     = (1 << 2),
-
-  /* Data passed into NS_CStringContainerInit2 is a substring that is not
-   * null-terminated. */
-  NS_CSTRING_CONTAINER_INIT_SUBSTRING = (1 << 3)
-};
-
-/**
- * NS_CStringContainerInit
- *
- * @param aContainer    string container reference
- * @return              NS_OK if string container successfully initialized
- *
- * This function may allocate additional memory for aContainer.  When
- * aContainer is no longer needed, NS_CStringContainerFinish should be called.
- */
-XPCOM_API(nsresult) NS_CStringContainerInit(nsCStringContainer& aContainer);
-
-/**
- * NS_CStringContainerInit2
- *
- * @param aContainer    string container reference
- * @param aData         character buffer (may be null)
- * @param aDataLength   number of characters stored at aData (may pass
- *                      UINT32_MAX if aData is null-terminated)
- * @param aFlags        flags affecting how the string container is
- *                      initialized.  this parameter is ignored when aData
- *                      is null.  otherwise, if this parameter is 0, then
- *                      aData is copied into the string.
- *
- * This function resembles NS_CStringContainerInit but provides further
- * options that permit more efficient memory usage.  When aContainer is
- * no longer needed, NS_CStringContainerFinish should be called.
- *
- * NOTE: NS_CStringContainerInit2(container, nullptr, 0, 0) is equivalent to
- * NS_CStringContainerInit(container).
- */
-XPCOM_API(nsresult) NS_CStringContainerInit2(nsCStringContainer& aContainer,
-                                             const char* aData = nullptr,
-                                             uint32_t aDataLength = UINT32_MAX,
-                                             uint32_t aFlags = 0);
-
-/**
- * NS_CStringContainerFinish
- *
- * @param aContainer    string container reference
- *
- * This function frees any memory owned by aContainer.
- */
-XPCOM_API(void) NS_CStringContainerFinish(nsCStringContainer& aContainer);
-
-/* ------------------------------------------------------------------------- */
-
-/**
- * NS_CStringGetData
- *
- * This function returns a const character pointer to the string's internal
- * buffer, the length of the string, and a boolean value indicating whether
- * or not the buffer is null-terminated.
- *
- * @param aStr          abstract string reference
- * @param aData         out param that will hold the address of aStr's
- *                      internal buffer
- * @param aTerminated   if non-null, this out param will be set to indicate
- *                      whether or not aStr's internal buffer is null-
- *                      terminated
- * @return              length of aStr's internal buffer
- */
-XPCOM_API(uint32_t) NS_CStringGetData(const nsACString& aStr,
-                                      const char** aData,
-                                      bool* aTerminated = nullptr);
-
-/**
- * NS_CStringGetMutableData
- *
- * This function provides mutable access to a string's internal buffer.  It
- * returns a pointer to an array of characters that may be modified.  The
- * returned pointer remains valid until the string object is passed to some
- * other string function.
- *
- * Optionally, this function may be used to resize the string's internal
- * buffer.  The aDataLength parameter specifies the requested length of the
- * string's internal buffer.  By passing some value other than UINT32_MAX,
- * the caller can request that the buffer be resized to the specified number of
- * characters before returning.  The caller is not responsible for writing a
- * null-terminator.
- *
- * @param aStr          abstract string reference
- * @param aDataLength   number of characters to resize the string's internal
- *                      buffer to or UINT32_MAX if no resizing is needed
- * @param aData         out param that upon return holds the address of aStr's
- *                      internal buffer or null if the function failed
- * @return              number of characters or zero if the function failed
- *
- * This function does not necessarily null-terminate aStr after resizing its
- * internal buffer.  The behavior depends on the implementation of the abstract
- * string, aStr.  If aStr is a reference to a nsStringContainer, then its data
- * will be null-terminated by this function.
- */
-XPCOM_API(uint32_t) NS_CStringGetMutableData(nsACString& aStr,
-                                             uint32_t aDataLength,
-                                             char** aData);
-
-/**
- * NS_CStringCloneData
- *
- * This function returns a null-terminated copy of the string's
- * internal buffer.
- *
- * @param aStr          abstract string reference
- * @return              null-terminated copy of the string's internal buffer
- *                      (it must be free'd using using free)
- */
-XPCOM_API(char*) NS_CStringCloneData(const nsACString& aStr);
-
-/**
- * NS_CStringSetData
- *
- * This function copies aData into aStr.
- *
- * @param aStr          abstract string reference
- * @param aData         character buffer
- * @param aDataLength   number of characters to copy from source string (pass
- *                      UINT32_MAX to copy until end of aData, designated by
- *                      a null character)
- * @return              NS_OK if function succeeded
- *
- * This function does not necessarily null-terminate aStr after copying data
- * from aData.  The behavior depends on the implementation of the abstract
- * string, aStr.  If aStr is a reference to a nsStringContainer, then its data
- * will be null-terminated by this function.
- */
-XPCOM_API(nsresult) NS_CStringSetData(nsACString& aStr, const char* aData,
-                                      uint32_t aDataLength = UINT32_MAX);
-
-/**
- * NS_CStringSetDataRange
- *
- * This function copies aData into a section of aStr.  As a result it can be
- * used to insert new characters into the string.
- *
- * @param aStr          abstract string reference
- * @param aCutOffset    starting index where the string's existing data
- *                      is to be overwritten (pass UINT32_MAX to cause
- *                      aData to be appended to the end of aStr, in which
- *                      case the value of aCutLength is ignored).
- * @param aCutLength    number of characters to overwrite starting at
- *                      aCutOffset (pass UINT32_MAX to overwrite until the
- *                      end of aStr).
- * @param aData         character buffer (pass null to cause this function
- *                      to simply remove the "cut" range)
- * @param aDataLength   number of characters to copy from source string (pass
- *                      UINT32_MAX to copy until end of aData, designated by
- *                      a null character)
- * @return              NS_OK if function succeeded
- *
- * This function does not necessarily null-terminate aStr after copying data
- * from aData.  The behavior depends on the implementation of the abstract
- * string, aStr.  If aStr is a reference to a nsStringContainer, then its data
- * will be null-terminated by this function.
- */
-XPCOM_API(nsresult) NS_CStringSetDataRange(nsACString& aStr,
-                                           uint32_t aCutOffset,
-                                           uint32_t aCutLength,
-                                           const char* aData,
-                                           uint32_t aDataLength = UINT32_MAX);
-
-/**
- * NS_CStringCopy
- *
- * This function makes aDestStr have the same value as aSrcStr.  It is
- * provided as an optimization.
- *
- * @param aDestStr      abstract string reference to be modified
- * @param aSrcStr       abstract string reference containing source string
- * @return              NS_OK if function succeeded
- *
- * This function does not necessarily null-terminate aDestStr after copying
- * data from aSrcStr.  The behavior depends on the implementation of the
- * abstract string, aDestStr.  If aDestStr is a reference to a
- * nsStringContainer, then its data will be null-terminated by this function.
- */
-XPCOM_API(nsresult) NS_CStringCopy(nsACString& aDestStr,
-                                   const nsACString& aSrcStr);
-
-/**
- * NS_CStringAppendData
- *
- * This function appends data to the existing value of aStr.
- *
- * @param aStr          abstract string reference to be modified
- * @param aData         character buffer
- * @param aDataLength   number of characters to append (pass UINT32_MAX to
- *                      append until a null-character is encountered)
- * @return              NS_OK if function succeeded
- *
- * This function does not necessarily null-terminate aStr upon completion.
- * The behavior depends on the implementation of the abstract string, aStr.
- * If aStr is a reference to a nsStringContainer, then its data will be null-
- * terminated by this function.
- */
-inline NS_HIDDEN_(nsresult)
-NS_CStringAppendData(nsACString& aStr, const char* aData,
-                     uint32_t aDataLength = UINT32_MAX)
-{
-  return NS_CStringSetDataRange(aStr, UINT32_MAX, 0, aData, aDataLength);
-}
-
-/**
- * NS_CStringInsertData
- *
- * This function inserts data into the existing value of aStr at the specified
- * offset.
- *
- * @param aStr          abstract string reference to be modified
- * @param aOffset       specifies where in the string to insert aData
- * @param aData         character buffer
- * @param aDataLength   number of characters to append (pass UINT32_MAX to
- *                      append until a null-character is encountered)
- * @return              NS_OK if function succeeded
- *
- * This function does not necessarily null-terminate aStr upon completion.
- * The behavior depends on the implementation of the abstract string, aStr.
- * If aStr is a reference to a nsStringContainer, then its data will be null-
- * terminated by this function.
- */
-inline NS_HIDDEN_(nsresult)
-NS_CStringInsertData(nsACString& aStr, uint32_t aOffset, const char* aData,
-                     uint32_t aDataLength = UINT32_MAX)
-{
-  return NS_CStringSetDataRange(aStr, aOffset, 0, aData, aDataLength);
-}
-
-/**
- * NS_CStringCutData
- *
- * This function shortens the existing value of aStr, by removing characters
- * at the specified offset.
- *
- * @param aStr          abstract string reference to be modified
- * @param aCutOffset    specifies where in the string to insert aData
- * @param aCutLength    number of characters to remove
- * @return              NS_OK if function succeeded
- */
-inline NS_HIDDEN_(nsresult)
-NS_CStringCutData(nsACString& aStr, uint32_t aCutOffset, uint32_t aCutLength)
-{
-  return NS_CStringSetDataRange(aStr, aCutOffset, aCutLength, nullptr, 0);
-}
-
-/**
- * NS_CStringSetIsVoid
- *
- * This function marks a string as being a "void string".  Any data in the
- * string will be lost.
- */
-XPCOM_API(void) NS_CStringSetIsVoid(nsACString& aStr, const bool aIsVoid);
-
-/**
- * NS_CStringGetIsVoid
- *
- * This function provides a way to test if a string is a "void string", as
- * marked by NS_CStringSetIsVoid.
- */
-XPCOM_API(bool) NS_CStringGetIsVoid(const nsACString& aStr);
-
-/* ------------------------------------------------------------------------- */
-
-/**
- * Encodings that can be used with the following conversion routines.
- */
-enum nsCStringEncoding
-{
-  /* Conversion between ASCII and UTF-16 assumes that all bytes in the source
-   * string are 7-bit ASCII and can be inflated to UTF-16 by inserting null
-   * bytes.  Reverse conversion is done by truncating every other byte.  The
-   * conversion may result in loss and/or corruption of information if the
-   * strings do not strictly contain ASCII data. */
-  NS_CSTRING_ENCODING_ASCII = 0,
-
-  /* Conversion between UTF-8 and UTF-16 is non-lossy. */
-  NS_CSTRING_ENCODING_UTF8 = 1,
-
-  /* Conversion from UTF-16 to the native filesystem charset may result in a
-   * loss of information.  No attempt is made to protect against data loss in
-   * this case.  The native filesystem charset applies to strings passed to
-   * the "Native" method variants on nsIFile. */
-  NS_CSTRING_ENCODING_NATIVE_FILESYSTEM = 2
-};
-
-/**
- * NS_CStringToUTF16
- *
- * This function converts the characters in a nsACString to an array of UTF-16
- * characters, in the platform endianness.  The result is stored in a nsAString
- * object.
- *
- * @param aSource       abstract string reference containing source string
- * @param aSrcEncoding  character encoding of the source string
- * @param aDest         abstract string reference to hold the result
- */
-XPCOM_API(nsresult) NS_CStringToUTF16(const nsACString& aSource,
-                                      nsCStringEncoding aSrcEncoding,
-                                      nsAString& aDest);
-
-/**
- * NS_UTF16ToCString
- *
- * This function converts the UTF-16 characters in a nsAString to a single-byte
- * encoding.  The result is stored in a nsACString object.  In some cases this
- * conversion may be lossy.  In such cases, the conversion may succeed with a
- * return code indicating loss of information.  The exact behavior is not
- * specified at this time.
- *
- * @param aSource       abstract string reference containing source string
- * @param aDestEncoding character encoding of the resulting string
- * @param aDest         abstract string reference to hold the result
- */
-XPCOM_API(nsresult) NS_UTF16ToCString(const nsAString& aSource,
-                                      nsCStringEncoding aDestEncoding,
-                                      nsACString& aDest);
-
-#endif // nsXPCOMStrings_h__