Bug 589032 - remove mozIStorageStatementWrapper; r=mak
authorNathan Froyd <froydnj@mozilla.com>
Wed, 02 May 2012 13:01:39 -0400
changeset 97671 5371c239bbf64c0145d3f6ba48cdcf5b965ba092
parent 97670 a607eec50772ed46bc35e5b89b5bd8fe57e86dd2
child 97672 e5e8a0a47dc5228722cc46aa87e02a5100467517
push id1116
push userlsblakk@mozilla.com
push dateMon, 16 Jul 2012 19:38:18 +0000
treeherdermozilla-beta@95f959a8b4dc [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmak
bugs589032
milestone15.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 589032 - remove mozIStorageStatementWrapper; r=mak
storage/build/mozStorageCID.h
storage/build/mozStorageModule.cpp
storage/public/Makefile.in
storage/public/mozIStorageStatementParams.idl
storage/public/mozIStorageStatementRow.idl
storage/public/mozIStorageStatementWrapper.idl
storage/src/Makefile.in
storage/src/mozStorageAsyncStatementParams.h
storage/src/mozStorageStatementParams.h
storage/src/mozStorageStatementRow.h
storage/src/mozStorageStatementWrapper.cpp
storage/src/mozStorageStatementWrapper.h
storage/test/unit/test_bug-365166.js
storage/test/unit/test_bug-429521.js
storage/test/unit/test_bug-444233.js
storage/test/unit/test_storage_statement_wrapper.js
storage/test/unit/xpcshell.ini
--- a/storage/build/mozStorageCID.h
+++ b/storage/build/mozStorageCID.h
@@ -49,21 +49,15 @@
 #define MOZ_STORAGE_CONNECTION_CONTRACTID MOZ_STORAGE_CONTRACTID_PREFIX "/connection;1"
 
 /* bbbb1d61-438f-4436-92ed-8308e5830fb0 */
 #define MOZ_STORAGE_SERVICE_CID \
 { 0xbbbb1d61, 0x438f, 0x4436, {0x92, 0xed, 0x83, 0x08, 0xe5, 0x83, 0x0f, 0xb0} }
 
 #define MOZ_STORAGE_SERVICE_CONTRACTID MOZ_STORAGE_CONTRACTID_PREFIX "/service;1"
 
-/* dab3a846-3a59-4fc2-9745-c6ff48776f00 */
-#define MOZ_STORAGE_STATEMENT_WRAPPER_CID \
-{ 0xdab3a846, 0x3a59, 0x4fc2, {0x97, 0x45, 0xc6, 0xff, 0x48, 0x77, 0x6f, 0x00} }
-
-#define MOZ_STORAGE_STATEMENT_WRAPPER_CONTRACTID MOZ_STORAGE_CONTRACTID_PREFIX "/statement-wrapper;1"
-
 /* 3b667ee0-d2da-4ccc-9c3d-95f2ca6a8b4c */
 #define VACUUMMANAGER_CID \
 { 0x3b667ee0, 0xd2da, 0x4ccc, { 0x9c, 0x3d, 0x95, 0xf2, 0xca, 0x6a, 0x8b, 0x4c } }
 
 #define VACUUMMANAGER_CONTRACTID MOZ_STORAGE_CONTRACTID_PREFIX "/vacuum;1"
 
 #endif /* MOZSTORAGECID_H */
--- a/storage/build/mozStorageModule.cpp
+++ b/storage/build/mozStorageModule.cpp
@@ -37,47 +37,42 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsCOMPtr.h"
 #include "mozilla/ModuleUtils.h"
 
 #include "mozStorageService.h"
 #include "mozStorageConnection.h"
-#include "mozStorageStatementWrapper.h"
 #include "VacuumManager.h"
 
 #include "mozStorageCID.h"
 
 namespace mozilla {
 namespace storage {
 
 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(Service,
                                          Service::getSingleton)
-NS_GENERIC_FACTORY_CONSTRUCTOR(StatementWrapper)
 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(VacuumManager,
                                          VacuumManager::getSingleton)
 
 } // namespace storage
 } // namespace mozilla
 
 NS_DEFINE_NAMED_CID(MOZ_STORAGE_SERVICE_CID);
-NS_DEFINE_NAMED_CID(MOZ_STORAGE_STATEMENT_WRAPPER_CID);
 NS_DEFINE_NAMED_CID(VACUUMMANAGER_CID);
 
 static const mozilla::Module::CIDEntry kStorageCIDs[] = {
     { &kMOZ_STORAGE_SERVICE_CID, false, NULL, mozilla::storage::ServiceConstructor },
-    { &kMOZ_STORAGE_STATEMENT_WRAPPER_CID, false, NULL, mozilla::storage::StatementWrapperConstructor },
     { &kVACUUMMANAGER_CID, false, NULL, mozilla::storage::VacuumManagerConstructor },
     { NULL }
 };
 
 static const mozilla::Module::ContractIDEntry kStorageContracts[] = {
     { MOZ_STORAGE_SERVICE_CONTRACTID, &kMOZ_STORAGE_SERVICE_CID },
-    { MOZ_STORAGE_STATEMENT_WRAPPER_CONTRACTID, &kMOZ_STORAGE_STATEMENT_WRAPPER_CID },
     { VACUUMMANAGER_CONTRACTID, &kVACUUMMANAGER_CID },
     { NULL }
 };
 
 static const mozilla::Module::CategoryEntry kStorageCategories[] = {
     { "idle-daily", "MozStorage Vacuum Manager", VACUUMMANAGER_CONTRACTID },
     { NULL }
 };
--- a/storage/public/Makefile.in
+++ b/storage/public/Makefile.in
@@ -52,21 +52,22 @@ GRE_MODULE   = 1
 #      storage.h file too.
 XPIDLSRCS = \
 	mozIStorageService.idl \
 	mozIStorageConnection.idl \
 	mozIStorageAggregateFunction.idl \
 	mozIStorageFunction.idl \
 	mozIStorageProgressHandler.idl \
 	mozIStorageStatement.idl \
-	mozIStorageStatementWrapper.idl \
 	mozIStorageValueArray.idl \
 	mozIStorageResultSet.idl \
 	mozIStorageRow.idl \
   mozIStorageError.idl \
+  mozIStorageStatementParams.idl \
+  mozIStorageStatementRow.idl \
   mozIStorageStatementCallback.idl \
   mozIStoragePendingStatement.idl \
   mozIStorageBindingParamsArray.idl \
   mozIStorageBindingParams.idl \
   mozIStorageCompletionCallback.idl \
   mozIStorageBaseStatement.idl \
   mozIStorageAsyncStatement.idl \
   mozIStorageServiceQuotaManagement.idl \
new file mode 100644
--- /dev/null
+++ b/storage/public/mozIStorageStatementParams.idl
@@ -0,0 +1,11 @@
+/* -*- 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 "nsISupports.idl"
+
+[scriptable, uuid(e65fe6e2-2643-463c-97e2-27665efe2386)]
+interface mozIStorageStatementParams : nsISupports {
+  // Magic interface for parameter setting that implements nsIXPCScriptable.
+};
new file mode 100644
--- /dev/null
+++ b/storage/public/mozIStorageStatementRow.idl
@@ -0,0 +1,12 @@
+/* -*- 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 "nsISupports.idl"
+
+[scriptable, uuid(02eeaf95-c3db-4182-9340-222c29f68f02)]
+interface mozIStorageStatementRow : nsISupports {
+  // Magic interface we return that implements nsIXPCScriptable, to allow
+  // for by-name access to rows.
+};
deleted file mode 100644
--- a/storage/public/mozIStorageStatementWrapper.idl
+++ /dev/null
@@ -1,88 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Oracle Corporation code.
- *
- * The Initial Developer of the Original Code is
- *  Oracle Corporation
- * Portions created by the Initial Developer are Copyright (C) 2004
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Vladimir Vukicevic <vladimir.vukicevic@oracle.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#include "mozIStorageStatement.idl"
-
-[scriptable, uuid(02eeaf95-c3db-4182-9340-222c29f68f02)]
-interface mozIStorageStatementRow : nsISupports {
-  // magic interface we return that implements nsIXPCScriptable, to allow
-  // for by-name access to rows
-};
-
-[scriptable, uuid(e65fe6e2-2643-463c-97e2-27665efe2386)]
-interface mozIStorageStatementParams : nsISupports {
-  // magic interface for parameter setting that implements nsIXPCScriptable.
-};
-
-/**
- * @deprecated As of Mozilla 1.9.2.  Methods are already provided on
- *             mozIStorageStatement.
- */
-[scriptable, deprecated, uuid(eee6f7c9-5586-4eaf-b35c-dca987c4ffd1)]
-interface mozIStorageStatementWrapper : nsISupports {
-  /**
-   * Initialize this wrapper with aStatement.
-   */
-  void initialize(in mozIStorageStatement aStatement);
-
-  /**
-   * The statement that is wrapped.
-   */
-  readonly attribute mozIStorageStatement statement;
-
-  /**
-   * Step, reset, and execute the wrapped statement.
-   */
-  void reset();
-  [deprecated] boolean step();
-  void execute();
-
-  /**
-   * The current row.  Throws an exception if no row is currently
-   * available.  Useful only from script.  The value of this is only
-   * valid while the statement is still executing, and is still on the
-   * appropriate row.
-   */
-  readonly attribute mozIStorageStatementRow row;
-
-  /**
-   * The parameters; these can be set in lieu of using the call
-   * notation on this.
-   */
-  readonly attribute mozIStorageStatementParams params;
-};
--- a/storage/src/Makefile.in
+++ b/storage/src/Makefile.in
@@ -73,17 +73,16 @@ EXPORTS_mozilla/storage = \
   Variant.h \
   Variant_inl.h \
   $(NULL)
 
 CPPSRCS = \
   mozStorageService.cpp \
   mozStorageConnection.cpp \
   mozStorageStatement.cpp \
-  mozStorageStatementWrapper.cpp \
   mozStorageStatementParams.cpp \
   mozStorageStatementRow.cpp \
   mozStorageArgValueArray.cpp \
   mozStorageSQLFunctions.cpp \
   mozStorageRow.cpp \
   mozStorageResultSet.cpp \
   mozStorageError.cpp \
   mozStorageAsyncStatementExecution.cpp \
--- a/storage/src/mozStorageAsyncStatementParams.h
+++ b/storage/src/mozStorageAsyncStatementParams.h
@@ -35,17 +35,17 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #ifndef mozilla_storage_mozStorageAsyncStatementParams_h_
 #define mozilla_storage_mozStorageAsyncStatementParams_h_
 
-#include "mozIStorageStatementWrapper.h"
+#include "mozIStorageStatementParams.h"
 #include "nsIXPCScriptable.h"
 
 class mozIStorageAsyncStatement;
 
 namespace mozilla {
 namespace storage {
 
 class AsyncStatement;
--- a/storage/src/mozStorageStatementParams.h
+++ b/storage/src/mozStorageStatementParams.h
@@ -35,17 +35,17 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #ifndef MOZSTORAGESTATEMENTPARAMS_H
 #define MOZSTORAGESTATEMENTPARAMS_H
 
-#include "mozIStorageStatementWrapper.h"
+#include "mozIStorageStatementParams.h"
 #include "nsIXPCScriptable.h"
 
 class mozIStorageStatement;
 
 namespace mozilla {
 namespace storage {
 
 class Statement;
--- a/storage/src/mozStorageStatementRow.h
+++ b/storage/src/mozStorageStatementRow.h
@@ -35,17 +35,17 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #ifndef MOZSTORAGESTATEMENTROW_H
 #define MOZSTORAGESTATEMENTROW_H
 
-#include "mozIStorageStatementWrapper.h"
+#include "mozIStorageStatementRow.h"
 #include "nsIXPCScriptable.h"
 
 namespace mozilla {
 namespace storage {
 
 class Statement;
 
 class StatementRow : public mozIStorageStatementRow
deleted file mode 100644
--- a/storage/src/mozStorageStatementWrapper.cpp
+++ /dev/null
@@ -1,227 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- * vim: sw=2 ts=2 et lcs=trail\:.,tab\:>~ :
- * ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Oracle Corporation code.
- *
- * The Initial Developer of the Original Code is
- *  Oracle Corporation
- * Portions created by the Initial Developer are Copyright (C) 2004
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Vladimir Vukicevic <vladimir.vukicevic@oracle.com>
- *   Shawn Wilsher <me@shawnwilsher.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#include "nsString.h"
-
-#include "mozStoragePrivateHelpers.h"
-#include "mozStorageStatementWrapper.h"
-#include "mozStorageStatementParams.h"
-#include "mozStorageStatementRow.h"
-
-#include "sqlite3.h"
-
-namespace mozilla {
-namespace storage {
-
-////////////////////////////////////////////////////////////////////////////////
-//// StatementWrapper
-
-StatementWrapper::StatementWrapper()
-: mStatement(nsnull)
-{
-}
-
-StatementWrapper::~StatementWrapper()
-{
-  mStatement = nsnull;
-}
-
-NS_IMPL_ISUPPORTS2(
-  StatementWrapper,
-  mozIStorageStatementWrapper,
-  nsIXPCScriptable
-)
-
-////////////////////////////////////////////////////////////////////////////////
-//// mozIStorageStatementWrapper
-
-NS_IMETHODIMP
-StatementWrapper::Initialize(mozIStorageStatement *aStatement)
-{
-  NS_ASSERTION(mStatement == nsnull, "StatementWrapper is already initialized");
-  NS_ENSURE_ARG_POINTER(aStatement);
-
-  mStatement = static_cast<Statement *>(aStatement);
-  PRInt32 state;
-  (void)mStatement->GetState(&state);
-  NS_ENSURE_TRUE(state != mozIStorageStatement::MOZ_STORAGE_STATEMENT_INVALID, NS_ERROR_FAILURE);
-
-  // fetch various things we care about
-  (void)mStatement->GetParameterCount(&mParamCount);
-  (void)mStatement->GetColumnCount(&mResultColumnCount);
-
-  for (unsigned int i = 0; i < mResultColumnCount; i++) {
-    const void *name = ::sqlite3_column_name16(nativeStatement(), i);
-    (void)mColumnNames.AppendElement(nsDependentString(static_cast<const PRUnichar*>(name)));
-  }
-
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-StatementWrapper::GetStatement(mozIStorageStatement **_statement)
-{
-  NS_IF_ADDREF(*_statement = mStatement);
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-StatementWrapper::Reset()
-{
-  if (!mStatement)
-    return NS_ERROR_FAILURE;
-
-  return mStatement->Reset();
-}
-
-NS_IMETHODIMP
-StatementWrapper::Step(bool *_hasMoreResults)
-{
-  if (!mStatement)
-    return NS_ERROR_FAILURE;
-
-  bool hasMore = false;
-  nsresult rv = mStatement->ExecuteStep(&hasMore);
-  if (NS_SUCCEEDED(rv) && !hasMore) {
-    *_hasMoreResults = false;
-    (void)mStatement->Reset();
-    return NS_OK;
-  }
-
-  *_hasMoreResults = hasMore;
-  return rv;
-}
-
-NS_IMETHODIMP
-StatementWrapper::Execute()
-{
-  if (!mStatement)
-    return NS_ERROR_FAILURE;
-
-  return mStatement->Execute();
-}
-
-NS_IMETHODIMP
-StatementWrapper::GetRow(mozIStorageStatementRow **_row)
-{
-  NS_ENSURE_ARG_POINTER(_row);
-
-  if (!mStatement)
-    return NS_ERROR_FAILURE;
-
-  PRInt32 state;
-  mStatement->GetState(&state);
-  if (state != mozIStorageStatement::MOZ_STORAGE_STATEMENT_EXECUTING)
-    return NS_ERROR_FAILURE;
-
-  if (!mStatementRow) {
-    mStatementRow = new StatementRow(mStatement);
-    NS_ENSURE_TRUE(mStatementRow, NS_ERROR_OUT_OF_MEMORY);
-  }
-
-  NS_ADDREF(*_row = mStatementRow);
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-StatementWrapper::GetParams(mozIStorageStatementParams **_params)
-{
-  NS_ENSURE_ARG_POINTER(_params);
-
-  if (!mStatementParams) {
-    mStatementParams = new StatementParams(mStatement);
-    NS_ENSURE_TRUE(mStatementParams, NS_ERROR_OUT_OF_MEMORY);
-  }
-
-  NS_ADDREF(*_params = mStatementParams);
-  return NS_OK;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-//// nsIXPCScriptable
-
-#define XPC_MAP_CLASSNAME StatementWrapper
-#define XPC_MAP_QUOTED_CLASSNAME "StatementWrapper"
-#define XPC_MAP_WANT_CALL
-#define XPC_MAP_FLAGS nsIXPCScriptable::ALLOW_PROP_MODS_DURING_RESOLVE | \
-                      nsIXPCScriptable::USE_JSSTUB_FOR_SETPROPERTY
-#include "xpc_map_end.h"
-
-NS_IMETHODIMP
-StatementWrapper::Call(nsIXPConnectWrappedNative *aWrapper,
-                       JSContext *aCtx,
-                       JSObject *aScopeObj,
-                       PRUint32 aArgc,
-                       jsval *aArgv,
-                       jsval *_vp,
-                       bool *_retval)
-{
-  if (!mStatement)
-    return NS_ERROR_FAILURE;
-
-  if (aArgc != mParamCount) {
-    *_retval = false;
-    return NS_ERROR_FAILURE;
-  }
-
-  // reset
-  (void)mStatement->Reset();
-
-  // bind parameters
-  for (int i = 0; i < (int)aArgc; i++) {
-    nsCOMPtr<nsIVariant> variant(convertJSValToVariant(aCtx, aArgv[i]));
-    if (!variant ||
-        NS_FAILED(mStatement->BindByIndex(i, variant))) {
-      *_retval = false;
-      return NS_ERROR_INVALID_ARG;
-    }
-  }
-
-  // if there are no results, we just execute
-  if (mResultColumnCount == 0)
-    (void)mStatement->Execute();
-
-  *_vp = JSVAL_TRUE;
-  *_retval = true;
-  return NS_OK;
-}
-
-} // namespace storage
-} // namespace mozilla
deleted file mode 100644
--- a/storage/src/mozStorageStatementWrapper.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- * vim: sw=2 ts=2 et lcs=trail\:.,tab\:>~ :
- * ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Oracle Corporation code.
- *
- * The Initial Developer of the Original Code is
- *  Oracle Corporation
- * Portions created by the Initial Developer are Copyright (C) 2004
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Vladimir Vukicevic <vladimir.vukicevic@oracle.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#ifndef mozStorageStatementWrapper_h
-#define mozStorageStatementWrapper_h
-
-#include "nsTArray.h"
-#include "nsIXPCScriptable.h"
-
-#include "mozStorageStatement.h"
-#include "mozIStorageStatementWrapper.h"
-
-namespace mozilla {
-namespace storage {
-
-class StatementWrapper : public mozIStorageStatementWrapper
-                       , public nsIXPCScriptable
-{
-public:
-    StatementWrapper();
-
-    // interfaces
-    NS_DECL_ISUPPORTS
-    NS_DECL_MOZISTORAGESTATEMENTWRAPPER
-    NS_DECL_NSIXPCSCRIPTABLE
-
-private:
-    ~StatementWrapper();
-
-    sqlite3_stmt *nativeStatement() {
-      return mStatement->nativeStatement();
-    }
-
-    nsRefPtr<Statement> mStatement;
-    PRUint32 mParamCount;
-    PRUint32 mResultColumnCount;
-    nsTArray<nsString> mColumnNames;
-
-    nsCOMPtr<mozIStorageStatementRow> mStatementRow;
-    nsCOMPtr<mozIStorageStatementParams> mStatementParams;
-};
-
-} // namespace storage
-} // namespace mozilla
-
-#endif // mozStorageStatementWrapper_h
--- a/storage/test/unit/test_bug-365166.js
+++ b/storage/test/unit/test_bug-365166.js
@@ -16,20 +16,14 @@ function run_test() {
     var file = getTestDB();
     var storageService = Components.classes["@mozilla.org/storage/service;1"].
                          getService(Components.interfaces.mozIStorageService);
     var conn = storageService.openDatabase(file); 
     var statement = conn.createStatement(sql);
     try {
       // This shouldn't crash:
       do_check_eq(statement.getColumnName(0), colName);
-
-      // OK, if the above statement didn't crash, check that initializing a
-      // wrapper doesn't crash either:
-      var wrapper = Components.classes["@mozilla.org/storage/statement-wrapper;1"]
-                              .createInstance(Components.interfaces.mozIStorageStatementWrapper);
-      wrapper.initialize(statement);
     } finally {
       statement.reset();
       statement.finalize();
     }
   }
 }
--- a/storage/test/unit/test_bug-429521.js
+++ b/storage/test/unit/test_bug-429521.js
@@ -32,59 +32,51 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
-function createStatementWrapper(aSQL) 
-{
-    var stmt = getOpenedDatabase().createStatement(aSQL);
-    var wrapper = Components.Constructor("@mozilla.org/storage/statement-wrapper;1", Ci.mozIStorageStatementWrapper)();
-    wrapper.initialize(stmt);
-    return wrapper;
-}
-
 function setup() 
 {
     getOpenedDatabase().createTable("t1", "x TEXT");
 
-    var stmt = getOpenedDatabase().createStatement("INSERT INTO t1 (x) VALUES ('/mozilla.org/20070129_1/Europe/Berlin')");
+    var stmt = createStatement("INSERT INTO t1 (x) VALUES ('/mozilla.org/20070129_1/Europe/Berlin')");
     stmt.execute();
     stmt.finalize();
 }
 
 function test_bug429521() 
 {
-    var wrapper = createStatementWrapper(
+    var stmt = createStatement(
         "SELECT DISTINCT(zone) FROM ("+
             "SELECT x AS zone FROM t1 WHERE x LIKE '/mozilla.org%'" +
         ");");
 
     print("*** test_bug429521: started");
 
     try {
-        while (wrapper.step()) {
+        while (stmt.executeStep()) {
             print("*** test_bug429521: step() Read wrapper.row.zone");
 
             // BUG: the print commands after the following statement
             // are never executed. Script stops immediately.
-            var tzId = wrapper.row.zone;
+            var tzId = stmt.row.zone;
 
             print("*** test_bug429521: step() Read wrapper.row.zone finished");
         }
     } catch (e) {
         print("*** test_bug429521: " + e);
     }
 
     print("*** test_bug429521: finished");
 
-    wrapper.statement.finalize();
+    stmt.finalize();
 }
 
 function run_test()
 {
   setup();
 
   test_bug429521();
     
--- a/storage/test/unit/test_bug-444233.js
+++ b/storage/test/unit/test_bug-444233.js
@@ -32,64 +32,55 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
-// copy from test_storage_statement_wrapper.js
-var wrapper = new Components.Constructor("@mozilla.org/storage/statement-wrapper;1",
-                                         Ci.mozIStorageStatementWrapper,
-                                         "initialize");
-// we want to override the default function for this file
-createStatement = function(aSQL) {
-    return new wrapper(getOpenedDatabase().createStatement(aSQL));
-}
-
 function setup() {
     // Create the table
     getOpenedDatabase().createTable("test_bug444233",
                                     "id INTEGER PRIMARY KEY, value TEXT");
 
     // Insert dummy data, using wrapper methods
     var stmt = createStatement("INSERT INTO test_bug444233 (value) VALUES (:value)");
     stmt.params.value = "value1"
     stmt.execute();
-    stmt.statement.finalize();
+    stmt.finalize();
     
     stmt = createStatement("INSERT INTO test_bug444233 (value) VALUES (:value)");
     stmt.params.value = "value2"
     stmt.execute();
-    stmt.statement.finalize();
+    stmt.finalize();
 }
 
 function test_bug444233() {
     print("*** test_bug444233: started");
     
     // Check that there are 2 results
     var stmt = createStatement("SELECT COUNT(*) AS number FROM test_bug444233");
-    do_check_true(stmt.step());
+    do_check_true(stmt.executeStep());
     do_check_eq(2, stmt.row.number);
     stmt.reset();
-    stmt.statement.finalize();
+    stmt.finalize();
 
     print("*** test_bug444233: doing delete");
     
     // Now try to delete using IN
     // Cheating since we know ids are 1,2
     try {
         var ids = [1, 2];
         stmt = createStatement("DELETE FROM test_bug444233 WHERE id IN (:ids)");
         stmt.params.ids = ids;
     } catch (e) {
         print("*** test_bug444233: successfully caught exception");
     }
-    stmt.statement.finalize();
+    stmt.finalize();
 }
 
 function run_test() {
     setup();
     test_bug444233();
     cleanup();
 }
 
deleted file mode 100644
--- a/storage/test/unit/test_storage_statement_wrapper.js
+++ /dev/null
@@ -1,228 +0,0 @@
-/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-   vim:set ts=2 sw=2 sts=2 et:
- * ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Storage Test Code.
- *
- * The Initial Developer of the Original Code is
- *   Mozilla Corporation.
- * Portions created by the Initial Developer are Copyright (C) 2007
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Shawn Wilsher <me@shawnwilsher.com> (Original Author)
- *   Drew Willcoxon <adw@mozilla.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-// This file tests the functions of mozIStorageStatementWrapper
-
-function setup()
-{
-  getOpenedDatabase().createTable("test", "id INTEGER PRIMARY KEY, val NONE," +
-                                          "alt_val NONE");
-}
-
-var wrapper = new Components.Constructor("@mozilla.org/storage/statement-wrapper;1",
-                                         Ci.mozIStorageStatementWrapper,
-                                         "initialize");
-
-// we want to override the default function for this file
-createStatement = function(aSQL) {
-  return new wrapper(getOpenedDatabase().createStatement(aSQL));
-}
-
-/**
- * A convenience wrapper for do_check_eq.  Calls do_check_eq on aActualVal
- * and aReturnedVal, with one caveat.
- *
- * Date objects are converted before parameter binding to PRTime's (microsecs
- * since epoch).  They are not reconverted when retrieved from the database.
- * This function abstracts away this reconversion so that you can pass in,
- * for example:
- *
- *   checkVal(new Date(), aReturnedVal)                    // this
- *   checkVal(new Date().valueOf() * 1000.0, aReturnedVal) // instead of this
- *
- * Should any other types require conversion in the future, their conversions
- * may also be abstracted away here.
- *
- * @param aActualVal
- *        the value inserted into the database
- * @param aReturnedVal
- *        the value retrieved from the database
- */
-function checkVal(aActualVal, aReturnedVal)
-{
-  if (aActualVal instanceof Date) aActualVal = aActualVal.valueOf() * 1000.0;
-  do_check_eq(aActualVal, aReturnedVal);
-}
-
-/**
- * Removes all rows from our test table.
- */
-function clearTable()
-{
-  var stmt = createStatement("DELETE FROM test");
-  stmt.execute();
-  stmt.statement.finalize();
-  ensureNumRows(0);
-}
-
-/**
- * Ensures that the number of rows in our test table is equal to aNumRows.
- * Calls do_check_eq on aNumRows and the value retrieved by SELECT'ing COUNT(*).
- *
- * @param aNumRows
- *        the number of rows our test table should contain
- */
-function ensureNumRows(aNumRows)
-{
-  var stmt = createStatement("SELECT COUNT(*) AS number FROM test");
-  do_check_true(stmt.step());
-  do_check_eq(aNumRows, stmt.row.number);
-  stmt.reset();
-  stmt.statement.finalize();
-}
-
-/**
- * Verifies that the properties exposed by a for-in loop over aObj are
- * enumerable.
- *
- * @param aObj
- *        the object to check
- */
-function checkEnumerableConsistency(aObj)
-{
-  for (var p in aObj)
-    do_check_true(Object.prototype.propertyIsEnumerable.call(aObj, p));
-}
-
-/**
- * Inserts aVal into our test table and checks that insertion was successful by
- * retrieving the newly inserted value from the database and comparing it
- * against aVal.  aVal is bound to a single parameter.
- *
- * @param aVal
- *        value to insert into our test table and check
- */
-function insertAndCheckSingleParam(aVal)
-{
-  clearTable();
-
-  var stmt = createStatement("INSERT INTO test (val) VALUES (:val)");
-  stmt.params.val = aVal;
-  checkEnumerableConsistency(stmt.params);
-  stmt.execute();
-  stmt.statement.finalize();
-
-  ensureNumRows(1);
-
-  stmt = createStatement("SELECT val FROM test WHERE id = 1");
-  do_check_true(stmt.step());
-  checkVal(aVal, stmt.row.val);
-  stmt.reset();
-  stmt.statement.finalize();
-}
-
-/**
- * Inserts aVal into our test table and checks that insertion was successful by
- * retrieving the newly inserted value from the database and comparing it
- * against aVal.  aVal is bound to two separate parameters, both of which are
- * checked against aVal.
- *
- * @param aVal
- *        value to insert into our test table and check
- */
-function insertAndCheckMultipleParams(aVal)
-{
-  clearTable();
-
-  var stmt = createStatement("INSERT INTO test (val, alt_val) " +
-                             "VALUES (:val, :val)");
-  stmt.params.val = aVal;
-  checkEnumerableConsistency(stmt.params);
-  stmt.execute();
-  stmt.statement.finalize();
-
-  ensureNumRows(1);
-
-  stmt = createStatement("SELECT val, alt_val FROM test WHERE id = 1");
-  do_check_true(stmt.step());
-  checkVal(aVal, stmt.row.val);
-  checkVal(aVal, stmt.row.alt_val);
-  stmt.reset();
-  stmt.statement.finalize();
-}
-
-/**
- * A convenience function that prints out a description of aVal using
- * aVal.toString and aVal.toSource.  Output is useful when the test fails.
- *
- * @param aVal
- *        a value inserted or to be inserted into our test table
- */
-function printValDesc(aVal)
-{
-  try
-  {
-    var toSource = aVal.toSource();
-  }
-  catch (exc)
-  {
-    toSource = "";
-  }
-  print("Testing value: toString=" + aVal +
-        (toSource ? " toSource=" + toSource : ""));
-}
-
-function run_test()
-{
-  setup();
-
-  // function JSValStorageStatementBinder in
-  // storage/src/mozStorageStatementParams.cpp tells us that the following types
-  // and only the following types are valid as statement parameters:
-  var vals = [
-    1337,       // int
-    3.1337,     // double
-    "foo",      // string
-    true,       // boolean
-    null,       // null
-    new Date(), // Date object
-  ];
-
-  vals.forEach(function (val)
-  {
-    printValDesc(val);
-    print("Single parameter");
-    insertAndCheckSingleParam(val);
-    print("Multiple parameters");
-    insertAndCheckMultipleParams(val)
-  });
-
-  cleanup();
-}
--- a/storage/test/unit/xpcshell.ini
+++ b/storage/test/unit/xpcshell.ini
@@ -23,15 +23,14 @@ fail-if = os == "android"
 [test_storage_aggregates.js]
 [test_storage_connection.js]
 [test_storage_fulltextindex.js]
 [test_storage_function.js]
 [test_storage_progresshandler.js]
 [test_storage_service.js]
 [test_storage_service_unshared.js]
 [test_storage_statement.js]
-[test_storage_statement_wrapper.js]
 [test_storage_value_array.js]
 [test_unicode.js]
 [test_vacuum.js]
 [test_telemetry_vfs.js]
 # Bug 676981: test fails consistently on Android
 # fail-if = os == "android"