mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-01 03:21:10 +00:00
Fix for bug 1823. Added a toString method to the location object
This commit is contained in:
parent
9ceceead01
commit
c4c4f8edb2
@ -61,6 +61,8 @@ public:
|
||||
NS_IMETHOD Reload(JSContext *cx, jsval *argv, PRUint32 argc)=0;
|
||||
|
||||
NS_IMETHOD Replace(const nsString& aUrl)=0;
|
||||
|
||||
NS_IMETHOD ToString(nsString& aReturn)=0;
|
||||
};
|
||||
|
||||
|
||||
@ -83,6 +85,7 @@ public:
|
||||
NS_IMETHOD SetSearch(const nsString& aSearch); \
|
||||
NS_IMETHOD Reload(JSContext *cx, jsval *argv, PRUint32 argc); \
|
||||
NS_IMETHOD Replace(const nsString& aUrl); \
|
||||
NS_IMETHOD ToString(nsString& aReturn); \
|
||||
|
||||
|
||||
|
||||
@ -105,6 +108,7 @@ public:
|
||||
NS_IMETHOD SetSearch(const nsString& aSearch) { return _to##SetSearch(aSearch); } \
|
||||
NS_IMETHOD Reload(JSContext *cx, jsval *argv, PRUint32 argc) { return _to##Reload(cx, argv, argc); } \
|
||||
NS_IMETHOD Replace(const nsString& aUrl) { return _to##Replace(aUrl); } \
|
||||
NS_IMETHOD ToString(nsString& aReturn) { return _to##ToString(aReturn); } \
|
||||
|
||||
|
||||
extern nsresult NS_InitLocationClass(nsIScriptContext *aContext, void **aPrototype);
|
||||
|
@ -13,4 +13,6 @@
|
||||
|
||||
void reload(/* ... */);
|
||||
void replace(in wstring url);
|
||||
};
|
||||
|
||||
wstring toString();
|
||||
};
|
||||
|
@ -39,7 +39,7 @@
|
||||
void resizeBy(in long widthDif, in long heightDif);
|
||||
void scrollTo(in long xScroll, in long yScroll);
|
||||
void scrollBy(in long xScrollDif, in long yScrollDif);
|
||||
|
||||
|
||||
void clearTimeout(in long timerID);
|
||||
void clearInterval(in long timerID);
|
||||
long setTimeout(/* ... */);
|
||||
@ -53,4 +53,4 @@
|
||||
|
||||
void captureEvent(in wstring type);
|
||||
void releaseEvent(in wstring type);
|
||||
};
|
||||
};
|
||||
|
@ -284,6 +284,7 @@ public:
|
||||
NS_IMETHOD SetSearch(const nsString& aSearch);
|
||||
NS_IMETHOD Reload(JSContext *cx, jsval *argv, PRUint32 argc);
|
||||
NS_IMETHOD Replace(const nsString& aUrl);
|
||||
NS_IMETHOD ToString(nsString& aReturn);
|
||||
|
||||
protected:
|
||||
nsresult SetURL(nsIURL* aURL);
|
||||
|
@ -364,6 +364,40 @@ LocationReplace(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rv
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method ToString
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
LocationToString(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMLocation *nativeThis = (nsIDOMLocation*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
nsAutoString nativeRet;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 0) {
|
||||
|
||||
if (NS_OK != nativeThis->ToString(nativeRet)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
nsJSUtils::nsConvertStringToJSVal(nativeRet, cx, rval);
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function toString requires 0 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// class for Location
|
||||
@ -406,6 +440,7 @@ static JSFunctionSpec LocationMethods[] =
|
||||
{
|
||||
{"reload", LocationReload, 0},
|
||||
{"replace", LocationReplace, 1},
|
||||
{"toString", LocationToString, 0},
|
||||
{0}
|
||||
};
|
||||
|
||||
|
@ -514,3 +514,10 @@ LocationImpl::Replace(const nsString& aUrl)
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
LocationImpl::ToString(nsString& aReturn)
|
||||
{
|
||||
return GetHref(aReturn);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user