mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-22 17:55:50 +00:00
Bug 1419597 - Part 8: Completely remove unused DialogValueHolder, r=smaug,bz
MozReview-Commit-ID: 8VaBoUj9nOj
This commit is contained in:
parent
2625b0ca22
commit
454baaeaca
@ -59,41 +59,6 @@ nsGlobalWindowOuter::OuterWindowByIdTable *nsGlobalWindowOuter::sOuterWindowsByI
|
||||
// CIDs
|
||||
static NS_DEFINE_CID(kXULControllersCID, NS_XULCONTROLLERS_CID);
|
||||
|
||||
static already_AddRefed<nsIVariant>
|
||||
CreateVoidVariant()
|
||||
{
|
||||
RefPtr<nsVariantCC> writable = new nsVariantCC();
|
||||
writable->SetAsVoid();
|
||||
return writable.forget();
|
||||
}
|
||||
|
||||
nsresult
|
||||
DialogValueHolder::Get(nsIPrincipal* aSubject, nsIVariant** aResult)
|
||||
{
|
||||
nsCOMPtr<nsIVariant> result;
|
||||
if (aSubject->SubsumesConsideringDomain(mOrigin)) {
|
||||
result = mValue;
|
||||
} else {
|
||||
result = CreateVoidVariant();
|
||||
}
|
||||
result.forget(aResult);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
void
|
||||
DialogValueHolder::Get(JSContext* aCx, JS::Handle<JSObject*> aScope,
|
||||
nsIPrincipal* aSubject,
|
||||
JS::MutableHandle<JS::Value> aResult,
|
||||
mozilla::ErrorResult& aError)
|
||||
{
|
||||
if (aSubject->Subsumes(mOrigin)) {
|
||||
aError = nsContentUtils::XPConnect()->VariantToJS(aCx, aScope,
|
||||
mValue, aResult);
|
||||
} else {
|
||||
aResult.setUndefined();
|
||||
}
|
||||
}
|
||||
|
||||
/* static */
|
||||
nsPIDOMWindowOuter*
|
||||
nsPIDOMWindowOuter::GetFromCurrentInner(nsPIDOMWindowInner* aInner)
|
||||
@ -110,16 +75,6 @@ nsPIDOMWindowOuter::GetFromCurrentInner(nsPIDOMWindowInner* aInner)
|
||||
return outer;
|
||||
}
|
||||
|
||||
// DialogValueHolder CC goop.
|
||||
NS_IMPL_CYCLE_COLLECTION(DialogValueHolder, mValue)
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DialogValueHolder)
|
||||
NS_INTERFACE_MAP_ENTRY(nsISupports)
|
||||
NS_INTERFACE_MAP_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTING_ADDREF(DialogValueHolder)
|
||||
NS_IMPL_CYCLE_COLLECTING_RELEASE(DialogValueHolder)
|
||||
|
||||
//*****************************************************************************
|
||||
// nsOuterWindowProxy: Outer Window Proxy
|
||||
//*****************************************************************************
|
||||
@ -948,7 +903,6 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INTERNAL(nsGlobalWindowOuter)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mControllers)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mArguments)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mReturnValue)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mLocalStorage)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mSuspendedDoc)
|
||||
@ -977,7 +931,6 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsGlobalWindowOuter)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mControllers)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mArguments)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mReturnValue)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mLocalStorage)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mSuspendedDoc)
|
||||
|
@ -151,38 +151,6 @@ NS_CreateJSTimeoutHandler(JSContext* aCx, nsGlobalWindowInner *aWindow,
|
||||
|
||||
extern const js::Class OuterWindowProxyClass;
|
||||
|
||||
// Helper class to manage modal dialog arguments and all their quirks.
|
||||
//
|
||||
// Given our clunky embedding APIs, modal dialog arguments need to be passed
|
||||
// as an nsISupports parameter to WindowWatcher, get stuck inside an array of
|
||||
// length 1, and then passed back to the newly-created dialog.
|
||||
//
|
||||
// However, we need to track both the caller-passed value as well as the
|
||||
// caller's, so that we can do an origin check (even for primitives) when the
|
||||
// value is accessed. This class encapsulates that magic.
|
||||
//
|
||||
// We also use the same machinery for |returnValue|, which needs similar origin
|
||||
// checks.
|
||||
class DialogValueHolder final : public nsISupports
|
||||
{
|
||||
public:
|
||||
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
||||
NS_DECL_CYCLE_COLLECTION_CLASS(DialogValueHolder)
|
||||
|
||||
DialogValueHolder(nsIPrincipal* aSubject, nsIVariant* aValue)
|
||||
: mOrigin(aSubject)
|
||||
, mValue(aValue) {}
|
||||
nsresult Get(nsIPrincipal* aSubject, nsIVariant** aResult);
|
||||
void Get(JSContext* aCx, JS::Handle<JSObject*> aScope, nsIPrincipal* aSubject,
|
||||
JS::MutableHandle<JS::Value> aResult, mozilla::ErrorResult& aError);
|
||||
private:
|
||||
virtual ~DialogValueHolder() {}
|
||||
|
||||
nsCOMPtr<nsIPrincipal> mOrigin;
|
||||
nsCOMPtr<nsIVariant> mValue;
|
||||
};
|
||||
|
||||
|
||||
// NOTE: Currently this file, despite being named mozilla/dom/WindowProxy.h,
|
||||
// exports the class nsGlobalWindowOuter. It will be renamed in the future to
|
||||
// mozilla::dom::WindowProxy.
|
||||
@ -1154,8 +1122,6 @@ protected:
|
||||
// For |window.arguments|, via |openDialog|.
|
||||
nsCOMPtr<nsIArray> mArguments;
|
||||
|
||||
RefPtr<DialogValueHolder> mReturnValue;
|
||||
|
||||
RefPtr<nsDOMWindowList> mFrames;
|
||||
RefPtr<nsDOMWindowUtils> mWindowUtils;
|
||||
nsString mStatus;
|
||||
|
Loading…
Reference in New Issue
Block a user