widget/android/fennec/FennecJNIWrappers.h
author Jim Chen <nchen@mozilla.com>
Mon, 15 May 2017 23:11:17 -0400
changeset 406671 06142f9787e7643cae17dced089d4ebd37ec1bbc
parent 402357 81de9d1439b0e352729142f6aa2914674073da03
child 406672 8f9d8749eb5ef4d9d156426435c5f17a20b75601
permissions -rw-r--r--
Bug 1363567 - 1. Remove addPluginView/removePluginView methods; r=rbarker Remove the addPluginView and removePluginView methods from GeckoInterface. Instead, move the JNI calls directly to GeckoApp itself. GeckoApp then uses GeckoActivityMonitor to find the current activity, instead of using GeckoAppShell.getGeckoInterface(). MozReview-Commit-ID: 7ym8kuElADV

// GENERATED CODE
// Generated by the Java program at /build/annotationProcessors at compile time
// from annotations on Java methods. To update, change the annotations on the
// corresponding Java methods and rerun the build. Manually updating this file
// will cause your build to fail.

#ifndef FennecJNIWrappers_h
#define FennecJNIWrappers_h

#include "mozilla/jni/Refs.h"

namespace mozilla {
namespace java {

class ANRReporter : public mozilla::jni::ObjectBase<ANRReporter>
{
public:
    static const char name[];

    explicit ANRReporter(const Context& ctx) : ObjectBase<ANRReporter>(ctx) {}

    struct GetNativeStack_t {
        typedef ANRReporter Owner;
        typedef mozilla::jni::String::LocalRef ReturnType;
        typedef mozilla::jni::String::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getNativeStack";
        static constexpr char signature[] =
                "()Ljava/lang/String;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    struct ReleaseNativeStack_t {
        typedef ANRReporter Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "releaseNativeStack";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    struct RequestNativeStack_t {
        typedef ANRReporter Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                bool> Args;
        static constexpr char name[] = "requestNativeStack";
        static constexpr char signature[] =
                "(Z)Z";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static const mozilla::jni::CallingThread callingThread =
            mozilla::jni::CallingThread::ANY;

    template<class Impl> class Natives;
};

class DownloadsIntegration : public mozilla::jni::ObjectBase<DownloadsIntegration>
{
public:
    static const char name[];

    explicit DownloadsIntegration(const Context& ctx) : ObjectBase<DownloadsIntegration>(ctx) {}

    struct GetTemporaryDownloadDirectory_t {
        typedef DownloadsIntegration Owner;
        typedef mozilla::jni::String::LocalRef ReturnType;
        typedef mozilla::jni::String::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getTemporaryDownloadDirectory";
        static constexpr char signature[] =
                "()Ljava/lang/String;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::GECKO;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static auto GetTemporaryDownloadDirectory() -> mozilla::jni::String::LocalRef;

    struct ScanMedia_t {
        typedef DownloadsIntegration Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "scanMedia";
        static constexpr char signature[] =
                "(Ljava/lang/String;Ljava/lang/String;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::GECKO;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static auto ScanMedia(mozilla::jni::String::Param, mozilla::jni::String::Param) -> void;

    static const mozilla::jni::CallingThread callingThread =
            mozilla::jni::CallingThread::GECKO;

};

class GeckoApp : public mozilla::jni::ObjectBase<GeckoApp>
{
public:
    static const char name[];

    explicit GeckoApp(const Context& ctx) : ObjectBase<GeckoApp>(ctx) {}

    struct AddPluginView_t {
        typedef GeckoApp Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "addPluginView";
        static constexpr char signature[] =
                "(Landroid/view/View;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::GECKO;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static auto AddPluginView(mozilla::jni::Object::Param) -> void;

    struct RemovePluginView_t {
        typedef GeckoApp Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "removePluginView";
        static constexpr char signature[] =
                "(Landroid/view/View;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::GECKO;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static auto RemovePluginView(mozilla::jni::Object::Param) -> void;

    static const mozilla::jni::CallingThread callingThread =
            mozilla::jni::CallingThread::ANY;

    template<class Impl> class Natives;
};

class GeckoJavaSampler : public mozilla::jni::ObjectBase<GeckoJavaSampler>
{
public:
    static const char name[];

    explicit GeckoJavaSampler(const Context& ctx) : ObjectBase<GeckoJavaSampler>(ctx) {}

    struct GetFrameName_t {
        typedef GeckoJavaSampler Owner;
        typedef mozilla::jni::String::LocalRef ReturnType;
        typedef mozilla::jni::String::Param SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "getFrameName";
        static constexpr char signature[] =
                "(III)Ljava/lang/String;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static auto GetFrameName(int32_t, int32_t, int32_t) -> mozilla::jni::String::LocalRef;

    struct GetProfilerTime_t {
        typedef GeckoJavaSampler Owner;
        typedef double ReturnType;
        typedef double SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getProfilerTime";
        static constexpr char signature[] =
                "()D";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    struct GetSampleTime_t {
        typedef GeckoJavaSampler Owner;
        typedef double ReturnType;
        typedef double SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "getSampleTime";
        static constexpr char signature[] =
                "(II)D";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static auto GetSampleTime(int32_t, int32_t) -> double;

    struct GetThreadName_t {
        typedef GeckoJavaSampler Owner;
        typedef mozilla::jni::String::LocalRef ReturnType;
        typedef mozilla::jni::String::Param SetterType;
        typedef mozilla::jni::Args<
                int32_t> Args;
        static constexpr char name[] = "getThreadName";
        static constexpr char signature[] =
                "(I)Ljava/lang/String;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static auto GetThreadName(int32_t) -> mozilla::jni::String::LocalRef;

    struct Pause_t {
        typedef GeckoJavaSampler Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "pause";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static auto Pause() -> void;

    struct Start_t {
        typedef GeckoJavaSampler Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "start";
        static constexpr char signature[] =
                "(II)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static auto Start(int32_t, int32_t) -> void;

    struct Stop_t {
        typedef GeckoJavaSampler Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "stop";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static auto Stop() -> void;

    struct Unpause_t {
        typedef GeckoJavaSampler Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "unpause";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static auto Unpause() -> void;

    static const mozilla::jni::CallingThread callingThread =
            mozilla::jni::CallingThread::ANY;

    template<class Impl> class Natives;
};

class MemoryMonitor : public mozilla::jni::ObjectBase<MemoryMonitor>
{
public:
    static const char name[];

    explicit MemoryMonitor(const Context& ctx) : ObjectBase<MemoryMonitor>(ctx) {}

    struct DispatchMemoryPressure_t {
        typedef MemoryMonitor Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "dispatchMemoryPressure";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::UI;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static const mozilla::jni::CallingThread callingThread =
            mozilla::jni::CallingThread::UI;

    template<class Impl> class Natives;
};

class PresentationMediaPlayerManager : public mozilla::jni::ObjectBase<PresentationMediaPlayerManager>
{
public:
    static const char name[];

    explicit PresentationMediaPlayerManager(const Context& ctx) : ObjectBase<PresentationMediaPlayerManager>(ctx) {}

    struct AddPresentationSurface_t {
        typedef PresentationMediaPlayerManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param,
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "addPresentationSurface";
        static constexpr char signature[] =
                "(Lorg/mozilla/gecko/GeckoView;Landroid/view/Surface;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::UI;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    struct InvalidateAndScheduleComposite_t {
        typedef PresentationMediaPlayerManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "invalidateAndScheduleComposite";
        static constexpr char signature[] =
                "(Lorg/mozilla/gecko/GeckoView;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::UI;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    struct RemovePresentationSurface_t {
        typedef PresentationMediaPlayerManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "removePresentationSurface";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::UI;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static const mozilla::jni::CallingThread callingThread =
            mozilla::jni::CallingThread::UI;

    template<class Impl> class Natives;
};

class Telemetry : public mozilla::jni::ObjectBase<Telemetry>
{
public:
    static const char name[];

    explicit Telemetry(const Context& ctx) : ObjectBase<Telemetry>(ctx) {}

    struct AddHistogram_t {
        typedef Telemetry Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                int32_t> Args;
        static constexpr char name[] = "nativeAddHistogram";
        static constexpr char signature[] =
                "(Ljava/lang/String;I)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::GECKO;
    };

    struct AddKeyedHistogram_t {
        typedef Telemetry Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                int32_t> Args;
        static constexpr char name[] = "nativeAddKeyedHistogram";
        static constexpr char signature[] =
                "(Ljava/lang/String;Ljava/lang/String;I)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::GECKO;
    };

    struct AddUIEvent_t {
        typedef Telemetry Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                int64_t,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "nativeAddUiEvent";
        static constexpr char signature[] =
                "(Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::GECKO;
    };

    struct StartUISession_t {
        typedef Telemetry Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                int64_t> Args;
        static constexpr char name[] = "nativeStartUiSession";
        static constexpr char signature[] =
                "(Ljava/lang/String;J)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::GECKO;
    };

    struct StopUISession_t {
        typedef Telemetry Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                int64_t> Args;
        static constexpr char name[] = "nativeStopUiSession";
        static constexpr char signature[] =
                "(Ljava/lang/String;Ljava/lang/String;J)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::GECKO;
    };

    static const mozilla::jni::CallingThread callingThread =
            mozilla::jni::CallingThread::ANY;

    template<class Impl> class Natives;
};

class ThumbnailHelper : public mozilla::jni::ObjectBase<ThumbnailHelper>
{
public:
    static const char name[];

    explicit ThumbnailHelper(const Context& ctx) : ObjectBase<ThumbnailHelper>(ctx) {}

    struct NotifyThumbnail_t {
        typedef ThumbnailHelper Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::ByteBuffer::Param,
                mozilla::jni::Object::Param,
                bool,
                bool> Args;
        static constexpr char name[] = "notifyThumbnail";
        static constexpr char signature[] =
                "(Ljava/nio/ByteBuffer;Lorg/mozilla/gecko/Tab;ZZ)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::GECKO;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static auto NotifyThumbnail(mozilla::jni::ByteBuffer::Param, mozilla::jni::Object::Param, bool, bool) -> void;

    struct RequestThumbnail_t {
        typedef ThumbnailHelper Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::ByteBuffer::Param,
                mozilla::jni::Object::Param,
                int32_t,
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "requestThumbnailLocked";
        static constexpr char signature[] =
                "(Ljava/nio/ByteBuffer;Lorg/mozilla/gecko/Tab;III)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::ANY;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::PROXY;
    };

    static const mozilla::jni::CallingThread callingThread =
            mozilla::jni::CallingThread::ANY;

    template<class Impl> class Natives;
};

class AudioFocusAgent : public mozilla::jni::ObjectBase<AudioFocusAgent>
{
public:
    static const char name[];

    explicit AudioFocusAgent(const Context& ctx) : ObjectBase<AudioFocusAgent>(ctx) {}

    struct NotifyStartedPlaying_t {
        typedef AudioFocusAgent Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "notifyStartedPlaying";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::GECKO;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static auto NotifyStartedPlaying() -> void;

    struct NotifyStoppedPlaying_t {
        typedef AudioFocusAgent Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "notifyStoppedPlaying";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::GECKO;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static auto NotifyStoppedPlaying() -> void;

    static const mozilla::jni::CallingThread callingThread =
            mozilla::jni::CallingThread::GECKO;

};

class Restrictions : public mozilla::jni::ObjectBase<Restrictions>
{
public:
    static const char name[];

    explicit Restrictions(const Context& ctx) : ObjectBase<Restrictions>(ctx) {}

    struct IsAllowed_t {
        typedef Restrictions Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "isAllowed";
        static constexpr char signature[] =
                "(ILjava/lang/String;)Z";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::GECKO;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static auto IsAllowed(int32_t, mozilla::jni::String::Param) -> bool;

    struct IsUserRestricted_t {
        typedef Restrictions Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "isUserRestricted";
        static constexpr char signature[] =
                "()Z";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
        static const mozilla::jni::CallingThread callingThread =
                mozilla::jni::CallingThread::GECKO;
        static const mozilla::jni::DispatchTarget dispatchTarget =
                mozilla::jni::DispatchTarget::CURRENT;
    };

    static auto IsUserRestricted() -> bool;

    static const mozilla::jni::CallingThread callingThread =
            mozilla::jni::CallingThread::GECKO;

};

} /* java */
} /* mozilla */
#endif // FennecJNIWrappers_h