widget/android/GeneratedJNIWrappers.h
author Mike Hommey <mh+mozilla@glandium.org>
Fri, 18 Mar 2016 18:33:18 +0900
changeset 327592 48a94777837d09a7a4dad6290738d56fc0d36f8d
parent 326531 64aa2a8a7e73f5d7e49d1ab355b6ee6d38a2e627
child 327835 bba3d09859d65d4123d912878b4a0d2ac776c252
permissions -rw-r--r--
Bug 1257468 - Replace tests on BUILDING_JS with tests on MOZ_BUILD_APP==js. r=nalexander Now that MOZ_BUILD_APP is set to js when building js/src, we can distinguish those builds with MOZ_BUILD_APP==js instead of BUILDING_JS. Consequently, remove BUILDING_JS.

// 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 GeneratedJNIWrappers_h
#define GeneratedJNIWrappers_h

#include "mozilla/jni/Refs.h"

namespace mozilla {
namespace widget {

class ANRReporter : public mozilla::jni::ObjectBase<ANRReporter, jobject>
{
public:
    explicit ANRReporter(const Context& ctx) : ObjectBase<ANRReporter, jobject>(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;
    };

    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;
    };

    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 bool isMultithreaded = false;

    template<class Impl> class Natives;
};

class AlarmReceiver : public mozilla::jni::ObjectBase<AlarmReceiver, jobject>
{
public:
    explicit AlarmReceiver(const Context& ctx) : ObjectBase<AlarmReceiver, jobject>(ctx) {}

    struct NotifyAlarmFired_t {
        typedef AlarmReceiver Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "notifyAlarmFired";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static const bool isMultithreaded = false;

    template<class Impl> class Natives;
};

class DownloadsIntegration : public mozilla::jni::ObjectBase<DownloadsIntegration, jobject>
{
public:
    explicit DownloadsIntegration(const Context& ctx) : ObjectBase<DownloadsIntegration, jobject>(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 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 auto ScanMedia(mozilla::jni::String::Param, mozilla::jni::String::Param) -> void;

    static const bool isMultithreaded = false;

};

class GeckoAppShell : public mozilla::jni::ObjectBase<GeckoAppShell, jobject>
{
public:
    explicit GeckoAppShell(const Context& ctx) : ObjectBase<GeckoAppShell, jobject>(ctx) {}

    struct AcknowledgeEvent_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "acknowledgeEvent";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto AcknowledgeEvent() -> void;

    struct AddPluginViewWrapper_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param,
                float,
                float,
                float,
                float,
                bool> Args;
        static constexpr char name[] = "addPluginView";
        static constexpr char signature[] =
                "(Landroid/view/View;FFFFZ)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto AddPluginViewWrapper(mozilla::jni::Object::Param, float, float, float, float, bool) -> void;

    struct AlertsProgressListener_OnProgress_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                int64_t,
                int64_t,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "alertsProgressListener_OnProgress";
        static constexpr char signature[] =
                "(Ljava/lang/String;JJLjava/lang/String;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct CancelVibrate_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "cancelVibrate";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto CancelVibrate() -> void;

    struct CheckURIVisited_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "checkUriVisited";
        static constexpr char signature[] =
                "(Ljava/lang/String;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct CloseCamera_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "closeCamera";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto CloseCamera() -> void;

    struct CloseNotification_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "closeNotification";
        static constexpr char signature[] =
                "(Ljava/lang/String;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct ConnectionGetMimeType_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::String::LocalRef ReturnType;
        typedef mozilla::jni::String::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "connectionGetMimeType";
        static constexpr char signature[] =
                "(Ljava/net/URLConnection;)Ljava/lang/String;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto ConnectionGetMimeType(mozilla::jni::Object::Param) -> mozilla::jni::String::LocalRef;

    struct CreateInputStream_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "createInputStream";
        static constexpr char signature[] =
                "(Ljava/net/URLConnection;)Ljava/io/InputStream;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto CreateInputStream(mozilla::jni::Object::Param) -> mozilla::jni::Object::LocalRef;

    struct CreateMessageCursorWrapper_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int64_t,
                int64_t,
                mozilla::jni::ObjectArray::Param,
                int32_t,
                mozilla::jni::String::Param,
                bool,
                bool,
                bool,
                int64_t,
                bool,
                int32_t> Args;
        static constexpr char name[] = "createMessageCursor";
        static constexpr char signature[] =
                "(JJ[Ljava/lang/String;ILjava/lang/String;ZZZJZI)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto CreateMessageCursorWrapper(int64_t, int64_t, mozilla::jni::ObjectArray::Param, int32_t, mozilla::jni::String::Param, bool, bool, bool, int64_t, bool, int32_t) -> void;

    struct CreateShortcut_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "createShortcut";
        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 auto CreateShortcut(mozilla::jni::String::Param, mozilla::jni::String::Param) -> void;

    struct CreateThreadCursorWrapper_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t> Args;
        static constexpr char name[] = "createThreadCursor";
        static constexpr char signature[] =
                "(I)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto CreateThreadCursorWrapper(int32_t) -> void;

    struct DeleteMessageWrapper_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "deleteMessage";
        static constexpr char signature[] =
                "(II)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct DisableAlarm_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "disableAlarm";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto DisableAlarm() -> void;

    struct DisableBatteryNotifications_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "disableBatteryNotifications";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto DisableBatteryNotifications() -> void;

    struct DisableNetworkNotifications_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "disableNetworkNotifications";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto DisableNetworkNotifications() -> void;

    struct DisableScreenOrientationNotifications_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "disableScreenOrientationNotifications";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto DisableScreenOrientationNotifications() -> void;

    struct DisableSensor_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t> Args;
        static constexpr char name[] = "disableSensor";
        static constexpr char signature[] =
                "(I)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto DisableSensor(int32_t) -> void;

    struct EnableBatteryNotifications_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "enableBatteryNotifications";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto EnableBatteryNotifications() -> void;

    struct EnableLocation_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                bool> Args;
        static constexpr char name[] = "enableLocation";
        static constexpr char signature[] =
                "(Z)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto EnableLocation(bool) -> void;

    struct EnableLocationHighAccuracy_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                bool> Args;
        static constexpr char name[] = "enableLocationHighAccuracy";
        static constexpr char signature[] =
                "(Z)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto EnableLocationHighAccuracy(bool) -> void;

    struct EnableNetworkNotifications_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "enableNetworkNotifications";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto EnableNetworkNotifications() -> void;

    struct EnableScreenOrientationNotifications_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "enableScreenOrientationNotifications";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto EnableScreenOrientationNotifications() -> void;

    struct EnableSensor_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t> Args;
        static constexpr char name[] = "enableSensor";
        static constexpr char signature[] =
                "(I)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto EnableSensor(int32_t) -> void;

    struct GamepadAdded_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "gamepadAdded";
        static constexpr char signature[] =
                "(II)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct GetConnection_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getConnection";
        static constexpr char signature[] =
                "(Ljava/lang/String;)Ljava/net/URLConnection;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetConnection(mozilla::jni::String::Param) -> mozilla::jni::Object::LocalRef;

    struct GetContext_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getContext";
        static constexpr char signature[] =
                "()Landroid/content/Context;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetContext() -> mozilla::jni::Object::LocalRef;

    struct GetCurrentBatteryInformationWrapper_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::DoubleArray::LocalRef ReturnType;
        typedef mozilla::jni::DoubleArray::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getCurrentBatteryInformation";
        static constexpr char signature[] =
                "()[D";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetCurrentBatteryInformationWrapper() -> mozilla::jni::DoubleArray::LocalRef;

    struct GetCurrentNetworkInformationWrapper_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::DoubleArray::LocalRef ReturnType;
        typedef mozilla::jni::DoubleArray::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getCurrentNetworkInformation";
        static constexpr char signature[] =
                "()[D";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetCurrentNetworkInformationWrapper() -> mozilla::jni::DoubleArray::LocalRef;

    struct GetDensity_t {
        typedef GeckoAppShell Owner;
        typedef float ReturnType;
        typedef float SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getDensity";
        static constexpr char signature[] =
                "()F";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetDensity() -> float;

    struct GetDpiWrapper_t {
        typedef GeckoAppShell Owner;
        typedef int32_t ReturnType;
        typedef int32_t SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getDpi";
        static constexpr char signature[] =
                "()I";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetDpiWrapper() -> int32_t;

    struct GetExtensionFromMimeTypeWrapper_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::String::LocalRef ReturnType;
        typedef mozilla::jni::String::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getExtensionFromMimeType";
        static constexpr char signature[] =
                "(Ljava/lang/String;)Ljava/lang/String;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct GetExternalPublicDirectory_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::String::LocalRef ReturnType;
        typedef mozilla::jni::String::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getExternalPublicDirectory";
        static constexpr char signature[] =
                "(Ljava/lang/String;)Ljava/lang/String;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct GetHWDecoderCapability_t {
        typedef GeckoAppShell Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getHWDecoderCapability";
        static constexpr char signature[] =
                "()Z";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetHWDecoderCapability() -> bool;

    struct GetHWEncoderCapability_t {
        typedef GeckoAppShell Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getHWEncoderCapability";
        static constexpr char signature[] =
                "()Z";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetHWEncoderCapability() -> bool;

    struct GetHandlersForMimeTypeWrapper_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::ObjectArray::LocalRef ReturnType;
        typedef mozilla::jni::ObjectArray::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getHandlersForMimeType";
        static constexpr char signature[] =
                "(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetHandlersForMimeTypeWrapper(mozilla::jni::String::Param, mozilla::jni::String::Param) -> mozilla::jni::ObjectArray::LocalRef;

    struct GetHandlersForURLWrapper_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::ObjectArray::LocalRef ReturnType;
        typedef mozilla::jni::ObjectArray::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getHandlersForURL";
        static constexpr char signature[] =
                "(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetHandlersForURLWrapper(mozilla::jni::String::Param, mozilla::jni::String::Param) -> mozilla::jni::ObjectArray::LocalRef;

    struct GetIconForExtensionWrapper_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::ByteArray::LocalRef ReturnType;
        typedef mozilla::jni::ByteArray::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                int32_t> Args;
        static constexpr char name[] = "getIconForExtension";
        static constexpr char signature[] =
                "(Ljava/lang/String;I)[B";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetIconForExtensionWrapper(mozilla::jni::String::Param, int32_t) -> mozilla::jni::ByteArray::LocalRef;

    struct GetMaxTouchPoints_t {
        typedef GeckoAppShell Owner;
        typedef int32_t ReturnType;
        typedef int32_t SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getMaxTouchPoints";
        static constexpr char signature[] =
                "()I";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetMaxTouchPoints() -> int32_t;

    struct GetMessageWrapper_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "getMessage";
        static constexpr char signature[] =
                "(II)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct GetMimeTypeFromExtensionsWrapper_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::String::LocalRef ReturnType;
        typedef mozilla::jni::String::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getMimeTypeFromExtensions";
        static constexpr char signature[] =
                "(Ljava/lang/String;)Ljava/lang/String;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct GetNextMessageWrapper_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t> Args;
        static constexpr char name[] = "getNextMessage";
        static constexpr char signature[] =
                "(I)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetNextMessageWrapper(int32_t) -> void;

    struct GetNextThreadWrapper_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t> Args;
        static constexpr char name[] = "getNextThread";
        static constexpr char signature[] =
                "(I)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetNextThreadWrapper(int32_t) -> void;

    struct GetProxyForURIWrapper_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::String::LocalRef ReturnType;
        typedef mozilla::jni::String::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                int32_t> Args;
        static constexpr char name[] = "getProxyForURI";
        static constexpr char signature[] =
                "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct GetScreenAngle_t {
        typedef GeckoAppShell Owner;
        typedef int32_t ReturnType;
        typedef int32_t SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getScreenAngle";
        static constexpr char signature[] =
                "()I";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetScreenAngle() -> int32_t;

    struct GetScreenDepthWrapper_t {
        typedef GeckoAppShell Owner;
        typedef int32_t ReturnType;
        typedef int32_t SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getScreenDepth";
        static constexpr char signature[] =
                "()I";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetScreenDepthWrapper() -> int32_t;

    struct GetScreenOrientationWrapper_t {
        typedef GeckoAppShell Owner;
        typedef int16_t ReturnType;
        typedef int16_t SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getScreenOrientation";
        static constexpr char signature[] =
                "()S";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetScreenOrientationWrapper() -> int16_t;

    struct GetScreenSize_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getScreenSize";
        static constexpr char signature[] =
                "()Landroid/graphics/Rect;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetScreenSize() -> mozilla::jni::Object::LocalRef;

    struct GetShowPasswordSetting_t {
        typedef GeckoAppShell Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getShowPasswordSetting";
        static constexpr char signature[] =
                "()Z";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetShowPasswordSetting() -> bool;

    struct GetSystemColoursWrapper_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::IntArray::LocalRef ReturnType;
        typedef mozilla::jni::IntArray::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getSystemColors";
        static constexpr char signature[] =
                "()[I";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetSystemColoursWrapper() -> mozilla::jni::IntArray::LocalRef;

    struct HandleGeckoMessageWrapper_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "handleGeckoMessage";
        static constexpr char signature[] =
                "(Lorg/mozilla/gecko/util/NativeJSContainer;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct HandleUncaughtException_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::String::LocalRef ReturnType;
        typedef mozilla::jni::String::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Throwable::Param> Args;
        static constexpr char name[] = "handleUncaughtException";
        static constexpr char signature[] =
                "(Ljava/lang/Throwable;)Ljava/lang/String;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::IGNORE;
    };

    static auto HandleUncaughtException(mozilla::jni::Throwable::Param) -> mozilla::jni::String::LocalRef;

    struct HideProgressDialog_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "hideProgressDialog";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto HideProgressDialog() -> void;

    struct InitCameraWrapper_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::IntArray::LocalRef ReturnType;
        typedef mozilla::jni::IntArray::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                int32_t,
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "initCamera";
        static constexpr char signature[] =
                "(Ljava/lang/String;III)[I";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto InitCameraWrapper(mozilla::jni::String::Param, int32_t, int32_t, int32_t) -> mozilla::jni::IntArray::LocalRef;

    struct IsNetworkLinkKnown_t {
        typedef GeckoAppShell Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "isNetworkLinkKnown";
        static constexpr char signature[] =
                "()Z";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto IsNetworkLinkKnown() -> bool;

    struct IsNetworkLinkUp_t {
        typedef GeckoAppShell Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "isNetworkLinkUp";
        static constexpr char signature[] =
                "()Z";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto IsNetworkLinkUp() -> bool;

    struct IsTablet_t {
        typedef GeckoAppShell Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "isTablet";
        static constexpr char signature[] =
                "()Z";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto IsTablet() -> bool;

    struct KillAnyZombies_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "killAnyZombies";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto KillAnyZombies() -> void;

    struct LoadPluginClass_t {
        typedef GeckoAppShell Owner;
        typedef mozilla::jni::Class::LocalRef ReturnType;
        typedef mozilla::jni::Class::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "loadPluginClass";
        static constexpr char signature[] =
                "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Class;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto LoadPluginClass(mozilla::jni::String::Param, mozilla::jni::String::Param) -> mozilla::jni::Class::LocalRef;

    struct LockScreenOrientation_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t> Args;
        static constexpr char name[] = "lockScreenOrientation";
        static constexpr char signature[] =
                "(I)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto LockScreenOrientation(int32_t) -> void;

    struct MarkMessageRead_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                bool,
                bool,
                int32_t> Args;
        static constexpr char name[] = "markMessageRead";
        static constexpr char signature[] =
                "(IZZI)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto MarkMessageRead(int32_t, bool, bool, int32_t) -> void;

    struct MarkURIVisited_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "markUriVisited";
        static constexpr char signature[] =
                "(Ljava/lang/String;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct MoveTaskToBack_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "moveTaskToBack";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto MoveTaskToBack() -> void;

    struct NetworkLinkType_t {
        typedef GeckoAppShell Owner;
        typedef int32_t ReturnType;
        typedef int32_t SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "networkLinkType";
        static constexpr char signature[] =
                "()I";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto NetworkLinkType() -> int32_t;

    struct NotifyDefaultPrevented_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                bool> Args;
        static constexpr char name[] = "notifyDefaultPrevented";
        static constexpr char signature[] =
                "(Z)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto NotifyDefaultPrevented(bool) -> void;

    struct NotifyWakeLockChanged_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "notifyWakeLockChanged";
        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 auto NotifyWakeLockChanged(mozilla::jni::String::Param, mozilla::jni::String::Param) -> void;

    struct OpenUriExternal_t {
        typedef GeckoAppShell Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "openUriExternal";
        static constexpr char signature[] =
                "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct PerformHapticFeedback_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                bool> Args;
        static constexpr char name[] = "performHapticFeedback";
        static constexpr char signature[] =
                "(Z)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto PerformHapticFeedback(bool) -> void;

    struct RegisterSurfaceTextureFrameListener_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param,
                int32_t> Args;
        static constexpr char name[] = "registerSurfaceTextureFrameListener";
        static constexpr char signature[] =
                "(Ljava/lang/Object;I)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto RegisterSurfaceTextureFrameListener(mozilla::jni::Object::Param, int32_t) -> void;

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

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

    struct RequestUiThreadCallback_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int64_t> Args;
        static constexpr char name[] = "requestUiThreadCallback";
        static constexpr char signature[] =
                "(J)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto RequestUiThreadCallback(int64_t) -> void;

    struct ScheduleRestart_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "scheduleRestart";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto ScheduleRestart() -> void;

    struct SendMessageWrapper_t {
        typedef GeckoAppShell 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[] = "sendMessage";
        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 auto SendMessageWrapper(mozilla::jni::String::Param, mozilla::jni::String::Param, int32_t) -> void;

    struct SetAlarm_t {
        typedef GeckoAppShell Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "setAlarm";
        static constexpr char signature[] =
                "(II)Z";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto SetAlarm(int32_t, int32_t) -> bool;

    struct SetFullScreen_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                bool> Args;
        static constexpr char name[] = "setFullScreen";
        static constexpr char signature[] =
                "(Z)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto SetFullScreen(bool) -> void;

    struct SetKeepScreenOn_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                bool> Args;
        static constexpr char name[] = "setKeepScreenOn";
        static constexpr char signature[] =
                "(Z)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto SetKeepScreenOn(bool) -> void;

    struct SetScreenDepthOverride_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t> Args;
        static constexpr char name[] = "setScreenDepthOverride";
        static constexpr char signature[] =
                "(I)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto SetScreenDepthOverride(int32_t) -> void;

    struct SetURITitle_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "setUriTitle";
        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 auto SetURITitle(mozilla::jni::String::Param, mozilla::jni::String::Param) -> void;

    struct ShowAlertNotificationWrapper_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "showAlertNotification";
        static constexpr char signature[] =
                "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct ShowInputMethodPicker_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "showInputMethodPicker";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto ShowInputMethodPicker() -> void;

    struct StartMonitoringGamepad_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "startMonitoringGamepad";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto StartMonitoringGamepad() -> void;

    struct StopMonitoringGamepad_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "stopMonitoringGamepad";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto StopMonitoringGamepad() -> void;

    struct UnlockProfile_t {
        typedef GeckoAppShell Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "unlockProfile";
        static constexpr char signature[] =
                "()Z";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto UnlockProfile() -> bool;

    struct UnlockScreenOrientation_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "unlockScreenOrientation";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto UnlockScreenOrientation() -> void;

    struct UnregisterSurfaceTextureFrameListener_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "unregisterSurfaceTextureFrameListener";
        static constexpr char signature[] =
                "(Ljava/lang/Object;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct Vibrate1_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int64_t> Args;
        static constexpr char name[] = "vibrate";
        static constexpr char signature[] =
                "(J)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto Vibrate1(int64_t) -> void;

    struct VibrateA_t {
        typedef GeckoAppShell Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::LongArray::Param,
                int32_t> Args;
        static constexpr char name[] = "vibrate";
        static constexpr char signature[] =
                "([JI)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto VibrateA(mozilla::jni::LongArray::Param, int32_t) -> void;

    static const bool isMultithreaded = true;

};

class GeckoEditable : public mozilla::jni::ObjectBase<GeckoEditable, jobject>
{
public:
    explicit GeckoEditable(const Context& ctx) : ObjectBase<GeckoEditable, jobject>(ctx) {}

    struct New_t {
        typedef GeckoEditable Owner;
        typedef GeckoEditable::LocalRef ReturnType;
        typedef GeckoEditable::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "<init>";
        static constexpr char signature[] =
                "(Lorg/mozilla/gecko/GeckoView;)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto New(mozilla::jni::Object::Param) -> GeckoEditable::LocalRef;

    struct DisposeNative_t {
        typedef GeckoEditable Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "disposeNative";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct NotifyIME_t {
        typedef GeckoEditable Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t> Args;
        static constexpr char name[] = "notifyIME";
        static constexpr char signature[] =
                "(I)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto NotifyIME(int32_t) const -> void;

    struct NotifyIMEContext_t {
        typedef GeckoEditable Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "notifyIMEContext";
        static constexpr char signature[] =
                "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto NotifyIMEContext(int32_t, mozilla::jni::String::Param, mozilla::jni::String::Param, mozilla::jni::String::Param) const -> void;

    struct OnDefaultKeyEvent_t {
        typedef GeckoEditable Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "onDefaultKeyEvent";
        static constexpr char signature[] =
                "(Landroid/view/KeyEvent;)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto OnDefaultKeyEvent(mozilla::jni::Object::Param) const -> void;

    struct OnImeAcknowledgeFocus_t {
        typedef GeckoEditable Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "onImeAcknowledgeFocus";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OnImeAddCompositionRange_t {
        typedef GeckoEditable Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t,
                int32_t,
                int32_t,
                int32_t,
                bool,
                int32_t,
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "onImeAddCompositionRange";
        static constexpr char signature[] =
                "(IIIIIZIII)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OnImeReplaceText_t {
        typedef GeckoEditable Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "onImeReplaceText";
        static constexpr char signature[] =
                "(IILjava/lang/String;)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OnImeSynchronize_t {
        typedef GeckoEditable Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "onImeSynchronize";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OnImeUpdateComposition_t {
        typedef GeckoEditable Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "onImeUpdateComposition";
        static constexpr char signature[] =
                "(II)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OnKeyEvent_t {
        typedef GeckoEditable Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t,
                int32_t,
                int32_t,
                int64_t,
                int32_t,
                int32_t,
                int32_t,
                int32_t,
                int32_t,
                bool,
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "onKeyEvent";
        static constexpr char signature[] =
                "(IIIIJIIIIIZLandroid/view/KeyEvent;)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OnSelectionChange_t {
        typedef GeckoEditable Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "onSelectionChange";
        static constexpr char signature[] =
                "(II)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto OnSelectionChange(int32_t, int32_t) const -> void;

    struct OnTextChange_t {
        typedef GeckoEditable Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                int32_t,
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "onTextChange";
        static constexpr char signature[] =
                "(Ljava/lang/CharSequence;III)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto OnTextChange(mozilla::jni::String::Param, int32_t, int32_t, int32_t) const -> void;

    struct OnViewChange_t {
        typedef GeckoEditable Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "onViewChange";
        static constexpr char signature[] =
                "(Lorg/mozilla/gecko/GeckoView;)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto OnViewChange(mozilla::jni::Object::Param) const -> void;

    static const bool isMultithreaded = false;

    template<class Impl> class Natives;
};

class GeckoEditableListener : public mozilla::jni::ObjectBase<GeckoEditableListener, jobject>
{
public:
    explicit GeckoEditableListener(const Context& ctx) : ObjectBase<GeckoEditableListener, jobject>(ctx) {}

    static const int32_t NOTIFY_IME_OF_BLUR = 2;

    static const int32_t NOTIFY_IME_OF_FOCUS = 1;

    static const int32_t NOTIFY_IME_OPEN_VKB = -2;

    static const int32_t NOTIFY_IME_REPLY_EVENT = -1;

    static const int32_t NOTIFY_IME_TO_CANCEL_COMPOSITION = 9;

    static const int32_t NOTIFY_IME_TO_COMMIT_COMPOSITION = 8;

    static const bool isMultithreaded = false;

};

class GeckoJavaSampler : public mozilla::jni::ObjectBase<GeckoJavaSampler, jobject>
{
public:
    explicit GeckoJavaSampler(const Context& ctx) : ObjectBase<GeckoJavaSampler, jobject>(ctx) {}

    struct GetFrameNameJavaProfilingWrapper_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 auto GetFrameNameJavaProfilingWrapper(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;
    };

    struct GetSampleTimeJavaProfiling_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 auto GetSampleTimeJavaProfiling(int32_t, int32_t) -> double;

    struct GetThreadNameJavaProfilingWrapper_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 auto GetThreadNameJavaProfilingWrapper(int32_t) -> mozilla::jni::String::LocalRef;

    struct PauseJavaProfiling_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 auto PauseJavaProfiling() -> void;

    struct StartJavaProfiling_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 auto StartJavaProfiling(int32_t, int32_t) -> void;

    struct StopJavaProfiling_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 auto StopJavaProfiling() -> void;

    struct UnpauseJavaProfiling_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 auto UnpauseJavaProfiling() -> void;

    static const bool isMultithreaded = true;

    template<class Impl> class Natives;
};

class GeckoSmsManager : public mozilla::jni::ObjectBase<GeckoSmsManager, jobject>
{
public:
    explicit GeckoSmsManager(const Context& ctx) : ObjectBase<GeckoSmsManager, jobject>(ctx) {}

    struct NotifyCursorDone_t {
        typedef GeckoSmsManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t> Args;
        static constexpr char name[] = "notifyCursorDone";
        static constexpr char signature[] =
                "(I)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct NotifyCursorError_t {
        typedef GeckoSmsManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "notifyCursorError";
        static constexpr char signature[] =
                "(II)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct NotifyGetSms_t {
        typedef GeckoSmsManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                int64_t,
                bool,
                int32_t> Args;
        static constexpr char name[] = "notifyGetSms";
        static constexpr char signature[] =
                "(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;JZI)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct NotifyGetSmsFailed_t {
        typedef GeckoSmsManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "notifyGetSmsFailed";
        static constexpr char signature[] =
                "(II)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct NotifyMessageCursorResult_t {
        typedef GeckoSmsManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                int64_t,
                int64_t,
                bool,
                int32_t> Args;
        static constexpr char name[] = "notifyMessageCursorResult";
        static constexpr char signature[] =
                "(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;JJZI)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct NotifySmsDeleteFailed_t {
        typedef GeckoSmsManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "notifySmsDeleteFailed";
        static constexpr char signature[] =
                "(II)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct NotifySmsDeleted_t {
        typedef GeckoSmsManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                bool,
                int32_t> Args;
        static constexpr char name[] = "notifySmsDeleted";
        static constexpr char signature[] =
                "(ZI)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct NotifySmsDelivery_t {
        typedef GeckoSmsManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                int64_t> Args;
        static constexpr char name[] = "notifySmsDelivery";
        static constexpr char signature[] =
                "(IILjava/lang/String;Ljava/lang/String;J)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct NotifySmsMarkAsReadFailed_t {
        typedef GeckoSmsManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "notifySmsMarkAsReadFailed";
        static constexpr char signature[] =
                "(II)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct NotifySmsMarkedAsRead_t {
        typedef GeckoSmsManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                bool,
                int32_t> Args;
        static constexpr char name[] = "notifySmsMarkedAsRead";
        static constexpr char signature[] =
                "(ZI)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct NotifySmsReceived_t {
        typedef GeckoSmsManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                int32_t,
                int64_t,
                int64_t> Args;
        static constexpr char name[] = "notifySmsReceived";
        static constexpr char signature[] =
                "(ILjava/lang/String;Ljava/lang/String;IJJ)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct NotifySmsSendFailed_t {
        typedef GeckoSmsManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "notifySmsSendFailed";
        static constexpr char signature[] =
                "(II)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct NotifySmsSent_t {
        typedef GeckoSmsManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                int64_t,
                int32_t> Args;
        static constexpr char name[] = "notifySmsSent";
        static constexpr char signature[] =
                "(ILjava/lang/String;Ljava/lang/String;JI)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct NotifyThreadCursorResult_t {
        typedef GeckoSmsManager Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int64_t,
                mozilla::jni::String::Param,
                mozilla::jni::String::Param,
                int64_t,
                mozilla::jni::ObjectArray::Param,
                int64_t,
                mozilla::jni::String::Param,
                int32_t> Args;
        static constexpr char name[] = "notifyThreadCursorResult";
        static constexpr char signature[] =
                "(JLjava/lang/String;Ljava/lang/String;J[Ljava/lang/Object;JLjava/lang/String;I)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static const bool isMultithreaded = false;

    template<class Impl> class Natives;
};

class GeckoThread : public mozilla::jni::ObjectBase<GeckoThread, jobject>
{
public:
    explicit GeckoThread(const Context& ctx) : ObjectBase<GeckoThread, jobject>(ctx) {}

    class State;

    struct CheckAndSetState_t {
        typedef GeckoThread Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param,
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "checkAndSetState";
        static constexpr char signature[] =
                "(Lorg/mozilla/gecko/GeckoThread$State;Lorg/mozilla/gecko/GeckoThread$State;)Z";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto CheckAndSetState(mozilla::jni::Object::Param, mozilla::jni::Object::Param) -> bool;

    struct PumpMessageLoop_t {
        typedef GeckoThread Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "pumpMessageLoop";
        static constexpr char signature[] =
                "(Landroid/os/Message;)Z";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto PumpMessageLoop(mozilla::jni::Object::Param) -> bool;

    struct SetState_t {
        typedef GeckoThread Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "setState";
        static constexpr char signature[] =
                "(Lorg/mozilla/gecko/GeckoThread$State;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct SpeculativeConnect_t {
        typedef GeckoThread Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "speculativeConnectNative";
        static constexpr char signature[] =
                "(Ljava/lang/String;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct ClsLoader_t {
        typedef GeckoThread Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "clsLoader";
        static constexpr char signature[] =
                "Ljava/lang/ClassLoader;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto ClsLoader() -> mozilla::jni::Object::LocalRef;

    struct MsgQueue_t {
        typedef GeckoThread Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "msgQueue";
        static constexpr char signature[] =
                "Landroid/os/MessageQueue;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto MsgQueue() -> mozilla::jni::Object::LocalRef;

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

    static const bool isMultithreaded = false;

    template<class Impl> class Natives;
};

class GeckoThread::State : public mozilla::jni::ObjectBase<State, jobject>
{
public:
    explicit State(const Context& ctx) : ObjectBase<State, jobject>(ctx) {}

    struct New_t {
        typedef State Owner;
        typedef State::LocalRef ReturnType;
        typedef State::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                int32_t> Args;
        static constexpr char name[] = "<init>";
        static constexpr char signature[] =
                "(Ljava/lang/String;I)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto New(mozilla::jni::String::Param, int32_t) -> State::LocalRef;

    struct Is_t {
        typedef State Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                State::Param> Args;
        static constexpr char name[] = "is";
        static constexpr char signature[] =
                "(Lorg/mozilla/gecko/GeckoThread$State;)Z";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto Is(State::Param) const -> bool;

    struct IsAtLeast_t {
        typedef State Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                State::Param> Args;
        static constexpr char name[] = "isAtLeast";
        static constexpr char signature[] =
                "(Lorg/mozilla/gecko/GeckoThread$State;)Z";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto IsAtLeast(State::Param) const -> bool;

    struct IsAtMost_t {
        typedef State Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                State::Param> Args;
        static constexpr char name[] = "isAtMost";
        static constexpr char signature[] =
                "(Lorg/mozilla/gecko/GeckoThread$State;)Z";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto IsAtMost(State::Param) const -> bool;

    struct IsBetween_t {
        typedef State Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                State::Param,
                State::Param> Args;
        static constexpr char name[] = "isBetween";
        static constexpr char signature[] =
                "(Lorg/mozilla/gecko/GeckoThread$State;Lorg/mozilla/gecko/GeckoThread$State;)Z";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto IsBetween(State::Param, State::Param) const -> bool;

    struct ValueOf_t {
        typedef State Owner;
        typedef State::LocalRef ReturnType;
        typedef State::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "valueOf";
        static constexpr char signature[] =
                "(Ljava/lang/String;)Lorg/mozilla/gecko/GeckoThread$State;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto ValueOf(mozilla::jni::String::Param) -> State::LocalRef;

    struct Values_t {
        typedef State Owner;
        typedef mozilla::jni::ObjectArray::LocalRef ReturnType;
        typedef mozilla::jni::ObjectArray::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "values";
        static constexpr char signature[] =
                "()[Lorg/mozilla/gecko/GeckoThread$State;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto Values() -> mozilla::jni::ObjectArray::LocalRef;

    struct EXITED_t {
        typedef State Owner;
        typedef State::LocalRef ReturnType;
        typedef State::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "EXITED";
        static constexpr char signature[] =
                "Lorg/mozilla/gecko/GeckoThread$State;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto EXITED() -> State::LocalRef;

    struct EXITING_t {
        typedef State Owner;
        typedef State::LocalRef ReturnType;
        typedef State::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "EXITING";
        static constexpr char signature[] =
                "Lorg/mozilla/gecko/GeckoThread$State;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto EXITING() -> State::LocalRef;

    struct INITIAL_t {
        typedef State Owner;
        typedef State::LocalRef ReturnType;
        typedef State::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "INITIAL";
        static constexpr char signature[] =
                "Lorg/mozilla/gecko/GeckoThread$State;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto INITIAL() -> State::LocalRef;

    struct JNI_READY_t {
        typedef State Owner;
        typedef State::LocalRef ReturnType;
        typedef State::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "JNI_READY";
        static constexpr char signature[] =
                "Lorg/mozilla/gecko/GeckoThread$State;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto JNI_READY() -> State::LocalRef;

    struct LAUNCHED_t {
        typedef State Owner;
        typedef State::LocalRef ReturnType;
        typedef State::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "LAUNCHED";
        static constexpr char signature[] =
                "Lorg/mozilla/gecko/GeckoThread$State;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto LAUNCHED() -> State::LocalRef;

    struct LIBS_READY_t {
        typedef State Owner;
        typedef State::LocalRef ReturnType;
        typedef State::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "LIBS_READY";
        static constexpr char signature[] =
                "Lorg/mozilla/gecko/GeckoThread$State;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto LIBS_READY() -> State::LocalRef;

    struct MOZGLUE_READY_t {
        typedef State Owner;
        typedef State::LocalRef ReturnType;
        typedef State::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "MOZGLUE_READY";
        static constexpr char signature[] =
                "Lorg/mozilla/gecko/GeckoThread$State;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto MOZGLUE_READY() -> State::LocalRef;

    struct PROFILE_READY_t {
        typedef State Owner;
        typedef State::LocalRef ReturnType;
        typedef State::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "PROFILE_READY";
        static constexpr char signature[] =
                "Lorg/mozilla/gecko/GeckoThread$State;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto PROFILE_READY() -> State::LocalRef;

    struct RUNNING_t {
        typedef State Owner;
        typedef State::LocalRef ReturnType;
        typedef State::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "RUNNING";
        static constexpr char signature[] =
                "Lorg/mozilla/gecko/GeckoThread$State;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto RUNNING() -> State::LocalRef;

    static const bool isMultithreaded = true;

};

class GeckoView : public mozilla::jni::ObjectBase<GeckoView, jobject>
{
public:
    explicit GeckoView(const Context& ctx) : ObjectBase<GeckoView, jobject>(ctx) {}

    class Window;

    static const bool isMultithreaded = false;

};

class GeckoView::Window : public mozilla::jni::ObjectBase<Window, jobject>
{
public:
    explicit Window(const Context& ctx) : ObjectBase<Window, jobject>(ctx) {}

    struct New_t {
        typedef Window Owner;
        typedef Window::LocalRef ReturnType;
        typedef Window::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "<init>";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto New() -> Window::LocalRef;

    struct Close_t {
        typedef Window Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "close";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct DisposeNative_t {
        typedef Window Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "disposeNative";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct Open_t {
        typedef Window Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                Window::Param,
                GeckoView::Param,
                mozilla::jni::Object::Param,
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "open";
        static constexpr char signature[] =
                "(Lorg/mozilla/gecko/GeckoView$Window;Lorg/mozilla/gecko/GeckoView;Lorg/mozilla/gecko/gfx/GLController;II)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct Reattach_t {
        typedef Window Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                GeckoView::Param> Args;
        static constexpr char name[] = "reattach";
        static constexpr char signature[] =
                "(Lorg/mozilla/gecko/GeckoView;)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct GlController_t {
        typedef Window Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "glController";
        static constexpr char signature[] =
                "Lorg/mozilla/gecko/gfx/GLController;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto GlController() const -> mozilla::jni::Object::LocalRef;

    static const bool isMultithreaded = true;

    template<class Impl> class Natives;
};

class PrefsHelper : public mozilla::jni::ObjectBase<PrefsHelper, jobject>
{
public:
    explicit PrefsHelper(const Context& ctx) : ObjectBase<PrefsHelper, jobject>(ctx) {}

    struct CallPrefHandler_t {
        typedef PrefsHelper Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param,
                int32_t,
                mozilla::jni::String::Param,
                bool,
                int32_t,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "callPrefHandler";
        static constexpr char signature[] =
                "(Lorg/mozilla/gecko/PrefsHelper$PrefHandler;ILjava/lang/String;ZILjava/lang/String;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto CallPrefHandler(mozilla::jni::Object::Param, int32_t, mozilla::jni::String::Param, bool, int32_t, mozilla::jni::String::Param) -> void;

    struct AddObserver_t {
        typedef PrefsHelper Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::ObjectArray::Param,
                mozilla::jni::Object::Param,
                mozilla::jni::ObjectArray::Param> Args;
        static constexpr char name[] = "nativeAddObserver";
        static constexpr char signature[] =
                "([Ljava/lang/String;Lorg/mozilla/gecko/PrefsHelper$PrefHandler;[Ljava/lang/String;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct GetPrefs_t {
        typedef PrefsHelper Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::ObjectArray::Param,
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "nativeGetPrefs";
        static constexpr char signature[] =
                "([Ljava/lang/String;Lorg/mozilla/gecko/PrefsHelper$PrefHandler;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct RemoveObserver_t {
        typedef PrefsHelper Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::ObjectArray::Param> Args;
        static constexpr char name[] = "nativeRemoveObserver";
        static constexpr char signature[] =
                "([Ljava/lang/String;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct SetPref_t {
        typedef PrefsHelper Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                bool,
                int32_t,
                bool,
                int32_t,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "nativeSetPref";
        static constexpr char signature[] =
                "(Ljava/lang/String;ZIZILjava/lang/String;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OnPrefChange_t {
        typedef PrefsHelper Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                int32_t,
                bool,
                int32_t,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "onPrefChange";
        static constexpr char signature[] =
                "(Ljava/lang/String;IZILjava/lang/String;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    static const int32_t PREF_BOOL = 1;

    static const int32_t PREF_FINISH = 0;

    static const int32_t PREF_INT = 2;

    static const int32_t PREF_INVALID = -1;

    static const int32_t PREF_STRING = 3;

    static const bool isMultithreaded = false;

    template<class Impl> class Natives;
};

class Restrictions : public mozilla::jni::ObjectBase<Restrictions, jobject>
{
public:
    explicit Restrictions(const Context& ctx) : ObjectBase<Restrictions, jobject>(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 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 auto IsUserRestricted() -> bool;

    static const bool isMultithreaded = false;

};

class SurfaceBits : public mozilla::jni::ObjectBase<SurfaceBits, jobject>
{
public:
    explicit SurfaceBits(const Context& ctx) : ObjectBase<SurfaceBits, jobject>(ctx) {}

    struct New_t {
        typedef SurfaceBits Owner;
        typedef SurfaceBits::LocalRef ReturnType;
        typedef SurfaceBits::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "<init>";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto New() -> SurfaceBits::LocalRef;

    struct Buffer_t {
        typedef SurfaceBits Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "buffer";
        static constexpr char signature[] =
                "Ljava/nio/ByteBuffer;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto Buffer() const -> mozilla::jni::Object::LocalRef;

    auto Buffer(mozilla::jni::Object::Param) const -> void;

    struct Format_t {
        typedef SurfaceBits Owner;
        typedef int32_t ReturnType;
        typedef int32_t SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "format";
        static constexpr char signature[] =
                "I";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto Format() const -> int32_t;

    auto Format(int32_t) const -> void;

    struct Height_t {
        typedef SurfaceBits Owner;
        typedef int32_t ReturnType;
        typedef int32_t SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "height";
        static constexpr char signature[] =
                "I";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto Height() const -> int32_t;

    auto Height(int32_t) const -> void;

    struct Width_t {
        typedef SurfaceBits Owner;
        typedef int32_t ReturnType;
        typedef int32_t SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "width";
        static constexpr char signature[] =
                "I";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto Width() const -> int32_t;

    auto Width(int32_t) const -> void;

    static const bool isMultithreaded = true;

};

class ThumbnailHelper : public mozilla::jni::ObjectBase<ThumbnailHelper, jobject>
{
public:
    explicit ThumbnailHelper(const Context& ctx) : ObjectBase<ThumbnailHelper, jobject>(ctx) {}

    struct SendThumbnail_t {
        typedef ThumbnailHelper Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param,
                int32_t,
                bool,
                bool> Args;
        static constexpr char name[] = "notifyThumbnail";
        static constexpr char signature[] =
                "(Ljava/nio/ByteBuffer;IZZ)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto SendThumbnail(mozilla::jni::Object::Param, int32_t, bool, bool) -> void;

    static const bool isMultithreaded = false;

};

class Distribution : public mozilla::jni::ObjectBase<Distribution, jobject>
{
public:
    explicit Distribution(const Context& ctx) : ObjectBase<Distribution, jobject>(ctx) {}

    struct GetDistributionDirectories_t {
        typedef Distribution Owner;
        typedef mozilla::jni::ObjectArray::LocalRef ReturnType;
        typedef mozilla::jni::ObjectArray::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getDistributionDirectories";
        static constexpr char signature[] =
                "()[Ljava/lang/String;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto GetDistributionDirectories() -> mozilla::jni::ObjectArray::LocalRef;

    static const bool isMultithreaded = false;

};

class DisplayPortMetrics : public mozilla::jni::ObjectBase<DisplayPortMetrics, jobject>
{
public:
    explicit DisplayPortMetrics(const Context& ctx) : ObjectBase<DisplayPortMetrics, jobject>(ctx) {}

    struct New_t {
        typedef DisplayPortMetrics Owner;
        typedef DisplayPortMetrics::LocalRef ReturnType;
        typedef DisplayPortMetrics::Param SetterType;
        typedef mozilla::jni::Args<
                float,
                float,
                float,
                float,
                float> Args;
        static constexpr char name[] = "<init>";
        static constexpr char signature[] =
                "(FFFFF)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto New(float, float, float, float, float) -> DisplayPortMetrics::LocalRef;

    struct MPosition_t {
        typedef DisplayPortMetrics Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "mPosition";
        static constexpr char signature[] =
                "Landroid/graphics/RectF;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto MPosition() const -> mozilla::jni::Object::LocalRef;

    struct Resolution_t {
        typedef DisplayPortMetrics Owner;
        typedef float ReturnType;
        typedef float SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "resolution";
        static constexpr char signature[] =
                "F";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto Resolution() const -> float;

    static const bool isMultithreaded = false;

};

class GLController : public mozilla::jni::ObjectBase<GLController, jobject>
{
public:
    explicit GLController(const Context& ctx) : ObjectBase<GLController, jobject>(ctx) {}

    struct AttachToJava_t {
        typedef GLController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param,
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "attachToJava";
        static constexpr char signature[] =
                "(Lorg/mozilla/gecko/gfx/GeckoLayerClient;Lorg/mozilla/gecko/gfx/NativePanZoomController;)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct CreateCompositor_t {
        typedef GLController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "createCompositor";
        static constexpr char signature[] =
                "(II)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct CreateEGLSurface_t {
        typedef GLController Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "createEGLSurface";
        static constexpr char signature[] =
                "()Ljavax/microedition/khronos/egl/EGLSurface;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto CreateEGLSurface() const -> mozilla::jni::Object::LocalRef;

    struct Destroy_t {
        typedef GLController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "destroy";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto Destroy() const -> void;

    struct DisposeNative_t {
        typedef GLController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "disposeNative";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OnSizeChanged_t {
        typedef GLController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t,
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "onSizeChanged";
        static constexpr char signature[] =
                "(IIII)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct PauseCompositor_t {
        typedef GLController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "pauseCompositor";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct SyncInvalidateAndScheduleComposite_t {
        typedef GLController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "syncInvalidateAndScheduleComposite";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct SyncResumeResizeCompositor_t {
        typedef GLController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "syncResumeResizeCompositor";
        static constexpr char signature[] =
                "(II)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static const bool isMultithreaded = true;

    template<class Impl> class Natives;
};

class GeckoLayerClient : public mozilla::jni::ObjectBase<GeckoLayerClient, jobject>
{
public:
    explicit GeckoLayerClient(const Context& ctx) : ObjectBase<GeckoLayerClient, jobject>(ctx) {}

    struct ActivateProgram_t {
        typedef GeckoLayerClient Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "activateProgram";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto ActivateProgram() const -> void;

    struct ContentDocumentChanged_t {
        typedef GeckoLayerClient Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "contentDocumentChanged";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto ContentDocumentChanged() const -> void;

    struct CreateFrame_t {
        typedef GeckoLayerClient Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "createFrame";
        static constexpr char signature[] =
                "()Lorg/mozilla/gecko/gfx/LayerRenderer$Frame;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto CreateFrame() const -> mozilla::jni::Object::LocalRef;

    struct DeactivateProgramAndRestoreState_t {
        typedef GeckoLayerClient Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                bool,
                int32_t,
                int32_t,
                int32_t,
                int32_t> Args;
        static constexpr char name[] = "deactivateProgramAndRestoreState";
        static constexpr char signature[] =
                "(ZIIII)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto DeactivateProgramAndRestoreState(bool, int32_t, int32_t, int32_t, int32_t) const -> void;

    struct GetDisplayPort_t {
        typedef GeckoLayerClient Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<
                bool,
                bool,
                int32_t,
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "getDisplayPort";
        static constexpr char signature[] =
                "(ZZILorg/mozilla/gecko/gfx/ImmutableViewportMetrics;)Lorg/mozilla/gecko/gfx/DisplayPortMetrics;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto GetDisplayPort(bool, bool, int32_t, mozilla::jni::Object::Param) const -> mozilla::jni::Object::LocalRef;

    struct IsContentDocumentDisplayed_t {
        typedef GeckoLayerClient Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "isContentDocumentDisplayed";
        static constexpr char signature[] =
                "()Z";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto IsContentDocumentDisplayed() const -> bool;

    struct OnGeckoReady_t {
        typedef GeckoLayerClient Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "onGeckoReady";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto OnGeckoReady() const -> void;

    struct ProgressiveUpdateCallback_t {
        typedef GeckoLayerClient Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<
                bool,
                float,
                float,
                float,
                float,
                float,
                bool> Args;
        static constexpr char name[] = "progressiveUpdateCallback";
        static constexpr char signature[] =
                "(ZFFFFFZ)Lorg/mozilla/gecko/gfx/ProgressiveUpdateData;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto ProgressiveUpdateCallback(bool, float, float, float, float, float, bool) const -> mozilla::jni::Object::LocalRef;

    struct SetFirstPaintViewport_t {
        typedef GeckoLayerClient Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                float,
                float,
                float,
                float,
                float,
                float,
                float> Args;
        static constexpr char name[] = "setFirstPaintViewport";
        static constexpr char signature[] =
                "(FFFFFFF)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto SetFirstPaintViewport(float, float, float, float, float, float, float) const -> void;

    struct SetPageRect_t {
        typedef GeckoLayerClient Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                float,
                float,
                float,
                float> Args;
        static constexpr char name[] = "setPageRect";
        static constexpr char signature[] =
                "(FFFF)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto SetPageRect(float, float, float, float) const -> void;

    struct SyncFrameMetrics_t {
        typedef GeckoLayerClient Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<
                float,
                float,
                float,
                float,
                float,
                float,
                float,
                int32_t,
                int32_t,
                int32_t,
                int32_t,
                float,
                bool,
                int32_t> Args;
        static constexpr char name[] = "syncFrameMetrics";
        static constexpr char signature[] =
                "(FFFFFFFIIIIFZI)Lorg/mozilla/gecko/gfx/ViewTransform;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto SyncFrameMetrics(float, float, float, float, float, float, float, int32_t, int32_t, int32_t, int32_t, float, bool, int32_t) const -> mozilla::jni::Object::LocalRef;

    struct SyncViewportInfo_t {
        typedef GeckoLayerClient Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t,
                int32_t,
                int32_t,
                float,
                bool,
                int32_t> Args;
        static constexpr char name[] = "syncViewportInfo";
        static constexpr char signature[] =
                "(IIIIFZI)Lorg/mozilla/gecko/gfx/ViewTransform;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto SyncViewportInfo(int32_t, int32_t, int32_t, int32_t, float, bool, int32_t) const -> mozilla::jni::Object::LocalRef;

    struct SynthesizeNativeTouchPoint_t {
        typedef GeckoLayerClient Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t,
                int32_t,
                int32_t,
                double,
                int32_t> Args;
        static constexpr char name[] = "synthesizeNativeTouchPoint";
        static constexpr char signature[] =
                "(IIIIDI)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto SynthesizeNativeTouchPoint(int32_t, int32_t, int32_t, int32_t, double, int32_t) const -> void;

    static const bool isMultithreaded = true;

};

class ImmutableViewportMetrics : public mozilla::jni::ObjectBase<ImmutableViewportMetrics, jobject>
{
public:
    explicit ImmutableViewportMetrics(const Context& ctx) : ObjectBase<ImmutableViewportMetrics, jobject>(ctx) {}

    struct New_t {
        typedef ImmutableViewportMetrics Owner;
        typedef ImmutableViewportMetrics::LocalRef ReturnType;
        typedef ImmutableViewportMetrics::Param SetterType;
        typedef mozilla::jni::Args<
                float,
                float,
                float,
                float,
                float,
                float,
                float,
                float,
                float,
                float,
                int32_t,
                int32_t,
                float> Args;
        static constexpr char name[] = "<init>";
        static constexpr char signature[] =
                "(FFFFFFFFFFIIF)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto New(float, float, float, float, float, float, float, float, float, float, int32_t, int32_t, float) -> ImmutableViewportMetrics::LocalRef;

    static const bool isMultithreaded = true;

};

class LayerRenderer : public mozilla::jni::ObjectBase<LayerRenderer, jobject>
{
public:
    explicit LayerRenderer(const Context& ctx) : ObjectBase<LayerRenderer, jobject>(ctx) {}

    class Frame;

    static const bool isMultithreaded = false;

};

class LayerRenderer::Frame : public mozilla::jni::ObjectBase<Frame, jobject>
{
public:
    explicit Frame(const Context& ctx) : ObjectBase<Frame, jobject>(ctx) {}

    struct BeginDrawing_t {
        typedef Frame Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "beginDrawing";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto BeginDrawing() const -> void;

    struct DrawBackground_t {
        typedef Frame Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "drawBackground";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto DrawBackground() const -> void;

    struct DrawForeground_t {
        typedef Frame Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "drawForeground";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto DrawForeground() const -> void;

    struct EndDrawing_t {
        typedef Frame Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "endDrawing";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto EndDrawing() const -> void;

    static const bool isMultithreaded = true;

};

class LayerView : public mozilla::jni::ObjectBase<LayerView, jobject>
{
public:
    explicit LayerView(const Context& ctx) : ObjectBase<LayerView, jobject>(ctx) {}

    struct updateZoomedView_t {
        typedef LayerView Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "updateZoomedView";
        static constexpr char signature[] =
                "(Ljava/nio/ByteBuffer;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    static const bool isMultithreaded = true;

};

class NativePanZoomController : public mozilla::jni::ObjectBase<NativePanZoomController, jobject>
{
public:
    explicit NativePanZoomController(const Context& ctx) : ObjectBase<NativePanZoomController, jobject>(ctx) {}

    struct AdjustScrollForSurfaceShift_t {
        typedef NativePanZoomController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                float,
                float> Args;
        static constexpr char name[] = "adjustScrollForSurfaceShift";
        static constexpr char signature[] =
                "(FF)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct Destroy_t {
        typedef NativePanZoomController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "destroy";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto Destroy() const -> void;

    struct DisposeNative_t {
        typedef NativePanZoomController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "disposeNative";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct HandleMotionEvent_t {
        typedef NativePanZoomController Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int32_t,
                int64_t,
                int32_t,
                mozilla::jni::IntArray::Param,
                mozilla::jni::FloatArray::Param,
                mozilla::jni::FloatArray::Param,
                mozilla::jni::FloatArray::Param,
                mozilla::jni::FloatArray::Param,
                mozilla::jni::FloatArray::Param,
                mozilla::jni::FloatArray::Param> Args;
        static constexpr char name[] = "handleMotionEvent";
        static constexpr char signature[] =
                "(IIJI[I[F[F[F[F[F[F)Z";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct HandleMouseEvent_t {
        typedef NativePanZoomController Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                int32_t,
                int64_t,
                int32_t,
                float,
                float,
                int32_t> Args;
        static constexpr char name[] = "handleMouseEvent";
        static constexpr char signature[] =
                "(IJIFFI)Z";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct HandleScrollEvent_t {
        typedef NativePanZoomController Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                int64_t,
                int32_t,
                float,
                float,
                float,
                float> Args;
        static constexpr char name[] = "handleScrollEvent";
        static constexpr char signature[] =
                "(JIFFFF)Z";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct AbortAnimation_t {
        typedef NativePanZoomController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "nativeAbortAnimation";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct SetIsLongpressEnabled_t {
        typedef NativePanZoomController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                bool> Args;
        static constexpr char name[] = "nativeSetIsLongpressEnabled";
        static constexpr char signature[] =
                "(Z)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OnSelectionDragState_t {
        typedef NativePanZoomController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                bool> Args;
        static constexpr char name[] = "onSelectionDragState";
        static constexpr char signature[] =
                "(Z)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto OnSelectionDragState(bool) const -> void;

    struct RequestContentRepaintWrapper_t {
        typedef NativePanZoomController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                float,
                float,
                float,
                float,
                float> Args;
        static constexpr char name[] = "requestContentRepaint";
        static constexpr char signature[] =
                "(FFFFF)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto RequestContentRepaintWrapper(float, float, float, float, float) const -> void;

    struct UpdateOverscrollOffset_t {
        typedef NativePanZoomController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                float,
                float> Args;
        static constexpr char name[] = "updateOverscrollOffset";
        static constexpr char signature[] =
                "(FF)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto UpdateOverscrollOffset(float, float) const -> void;

    struct UpdateOverscrollVelocity_t {
        typedef NativePanZoomController Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                float,
                float> Args;
        static constexpr char name[] = "updateOverscrollVelocity";
        static constexpr char signature[] =
                "(FF)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto UpdateOverscrollVelocity(float, float) const -> void;

    static const bool isMultithreaded = true;

    template<class Impl> class Natives;
};

class ProgressiveUpdateData : public mozilla::jni::ObjectBase<ProgressiveUpdateData, jobject>
{
public:
    explicit ProgressiveUpdateData(const Context& ctx) : ObjectBase<ProgressiveUpdateData, jobject>(ctx) {}

    struct New_t {
        typedef ProgressiveUpdateData Owner;
        typedef ProgressiveUpdateData::LocalRef ReturnType;
        typedef ProgressiveUpdateData::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "<init>";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto New() -> ProgressiveUpdateData::LocalRef;

    struct SetViewport_t {
        typedef ProgressiveUpdateData Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "setViewport";
        static constexpr char signature[] =
                "(Lorg/mozilla/gecko/gfx/ImmutableViewportMetrics;)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto SetViewport(mozilla::jni::Object::Param) const -> void;

    struct Abort_t {
        typedef ProgressiveUpdateData Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "abort";
        static constexpr char signature[] =
                "Z";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto Abort() const -> bool;

    auto Abort(bool) const -> void;

    struct Scale_t {
        typedef ProgressiveUpdateData Owner;
        typedef float ReturnType;
        typedef float SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "scale";
        static constexpr char signature[] =
                "F";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto Scale() const -> float;

    auto Scale(float) const -> void;

    struct X_t {
        typedef ProgressiveUpdateData Owner;
        typedef float ReturnType;
        typedef float SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "x";
        static constexpr char signature[] =
                "F";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto X() const -> float;

    auto X(float) const -> void;

    struct Y_t {
        typedef ProgressiveUpdateData Owner;
        typedef float ReturnType;
        typedef float SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "y";
        static constexpr char signature[] =
                "F";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto Y() const -> float;

    auto Y(float) const -> void;

    static const bool isMultithreaded = true;

};

class ViewTransform : public mozilla::jni::ObjectBase<ViewTransform, jobject>
{
public:
    explicit ViewTransform(const Context& ctx) : ObjectBase<ViewTransform, jobject>(ctx) {}

    struct New_t {
        typedef ViewTransform Owner;
        typedef ViewTransform::LocalRef ReturnType;
        typedef ViewTransform::Param SetterType;
        typedef mozilla::jni::Args<
                float,
                float,
                float> Args;
        static constexpr char name[] = "<init>";
        static constexpr char signature[] =
                "(FFF)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto New(float, float, float) -> ViewTransform::LocalRef;

    struct FixedLayerMarginBottom_t {
        typedef ViewTransform Owner;
        typedef float ReturnType;
        typedef float SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "fixedLayerMarginBottom";
        static constexpr char signature[] =
                "F";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto FixedLayerMarginBottom() const -> float;

    auto FixedLayerMarginBottom(float) const -> void;

    struct FixedLayerMarginLeft_t {
        typedef ViewTransform Owner;
        typedef float ReturnType;
        typedef float SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "fixedLayerMarginLeft";
        static constexpr char signature[] =
                "F";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto FixedLayerMarginLeft() const -> float;

    auto FixedLayerMarginLeft(float) const -> void;

    struct FixedLayerMarginRight_t {
        typedef ViewTransform Owner;
        typedef float ReturnType;
        typedef float SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "fixedLayerMarginRight";
        static constexpr char signature[] =
                "F";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto FixedLayerMarginRight() const -> float;

    auto FixedLayerMarginRight(float) const -> void;

    struct FixedLayerMarginTop_t {
        typedef ViewTransform Owner;
        typedef float ReturnType;
        typedef float SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "fixedLayerMarginTop";
        static constexpr char signature[] =
                "F";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto FixedLayerMarginTop() const -> float;

    auto FixedLayerMarginTop(float) const -> void;

    struct Height_t {
        typedef ViewTransform Owner;
        typedef float ReturnType;
        typedef float SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "height";
        static constexpr char signature[] =
                "F";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto Height() const -> float;

    auto Height(float) const -> void;

    struct Scale_t {
        typedef ViewTransform Owner;
        typedef float ReturnType;
        typedef float SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "scale";
        static constexpr char signature[] =
                "F";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto Scale() const -> float;

    auto Scale(float) const -> void;

    struct Width_t {
        typedef ViewTransform Owner;
        typedef float ReturnType;
        typedef float SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "width";
        static constexpr char signature[] =
                "F";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto Width() const -> float;

    auto Width(float) const -> void;

    struct X_t {
        typedef ViewTransform Owner;
        typedef float ReturnType;
        typedef float SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "x";
        static constexpr char signature[] =
                "F";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto X() const -> float;

    auto X(float) const -> void;

    struct Y_t {
        typedef ViewTransform Owner;
        typedef float ReturnType;
        typedef float SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "y";
        static constexpr char signature[] =
                "F";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto Y() const -> float;

    auto Y(float) const -> void;

    static const bool isMultithreaded = true;

};

class MatrixBlobCursor : public mozilla::jni::ObjectBase<MatrixBlobCursor, jobject>
{
public:
    explicit MatrixBlobCursor(const Context& ctx) : ObjectBase<MatrixBlobCursor, jobject>(ctx) {}

    struct New_t {
        typedef MatrixBlobCursor Owner;
        typedef MatrixBlobCursor::LocalRef ReturnType;
        typedef MatrixBlobCursor::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::ObjectArray::Param> Args;
        static constexpr char name[] = "<init>";
        static constexpr char signature[] =
                "([Ljava/lang/String;)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto New(mozilla::jni::ObjectArray::Param) -> MatrixBlobCursor::LocalRef;

    struct New2_t {
        typedef MatrixBlobCursor Owner;
        typedef MatrixBlobCursor::LocalRef ReturnType;
        typedef MatrixBlobCursor::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::ObjectArray::Param,
                int32_t> Args;
        static constexpr char name[] = "<init>";
        static constexpr char signature[] =
                "([Ljava/lang/String;I)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto New(mozilla::jni::ObjectArray::Param, int32_t) -> MatrixBlobCursor::LocalRef;

    struct AddRow_t {
        typedef MatrixBlobCursor Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "addRow";
        static constexpr char signature[] =
                "(Ljava/lang/Iterable;)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto AddRow(mozilla::jni::Object::Param) const -> void;

    struct AddRow2_t {
        typedef MatrixBlobCursor Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::Object::Param,
                int32_t> Args;
        static constexpr char name[] = "addRow";
        static constexpr char signature[] =
                "(Ljava/util/ArrayList;I)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto AddRow(mozilla::jni::Object::Param, int32_t) const -> void;

    struct AddRow3_t {
        typedef MatrixBlobCursor Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::ObjectArray::Param> Args;
        static constexpr char name[] = "addRow";
        static constexpr char signature[] =
                "([Ljava/lang/Object;)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto AddRow(mozilla::jni::ObjectArray::Param) const -> void;

    static const bool isMultithreaded = false;

};

class SQLiteBridgeException : public mozilla::jni::ObjectBase<SQLiteBridgeException, jobject>
{
public:
    explicit SQLiteBridgeException(const Context& ctx) : ObjectBase<SQLiteBridgeException, jobject>(ctx) {}

    struct New_t {
        typedef SQLiteBridgeException Owner;
        typedef SQLiteBridgeException::LocalRef ReturnType;
        typedef SQLiteBridgeException::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "<init>";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto New() -> SQLiteBridgeException::LocalRef;

    struct New2_t {
        typedef SQLiteBridgeException Owner;
        typedef SQLiteBridgeException::LocalRef ReturnType;
        typedef SQLiteBridgeException::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "<init>";
        static constexpr char signature[] =
                "(Ljava/lang/String;)V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto New(mozilla::jni::String::Param) -> SQLiteBridgeException::LocalRef;

    static const int64_t SerialVersionUID = 1;

    static const bool isMultithreaded = true;

};

class Clipboard : public mozilla::jni::ObjectBase<Clipboard, jobject>
{
public:
    explicit Clipboard(const Context& ctx) : ObjectBase<Clipboard, jobject>(ctx) {}

    struct ClearText_t {
        typedef Clipboard Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "clearText";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto ClearText() -> void;

    struct GetClipboardTextWrapper_t {
        typedef Clipboard Owner;
        typedef mozilla::jni::String::LocalRef ReturnType;
        typedef mozilla::jni::String::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "getText";
        static constexpr char signature[] =
                "()Ljava/lang/String;";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    struct HasText_t {
        typedef Clipboard Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "hasText";
        static constexpr char signature[] =
                "()Z";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto HasText() -> bool;

    struct SetClipboardText_t {
        typedef Clipboard Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "setText";
        static constexpr char signature[] =
                "(Ljava/lang/CharSequence;)V";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

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

    static const bool isMultithreaded = false;

};

class HardwareCodecCapabilityUtils : public mozilla::jni::ObjectBase<HardwareCodecCapabilityUtils, jobject>
{
public:
    explicit HardwareCodecCapabilityUtils(const Context& ctx) : ObjectBase<HardwareCodecCapabilityUtils, jobject>(ctx) {}

    struct FindDecoderCodecInfoForMimeType_t {
        typedef HardwareCodecCapabilityUtils Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "findDecoderCodecInfoForMimeType";
        static constexpr char signature[] =
                "(Ljava/lang/String;)Z";
        static const bool isStatic = true;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto FindDecoderCodecInfoForMimeType(mozilla::jni::String::Param) -> bool;

    static const bool isMultithreaded = true;

};

class NativeJSContainer : public mozilla::jni::ObjectBase<NativeJSContainer, jobject>
{
public:
    explicit NativeJSContainer(const Context& ctx) : ObjectBase<NativeJSContainer, jobject>(ctx) {}

    struct New_t {
        typedef NativeJSContainer Owner;
        typedef NativeJSContainer::LocalRef ReturnType;
        typedef NativeJSContainer::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "<init>";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto New() -> NativeJSContainer::LocalRef;

    struct Clone2_t {
        typedef NativeJSContainer Owner;
        typedef NativeJSContainer::LocalRef ReturnType;
        typedef NativeJSContainer::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "clone";
        static constexpr char signature[] =
                "()Lorg/mozilla/gecko/util/NativeJSContainer;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct DisposeNative_t {
        typedef NativeJSContainer Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "disposeNative";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static const bool isMultithreaded = true;

    template<class Impl> class Natives;
};

class NativeJSObject : public mozilla::jni::ObjectBase<NativeJSObject, jobject>
{
public:
    explicit NativeJSObject(const Context& ctx) : ObjectBase<NativeJSObject, jobject>(ctx) {}

    struct New_t {
        typedef NativeJSObject Owner;
        typedef NativeJSObject::LocalRef ReturnType;
        typedef NativeJSObject::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "<init>";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static auto New() -> NativeJSObject::LocalRef;

    struct DisposeNative_t {
        typedef NativeJSObject Owner;
        typedef void ReturnType;
        typedef void SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "disposeNative";
        static constexpr char signature[] =
                "()V";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    auto DisposeNative() const -> void;

    struct GetBoolean_t {
        typedef NativeJSObject Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getBoolean";
        static constexpr char signature[] =
                "(Ljava/lang/String;)Z";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct GetBooleanArray_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::BooleanArray::LocalRef ReturnType;
        typedef mozilla::jni::BooleanArray::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getBooleanArray";
        static constexpr char signature[] =
                "(Ljava/lang/String;)[Z";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct GetBundle_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getBundle";
        static constexpr char signature[] =
                "(Ljava/lang/String;)Landroid/os/Bundle;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct GetBundleArray_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::ObjectArray::LocalRef ReturnType;
        typedef mozilla::jni::ObjectArray::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getBundleArray";
        static constexpr char signature[] =
                "(Ljava/lang/String;)[Landroid/os/Bundle;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct GetDouble_t {
        typedef NativeJSObject Owner;
        typedef double ReturnType;
        typedef double SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getDouble";
        static constexpr char signature[] =
                "(Ljava/lang/String;)D";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct GetDoubleArray_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::DoubleArray::LocalRef ReturnType;
        typedef mozilla::jni::DoubleArray::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getDoubleArray";
        static constexpr char signature[] =
                "(Ljava/lang/String;)[D";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct GetInt_t {
        typedef NativeJSObject Owner;
        typedef int32_t ReturnType;
        typedef int32_t SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getInt";
        static constexpr char signature[] =
                "(Ljava/lang/String;)I";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct GetIntArray_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::IntArray::LocalRef ReturnType;
        typedef mozilla::jni::IntArray::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getIntArray";
        static constexpr char signature[] =
                "(Ljava/lang/String;)[I";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct GetObject_t {
        typedef NativeJSObject Owner;
        typedef NativeJSObject::LocalRef ReturnType;
        typedef NativeJSObject::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getObject";
        static constexpr char signature[] =
                "(Ljava/lang/String;)Lorg/mozilla/gecko/util/NativeJSObject;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct GetObjectArray_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::ObjectArray::LocalRef ReturnType;
        typedef mozilla::jni::ObjectArray::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getObjectArray";
        static constexpr char signature[] =
                "(Ljava/lang/String;)[Lorg/mozilla/gecko/util/NativeJSObject;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct GetString_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::String::LocalRef ReturnType;
        typedef mozilla::jni::String::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getString";
        static constexpr char signature[] =
                "(Ljava/lang/String;)Ljava/lang/String;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct GetStringArray_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::ObjectArray::LocalRef ReturnType;
        typedef mozilla::jni::ObjectArray::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "getStringArray";
        static constexpr char signature[] =
                "(Ljava/lang/String;)[Ljava/lang/String;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct Has_t {
        typedef NativeJSObject Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "has";
        static constexpr char signature[] =
                "(Ljava/lang/String;)Z";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OptBoolean_t {
        typedef NativeJSObject Owner;
        typedef bool ReturnType;
        typedef bool SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                bool> Args;
        static constexpr char name[] = "optBoolean";
        static constexpr char signature[] =
                "(Ljava/lang/String;Z)Z";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OptBooleanArray_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::BooleanArray::LocalRef ReturnType;
        typedef mozilla::jni::BooleanArray::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::BooleanArray::Param> Args;
        static constexpr char name[] = "optBooleanArray";
        static constexpr char signature[] =
                "(Ljava/lang/String;[Z)[Z";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OptBundle_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::Object::Param> Args;
        static constexpr char name[] = "optBundle";
        static constexpr char signature[] =
                "(Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OptBundleArray_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::ObjectArray::LocalRef ReturnType;
        typedef mozilla::jni::ObjectArray::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::ObjectArray::Param> Args;
        static constexpr char name[] = "optBundleArray";
        static constexpr char signature[] =
                "(Ljava/lang/String;[Landroid/os/Bundle;)[Landroid/os/Bundle;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OptDouble_t {
        typedef NativeJSObject Owner;
        typedef double ReturnType;
        typedef double SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                double> Args;
        static constexpr char name[] = "optDouble";
        static constexpr char signature[] =
                "(Ljava/lang/String;D)D";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OptDoubleArray_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::DoubleArray::LocalRef ReturnType;
        typedef mozilla::jni::DoubleArray::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::DoubleArray::Param> Args;
        static constexpr char name[] = "optDoubleArray";
        static constexpr char signature[] =
                "(Ljava/lang/String;[D)[D";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OptInt_t {
        typedef NativeJSObject Owner;
        typedef int32_t ReturnType;
        typedef int32_t SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                int32_t> Args;
        static constexpr char name[] = "optInt";
        static constexpr char signature[] =
                "(Ljava/lang/String;I)I";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OptIntArray_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::IntArray::LocalRef ReturnType;
        typedef mozilla::jni::IntArray::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::IntArray::Param> Args;
        static constexpr char name[] = "optIntArray";
        static constexpr char signature[] =
                "(Ljava/lang/String;[I)[I";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OptObject_t {
        typedef NativeJSObject Owner;
        typedef NativeJSObject::LocalRef ReturnType;
        typedef NativeJSObject::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                NativeJSObject::Param> Args;
        static constexpr char name[] = "optObject";
        static constexpr char signature[] =
                "(Ljava/lang/String;Lorg/mozilla/gecko/util/NativeJSObject;)Lorg/mozilla/gecko/util/NativeJSObject;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OptObjectArray_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::ObjectArray::LocalRef ReturnType;
        typedef mozilla::jni::ObjectArray::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::ObjectArray::Param> Args;
        static constexpr char name[] = "optObjectArray";
        static constexpr char signature[] =
                "(Ljava/lang/String;[Lorg/mozilla/gecko/util/NativeJSObject;)[Lorg/mozilla/gecko/util/NativeJSObject;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OptString_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::String::LocalRef ReturnType;
        typedef mozilla::jni::String::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::String::Param> Args;
        static constexpr char name[] = "optString";
        static constexpr char signature[] =
                "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct OptStringArray_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::ObjectArray::LocalRef ReturnType;
        typedef mozilla::jni::ObjectArray::Param SetterType;
        typedef mozilla::jni::Args<
                mozilla::jni::String::Param,
                mozilla::jni::ObjectArray::Param> Args;
        static constexpr char name[] = "optStringArray";
        static constexpr char signature[] =
                "(Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct ToBundle_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::Object::LocalRef ReturnType;
        typedef mozilla::jni::Object::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "toBundle";
        static constexpr char signature[] =
                "()Landroid/os/Bundle;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    struct ToString_t {
        typedef NativeJSObject Owner;
        typedef mozilla::jni::String::LocalRef ReturnType;
        typedef mozilla::jni::String::Param SetterType;
        typedef mozilla::jni::Args<> Args;
        static constexpr char name[] = "toString";
        static constexpr char signature[] =
                "()Ljava/lang/String;";
        static const bool isStatic = false;
        static const mozilla::jni::ExceptionMode exceptionMode =
                mozilla::jni::ExceptionMode::ABORT;
    };

    static const bool isMultithreaded = true;

    template<class Impl> class Natives;
};

} /* widget */
} /* mozilla */
#endif // GeneratedJNIWrappers_h