зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1337910 - Notify observers from Gecko event queue; r=snorp
Call NotifyObservers from the Gecko event queue instead of the Android event queue, to better support Promises in notified JS code.
This commit is contained in:
Родитель
3a24d6364c
Коммит
3f746133a9
|
@ -254,7 +254,7 @@ public class GeckoAppShell
|
|||
@WrapForJNI(calledFrom = "gecko")
|
||||
public static native void syncNotifyObservers(String topic, String data);
|
||||
|
||||
@WrapForJNI(stubName = "NotifyObservers", dispatchTo = "gecko")
|
||||
@WrapForJNI(stubName = "NotifyObservers", dispatchTo = "proxy")
|
||||
private static native void nativeNotifyObservers(String topic, String data);
|
||||
|
||||
@RobocopTarget
|
||||
|
|
|
@ -1520,7 +1520,7 @@ public:
|
|||
static const mozilla::jni::CallingThread callingThread =
|
||||
mozilla::jni::CallingThread::ANY;
|
||||
static const mozilla::jni::DispatchTarget dispatchTarget =
|
||||
mozilla::jni::DispatchTarget::GECKO;
|
||||
mozilla::jni::DispatchTarget::PROXY;
|
||||
};
|
||||
|
||||
struct NotifyAlertListener_t {
|
||||
|
|
|
@ -259,6 +259,13 @@ public:
|
|||
NotifyObservers(aTopic, aData);
|
||||
}
|
||||
|
||||
template<typename Functor>
|
||||
static void OnNativeCall(Functor&& aCall)
|
||||
{
|
||||
MOZ_ASSERT(aCall.IsTarget(&NotifyObservers));
|
||||
NS_DispatchToMainThread(NS_NewRunnableFunction(mozilla::Move(aCall)));
|
||||
}
|
||||
|
||||
static void NotifyObservers(jni::String::Param aTopic,
|
||||
jni::String::Param aData)
|
||||
{
|
||||
|
|
Загрузка…
Ссылка в новой задаче