зеркало из https://github.com/mozilla/gecko-dev.git
Bug 811414 - nsISettingsServiceCallback shouldn't use [implicit_jscontext]. r=bholley
This commit is contained in:
Родитель
bdac5bc9bf
Коммит
c88b6950ec
|
@ -195,7 +195,7 @@ class BluetoothService::StartupTask : public nsISettingsServiceCallback
|
||||||
public:
|
public:
|
||||||
NS_DECL_ISUPPORTS
|
NS_DECL_ISUPPORTS
|
||||||
|
|
||||||
NS_IMETHOD Handle(const nsAString& aName, const jsval& aResult, JSContext* aCx)
|
NS_IMETHOD Handle(const nsAString& aName, const jsval& aResult)
|
||||||
{
|
{
|
||||||
MOZ_ASSERT(NS_IsMainThread());
|
MOZ_ASSERT(NS_IsMainThread());
|
||||||
|
|
||||||
|
@ -213,7 +213,7 @@ public:
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHOD HandleError(const nsAString& aName, JSContext* aCx)
|
NS_IMETHOD HandleError(const nsAString& aName)
|
||||||
{
|
{
|
||||||
NS_WARNING("Unable to get value for '" BLUETOOTH_ENABLED_SETTING "'");
|
NS_WARNING("Unable to get value for '" BLUETOOTH_ENABLED_SETTING "'");
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
|
|
|
@ -4,12 +4,10 @@
|
||||||
|
|
||||||
#include "domstubs.idl"
|
#include "domstubs.idl"
|
||||||
|
|
||||||
[scriptable, uuid(83d67430-8516-11e1-b0c4-0800200c9a66)]
|
[scriptable, uuid(aad47850-2e87-11e2-81c1-0800200c9a66)]
|
||||||
interface nsISettingsServiceCallback : nsISupports
|
interface nsISettingsServiceCallback : nsISupports
|
||||||
{
|
{
|
||||||
[implicit_jscontext]
|
|
||||||
void handle(in DOMString aName, in jsval aResult);
|
void handle(in DOMString aName, in jsval aResult);
|
||||||
[implicit_jscontext]
|
|
||||||
void handleError(in DOMString aErrorMessage);
|
void handleError(in DOMString aErrorMessage);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,7 @@ public:
|
||||||
MOZ_COUNT_DTOR(GeolocationSettingsCallback);
|
MOZ_COUNT_DTOR(GeolocationSettingsCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHOD Handle(const nsAString& aName, const jsval& aResult, JSContext* aCx)
|
NS_IMETHOD Handle(const nsAString& aName, const jsval& aResult)
|
||||||
{
|
{
|
||||||
MOZ_ASSERT(NS_IsMainThread());
|
MOZ_ASSERT(NS_IsMainThread());
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ public:
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHOD HandleError(const nsAString& aName, JSContext* aCx)
|
NS_IMETHOD HandleError(const nsAString& aName)
|
||||||
{
|
{
|
||||||
NS_WARNING("Unable to get value for '" GEO_SETINGS_ENABLED "'");
|
NS_WARNING("Unable to get value for '" GEO_SETINGS_ENABLED "'");
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ public:
|
||||||
|
|
||||||
SettingsServiceCallback() {}
|
SettingsServiceCallback() {}
|
||||||
|
|
||||||
NS_IMETHOD Handle(const nsAString &aName, const JS::Value &aResult, JSContext *aContext) {
|
NS_IMETHOD Handle(const nsAString &aName, const JS::Value &aResult) {
|
||||||
if (JSVAL_IS_INT(aResult)) {
|
if (JSVAL_IS_INT(aResult)) {
|
||||||
int32_t mode = JSVAL_TO_INT(aResult);
|
int32_t mode = JSVAL_TO_INT(aResult);
|
||||||
SetAutoMounterMode(mode);
|
SetAutoMounterMode(mode);
|
||||||
|
@ -43,7 +43,7 @@ public:
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHOD HandleError(const nsAString &aName, JSContext *aContext) {
|
NS_IMETHOD HandleError(const nsAString &aName) {
|
||||||
ERR("SettingsCallback::HandleError: %s\n", NS_LossyConvertUTF16toASCII(aName).get());
|
ERR("SettingsCallback::HandleError: %s\n", NS_LossyConvertUTF16toASCII(aName).get());
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include "nsJSUtils.h"
|
#include "nsJSUtils.h"
|
||||||
#include "nsServiceManagerUtils.h"
|
#include "nsServiceManagerUtils.h"
|
||||||
#include "nsThreadUtils.h"
|
#include "nsThreadUtils.h"
|
||||||
|
#include "nsContentUtils.h"
|
||||||
|
|
||||||
#ifdef AGPS_TYPE_INVALID
|
#ifdef AGPS_TYPE_INVALID
|
||||||
#define AGPS_HAVE_DUAL_APN
|
#define AGPS_HAVE_DUAL_APN
|
||||||
|
@ -659,10 +660,13 @@ GonkGPSGeolocationProvider::ReceiveDataCallList(nsIRILDataCallInfo** aDataCalls,
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
GonkGPSGeolocationProvider::Handle(const nsAString& aName,
|
GonkGPSGeolocationProvider::Handle(const nsAString& aName,
|
||||||
const JS::Value& aResult,
|
const JS::Value& aResult)
|
||||||
JSContext* cx)
|
|
||||||
{
|
{
|
||||||
if (aName.EqualsLiteral("ril.supl.apn")) {
|
if (aName.EqualsLiteral("ril.supl.apn")) {
|
||||||
|
JSContext *cx = nsContentUtils::GetSafeJSContext();
|
||||||
|
NS_ENSURE_TRUE(cx, NS_OK);
|
||||||
|
JSAutoRequest ar(cx);
|
||||||
|
JSAutoCompartment ac(cx, JSVAL_TO_OBJECT(aResult));
|
||||||
// When we get the APN, we attempt to call data_call_open of AGPS.
|
// When we get the APN, we attempt to call data_call_open of AGPS.
|
||||||
if (aResult.isString()) {
|
if (aResult.isString()) {
|
||||||
nsDependentJSString apn;
|
nsDependentJSString apn;
|
||||||
|
@ -676,8 +680,7 @@ GonkGPSGeolocationProvider::Handle(const nsAString& aName,
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
GonkGPSGeolocationProvider::HandleError(const nsAString& aErrorMessage,
|
GonkGPSGeolocationProvider::HandleError(const nsAString& aErrorMessage)
|
||||||
JSContext* cx)
|
|
||||||
{
|
{
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#include "nsString.h"
|
#include "nsString.h"
|
||||||
#include "TimeZoneSettingObserver.h"
|
#include "TimeZoneSettingObserver.h"
|
||||||
#include "xpcpublic.h"
|
#include "xpcpublic.h"
|
||||||
|
#include "nsContentUtils.h"
|
||||||
|
|
||||||
#undef LOG
|
#undef LOG
|
||||||
#define LOG(args...) __android_log_print(ANDROID_LOG_INFO, "Time Zone Setting" , ## args)
|
#define LOG(args...) __android_log_print(ANDROID_LOG_INFO, "Time Zone Setting" , ## args)
|
||||||
|
@ -50,7 +51,13 @@ public:
|
||||||
|
|
||||||
TimeZoneSettingCb() {}
|
TimeZoneSettingCb() {}
|
||||||
|
|
||||||
NS_IMETHOD Handle(const nsAString &aName, const JS::Value &aResult, JSContext *aContext) {
|
NS_IMETHOD Handle(const nsAString &aName, const JS::Value &aResult) {
|
||||||
|
|
||||||
|
JSContext *cx = nsContentUtils::GetSafeJSContext();
|
||||||
|
NS_ENSURE_TRUE(cx, NS_OK);
|
||||||
|
JSAutoRequest ar(cx);
|
||||||
|
JSAutoCompartment ac(cx, JSVAL_TO_OBJECT(aResult));
|
||||||
|
|
||||||
// If we don't have time.timezone value in the settings, we need
|
// If we don't have time.timezone value in the settings, we need
|
||||||
// to initialize the settings based on the current system timezone
|
// to initialize the settings based on the current system timezone
|
||||||
// to make settings consistent with system. This usually happens
|
// to make settings consistent with system. This usually happens
|
||||||
|
@ -59,7 +66,7 @@ public:
|
||||||
// Get the current system timezone and convert it to a JS string.
|
// Get the current system timezone and convert it to a JS string.
|
||||||
nsCString curTimezone = hal::GetTimezone();
|
nsCString curTimezone = hal::GetTimezone();
|
||||||
NS_ConvertUTF8toUTF16 utf16Str(curTimezone);
|
NS_ConvertUTF8toUTF16 utf16Str(curTimezone);
|
||||||
JSString *jsStr = JS_NewUCStringCopyN(aContext, utf16Str.get(), utf16Str.Length());
|
JSString *jsStr = JS_NewUCStringCopyN(cx, utf16Str.get(), utf16Str.Length());
|
||||||
|
|
||||||
// Set the settings based on the current system timezone.
|
// Set the settings based on the current system timezone.
|
||||||
nsCOMPtr<nsISettingsServiceLock> lock;
|
nsCOMPtr<nsISettingsServiceLock> lock;
|
||||||
|
@ -76,13 +83,13 @@ public:
|
||||||
|
|
||||||
// Set the system timezone based on the current settings.
|
// Set the system timezone based on the current settings.
|
||||||
if (aResult.isString()) {
|
if (aResult.isString()) {
|
||||||
return TimeZoneSettingObserver::SetTimeZone(aResult, aContext);
|
return TimeZoneSettingObserver::SetTimeZone(aResult, cx);
|
||||||
}
|
}
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHOD HandleError(const nsAString &aName, JSContext *aContext) {
|
NS_IMETHOD HandleError(const nsAString &aName) {
|
||||||
ERR("TimeZoneSettingCb::HandleError: %s\n", NS_LossyConvertUTF16toASCII(aName).get());
|
ERR("TimeZoneSettingCb::HandleError: %s\n", NS_LossyConvertUTF16toASCII(aName).get());
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ public:
|
||||||
|
|
||||||
SettingsServiceCallback() { }
|
SettingsServiceCallback() { }
|
||||||
|
|
||||||
NS_IMETHOD Handle(const nsAString &name, const JS::Value &result, JSContext *cx) {
|
NS_IMETHOD Handle(const nsAString &name, const JS::Value &result) {
|
||||||
if (callbackCount == 9) {
|
if (callbackCount == 9) {
|
||||||
CHECK(JSVAL_IS_BOOLEAN(result));
|
CHECK(JSVAL_IS_BOOLEAN(result));
|
||||||
CHECK(JSVAL_TO_BOOLEAN(result) == true);
|
CHECK(JSVAL_TO_BOOLEAN(result) == true);
|
||||||
|
@ -87,7 +87,7 @@ public:
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
};
|
};
|
||||||
|
|
||||||
NS_IMETHOD HandleError(const nsAString &name, JSContext *cx) {
|
NS_IMETHOD HandleError(const nsAString &name) {
|
||||||
fprintf(stderr, "HANDLE Error! %s\n", NS_LossyConvertUTF16toASCII(name).get());
|
fprintf(stderr, "HANDLE Error! %s\n", NS_LossyConvertUTF16toASCII(name).get());
|
||||||
errors++;
|
errors++;
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче