Bug 837865 - Use DOMCursor instead of DeviceStorageCursor. r=bent

This commit is contained in:
Reuben Morais
2013-03-01 16:21:01 -08:00
parent d68b8ed4f2
commit b51a32c23b
8 changed files with 31 additions and 41 deletions

View File

@@ -39,7 +39,6 @@ DOMCursor::DOMCursor(nsIDOMWindow* aWindow, nsICursorContinueCallback* aCallback
, mCallback(aCallback)
, mFinished(false)
{
MOZ_ASSERT(aCallback);
}
void
@@ -51,7 +50,6 @@ DOMCursor::Reset()
if (mRooted) {
UnrootResultVal();
}
mResult = JSVAL_VOID;
mDone = false;
}
@@ -73,6 +71,8 @@ DOMCursor::GetDone(bool *aDone)
NS_IMETHODIMP
DOMCursor::Continue()
{
MOZ_ASSERT(mCallback, "If you're creating your own cursor class with no callback, you should override Continue()");
// We need to have a result here because we must be in a 'success' state.
if (mResult == JSVAL_VOID) {
return NS_ERROR_DOM_INVALID_STATE_ERR;

View File

@@ -266,7 +266,6 @@
// Device Storage
#include "nsIDOMDeviceStorage.h"
#include "nsIDOMDeviceStorageCursor.h"
// Drag and drop
#include "nsIDOMDataTransfer.h"
@@ -2486,8 +2485,8 @@ nsDOMClassInfo::Init()
DOM_CLASSINFO_MAP_ENTRY(nsIDOMEventTarget)
DOM_CLASSINFO_MAP_END
DOM_CLASSINFO_MAP_BEGIN(DeviceStorageCursor, nsIDOMDeviceStorageCursor)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMDeviceStorageCursor)
DOM_CLASSINFO_MAP_BEGIN_NO_CLASS_IF(DeviceStorageCursor, nsIDOMDOMCursor)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMDOMCursor)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMDOMRequest)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMEventTarget)
DOM_CLASSINFO_MAP_END

View File

@@ -105,7 +105,7 @@ private:
JSContext* aCx,
uint8_t aArgc,
bool aEditable,
nsIDOMDeviceStorageCursor** aRetval);
nsIDOMDOMCursor** aRetval);
nsString mStorageType;
nsCOMPtr<nsIFile> mRootDirectory;

View File

@@ -1025,9 +1025,12 @@ ContinueCursorEvent::Run()
nsDOMDeviceStorageCursor* cursor = static_cast<nsDOMDeviceStorageCursor*>(mRequest.get());
jsval val = nsIFileToJsval(cursor->GetOwner(), file);
if (file) {
cursor->mOkToCallContinue = true;
mRequest->FireSuccess(val);
cursor->FireSuccess(val);
} else {
cursor->FireDone();
}
mRequest = nullptr;
return NS_OK;
}
@@ -1072,21 +1075,19 @@ private:
DOMCI_DATA(DeviceStorageCursor, nsDOMDeviceStorageCursor)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsDOMDeviceStorageCursor)
NS_INTERFACE_MAP_ENTRY(nsIDOMDeviceStorageCursor)
NS_INTERFACE_MAP_ENTRY(nsIDOMDOMCursor)
NS_INTERFACE_MAP_ENTRY(nsIContentPermissionRequest)
NS_INTERFACE_MAP_ENTRY(nsIDOMDOMRequest)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDOMDeviceStorageCursor)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(DeviceStorageCursor)
NS_INTERFACE_MAP_END_INHERITING(DOMRequest)
NS_INTERFACE_MAP_END_INHERITING(DOMCursor)
NS_IMPL_ADDREF_INHERITED(nsDOMDeviceStorageCursor, DOMRequest)
NS_IMPL_RELEASE_INHERITED(nsDOMDeviceStorageCursor, DOMRequest)
NS_IMPL_ADDREF_INHERITED(nsDOMDeviceStorageCursor, DOMCursor)
NS_IMPL_RELEASE_INHERITED(nsDOMDeviceStorageCursor, DOMCursor)
nsDOMDeviceStorageCursor::nsDOMDeviceStorageCursor(nsIDOMWindow* aWindow,
nsIPrincipal* aPrincipal,
DeviceStorageFile* aFile,
PRTime aSince)
: DOMRequest(aWindow)
: DOMCursor(aWindow, nullptr)
, mOkToCallContinue(false)
, mSince(aSince)
, mFile(aFile)
@@ -2144,7 +2145,7 @@ nsDOMDeviceStorage::Enumerate(const JS::Value & aName,
const JS::Value & aOptions,
JSContext* aCx,
uint8_t aArgc,
nsIDOMDeviceStorageCursor** aRetval)
nsIDOMDOMCursor** aRetval)
{
return EnumerateInternal(aName, aOptions, aCx, aArgc, false, aRetval);
}
@@ -2154,7 +2155,7 @@ nsDOMDeviceStorage::EnumerateEditable(const JS::Value & aName,
const JS::Value & aOptions,
JSContext* aCx,
uint8_t aArgc,
nsIDOMDeviceStorageCursor** aRetval)
nsIDOMDOMCursor** aRetval)
{
return EnumerateInternal(aName, aOptions, aCx, aArgc, true, aRetval);
}
@@ -2183,7 +2184,7 @@ nsDOMDeviceStorage::EnumerateInternal(const JS::Value & aName,
JSContext* aCx,
uint8_t aArgc,
bool aEditable,
nsIDOMDeviceStorageCursor** aRetval)
nsIDOMDOMCursor** aRetval)
{
nsCOMPtr<nsPIDOMWindow> win = GetOwner();
if (!win)

View File

@@ -9,12 +9,12 @@ class nsPIDOMWindow;
#include "PCOMContentPermissionRequestChild.h"
#include "DOMRequest.h"
#include "DOMCursor.h"
#include "nsAutoPtr.h"
#include "nsCycleCollectionParticipant.h"
#include "nsDOMClassInfoID.h"
#include "nsIClassInfo.h"
#include "nsIContentPermissionPrompt.h"
#include "nsIDOMDeviceStorageCursor.h"
#include "nsIDOMWindow.h"
#include "nsIURI.h"
#include "nsInterfaceHashtable.h"
@@ -88,8 +88,7 @@ private:
};
class nsDOMDeviceStorageCursor MOZ_FINAL
: public nsIDOMDeviceStorageCursor
, public mozilla::dom::DOMRequest
: public mozilla::dom::DOMCursor
, public nsIContentPermissionRequest
, public PCOMContentPermissionRequestChild
, public mozilla::dom::devicestorage::DeviceStorageRequestChildCallback
@@ -97,7 +96,10 @@ class nsDOMDeviceStorageCursor MOZ_FINAL
public:
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_NSICONTENTPERMISSIONREQUEST
NS_DECL_NSIDOMDEVICESTORAGECURSOR
// nsIDOMDOMCursor interface.
// We use DOMCursor::GetDone.
NS_IMETHOD Continue() MOZ_OVERRIDE;
nsDOMDeviceStorageCursor(nsIDOMWindow* aWindow,
nsIPrincipal* aPrincipal,

View File

@@ -6,7 +6,6 @@
XPIDL_SOURCES += [
'nsIDOMDeviceStorage.idl',
'nsIDOMDeviceStorageChangeEvent.idl',
'nsIDOMDeviceStorageCursor.idl',
'nsIDOMNavigatorDeviceStorage.idl',
]

View File

@@ -6,7 +6,7 @@
#include "nsIDOMEventTarget.idl"
interface nsIDOMBlob;
interface nsIDOMDOMRequest;
interface nsIDOMDeviceStorageCursor;
interface nsIDOMDOMCursor;
interface nsIDOMDeviceStorageChangeEvent;
interface nsIDOMEventListener;
interface nsIFile;
@@ -16,7 +16,7 @@ dictionary DeviceStorageEnumerationParameters
jsval since;
};
[scriptable, uuid(c611b701-ddfc-456d-893a-3b3fcb30d9fd), builtinclass]
[scriptable, uuid(d0df738b-1c42-4b1a-84d0-9a089d830974), builtinclass]
interface nsIDOMDeviceStorage : nsIDOMEventTarget
{
[implicit_jscontext] attribute jsval onchange;
@@ -33,10 +33,10 @@ interface nsIDOMDeviceStorage : nsIDOMEventTarget
nsIDOMDOMRequest delete(in jsval aName);
[optional_argc, implicit_jscontext]
nsIDOMDeviceStorageCursor enumerate([optional] in jsval aName, /* DeviceStorageEnumerationParameters */ [optional] in jsval options);
nsIDOMDOMCursor enumerate([optional] in jsval aName, /* DeviceStorageEnumerationParameters */ [optional] in jsval options);
[optional_argc, implicit_jscontext]
nsIDOMDeviceStorageCursor enumerateEditable([optional] in jsval aName, /* DeviceStorageEnumerationParameters */ [optional] in jsval options);
nsIDOMDOMCursor enumerateEditable([optional] in jsval aName, /* DeviceStorageEnumerationParameters */ [optional] in jsval options);
nsIDOMDOMRequest freeSpace();

View File

@@ -1,11 +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/. */
#include "domstubs.idl"
[scriptable, uuid(995DFF99-ED70-4780-AC9A-4B58CD491186)]
interface nsIDOMDeviceStorageCursor : nsISupports
{
void continue();
};