зеркало из https://github.com/mozilla/gecko-dev.git
Fixed bug 13835. InstallTrigger.GetVersion()
This commit is contained in:
Родитель
9c72b9dfb5
Коммит
d67bf77f01
|
@ -23,4 +23,5 @@ interface InstallTriggerGlobal
|
|||
|
||||
long CompareVersion( in wstring regName, in wstring version );
|
||||
|
||||
wstring GetVersion( in wstring component );
|
||||
};
|
|
@ -15,7 +15,6 @@
|
|||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
/* AUTO-GENERATED. DO NOT EDIT!!! */
|
||||
|
||||
#ifndef nsIDOMInstallTriggerGlobal_h__
|
||||
#define nsIDOMInstallTriggerGlobal_h__
|
||||
|
@ -57,6 +56,9 @@ public:
|
|||
NS_IMETHOD CompareVersion(const nsString& aRegName, PRInt32 aMajor, PRInt32 aMinor, PRInt32 aRelease, PRInt32 aBuild, PRInt32* aReturn)=0;
|
||||
NS_IMETHOD CompareVersion(const nsString& aRegName, const nsString& aVersion, PRInt32* aReturn)=0;
|
||||
NS_IMETHOD CompareVersion(const nsString& aRegName, nsIDOMInstallVersion* aVersion, PRInt32* aReturn)=0;
|
||||
|
||||
NS_IMETHOD GetVersion(const nsString& component, nsString& version)=0;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@ -74,6 +76,7 @@ public:
|
|||
NS_IMETHOD CompareVersion(const nsString& aRegName, PRInt32 aMajor, PRInt32 aMinor, PRInt32 aRelease, PRInt32 aBuild, PRInt32* aReturn); \
|
||||
NS_IMETHOD CompareVersion(const nsString& aRegName, const nsString& aVersion, PRInt32* aReturn); \
|
||||
NS_IMETHOD CompareVersion(const nsString& aRegName, nsIDOMInstallVersion* aVersion, PRInt32* aReturn); \
|
||||
NS_IMETHOD GetVersion(const nsString& component, nsString& version); \
|
||||
|
||||
|
||||
|
||||
|
@ -91,6 +94,7 @@ public:
|
|||
NS_IMETHOD CompareVersion(const nsString& aRegName, PRInt32 aMajor, PRInt32 aMinor, PRInt32 aRelease, PRInt32 aBuild, PRInt32* aReturn) { return _to##CompareVersion(aRegName, aMajor, aMinor, aRelease, aBuild, aReturn); } \
|
||||
NS_IMETHOD CompareVersion(const nsString& aRegName, const nsString& aVersion, PRInt32* aReturn) { return _to##CompareVersion(aRegName, aVersion, aReturn); } \
|
||||
NS_IMETHOD CompareVersion(const nsString& aRegName, nsIDOMInstallVersion* aVersion, PRInt32* aReturn) { return _to##CompareVersion(aRegName, aVersion, aReturn); } \
|
||||
NS_IMETHOD GetVersion(const nsString& component, nsString& version); { return _to##GetVersion(component, version); } \
|
||||
|
||||
|
||||
extern nsresult NS_InitInstallTriggerGlobalClass(nsIScriptContext *aContext, void **aPrototype);
|
||||
|
|
|
@ -395,6 +395,43 @@ nsInstallTrigger::CompareVersion(const nsString& aRegName, nsIDOMInstallVersion*
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsInstallTrigger::GetVersion(const nsString& component, nsString& version)
|
||||
{
|
||||
PRBool enabled;
|
||||
|
||||
UpdateEnabled(&enabled);
|
||||
if (!enabled)
|
||||
return NS_OK;
|
||||
|
||||
VERSION cVersion;
|
||||
char* tempCString;
|
||||
REGERR status;
|
||||
|
||||
tempCString = component.ToNewCString();
|
||||
|
||||
status = VR_GetVersion( tempCString, &cVersion );
|
||||
|
||||
version.SetString("");
|
||||
|
||||
/* if we got the version */
|
||||
if ( status == REGERR_OK && VR_ValidateComponent( tempCString ) == REGERR_OK)
|
||||
{
|
||||
nsInstallVersion regNameVersion;
|
||||
|
||||
regNameVersion.Init(cVersion.major,
|
||||
cVersion.minor,
|
||||
cVersion.release,
|
||||
cVersion.build);
|
||||
|
||||
regNameVersion.ToString(version);
|
||||
}
|
||||
|
||||
if (tempCString)
|
||||
delete [] tempCString;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
// this will take a nsIURI, and create a temporary file. If it is local, we just us it.
|
||||
|
|
|
@ -42,6 +42,7 @@ class nsInstallTrigger: public nsIScriptObjectOwner, public nsIDOMInstallTrigger
|
|||
NS_IMETHOD CompareVersion(const nsString& aRegName, PRInt32 aMajor, PRInt32 aMinor, PRInt32 aRelease, PRInt32 aBuild, PRInt32* aReturn);
|
||||
NS_IMETHOD CompareVersion(const nsString& aRegName, const nsString& aVersion, PRInt32* aReturn);
|
||||
NS_IMETHOD CompareVersion(const nsString& aRegName, nsIDOMInstallVersion* aVersion, PRInt32* aReturn);
|
||||
NS_IMETHOD GetVersion(const nsString& component, nsString& version);
|
||||
|
||||
|
||||
private:
|
||||
|
|
|
@ -488,6 +488,37 @@ InstallTriggerGlobalCompareVersion(JSContext *cx, JSObject *obj, uintN argc, jsv
|
|||
return JS_TRUE;
|
||||
}
|
||||
|
||||
//
|
||||
// Native method GetVersion
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
InstallTriggerGlobalGetVersion(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMInstallTriggerGlobal *nativeThis = (nsIDOMInstallTriggerGlobal*)JS_GetPrivate(cx, obj);
|
||||
|
||||
nsAutoString regname;
|
||||
nsAutoString version;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
if (nsnull == nativeThis && (JS_FALSE == CreateNativeObject(cx, obj, &nativeThis)) )
|
||||
return JS_FALSE;
|
||||
|
||||
// get the registry name argument
|
||||
ConvertJSValToStr(regname, cx, argv[0]);
|
||||
|
||||
if(NS_OK != nativeThis->GetVersion(regname, version))
|
||||
{
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
if(version.Equals(""))
|
||||
*rval = JSVAL_NULL;
|
||||
else
|
||||
ConvertStrToJSVal(version, cx, rval);
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
|
@ -516,6 +547,7 @@ static JSFunctionSpec InstallTriggerGlobalMethods[] =
|
|||
{"StartSoftwareUpdate", InstallTriggerGlobalStartSoftwareUpdate, 2},
|
||||
{"ConditionalSoftwareUpdate", InstallTriggerGlobalConditionalSoftwareUpdate, 5},
|
||||
{"CompareVersion", InstallTriggerGlobalCompareVersion, 5},
|
||||
{"GetVersion", InstallTriggerGlobalGetVersion, 2},
|
||||
{0}
|
||||
};
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче