mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 842726. Kill off GetterShim and the classinfo support for chrome-only stuff on Document now that we can do that via WebIDL. r=peterv
This commit is contained in:
parent
0f451ab067
commit
12d1591d42
@ -1939,6 +1939,10 @@ public:
|
||||
void ReleaseCapture() const;
|
||||
virtual void MozSetImageElement(const nsAString& aImageElementId,
|
||||
Element* aElement) = 0;
|
||||
nsIURI* GetDocumentURIObject()
|
||||
{
|
||||
return GetDocumentURI();
|
||||
}
|
||||
// Not const because all the full-screen goop is not const
|
||||
virtual bool MozFullScreenEnabled() = 0;
|
||||
virtual Element* GetMozFullScreenElement(mozilla::ErrorResult& rv) = 0;
|
||||
|
@ -6667,19 +6667,6 @@ nsNavigatorSH::PreCreate(nsISupports *nativeObj, JSContext *cx,
|
||||
|
||||
// DOM Node helper
|
||||
|
||||
template<nsresult (*func)(JSContext *cx, JSObject *obj, jsval *vp)>
|
||||
static JSBool
|
||||
GetterShim(JSContext *cx, JSHandleObject obj, JSHandleId /* unused */, JSMutableHandleValue vp)
|
||||
{
|
||||
nsresult rv = (*func)(cx, obj, vp.address());
|
||||
if (NS_FAILED(rv)) {
|
||||
xpc::Throw(cx, rv);
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsNodeSH::PreCreate(nsISupports *nativeObj, JSContext *cx, JSObject *globalObj,
|
||||
JSObject **parentObj)
|
||||
@ -7392,42 +7379,6 @@ nsNamedNodeMapSH::GetNamedItem(nsISupports *aNative, const nsAString& aName,
|
||||
return attr;
|
||||
}
|
||||
|
||||
// Can't be static so GetterShim will compile
|
||||
nsresult
|
||||
DocumentURIObjectGetter(JSContext *cx, JSObject *obj, jsval *vp)
|
||||
{
|
||||
// This function duplicates some of the logic in XPC_WN_HelperGetProperty
|
||||
XPCWrappedNative *wrapper =
|
||||
XPCWrappedNative::GetWrappedNativeOfJSObject(cx, obj);
|
||||
|
||||
// The error checks duplicate code in THROW_AND_RETURN_IF_BAD_WRAPPER
|
||||
NS_ENSURE_TRUE(!wrapper || wrapper->IsValid(), NS_ERROR_XPC_HAS_BEEN_SHUTDOWN);
|
||||
|
||||
nsCOMPtr<nsIDocument> doc = do_QueryWrappedNative(wrapper, obj);
|
||||
NS_ENSURE_TRUE(doc, NS_ERROR_UNEXPECTED);
|
||||
|
||||
return WrapNative(cx, JS_GetGlobalForScopeChain(cx), doc->GetDocumentURI(),
|
||||
&NS_GET_IID(nsIURI), true, vp);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsDocumentSH::PostCreatePrototype(JSContext * cx, JSObject * proto)
|
||||
{
|
||||
// XXXbz when this goes away, kill GetterShim as well.
|
||||
// set up our proto first
|
||||
nsresult rv = nsNodeSH::PostCreatePrototype(cx, proto);
|
||||
|
||||
if (xpc::AccessCheck::isChrome(js::GetObjectCompartment(proto))) {
|
||||
// Stick a documentURIObject property on there
|
||||
JS_DefinePropertyById(cx, proto, sDocumentURIObject_id,
|
||||
JSVAL_VOID, GetterShim<DocumentURIObjectGetter>,
|
||||
nullptr,
|
||||
JSPROP_READONLY | JSPROP_SHARED);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsDocumentSH::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
JSObject *obj, jsid id, uint32_t flags,
|
||||
|
@ -634,7 +634,6 @@ public:
|
||||
}
|
||||
|
||||
public:
|
||||
NS_IMETHOD PostCreatePrototype(JSContext * cx, JSObject * proto);
|
||||
NS_IMETHOD NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
||||
JSObject *obj, jsid id, uint32_t flags,
|
||||
JSObject **objp, bool *_retval);
|
||||
|
@ -204,6 +204,9 @@ partial interface Document {
|
||||
void mozSetImageElement(DOMString aImageElementId,
|
||||
Element? aImageElement);
|
||||
|
||||
[ChromeOnly]
|
||||
readonly attribute URI? documentURIObject;
|
||||
|
||||
};
|
||||
|
||||
// http://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html#api
|
||||
|
Loading…
Reference in New Issue
Block a user