Bug 903772: Part 8 - Remove TextEncoderBase. r=emk
authorKyle Huey <khuey@kylehuey.com>
Thu, 22 Aug 2013 22:17:10 -0700
changeset 144011 27ba8b41c4586bb0ea66d5293c4934b090a0387e
parent 144010 3d866e6ca83a609ac1e1435a4fcdecb4899c97d3
child 144012 e1bd096607b10774545fe10fc7a4bfcd963b9690
push id32843
push userkhuey@mozilla.com
push dateFri, 23 Aug 2013 05:18:28 +0000
treeherdermozilla-inbound@3ab03b70a92c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersemk
bugs903772
milestone26.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 903772: Part 8 - Remove TextEncoderBase. r=emk
dom/encoding/TextEncoder.cpp
dom/encoding/TextEncoder.h
dom/encoding/TextEncoderBase.h
dom/encoding/moz.build
--- a/dom/encoding/TextEncoder.cpp
+++ b/dom/encoding/TextEncoder.cpp
@@ -7,17 +7,17 @@
 #include "nsContentUtils.h"
 #include "nsICharsetConverterManager.h"
 #include "nsServiceManagerUtils.h"
 
 namespace mozilla {
 namespace dom {
 
 void
-TextEncoderBase::Init(const nsAString& aEncoding, ErrorResult& aRv)
+TextEncoder::Init(const nsAString& aEncoding, ErrorResult& aRv)
 {
   nsAutoString label(aEncoding);
   EncodingUtils::TrimSpaceCharacters(label);
 
   // Let encoding be the result of getting an encoding from label.
   // If encoding is failure, or is none of utf-8, utf-16, and utf-16be,
   // throw a TypeError.
   if (!EncodingUtils::FindEncodingForLabel(label, mEncoding)) {
@@ -43,21 +43,21 @@ TextEncoderBase::Init(const nsAString& a
   ccm->GetUnicodeEncoderRaw(mEncoding.get(), getter_AddRefs(mEncoder));
   if (!mEncoder) {
     aRv.Throw(NS_ERROR_UNEXPECTED);
     return;
   }
 }
 
 JSObject*
-TextEncoderBase::Encode(JSContext* aCx,
-                        JS::Handle<JSObject*> aObj,
-                        const nsAString& aString,
-                        const bool aStream,
-                        ErrorResult& aRv)
+TextEncoder::Encode(JSContext* aCx,
+                    JS::Handle<JSObject*> aObj,
+                    const nsAString& aString,
+                    const bool aStream,
+                    ErrorResult& aRv)
 {
   // Run the steps of the encoding algorithm.
   int32_t srcLen = aString.Length();
   int32_t maxLen;
   const PRUnichar* data = PromiseFlatString(aString).get();
   nsresult rv = mEncoder->GetMaxLength(data, srcLen, &maxLen);
   if (NS_FAILED(rv)) {
     aRv.Throw(rv);
@@ -97,16 +97,16 @@ TextEncoderBase::Encode(JSContext* aCx,
 
   if (NS_FAILED(rv)) {
     aRv.Throw(rv);
   }
   return outView;
 }
 
 void
-TextEncoderBase::GetEncoding(nsAString& aEncoding)
+TextEncoder::GetEncoding(nsAString& aEncoding)
 {
   CopyASCIItoUTF16(mEncoding, aEncoding);
   nsContentUtils::ASCIIToLower(aEncoding);
 }
 
 } // dom
 } // mozilla
--- a/dom/encoding/TextEncoder.h
+++ b/dom/encoding/TextEncoder.h
@@ -1,24 +1,26 @@
 /* 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 mozilla_dom_textencoder_h_
 #define mozilla_dom_textencoder_h_
 
 #include "mozilla/dom/NonRefcountedDOMObject.h"
-#include "mozilla/dom/TextEncoderBase.h"
 #include "mozilla/dom/TextEncoderBinding.h"
+#include "mozilla/dom/TypedArray.h"
+#include "nsIUnicodeEncoder.h"
 
 namespace mozilla {
+class ErrorResult;
+
 namespace dom {
 
-class TextEncoder MOZ_FINAL
-  : public NonRefcountedDOMObject, public TextEncoderBase
+class TextEncoder MOZ_FINAL : public NonRefcountedDOMObject
 {
 public:
   // The WebIDL constructor.
 
   static TextEncoder*
   Constructor(const GlobalObject& aGlobal,
               const nsAString& aEncoding,
               ErrorResult& aRv)
@@ -51,18 +53,68 @@ public:
     return nullptr;
   }
 
   JSObject* Encode(JSContext* aCx,
                    JS::Handle<JSObject*> aObj,
                    const nsAString& aString,
                    const TextEncodeOptions& aOptions,
                    ErrorResult& aRv) {
-    return TextEncoderBase::Encode(aCx, aObj, aString, aOptions.mStream, aRv);
+    return TextEncoder::Encode(aCx, aObj, aString, aOptions.mStream, aRv);
+  }
+
+protected:
+
+  /**
+   * Validates provided encoding and throws an exception if invalid encoding.
+   * If no encoding is provided then mEncoding is default initialised to "utf-8".
+   *
+   * @param aEncoding    Optional encoding (case insensitive) provided.
+   *                     (valid values are "utf-8", "utf-16", "utf-16be")
+   *                     Default value is "utf-8" if no encoding is provided.
+   * @return aRv         EncodingError exception else null.
+   */
+  void Init(const nsAString& aEncoding, ErrorResult& aRv);
+
+public:
+  /**
+   * Return the encoding name.
+   *
+   * @param aEncoding, current encoding.
+   */
+  void GetEncoding(nsAString& aEncoding);
+
+  /**
+   * Encodes incoming utf-16 code units/ DOM string to the requested encoding.
+   *
+   * @param aCx        Javascript context.
+   * @param aObj       the wrapper of the TextEncoder
+   * @param aString    utf-16 code units to be encoded.
+   * @param aOptions   Streaming option. Initialised by default to false.
+   *                   If the streaming option is false, then the encoding
+   *                   algorithm state will get reset. If set to true then
+   *                   the previous encoding is reused/continued.
+   * @return JSObject* The Uint8Array wrapped in a JS object.
+   */
+  JSObject* Encode(JSContext* aCx,
+                   JS::Handle<JSObject*> aObj,
+                   const nsAString& aString,
+                   const bool aStream,
+                   ErrorResult& aRv);
+
+protected:
+  JSObject*
+  CreateUint8Array(JSContext* aCx, JS::Handle<JSObject*> aObj, 
+                   char* aBuf, uint32_t aLen) const
+  {
+    return Uint8Array::Create(aCx, aObj, aLen,
+                              reinterpret_cast<uint8_t*>(aBuf));
   }
 
 private:
+  nsCString mEncoding;
+  nsCOMPtr<nsIUnicodeEncoder> mEncoder;
 };
 
 } // dom
 } // mozilla
 
 #endif // mozilla_dom_textencoder_h_
deleted file mode 100644
--- a/dom/encoding/TextEncoderBase.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* 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 mozilla_dom_textencoderbase_h_
-#define mozilla_dom_textencoderbase_h_
-
-#include "mozilla/dom/BindingUtils.h"
-#include "mozilla/dom/TypedArray.h"
-#include "nsIUnicodeEncoder.h"
-
-namespace mozilla {
-class ErrorResult;
-
-namespace dom {
-
-class TextEncoderBase
-{
-protected:
-  TextEncoderBase()
-  {}
-
-  virtual
-  ~TextEncoderBase()
-  {}
-
-  /**
-   * Validates provided encoding and throws an exception if invalid encoding.
-   * If no encoding is provided then mEncoding is default initialised to "utf-8".
-   *
-   * @param aEncoding    Optional encoding (case insensitive) provided.
-   *                     (valid values are "utf-8", "utf-16", "utf-16be")
-   *                     Default value is "utf-8" if no encoding is provided.
-   * @return aRv         EncodingError exception else null.
-   */
-  void Init(const nsAString& aEncoding, ErrorResult& aRv);
-
-public:
-  /**
-   * Return the encoding name.
-   *
-   * @param aEncoding, current encoding.
-   */
-  void GetEncoding(nsAString& aEncoding);
-
-  /**
-   * Encodes incoming utf-16 code units/ DOM string to the requested encoding.
-   *
-   * @param aCx        Javascript context.
-   * @param aObj       the wrapper of the TextEncoder
-   * @param aString    utf-16 code units to be encoded.
-   * @param aOptions   Streaming option. Initialised by default to false.
-   *                   If the streaming option is false, then the encoding
-   *                   algorithm state will get reset. If set to true then
-   *                   the previous encoding is reused/continued.
-   * @return JSObject* The Uint8Array wrapped in a JS object.
-   */
-  JSObject* Encode(JSContext* aCx,
-                   JS::Handle<JSObject*> aObj,
-                   const nsAString& aString,
-                   const bool aStream,
-                   ErrorResult& aRv);
-
-protected:
-  JSObject*
-  CreateUint8Array(JSContext* aCx, JS::Handle<JSObject*> aObj, 
-                   char* aBuf, uint32_t aLen) const
-  {
-    return Uint8Array::Create(aCx, aObj, aLen,
-                              reinterpret_cast<uint8_t*>(aBuf));
-  }
-
-private:
-  nsCString mEncoding;
-  nsCOMPtr<nsIUnicodeEncoder> mEncoder;
-};
-
-} // dom
-} // mozilla
-
-#endif // mozilla_dom_textencoderbase_h_
--- a/dom/encoding/moz.build
+++ b/dom/encoding/moz.build
@@ -7,17 +7,16 @@
 TEST_DIRS += ['test']
 
 MODULE = 'dom'
 
 EXPORTS.mozilla.dom += [
     'EncodingUtils.h',
     'TextDecoder.h',
     'TextEncoder.h',
-    'TextEncoderBase.h',
 ]
 
 CPP_SOURCES += [
     'EncodingUtils.cpp',
     'TextDecoder.cpp',
     'TextEncoder.cpp',
 ]