Bug 1444546 - Part 4: Use GENERATED_FILES for Android JNI wrapper generation. r=froydnj,jchen
authorNick Alexander <nalexander@mozilla.com>
Tue, 06 Mar 2018 20:09:37 -0800
changeset 471394 f0a4cabc8c940923aef39a2be39c10056eef891e
parent 471393 731eb2e4b5579cc727068d346a32a67d79ec6756
child 471395 4d69ed596b02737d692ce233a3d7617539569d1c
push id9374
push userjlund@mozilla.com
push dateMon, 18 Jun 2018 21:43:20 +0000
treeherdermozilla-beta@160e085dfb0b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersfroydnj, jchen
bugs1444546
milestone61.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1444546 - Part 4: Use GENERATED_FILES for Android JNI wrapper generation. r=froydnj,jchen MozReview-Commit-ID: 1IjoQdEMqr8
.clang-format-ignore
config/recurse.mk
mobile/android/base/Makefile.in
mobile/android/gradle.configure
mobile/android/gradle.py
mobile/android/gradle/with_gecko_binaries.gradle
mobile/android/mach_commands.py
widget/android/GeneratedJNINatives.h
widget/android/GeneratedJNIWrappers.cpp
widget/android/GeneratedJNIWrappers.h
widget/android/fennec/FennecJNINatives.h
widget/android/fennec/FennecJNIWrappers.cpp
widget/android/fennec/FennecJNIWrappers.h
widget/android/fennec/moz.build
widget/android/moz.build
--- a/.clang-format-ignore
+++ b/.clang-format-ignore
@@ -19,23 +19,16 @@ layout/style/nsCSSPropAliasList.h
 # Ignored because of bug 1342657
 layout/style/nsCSSPropList.h
 media/mtransport/test/.*
 mfbt/tests/.*
 storage/test/.*
 testing/gtest/.*
 tools/profiler/tests/.*
 uriloader/exthandler/tests/.*
-# JNI code is generated
-widget/android/GeneratedJNINatives.h
-widget/android/GeneratedJNIWrappers.cpp
-widget/android/GeneratedJNIWrappers.h
-widget/android/fennec/FennecJNINatives.h
-widget/android/fennec/FennecJNIWrappers.cpp
-widget/android/fennec/FennecJNIWrappers.h
 widget/tests/.*
 xpcom/glue/tests/.*
 xpcom/tests/.*
 
 # Generated from ./tools/rewriting/ThirdPartyPaths.txt
 # awk '{print ""$1".*"}' ./tools/rewriting/ThirdPartyPaths.txt
 browser/components/translation/cld2/.*
 browser/extensions/mortar/ppapi/.*
--- a/config/recurse.mk
+++ b/config/recurse.mk
@@ -164,16 +164,21 @@ ifeq (.,$(DEPTH))
 # Interdependencies for parallel export.
 js/xpconnect/src/export: dom/bindings/export xpcom/xpidl/export
 accessible/xpcom/export: xpcom/xpidl/export
 
 # The Android SDK bindings needs to build the Java generator code
 # source code in order to write the SDK bindings.
 widget/android/bindings/export: mobile/android/base/export
 
+# The widget JNI wrapper generator code needs to build the GeckoView
+# and Fennec source code in order to find JNI wrapper annotations.
+widget/android/fennec/export: mobile/android/base/export
+widget/android/export: mobile/android/base/export
+
 # .xpt generation needs the xpidl lex/yacc files
 xpcom/xpidl/export: xpcom/idl-parser/xpidl/export
 
 # CSS2Properties.webidl needs ServoCSSPropList.py from layout/style
 dom/bindings/export: layout/style/export
 
 ifdef ENABLE_CLANG_PLUGIN
 $(filter-out config/host build/unix/stdc++compat/% build/clang-plugin/%,$(compile_targets)): build/clang-plugin/target build/clang-plugin/tests/target
--- a/mobile/android/base/Makefile.in
+++ b/mobile/android/base/Makefile.in
@@ -1,29 +1,16 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # Developer builds call mach -> Make -> gradle -> mach, which races to
 # find and create .mozconfig files and to generate targets.
 .NOTPARALLEL:
 
-GARBAGE += \
-  classes.dex  \
-  gecko.ap_  \
-  GeneratedJNINatives.h \
-  GeneratedJNIWrappers.cpp \
-  GeneratedJNIWrappers.h \
-  FennecJNINatives.h \
-  FennecJNIWrappers.cpp \
-  FennecJNIWrappers.h \
-  $(NULL)
-
-GARBAGE_DIRS += classes db jars res sync services generated
-
 generated_resources := \
   AndroidManifest.xml \
   res/raw/browsersearch.json \
   res/raw/suggestedsites.json \
   res/values/strings.xml \
   $(NULL)
 
 generated_files := \
@@ -38,41 +25,21 @@ include $(topsrcdir)/config/AB_rCD.mk
 chrome-%:: AB_CD=$*
 chrome-%::
 	$(MAKE) \
 	  res/values$(AB_rCD)/strings.xml \
 	  res/raw$(AB_rCD)/suggestedsites.json \
 	  res/raw$(AB_rCD)/browsersearch.json \
 	  AB_CD=$*
 
-GeneratedJNIWrappers.cpp GeneratedJNIWrappers.h GeneratedJNINatives.h : android_apks
-	$(REPORT_BUILD)
-
-FennecJNIWrappers.cpp FennecJNIWrappers.h FennecJNINatives.h: android_apks
-	$(REPORT_BUILD)
-
 include $(topsrcdir)/config/rules.mk
 
 # Override the Java settings with some specific android settings
 include $(topsrcdir)/config/android-common.mk
 
-update-generated-wrappers:
-	@cp $(CURDIR)/GeneratedJNIWrappers.cpp \
-	    $(CURDIR)/GeneratedJNIWrappers.h \
-	    $(CURDIR)/GeneratedJNINatives.h $(topsrcdir)/widget/android
-	@echo Updated generated JNI code
-
-update-fennec-wrappers:
-	@cp $(CURDIR)/FennecJNIWrappers.cpp \
-	    $(CURDIR)/FennecJNIWrappers.h \
-	    $(CURDIR)/FennecJNINatives.h $(topsrcdir)/widget/android/fennec
-	@echo Updated Fennec JNI code
-
-.PHONY: update-generated-wrappers update-fennec-wrappers
-
 # This target is only used by IDE integrations. It rebuilds resources
 # that end up in omni.ja using the equivalent of |mach build faster|,
 # does most of the packaging step, and then updates omni.ja in
 # place. If you're not using an IDE, you should be using |mach build
 # mobile/android && mach package|.
 $(ABS_DIST)/fennec/$(OMNIJAR_NAME): FORCE
 	$(REPORT_BUILD)
 	$(MAKE) -C ../../../faster
@@ -95,78 +62,9 @@ else
 # In automation, omni.ja is built only during packaging.
 gradle-omnijar:
 
 gradle-targets:
 endif
 
 .PHONY: gradle-targets gradle-omnijar
 
-# Neither multi-locale builds nor single-locale repacks should be
-# generating JNI wrappers.  In the future, generating JNI wrappers
-# will be integrated into the build system closer to their use,
-# avoiding these work-arounds.
-ifneq (multi,$(AB_CD))
-ifeq (,$(IS_LANGUAGE_REPACK))
-
-# GeneratedJNIWrappers.cpp target also generates
-#   GeneratedJNIWrappers.h and GeneratedJNINatives.h
-# FennecJNIWrappers.cpp target also generates
-#   FennecJNIWrappers.h and FennecJNINatives.h
-
-# List of build flags used by auto-generated JNI bindings (through the
-# @BuildFlag annotation in Java). For example, add a "MOZ_FOO \" line to this
-# list to support @BuildFlag(MOZ_FOO).
-#
-# Be sure that the given BUILD_FLAG is exposed to the generated JNI
-# wrapper compilation environment!  This might mean adding a local
-# DEFINE in /widget/android and/or /widget/android/fennec.
-BINDING_BUILD_FLAGS = \
-  MOZ_NATIVE_DEVICES \
-  $(NULL)
-
-# Preprocess a JNI binding file using the build flags defined above.
-# $(1): JNI binding file to preprocess.
-preprocess-binding = ($(call py_action,preprocessor, \
-                      $(foreach flag,$(BINDING_BUILD_FLAGS),$(if $($(flag)),-D$(flag))) \
-                      -DMOZ_PREPROCESSOR $(1)) || echo $(1))
-
-# Preprocess and compare two versions of a JNI binding file, one in-tree
-# version and one newly generated version.
-# $(1): Base file name of the JNI binding file.
-# $(2): Additional path to prepend to the in-tree file name. This is required
-#       because in-tree Fennec-specific bindings are in a separate fennec/ directory.
-compare-binding = $(call preprocess-binding,$(1)) | ( \
-                  $(call preprocess-binding,$(topsrcdir)/widget/android/$(2)$(1)) 3<&- | \
-                  diff /dev/fd/3 - >/dev/null ) 3<&0
-
-libs:: GeneratedJNIWrappers.cpp
-	@($(call compare-binding,GeneratedJNIWrappers.cpp) && \
-	  $(call compare-binding,GeneratedJNIWrappers.h) && \
-	  $(call compare-binding,GeneratedJNINatives.h)) || \
-	 (echo '*****************************************************' && \
-	  echo '***   Error: The generated JNI code has changed   ***' && \
-	  echo '* To update generated code in the tree, please run  *' && \
-	  echo && \
-	  echo '  make -C $(CURDIR) update-generated-wrappers' && \
-	  echo && \
-	  echo '* Repeat the build, and check in any changes.       *' && \
-	  echo '*****************************************************' && \
-	  exit 1)
-
-libs:: FennecJNIWrappers.cpp
-	@($(call compare-binding,FennecJNIWrappers.cpp,fennec/) && \
-	  $(call compare-binding,FennecJNIWrappers.h,fennec/) && \
-	  $(call compare-binding,FennecJNINatives.h,fennec/)) || \
-	 (echo '*****************************************************' && \
-	  echo '***     Error: The Fennec JNI code has changed    ***' && \
-	  echo '* To update generated code in the tree, please run  *' && \
-	  echo && \
-	  echo '  make -C $(CURDIR) update-fennec-wrappers' && \
-	  echo && \
-	  echo '* Repeat the build, and check in any changes.       *' && \
-	  echo '*****************************************************' && \
-	  exit 1)
-
-endif # ifneq (multi,$(AB_CD))
-endif # ifeq (,$(IS_LANGUAGE_REPACK))
-
 export:: android_apks
--- a/mobile/android/gradle.configure
+++ b/mobile/android/gradle.configure
@@ -106,16 +106,36 @@ def gradle_android_generate_sdk_bindings
     '''Gradle tasks run by |mach android generate-sdk-bindings|.'''
     return [
         'geckoview:generateSDKBindings',
     ]
 
 set_config('GRADLE_ANDROID_GENERATE_SDK_BINDINGS_TASKS', gradle_android_generate_sdk_bindings_tasks)
 
 
+@depends(gradle_android_build_config)
+def gradle_android_generate_generated_jni_wrappers_tasks(build_config):
+    '''Gradle tasks run by |mach android generate-generated-jni-wrappers|.'''
+    return [
+        'geckoview:generateJNIWrappersForGenerated{geckoview.variant.name}'.format(geckoview=build_config.geckoview),
+    ]
+
+set_config('GRADLE_ANDROID_GENERATE_GENERATED_JNI_WRAPPERS_TASKS', gradle_android_generate_generated_jni_wrappers_tasks)
+
+
+@depends(gradle_android_build_config)
+def gradle_android_generate_fennec_jni_wrappers_tasks(build_config):
+    '''Gradle tasks run by |mach android generate-fennec-jni-wrappers|.'''
+    return [
+        'app:generateJNIWrappersForFennec{app.variant.name}'.format(app=build_config.app),
+    ]
+
+set_config('GRADLE_ANDROID_GENERATE_FENNEC_JNI_WRAPPERS_TASKS', gradle_android_generate_fennec_jni_wrappers_tasks)
+
+
 @depends(gradle_android_build_config, check_build_environment)
 @imports(_from='itertools', _import='imap')
 def gradle_android_app_apks(build_config, build_env):
     '''Paths to APK files produced by |mach android assemble-app|.'''
     def capitalize(s):
         # str.capitalize lower cases trailing letters.
         if s:
             return s[0].upper() + s[1:]
@@ -210,16 +230,18 @@ set_config('GRADLE_ANDROID_ARCHIVE_GECKO
 @depends(
     gradle_android_app_tasks,
     gradle_android_test_tasks,
     gradle_android_lint_tasks,
     gradle_android_checkstyle_tasks,
     gradle_android_findbugs_tasks,
     gradle_android_archive_geckoview_tasks,
     gradle_android_generate_sdk_bindings_tasks,
+    gradle_android_generate_generated_jni_wrappers_tasks,
+    gradle_android_generate_fennec_jni_wrappers_tasks,
 )
 @imports(_from='itertools', _import='imap')
 @imports(_from='itertools', _import='chain')
 @imports(_from='itertools', _import='ifilterfalse')
 def gradle_android_dependencies_tasks(*tasks):
     '''Gradle tasks run by |mach android dependencies|.'''
     # The union, plus a bit more, of all of the Gradle tasks
     # invoked by the android-* automation jobs.
--- a/mobile/android/gradle.py
+++ b/mobile/android/gradle.py
@@ -36,8 +36,16 @@ def android(verb, *args):
 
 
 def assemble_app(dummy_output_file, *inputs):
     return android('assemble-app')
 
 
 def generate_sdk_bindings(dummy_output_file, *args):
     return android('generate-sdk-bindings', *args)
+
+
+def generate_generated_jni_wrappers(dummy_output_file, *args):
+    return android('generate-generated-jni-wrappers', *args)
+
+
+def generate_fennec_jni_wrappers(dummy_output_file, *args):
+    return android('generate-fennec-jni-wrappers', *args)
--- a/mobile/android/gradle/with_gecko_binaries.gradle
+++ b/mobile/android/gradle/with_gecko_binaries.gradle
@@ -140,17 +140,17 @@ ext.configureLibraryVariantWithJNIWrappe
                 // Include android.jar.
                 classpath variant.javaCompile.options.bootClasspath
             }
     
             main = 'org.mozilla.gecko.annotationProcessors.AnnotationProcessor'
             args module
             args output
             
-            workingDir "${topobjdir}/mobile/android/base"
+            workingDir "${topobjdir}/widget/android"
             
             dependsOn jarTask
             dependsOn annotationProcessorsJarTask
         }
     }
 
     if (module == 'Generated') {
         tasks["bundle${variant.name.capitalize()}"].dependsOn wrapperTask
@@ -181,17 +181,17 @@ ext.configureApplicationVariantWithJNIWr
                 // Include android.jar.
                 classpath variant.javaCompile.options.bootClasspath
             }
         
             main = 'org.mozilla.gecko.annotationProcessors.AnnotationProcessor'
             args module
             args output
         
-            workingDir "${topobjdir}/mobile/android/base"
+            workingDir "${topobjdir}/widget/android/fennec"
     
             // This forces bundling, which isn't usually part of the assemble* process.
             dependsOn jarTask
 
             dependsOn annotationProcessorsJarTask
         }
     }
 }
--- a/mobile/android/mach_commands.py
+++ b/mobile/android/mach_commands.py
@@ -77,16 +77,34 @@ class MachCommands(MachCommandBase):
         bindings_inputs = list(itertools.chain(*((input, stem(input)) for input in inputs)))
         bindings_args = '-Pgenerate_sdk_bindings_args={}'.format(':'.join(bindings_inputs))
 
         ret = self.gradle(self.substs['GRADLE_ANDROID_GENERATE_SDK_BINDINGS_TASKS'] + [bindings_args] + args, verbose=True)
 
         return ret
 
 
+    @SubCommand('android', 'generate-generated-jni-wrappers',
+        """Generate GeckoView JNI wrappers used when building GeckoView.""")
+    @CommandArgument('args', nargs=argparse.REMAINDER)
+    def android_generate_generated_jni_wrappers(self, args):
+        ret = self.gradle(self.substs['GRADLE_ANDROID_GENERATE_GENERATED_JNI_WRAPPERS_TASKS'] + args, verbose=True)
+
+        return ret
+
+
+    @SubCommand('android', 'generate-fennec-jni-wrappers',
+        """Generate Fennec-specific JNI wrappers used when building Firefox for Android.""")
+    @CommandArgument('args', nargs=argparse.REMAINDER)
+    def android_generate_fennec_jni_wrappers(self, args):
+        ret = self.gradle(self.substs['GRADLE_ANDROID_GENERATE_FENNEC_JNI_WRAPPERS_TASKS'] + args, verbose=True)
+
+        return ret
+
+
     @SubCommand('android', 'test',
         """Run Android local unit tests.
         See https://developer.mozilla.org/en-US/docs/Mozilla/Android-specific_test_suites#android-test""")
     @CommandArgument('args', nargs=argparse.REMAINDER)
     def android_test(self, args):
         ret = self.gradle(self.substs['GRADLE_ANDROID_TEST_TASKS'] + ["--continue"] + args, verbose=True)
 
         ret |= self._parse_android_test_results('public/app/unittest', 'gradle/build/mobile/android/app',
deleted file mode 100644
--- a/widget/android/GeneratedJNINatives.h
+++ /dev/null
@@ -1,648 +0,0 @@
-// 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 GeneratedJNINatives_h
-#define GeneratedJNINatives_h
-
-#ifndef MOZ_PREPROCESSOR
-#include "GeneratedJNIWrappers.h"
-#include "mozilla/jni/Natives.h"
-#endif
-
-namespace mozilla {
-namespace java {
-
-template<class Impl>
-class AndroidGamepadManager::Natives : public mozilla::jni::NativeImpl<AndroidGamepadManager, Impl>
-{
-public:
-    static const JNINativeMethod methods[3];
-};
-
-template<class Impl>
-const JNINativeMethod AndroidGamepadManager::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<AndroidGamepadManager::OnAxisChange_t>(
-            mozilla::jni::NativeStub<AndroidGamepadManager::OnAxisChange_t, Impl>
-            ::template Wrap<&Impl::OnAxisChange>),
-
-    mozilla::jni::MakeNativeMethod<AndroidGamepadManager::OnButtonChange_t>(
-            mozilla::jni::NativeStub<AndroidGamepadManager::OnButtonChange_t, Impl>
-            ::template Wrap<&Impl::OnButtonChange>),
-
-    mozilla::jni::MakeNativeMethod<AndroidGamepadManager::OnGamepadChange_t>(
-            mozilla::jni::NativeStub<AndroidGamepadManager::OnGamepadChange_t, Impl>
-            ::template Wrap<&Impl::OnGamepadChange>)
-};
-
-template<class Impl>
-class EventDispatcher::Natives : public mozilla::jni::NativeImpl<EventDispatcher, Impl>
-{
-public:
-    static const JNINativeMethod methods[3];
-};
-
-template<class Impl>
-const JNINativeMethod EventDispatcher::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<EventDispatcher::DispatchToGecko_t>(
-            mozilla::jni::NativeStub<EventDispatcher::DispatchToGecko_t, Impl>
-            ::template Wrap<&Impl::DispatchToGecko>),
-
-    mozilla::jni::MakeNativeMethod<EventDispatcher::DisposeNative_t>(
-            mozilla::jni::NativeStub<EventDispatcher::DisposeNative_t, Impl>
-            ::template Wrap<&Impl::DisposeNative>),
-
-    mozilla::jni::MakeNativeMethod<EventDispatcher::HasGeckoListener_t>(
-            mozilla::jni::NativeStub<EventDispatcher::HasGeckoListener_t, Impl>
-            ::template Wrap<&Impl::HasGeckoListener>)
-};
-
-template<class Impl>
-class EventDispatcher::NativeCallbackDelegate::Natives : public mozilla::jni::NativeImpl<NativeCallbackDelegate, Impl>
-{
-public:
-    static const JNINativeMethod methods[3];
-};
-
-template<class Impl>
-const JNINativeMethod EventDispatcher::NativeCallbackDelegate::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<EventDispatcher::NativeCallbackDelegate::Finalize_t>(
-            mozilla::jni::NativeStub<EventDispatcher::NativeCallbackDelegate::Finalize_t, Impl>
-            ::template Wrap<&Impl::Finalize>),
-
-    mozilla::jni::MakeNativeMethod<EventDispatcher::NativeCallbackDelegate::SendError_t>(
-            mozilla::jni::NativeStub<EventDispatcher::NativeCallbackDelegate::SendError_t, Impl>
-            ::template Wrap<&Impl::SendError>),
-
-    mozilla::jni::MakeNativeMethod<EventDispatcher::NativeCallbackDelegate::SendSuccess_t>(
-            mozilla::jni::NativeStub<EventDispatcher::NativeCallbackDelegate::SendSuccess_t, Impl>
-            ::template Wrap<&Impl::SendSuccess>)
-};
-
-template<class Impl>
-class GeckoAppShell::Natives : public mozilla::jni::NativeImpl<GeckoAppShell, Impl>
-{
-public:
-    static const JNINativeMethod methods[6];
-};
-
-template<class Impl>
-const JNINativeMethod GeckoAppShell::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<GeckoAppShell::NotifyObservers_t>(
-            mozilla::jni::NativeStub<GeckoAppShell::NotifyObservers_t, Impl>
-            ::template Wrap<&Impl::NotifyObservers>),
-
-    mozilla::jni::MakeNativeMethod<GeckoAppShell::NotifyAlertListener_t>(
-            mozilla::jni::NativeStub<GeckoAppShell::NotifyAlertListener_t, Impl>
-            ::template Wrap<&Impl::NotifyAlertListener>),
-
-    mozilla::jni::MakeNativeMethod<GeckoAppShell::NotifyUriVisited_t>(
-            mozilla::jni::NativeStub<GeckoAppShell::NotifyUriVisited_t, Impl>
-            ::template Wrap<&Impl::NotifyUriVisited>),
-
-    mozilla::jni::MakeNativeMethod<GeckoAppShell::OnLocationChanged_t>(
-            mozilla::jni::NativeStub<GeckoAppShell::OnLocationChanged_t, Impl>
-            ::template Wrap<&Impl::OnLocationChanged>),
-
-    mozilla::jni::MakeNativeMethod<GeckoAppShell::OnSensorChanged_t>(
-            mozilla::jni::NativeStub<GeckoAppShell::OnSensorChanged_t, Impl>
-            ::template Wrap<&Impl::OnSensorChanged>),
-
-    mozilla::jni::MakeNativeMethod<GeckoAppShell::ReportJavaCrash_t>(
-            mozilla::jni::NativeStub<GeckoAppShell::ReportJavaCrash_t, Impl>
-            ::template Wrap<&Impl::ReportJavaCrash>)
-};
-
-template<class Impl>
-class GeckoAppShell::CameraCallback::Natives : public mozilla::jni::NativeImpl<CameraCallback, Impl>
-{
-public:
-    static const JNINativeMethod methods[1];
-};
-
-template<class Impl>
-const JNINativeMethod GeckoAppShell::CameraCallback::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<GeckoAppShell::CameraCallback::OnFrameData_t>(
-            mozilla::jni::NativeStub<GeckoAppShell::CameraCallback::OnFrameData_t, Impl>
-            ::template Wrap<&Impl::OnFrameData>)
-};
-
-template<class Impl>
-class GeckoBatteryManager::Natives : public mozilla::jni::NativeImpl<GeckoBatteryManager, Impl>
-{
-public:
-    static const JNINativeMethod methods[1];
-};
-
-template<class Impl>
-const JNINativeMethod GeckoBatteryManager::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<GeckoBatteryManager::OnBatteryChange_t>(
-            mozilla::jni::NativeStub<GeckoBatteryManager::OnBatteryChange_t, Impl>
-            ::template Wrap<&Impl::OnBatteryChange>)
-};
-
-template<class Impl>
-class GeckoEditableChild::Natives : public mozilla::jni::NativeImpl<GeckoEditableChild, Impl>
-{
-public:
-    static const JNINativeMethod methods[6];
-};
-
-template<class Impl>
-const JNINativeMethod GeckoEditableChild::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<GeckoEditableChild::OnImeAddCompositionRange_t>(
-            mozilla::jni::NativeStub<GeckoEditableChild::OnImeAddCompositionRange_t, Impl>
-            ::template Wrap<&Impl::OnImeAddCompositionRange>),
-
-    mozilla::jni::MakeNativeMethod<GeckoEditableChild::OnImeReplaceText_t>(
-            mozilla::jni::NativeStub<GeckoEditableChild::OnImeReplaceText_t, Impl>
-            ::template Wrap<&Impl::OnImeReplaceText>),
-
-    mozilla::jni::MakeNativeMethod<GeckoEditableChild::OnImeRequestCursorUpdates_t>(
-            mozilla::jni::NativeStub<GeckoEditableChild::OnImeRequestCursorUpdates_t, Impl>
-            ::template Wrap<&Impl::OnImeRequestCursorUpdates>),
-
-    mozilla::jni::MakeNativeMethod<GeckoEditableChild::OnImeSynchronize_t>(
-            mozilla::jni::NativeStub<GeckoEditableChild::OnImeSynchronize_t, Impl>
-            ::template Wrap<&Impl::OnImeSynchronize>),
-
-    mozilla::jni::MakeNativeMethod<GeckoEditableChild::OnImeUpdateComposition_t>(
-            mozilla::jni::NativeStub<GeckoEditableChild::OnImeUpdateComposition_t, Impl>
-            ::template Wrap<&Impl::OnImeUpdateComposition>),
-
-    mozilla::jni::MakeNativeMethod<GeckoEditableChild::OnKeyEvent_t>(
-            mozilla::jni::NativeStub<GeckoEditableChild::OnKeyEvent_t, Impl>
-            ::template Wrap<&Impl::OnKeyEvent>)
-};
-
-template<class Impl>
-class GeckoNetworkManager::Natives : public mozilla::jni::NativeImpl<GeckoNetworkManager, Impl>
-{
-public:
-    static const JNINativeMethod methods[2];
-};
-
-template<class Impl>
-const JNINativeMethod GeckoNetworkManager::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<GeckoNetworkManager::OnConnectionChanged_t>(
-            mozilla::jni::NativeStub<GeckoNetworkManager::OnConnectionChanged_t, Impl>
-            ::template Wrap<&Impl::OnConnectionChanged>),
-
-    mozilla::jni::MakeNativeMethod<GeckoNetworkManager::OnStatusChanged_t>(
-            mozilla::jni::NativeStub<GeckoNetworkManager::OnStatusChanged_t, Impl>
-            ::template Wrap<&Impl::OnStatusChanged>)
-};
-
-template<class Impl>
-class GeckoScreenOrientation::Natives : public mozilla::jni::NativeImpl<GeckoScreenOrientation, Impl>
-{
-public:
-    static const JNINativeMethod methods[1];
-};
-
-template<class Impl>
-const JNINativeMethod GeckoScreenOrientation::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<GeckoScreenOrientation::OnOrientationChange_t>(
-            mozilla::jni::NativeStub<GeckoScreenOrientation::OnOrientationChange_t, Impl>
-            ::template Wrap<&Impl::OnOrientationChange>)
-};
-
-template<class Impl>
-class GeckoThread::Natives : public mozilla::jni::NativeImpl<GeckoThread, Impl>
-{
-public:
-    static const JNINativeMethod methods[8];
-};
-
-template<class Impl>
-const JNINativeMethod GeckoThread::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<GeckoThread::Crash_t>(
-            mozilla::jni::NativeStub<GeckoThread::Crash_t, Impl>
-            ::template Wrap<&Impl::Crash>),
-
-    mozilla::jni::MakeNativeMethod<GeckoThread::ForceQuit_t>(
-            mozilla::jni::NativeStub<GeckoThread::ForceQuit_t, Impl>
-            ::template Wrap<&Impl::ForceQuit>),
-
-    mozilla::jni::MakeNativeMethod<GeckoThread::CreateServices_t>(
-            mozilla::jni::NativeStub<GeckoThread::CreateServices_t, Impl>
-            ::template Wrap<&Impl::CreateServices>),
-
-    mozilla::jni::MakeNativeMethod<GeckoThread::OnPause_t>(
-            mozilla::jni::NativeStub<GeckoThread::OnPause_t, Impl>
-            ::template Wrap<&Impl::OnPause>),
-
-    mozilla::jni::MakeNativeMethod<GeckoThread::OnResume_t>(
-            mozilla::jni::NativeStub<GeckoThread::OnResume_t, Impl>
-            ::template Wrap<&Impl::OnResume>),
-
-    mozilla::jni::MakeNativeMethod<GeckoThread::RunUiThreadCallback_t>(
-            mozilla::jni::NativeStub<GeckoThread::RunUiThreadCallback_t, Impl>
-            ::template Wrap<&Impl::RunUiThreadCallback>),
-
-    mozilla::jni::MakeNativeMethod<GeckoThread::SpeculativeConnect_t>(
-            mozilla::jni::NativeStub<GeckoThread::SpeculativeConnect_t, Impl>
-            ::template Wrap<&Impl::SpeculativeConnect>),
-
-    mozilla::jni::MakeNativeMethod<GeckoThread::WaitOnGecko_t>(
-            mozilla::jni::NativeStub<GeckoThread::WaitOnGecko_t, Impl>
-            ::template Wrap<&Impl::WaitOnGecko>)
-};
-
-template<class Impl>
-class GeckoVRManager::Natives : public mozilla::jni::NativeImpl<GeckoVRManager, Impl>
-{
-public:
-    static const JNINativeMethod methods[3];
-};
-
-template<class Impl>
-const JNINativeMethod GeckoVRManager::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<GeckoVRManager::CleanupGVRNonPresentingContext_t>(
-            mozilla::jni::NativeStub<GeckoVRManager::CleanupGVRNonPresentingContext_t, Impl>
-            ::template Wrap<&Impl::CleanupGVRNonPresentingContext>),
-
-    mozilla::jni::MakeNativeMethod<GeckoVRManager::SetGVRPaused_t>(
-            mozilla::jni::NativeStub<GeckoVRManager::SetGVRPaused_t, Impl>
-            ::template Wrap<&Impl::SetGVRPaused>),
-
-    mozilla::jni::MakeNativeMethod<GeckoVRManager::SetGVRPresentingContext_t>(
-            mozilla::jni::NativeStub<GeckoVRManager::SetGVRPresentingContext_t, Impl>
-            ::template Wrap<&Impl::SetGVRPresentingContext>)
-};
-
-template<class Impl>
-class PrefsHelper::Natives : public mozilla::jni::NativeImpl<PrefsHelper, Impl>
-{
-public:
-    static const JNINativeMethod methods[4];
-};
-
-template<class Impl>
-const JNINativeMethod PrefsHelper::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<PrefsHelper::AddObserver_t>(
-            mozilla::jni::NativeStub<PrefsHelper::AddObserver_t, Impl>
-            ::template Wrap<&Impl::AddObserver>),
-
-    mozilla::jni::MakeNativeMethod<PrefsHelper::GetPrefs_t>(
-            mozilla::jni::NativeStub<PrefsHelper::GetPrefs_t, Impl>
-            ::template Wrap<&Impl::GetPrefs>),
-
-    mozilla::jni::MakeNativeMethod<PrefsHelper::RemoveObserver_t>(
-            mozilla::jni::NativeStub<PrefsHelper::RemoveObserver_t, Impl>
-            ::template Wrap<&Impl::RemoveObserver>),
-
-    mozilla::jni::MakeNativeMethod<PrefsHelper::SetPref_t>(
-            mozilla::jni::NativeStub<PrefsHelper::SetPref_t, Impl>
-            ::template Wrap<&Impl::SetPref>)
-};
-
-template<class Impl>
-class ScreenManagerHelper::Natives : public mozilla::jni::NativeImpl<ScreenManagerHelper, Impl>
-{
-public:
-    static const JNINativeMethod methods[2];
-};
-
-template<class Impl>
-const JNINativeMethod ScreenManagerHelper::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<ScreenManagerHelper::AddDisplay_t>(
-            mozilla::jni::NativeStub<ScreenManagerHelper::AddDisplay_t, Impl>
-            ::template Wrap<&Impl::AddDisplay>),
-
-    mozilla::jni::MakeNativeMethod<ScreenManagerHelper::RemoveDisplay_t>(
-            mozilla::jni::NativeStub<ScreenManagerHelper::RemoveDisplay_t, Impl>
-            ::template Wrap<&Impl::RemoveDisplay>)
-};
-
-template<class Impl>
-class SpeechSynthesisService::Natives : public mozilla::jni::NativeImpl<SpeechSynthesisService, Impl>
-{
-public:
-    static const JNINativeMethod methods[6];
-};
-
-template<class Impl>
-const JNINativeMethod SpeechSynthesisService::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<SpeechSynthesisService::DispatchBoundary_t>(
-            mozilla::jni::NativeStub<SpeechSynthesisService::DispatchBoundary_t, Impl>
-            ::template Wrap<&Impl::DispatchBoundary>),
-
-    mozilla::jni::MakeNativeMethod<SpeechSynthesisService::DispatchEnd_t>(
-            mozilla::jni::NativeStub<SpeechSynthesisService::DispatchEnd_t, Impl>
-            ::template Wrap<&Impl::DispatchEnd>),
-
-    mozilla::jni::MakeNativeMethod<SpeechSynthesisService::DispatchError_t>(
-            mozilla::jni::NativeStub<SpeechSynthesisService::DispatchError_t, Impl>
-            ::template Wrap<&Impl::DispatchError>),
-
-    mozilla::jni::MakeNativeMethod<SpeechSynthesisService::DispatchStart_t>(
-            mozilla::jni::NativeStub<SpeechSynthesisService::DispatchStart_t, Impl>
-            ::template Wrap<&Impl::DispatchStart>),
-
-    mozilla::jni::MakeNativeMethod<SpeechSynthesisService::DoneRegisteringVoices_t>(
-            mozilla::jni::NativeStub<SpeechSynthesisService::DoneRegisteringVoices_t, Impl>
-            ::template Wrap<&Impl::DoneRegisteringVoices>),
-
-    mozilla::jni::MakeNativeMethod<SpeechSynthesisService::RegisterVoice_t>(
-            mozilla::jni::NativeStub<SpeechSynthesisService::RegisterVoice_t, Impl>
-            ::template Wrap<&Impl::RegisterVoice>)
-};
-
-template<class Impl>
-class SurfaceTextureListener::Natives : public mozilla::jni::NativeImpl<SurfaceTextureListener, Impl>
-{
-public:
-    static const JNINativeMethod methods[2];
-};
-
-template<class Impl>
-const JNINativeMethod SurfaceTextureListener::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<SurfaceTextureListener::DisposeNative_t>(
-            mozilla::jni::NativeStub<SurfaceTextureListener::DisposeNative_t, Impl>
-            ::template Wrap<&Impl::DisposeNative>),
-
-    mozilla::jni::MakeNativeMethod<SurfaceTextureListener::OnFrameAvailable_t>(
-            mozilla::jni::NativeStub<SurfaceTextureListener::OnFrameAvailable_t, Impl>
-            ::template Wrap<&Impl::OnFrameAvailable>)
-};
-
-template<class Impl>
-class LayerSession::Compositor::Natives : public mozilla::jni::NativeImpl<Compositor, Impl>
-{
-public:
-    static const JNINativeMethod methods[13];
-};
-
-template<class Impl>
-const JNINativeMethod LayerSession::Compositor::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<LayerSession::Compositor::AttachNPZC_t>(
-            mozilla::jni::NativeStub<LayerSession::Compositor::AttachNPZC_t, Impl>
-            ::template Wrap<&Impl::AttachNPZC>),
-
-    mozilla::jni::MakeNativeMethod<LayerSession::Compositor::CreateCompositor_t>(
-            mozilla::jni::NativeStub<LayerSession::Compositor::CreateCompositor_t, Impl>
-            ::template Wrap<&Impl::CreateCompositor>),
-
-    mozilla::jni::MakeNativeMethod<LayerSession::Compositor::DisposeNative_t>(
-            mozilla::jni::NativeStub<LayerSession::Compositor::DisposeNative_t, Impl>
-            ::template Wrap<&Impl::DisposeNative>),
-
-    mozilla::jni::MakeNativeMethod<LayerSession::Compositor::EnableLayerUpdateNotifications_t>(
-            mozilla::jni::NativeStub<LayerSession::Compositor::EnableLayerUpdateNotifications_t, Impl>
-            ::template Wrap<&Impl::EnableLayerUpdateNotifications>),
-
-    mozilla::jni::MakeNativeMethod<LayerSession::Compositor::OnBoundsChanged_t>(
-            mozilla::jni::NativeStub<LayerSession::Compositor::OnBoundsChanged_t, Impl>
-            ::template Wrap<&Impl::OnBoundsChanged>),
-
-    mozilla::jni::MakeNativeMethod<LayerSession::Compositor::RequestScreenPixels_t>(
-            mozilla::jni::NativeStub<LayerSession::Compositor::RequestScreenPixels_t, Impl>
-            ::template Wrap<&Impl::RequestScreenPixels>),
-
-    mozilla::jni::MakeNativeMethod<LayerSession::Compositor::SendToolbarAnimatorMessage_t>(
-            mozilla::jni::NativeStub<LayerSession::Compositor::SendToolbarAnimatorMessage_t, Impl>
-            ::template Wrap<&Impl::SendToolbarAnimatorMessage>),
-
-    mozilla::jni::MakeNativeMethod<LayerSession::Compositor::SendToolbarPixelsToCompositor_t>(
-            mozilla::jni::NativeStub<LayerSession::Compositor::SendToolbarPixelsToCompositor_t, Impl>
-            ::template Wrap<&Impl::SendToolbarPixelsToCompositor>),
-
-    mozilla::jni::MakeNativeMethod<LayerSession::Compositor::SetDefaultClearColor_t>(
-            mozilla::jni::NativeStub<LayerSession::Compositor::SetDefaultClearColor_t, Impl>
-            ::template Wrap<&Impl::SetDefaultClearColor>),
-
-    mozilla::jni::MakeNativeMethod<LayerSession::Compositor::SetMaxToolbarHeight_t>(
-            mozilla::jni::NativeStub<LayerSession::Compositor::SetMaxToolbarHeight_t, Impl>
-            ::template Wrap<&Impl::SetMaxToolbarHeight>),
-
-    mozilla::jni::MakeNativeMethod<LayerSession::Compositor::SetPinned_t>(
-            mozilla::jni::NativeStub<LayerSession::Compositor::SetPinned_t, Impl>
-            ::template Wrap<&Impl::SetPinned>),
-
-    mozilla::jni::MakeNativeMethod<LayerSession::Compositor::SyncPauseCompositor_t>(
-            mozilla::jni::NativeStub<LayerSession::Compositor::SyncPauseCompositor_t, Impl>
-            ::template Wrap<&Impl::SyncPauseCompositor>),
-
-    mozilla::jni::MakeNativeMethod<LayerSession::Compositor::SyncResumeResizeCompositor_t>(
-            mozilla::jni::NativeStub<LayerSession::Compositor::SyncResumeResizeCompositor_t, Impl>
-            ::template Wrap<&Impl::SyncResumeResizeCompositor>)
-};
-
-template<class Impl>
-class PanZoomController::Natives : public mozilla::jni::NativeImpl<PanZoomController, Impl>
-{
-public:
-    static const JNINativeMethod methods[5];
-};
-
-template<class Impl>
-const JNINativeMethod PanZoomController::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<PanZoomController::DisposeNative_t>(
-            mozilla::jni::NativeStub<PanZoomController::DisposeNative_t, Impl>
-            ::template Wrap<&Impl::DisposeNative>),
-
-    mozilla::jni::MakeNativeMethod<PanZoomController::HandleMotionEvent_t>(
-            mozilla::jni::NativeStub<PanZoomController::HandleMotionEvent_t, Impl>
-            ::template Wrap<&Impl::HandleMotionEvent>),
-
-    mozilla::jni::MakeNativeMethod<PanZoomController::HandleMouseEvent_t>(
-            mozilla::jni::NativeStub<PanZoomController::HandleMouseEvent_t, Impl>
-            ::template Wrap<&Impl::HandleMouseEvent>),
-
-    mozilla::jni::MakeNativeMethod<PanZoomController::HandleScrollEvent_t>(
-            mozilla::jni::NativeStub<PanZoomController::HandleScrollEvent_t, Impl>
-            ::template Wrap<&Impl::HandleScrollEvent>),
-
-    mozilla::jni::MakeNativeMethod<PanZoomController::SetIsLongpressEnabled_t>(
-            mozilla::jni::NativeStub<PanZoomController::SetIsLongpressEnabled_t, Impl>
-            ::template Wrap<&Impl::SetIsLongpressEnabled>)
-};
-
-template<class Impl>
-class VsyncSource::Natives : public mozilla::jni::NativeImpl<VsyncSource, Impl>
-{
-public:
-    static const JNINativeMethod methods[1];
-};
-
-template<class Impl>
-const JNINativeMethod VsyncSource::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<VsyncSource::NotifyVsync_t>(
-            mozilla::jni::NativeStub<VsyncSource::NotifyVsync_t, Impl>
-            ::template Wrap<&Impl::NotifyVsync>)
-};
-
-template<class Impl>
-class CodecProxy::NativeCallbacks::Natives : public mozilla::jni::NativeImpl<NativeCallbacks, Impl>
-{
-public:
-    static const JNINativeMethod methods[4];
-};
-
-template<class Impl>
-const JNINativeMethod CodecProxy::NativeCallbacks::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<CodecProxy::NativeCallbacks::OnError_t>(
-            mozilla::jni::NativeStub<CodecProxy::NativeCallbacks::OnError_t, Impl>
-            ::template Wrap<&Impl::OnError>),
-
-    mozilla::jni::MakeNativeMethod<CodecProxy::NativeCallbacks::OnInputStatus_t>(
-            mozilla::jni::NativeStub<CodecProxy::NativeCallbacks::OnInputStatus_t, Impl>
-            ::template Wrap<&Impl::OnInputStatus>),
-
-    mozilla::jni::MakeNativeMethod<CodecProxy::NativeCallbacks::OnOutput_t>(
-            mozilla::jni::NativeStub<CodecProxy::NativeCallbacks::OnOutput_t, Impl>
-            ::template Wrap<&Impl::OnOutput>),
-
-    mozilla::jni::MakeNativeMethod<CodecProxy::NativeCallbacks::OnOutputFormatChanged_t>(
-            mozilla::jni::NativeStub<CodecProxy::NativeCallbacks::OnOutputFormatChanged_t, Impl>
-            ::template Wrap<&Impl::OnOutputFormatChanged>)
-};
-
-template<class Impl>
-class GeckoHLSDemuxerWrapper::Callbacks::Natives : public mozilla::jni::NativeImpl<Callbacks, Impl>
-{
-public:
-    static const JNINativeMethod methods[2];
-};
-
-template<class Impl>
-const JNINativeMethod GeckoHLSDemuxerWrapper::Callbacks::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<GeckoHLSDemuxerWrapper::Callbacks::OnError_t>(
-            mozilla::jni::NativeStub<GeckoHLSDemuxerWrapper::Callbacks::OnError_t, Impl>
-            ::template Wrap<&Impl::OnError>),
-
-    mozilla::jni::MakeNativeMethod<GeckoHLSDemuxerWrapper::Callbacks::OnInitialized_t>(
-            mozilla::jni::NativeStub<GeckoHLSDemuxerWrapper::Callbacks::OnInitialized_t, Impl>
-            ::template Wrap<&Impl::OnInitialized>)
-};
-
-template<class Impl>
-class GeckoHLSResourceWrapper::Callbacks::Natives : public mozilla::jni::NativeImpl<Callbacks, Impl>
-{
-public:
-    static const JNINativeMethod methods[2];
-};
-
-template<class Impl>
-const JNINativeMethod GeckoHLSResourceWrapper::Callbacks::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<GeckoHLSResourceWrapper::Callbacks::OnDataArrived_t>(
-            mozilla::jni::NativeStub<GeckoHLSResourceWrapper::Callbacks::OnDataArrived_t, Impl>
-            ::template Wrap<&Impl::OnDataArrived>),
-
-    mozilla::jni::MakeNativeMethod<GeckoHLSResourceWrapper::Callbacks::OnError_t>(
-            mozilla::jni::NativeStub<GeckoHLSResourceWrapper::Callbacks::OnError_t, Impl>
-            ::template Wrap<&Impl::OnError>)
-};
-
-template<class Impl>
-class MediaDrmProxy::NativeMediaDrmProxyCallbacks::Natives : public mozilla::jni::NativeImpl<NativeMediaDrmProxyCallbacks, Impl>
-{
-public:
-    static const JNINativeMethod methods[7];
-};
-
-template<class Impl>
-const JNINativeMethod MediaDrmProxy::NativeMediaDrmProxyCallbacks::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnRejectPromise_t>(
-            mozilla::jni::NativeStub<MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnRejectPromise_t, Impl>
-            ::template Wrap<&Impl::OnRejectPromise>),
-
-    mozilla::jni::MakeNativeMethod<MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionBatchedKeyChanged_t>(
-            mozilla::jni::NativeStub<MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionBatchedKeyChanged_t, Impl>
-            ::template Wrap<&Impl::OnSessionBatchedKeyChanged>),
-
-    mozilla::jni::MakeNativeMethod<MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionClosed_t>(
-            mozilla::jni::NativeStub<MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionClosed_t, Impl>
-            ::template Wrap<&Impl::OnSessionClosed>),
-
-    mozilla::jni::MakeNativeMethod<MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionCreated_t>(
-            mozilla::jni::NativeStub<MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionCreated_t, Impl>
-            ::template Wrap<&Impl::OnSessionCreated>),
-
-    mozilla::jni::MakeNativeMethod<MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionError_t>(
-            mozilla::jni::NativeStub<MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionError_t, Impl>
-            ::template Wrap<&Impl::OnSessionError>),
-
-    mozilla::jni::MakeNativeMethod<MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionMessage_t>(
-            mozilla::jni::NativeStub<MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionMessage_t, Impl>
-            ::template Wrap<&Impl::OnSessionMessage>),
-
-    mozilla::jni::MakeNativeMethod<MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionUpdated_t>(
-            mozilla::jni::NativeStub<MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionUpdated_t, Impl>
-            ::template Wrap<&Impl::OnSessionUpdated>)
-};
-
-template<class Impl>
-class GeckoProcessManager::Natives : public mozilla::jni::NativeImpl<GeckoProcessManager, Impl>
-{
-public:
-    static const JNINativeMethod methods[1];
-};
-
-template<class Impl>
-const JNINativeMethod GeckoProcessManager::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<GeckoProcessManager::GetEditableParent_t>(
-            mozilla::jni::NativeStub<GeckoProcessManager::GetEditableParent_t, Impl>
-            ::template Wrap<&Impl::GetEditableParent>)
-};
-
-template<class Impl>
-class GeckoSession::Window::Natives : public mozilla::jni::NativeImpl<Window, Impl>
-{
-public:
-    static const JNINativeMethod methods[5];
-};
-
-template<class Impl>
-const JNINativeMethod GeckoSession::Window::Natives<Impl>::methods[] = {
-
-    mozilla::jni::MakeNativeMethod<GeckoSession::Window::AttachEditable_t>(
-            mozilla::jni::NativeStub<GeckoSession::Window::AttachEditable_t, Impl>
-            ::template Wrap<&Impl::AttachEditable>),
-
-    mozilla::jni::MakeNativeMethod<GeckoSession::Window::Close_t>(
-            mozilla::jni::NativeStub<GeckoSession::Window::Close_t, Impl>
-            ::template Wrap<&Impl::Close>),
-
-    mozilla::jni::MakeNativeMethod<GeckoSession::Window::DisposeNative_t>(
-            mozilla::jni::NativeStub<GeckoSession::Window::DisposeNative_t, Impl>
-            ::template Wrap<&Impl::DisposeNative>),
-
-    mozilla::jni::MakeNativeMethod<GeckoSession::Window::Transfer_t>(
-            mozilla::jni::NativeStub<GeckoSession::Window::Transfer_t, Impl>
-            ::template Wrap<&Impl::Transfer>),
-
-    mozilla::jni::MakeNativeMethod<GeckoSession::Window::Open_t>(
-            mozilla::jni::NativeStub<GeckoSession::Window::Open_t, Impl>
-            ::template Wrap<&Impl::Open>)
-};
-
-} /* java */
-} /* mozilla */
-#endif // GeneratedJNINatives_h
deleted file mode 100644
--- a/widget/android/GeneratedJNIWrappers.cpp
+++ /dev/null
@@ -1,2598 +0,0 @@
-// 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 MOZ_PREPROCESSOR
-#include "GeneratedJNIWrappers.h"
-#include "mozilla/jni/Accessors.h"
-#endif
-
-namespace mozilla {
-namespace java {
-
-const char AndroidGamepadManager::name[] =
-        "org/mozilla/gecko/AndroidGamepadManager";
-
-constexpr char AndroidGamepadManager::OnAxisChange_t::name[];
-constexpr char AndroidGamepadManager::OnAxisChange_t::signature[];
-
-constexpr char AndroidGamepadManager::OnButtonChange_t::name[];
-constexpr char AndroidGamepadManager::OnButtonChange_t::signature[];
-
-constexpr char AndroidGamepadManager::OnGamepadAdded_t::name[];
-constexpr char AndroidGamepadManager::OnGamepadAdded_t::signature[];
-
-auto AndroidGamepadManager::OnGamepadAdded(int32_t a0, int32_t a1) -> void
-{
-    return mozilla::jni::Method<OnGamepadAdded_t>::Call(AndroidGamepadManager::Context(), nullptr, a0, a1);
-}
-
-constexpr char AndroidGamepadManager::OnGamepadChange_t::name[];
-constexpr char AndroidGamepadManager::OnGamepadChange_t::signature[];
-
-constexpr char AndroidGamepadManager::Start_t::name[];
-constexpr char AndroidGamepadManager::Start_t::signature[];
-
-auto AndroidGamepadManager::Start(mozilla::jni::Object::Param a0) -> void
-{
-    return mozilla::jni::Method<Start_t>::Call(AndroidGamepadManager::Context(), nullptr, a0);
-}
-
-constexpr char AndroidGamepadManager::Stop_t::name[];
-constexpr char AndroidGamepadManager::Stop_t::signature[];
-
-auto AndroidGamepadManager::Stop(mozilla::jni::Object::Param a0) -> void
-{
-    return mozilla::jni::Method<Stop_t>::Call(AndroidGamepadManager::Context(), nullptr, a0);
-}
-
-const char Clipboard::name[] =
-        "org/mozilla/gecko/Clipboard";
-
-constexpr char Clipboard::ClearText_t::name[];
-constexpr char Clipboard::ClearText_t::signature[];
-
-auto Clipboard::ClearText(mozilla::jni::Object::Param a0) -> void
-{
-    return mozilla::jni::Method<ClearText_t>::Call(Clipboard::Context(), nullptr, a0);
-}
-
-constexpr char Clipboard::GetText_t::name[];
-constexpr char Clipboard::GetText_t::signature[];
-
-auto Clipboard::GetText(mozilla::jni::Object::Param a0) -> mozilla::jni::String::LocalRef
-{
-    return mozilla::jni::Method<GetText_t>::Call(Clipboard::Context(), nullptr, a0);
-}
-
-constexpr char Clipboard::HasText_t::name[];
-constexpr char Clipboard::HasText_t::signature[];
-
-auto Clipboard::HasText(mozilla::jni::Object::Param a0) -> bool
-{
-    return mozilla::jni::Method<HasText_t>::Call(Clipboard::Context(), nullptr, a0);
-}
-
-constexpr char Clipboard::SetText_t::name[];
-constexpr char Clipboard::SetText_t::signature[];
-
-auto Clipboard::SetText(mozilla::jni::Object::Param a0, mozilla::jni::String::Param a1) -> void
-{
-    return mozilla::jni::Method<SetText_t>::Call(Clipboard::Context(), nullptr, a0, a1);
-}
-
-const char EventDispatcher::name[] =
-        "org/mozilla/gecko/EventDispatcher";
-
-constexpr char EventDispatcher::DispatchToGecko_t::name[];
-constexpr char EventDispatcher::DispatchToGecko_t::signature[];
-
-constexpr char EventDispatcher::DispatchToThreads_t::name[];
-constexpr char EventDispatcher::DispatchToThreads_t::signature[];
-
-auto EventDispatcher::DispatchToThreads(mozilla::jni::String::Param a0, mozilla::jni::Object::Param a1, mozilla::jni::Object::Param a2) const -> bool
-{
-    return mozilla::jni::Method<DispatchToThreads_t>::Call(EventDispatcher::mCtx, nullptr, a0, a1, a2);
-}
-
-constexpr char EventDispatcher::DisposeNative_t::name[];
-constexpr char EventDispatcher::DisposeNative_t::signature[];
-
-constexpr char EventDispatcher::GetInstance_t::name[];
-constexpr char EventDispatcher::GetInstance_t::signature[];
-
-auto EventDispatcher::GetInstance() -> EventDispatcher::LocalRef
-{
-    return mozilla::jni::Method<GetInstance_t>::Call(EventDispatcher::Context(), nullptr);
-}
-
-constexpr char EventDispatcher::HasGeckoListener_t::name[];
-constexpr char EventDispatcher::HasGeckoListener_t::signature[];
-
-constexpr char EventDispatcher::SetAttachedToGecko_t::name[];
-constexpr char EventDispatcher::SetAttachedToGecko_t::signature[];
-
-auto EventDispatcher::SetAttachedToGecko(int32_t a0) const -> void
-{
-    return mozilla::jni::Method<SetAttachedToGecko_t>::Call(EventDispatcher::mCtx, nullptr, a0);
-}
-
-const char EventDispatcher::NativeCallbackDelegate::name[] =
-        "org/mozilla/gecko/EventDispatcher$NativeCallbackDelegate";
-
-constexpr char EventDispatcher::NativeCallbackDelegate::New_t::name[];
-constexpr char EventDispatcher::NativeCallbackDelegate::New_t::signature[];
-
-auto EventDispatcher::NativeCallbackDelegate::New() -> NativeCallbackDelegate::LocalRef
-{
-    return mozilla::jni::Constructor<New_t>::Call(NativeCallbackDelegate::Context(), nullptr);
-}
-
-constexpr char EventDispatcher::NativeCallbackDelegate::Finalize_t::name[];
-constexpr char EventDispatcher::NativeCallbackDelegate::Finalize_t::signature[];
-
-constexpr char EventDispatcher::NativeCallbackDelegate::SendError_t::name[];
-constexpr char EventDispatcher::NativeCallbackDelegate::SendError_t::signature[];
-
-constexpr char EventDispatcher::NativeCallbackDelegate::SendSuccess_t::name[];
-constexpr char EventDispatcher::NativeCallbackDelegate::SendSuccess_t::signature[];
-
-const char GeckoAppShell::name[] =
-        "org/mozilla/gecko/GeckoAppShell";
-
-constexpr char GeckoAppShell::CancelVibrate_t::name[];
-constexpr char GeckoAppShell::CancelVibrate_t::signature[];
-
-auto GeckoAppShell::CancelVibrate() -> void
-{
-    return mozilla::jni::Method<CancelVibrate_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::CloseCamera_t::name[];
-constexpr char GeckoAppShell::CloseCamera_t::signature[];
-
-auto GeckoAppShell::CloseCamera() -> void
-{
-    return mozilla::jni::Method<CloseCamera_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::CloseNotification_t::name[];
-constexpr char GeckoAppShell::CloseNotification_t::signature[];
-
-auto GeckoAppShell::CloseNotification(mozilla::jni::String::Param a0) -> void
-{
-    return mozilla::jni::Method<CloseNotification_t>::Call(GeckoAppShell::Context(), nullptr, a0);
-}
-
-constexpr char GeckoAppShell::ConnectionGetMimeType_t::name[];
-constexpr char GeckoAppShell::ConnectionGetMimeType_t::signature[];
-
-auto GeckoAppShell::ConnectionGetMimeType(mozilla::jni::Object::Param a0) -> mozilla::jni::String::LocalRef
-{
-    return mozilla::jni::Method<ConnectionGetMimeType_t>::Call(GeckoAppShell::Context(), nullptr, a0);
-}
-
-constexpr char GeckoAppShell::CreateInputStream_t::name[];
-constexpr char GeckoAppShell::CreateInputStream_t::signature[];
-
-auto GeckoAppShell::CreateInputStream(mozilla::jni::Object::Param a0) -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Method<CreateInputStream_t>::Call(GeckoAppShell::Context(), nullptr, a0);
-}
-
-constexpr char GeckoAppShell::DisableBatteryNotifications_t::name[];
-constexpr char GeckoAppShell::DisableBatteryNotifications_t::signature[];
-
-auto GeckoAppShell::DisableBatteryNotifications() -> void
-{
-    return mozilla::jni::Method<DisableBatteryNotifications_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::DisableNetworkNotifications_t::name[];
-constexpr char GeckoAppShell::DisableNetworkNotifications_t::signature[];
-
-auto GeckoAppShell::DisableNetworkNotifications() -> void
-{
-    return mozilla::jni::Method<DisableNetworkNotifications_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::DisableScreenOrientationNotifications_t::name[];
-constexpr char GeckoAppShell::DisableScreenOrientationNotifications_t::signature[];
-
-auto GeckoAppShell::DisableScreenOrientationNotifications() -> void
-{
-    return mozilla::jni::Method<DisableScreenOrientationNotifications_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::DisableSensor_t::name[];
-constexpr char GeckoAppShell::DisableSensor_t::signature[];
-
-auto GeckoAppShell::DisableSensor(int32_t a0) -> void
-{
-    return mozilla::jni::Method<DisableSensor_t>::Call(GeckoAppShell::Context(), nullptr, a0);
-}
-
-constexpr char GeckoAppShell::EnableBatteryNotifications_t::name[];
-constexpr char GeckoAppShell::EnableBatteryNotifications_t::signature[];
-
-auto GeckoAppShell::EnableBatteryNotifications() -> void
-{
-    return mozilla::jni::Method<EnableBatteryNotifications_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::EnableLocation_t::name[];
-constexpr char GeckoAppShell::EnableLocation_t::signature[];
-
-auto GeckoAppShell::EnableLocation(bool a0) -> bool
-{
-    return mozilla::jni::Method<EnableLocation_t>::Call(GeckoAppShell::Context(), nullptr, a0);
-}
-
-constexpr char GeckoAppShell::EnableLocationHighAccuracy_t::name[];
-constexpr char GeckoAppShell::EnableLocationHighAccuracy_t::signature[];
-
-auto GeckoAppShell::EnableLocationHighAccuracy(bool a0) -> void
-{
-    return mozilla::jni::Method<EnableLocationHighAccuracy_t>::Call(GeckoAppShell::Context(), nullptr, a0);
-}
-
-constexpr char GeckoAppShell::EnableNetworkNotifications_t::name[];
-constexpr char GeckoAppShell::EnableNetworkNotifications_t::signature[];
-
-auto GeckoAppShell::EnableNetworkNotifications() -> void
-{
-    return mozilla::jni::Method<EnableNetworkNotifications_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::EnableScreenOrientationNotifications_t::name[];
-constexpr char GeckoAppShell::EnableScreenOrientationNotifications_t::signature[];
-
-auto GeckoAppShell::EnableScreenOrientationNotifications() -> void
-{
-    return mozilla::jni::Method<EnableScreenOrientationNotifications_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::EnableSensor_t::name[];
-constexpr char GeckoAppShell::EnableSensor_t::signature[];
-
-auto GeckoAppShell::EnableSensor(int32_t a0) -> void
-{
-    return mozilla::jni::Method<EnableSensor_t>::Call(GeckoAppShell::Context(), nullptr, a0);
-}
-
-constexpr char GeckoAppShell::GetAppNotes_t::name[];
-constexpr char GeckoAppShell::GetAppNotes_t::signature[];
-
-auto GeckoAppShell::GetAppNotes() -> mozilla::jni::String::LocalRef
-{
-    return mozilla::jni::Method<GetAppNotes_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetApplicationContext_t::name[];
-constexpr char GeckoAppShell::GetApplicationContext_t::signature[];
-
-auto GeckoAppShell::GetApplicationContext() -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Method<GetApplicationContext_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetAudioOutputFramesPerBuffer_t::name[];
-constexpr char GeckoAppShell::GetAudioOutputFramesPerBuffer_t::signature[];
-
-auto GeckoAppShell::GetAudioOutputFramesPerBuffer() -> int32_t
-{
-    return mozilla::jni::Method<GetAudioOutputFramesPerBuffer_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetAudioOutputSampleRate_t::name[];
-constexpr char GeckoAppShell::GetAudioOutputSampleRate_t::signature[];
-
-auto GeckoAppShell::GetAudioOutputSampleRate() -> int32_t
-{
-    return mozilla::jni::Method<GetAudioOutputSampleRate_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetConnection_t::name[];
-constexpr char GeckoAppShell::GetConnection_t::signature[];
-
-auto GeckoAppShell::GetConnection(mozilla::jni::String::Param a0) -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Method<GetConnection_t>::Call(GeckoAppShell::Context(), nullptr, a0);
-}
-
-constexpr char GeckoAppShell::GetCurrentBatteryInformation_t::name[];
-constexpr char GeckoAppShell::GetCurrentBatteryInformation_t::signature[];
-
-auto GeckoAppShell::GetCurrentBatteryInformation() -> mozilla::jni::DoubleArray::LocalRef
-{
-    return mozilla::jni::Method<GetCurrentBatteryInformation_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetCurrentNetworkInformation_t::name[];
-constexpr char GeckoAppShell::GetCurrentNetworkInformation_t::signature[];
-
-auto GeckoAppShell::GetCurrentNetworkInformation() -> mozilla::jni::DoubleArray::LocalRef
-{
-    return mozilla::jni::Method<GetCurrentNetworkInformation_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetDefaultLocale_t::name[];
-constexpr char GeckoAppShell::GetDefaultLocale_t::signature[];
-
-auto GeckoAppShell::GetDefaultLocale() -> mozilla::jni::String::LocalRef
-{
-    return mozilla::jni::Method<GetDefaultLocale_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetDensity_t::name[];
-constexpr char GeckoAppShell::GetDensity_t::signature[];
-
-auto GeckoAppShell::GetDensity() -> float
-{
-    return mozilla::jni::Method<GetDensity_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetDpi_t::name[];
-constexpr char GeckoAppShell::GetDpi_t::signature[];
-
-auto GeckoAppShell::GetDpi() -> int32_t
-{
-    return mozilla::jni::Method<GetDpi_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetExceptionStackTrace_t::name[];
-constexpr char GeckoAppShell::GetExceptionStackTrace_t::signature[];
-
-auto GeckoAppShell::GetExceptionStackTrace(mozilla::jni::Throwable::Param a0) -> mozilla::jni::String::LocalRef
-{
-    return mozilla::jni::Method<GetExceptionStackTrace_t>::Call(GeckoAppShell::Context(), nullptr, a0);
-}
-
-constexpr char GeckoAppShell::GetExtensionFromMimeType_t::name[];
-constexpr char GeckoAppShell::GetExtensionFromMimeType_t::signature[];
-
-auto GeckoAppShell::GetExtensionFromMimeType(mozilla::jni::String::Param a0) -> mozilla::jni::String::LocalRef
-{
-    return mozilla::jni::Method<GetExtensionFromMimeType_t>::Call(GeckoAppShell::Context(), nullptr, a0);
-}
-
-constexpr char GeckoAppShell::GetHWDecoderCapability_t::name[];
-constexpr char GeckoAppShell::GetHWDecoderCapability_t::signature[];
-
-auto GeckoAppShell::GetHWDecoderCapability() -> bool
-{
-    return mozilla::jni::Method<GetHWDecoderCapability_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetHWEncoderCapability_t::name[];
-constexpr char GeckoAppShell::GetHWEncoderCapability_t::signature[];
-
-auto GeckoAppShell::GetHWEncoderCapability() -> bool
-{
-    return mozilla::jni::Method<GetHWEncoderCapability_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetHandlersForMimeType_t::name[];
-constexpr char GeckoAppShell::GetHandlersForMimeType_t::signature[];
-
-auto GeckoAppShell::GetHandlersForMimeType(mozilla::jni::String::Param a0, mozilla::jni::String::Param a1) -> mozilla::jni::ObjectArray::LocalRef
-{
-    return mozilla::jni::Method<GetHandlersForMimeType_t>::Call(GeckoAppShell::Context(), nullptr, a0, a1);
-}
-
-constexpr char GeckoAppShell::GetHandlersForURL_t::name[];
-constexpr char GeckoAppShell::GetHandlersForURL_t::signature[];
-
-auto GeckoAppShell::GetHandlersForURL(mozilla::jni::String::Param a0, mozilla::jni::String::Param a1) -> mozilla::jni::ObjectArray::LocalRef
-{
-    return mozilla::jni::Method<GetHandlersForURL_t>::Call(GeckoAppShell::Context(), nullptr, a0, a1);
-}
-
-constexpr char GeckoAppShell::GetIconForExtension_t::name[];
-constexpr char GeckoAppShell::GetIconForExtension_t::signature[];
-
-auto GeckoAppShell::GetIconForExtension(mozilla::jni::String::Param a0, int32_t a1) -> mozilla::jni::ByteArray::LocalRef
-{
-    return mozilla::jni::Method<GetIconForExtension_t>::Call(GeckoAppShell::Context(), nullptr, a0, a1);
-}
-
-constexpr char GeckoAppShell::GetMaxTouchPoints_t::name[];
-constexpr char GeckoAppShell::GetMaxTouchPoints_t::signature[];
-
-auto GeckoAppShell::GetMaxTouchPoints() -> int32_t
-{
-    return mozilla::jni::Method<GetMaxTouchPoints_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetMimeTypeFromExtensions_t::name[];
-constexpr char GeckoAppShell::GetMimeTypeFromExtensions_t::signature[];
-
-auto GeckoAppShell::GetMimeTypeFromExtensions(mozilla::jni::String::Param a0) -> mozilla::jni::String::LocalRef
-{
-    return mozilla::jni::Method<GetMimeTypeFromExtensions_t>::Call(GeckoAppShell::Context(), nullptr, a0);
-}
-
-constexpr char GeckoAppShell::GetNetworkLinkType_t::name[];
-constexpr char GeckoAppShell::GetNetworkLinkType_t::signature[];
-
-auto GeckoAppShell::GetNetworkLinkType() -> int32_t
-{
-    return mozilla::jni::Method<GetNetworkLinkType_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetProxyForURI_t::name[];
-constexpr char GeckoAppShell::GetProxyForURI_t::signature[];
-
-auto GeckoAppShell::GetProxyForURI(mozilla::jni::String::Param a0, mozilla::jni::String::Param a1, mozilla::jni::String::Param a2, int32_t a3) -> mozilla::jni::String::LocalRef
-{
-    return mozilla::jni::Method<GetProxyForURI_t>::Call(GeckoAppShell::Context(), nullptr, a0, a1, a2, a3);
-}
-
-constexpr char GeckoAppShell::GetScreenAngle_t::name[];
-constexpr char GeckoAppShell::GetScreenAngle_t::signature[];
-
-auto GeckoAppShell::GetScreenAngle() -> int32_t
-{
-    return mozilla::jni::Method<GetScreenAngle_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetScreenDepth_t::name[];
-constexpr char GeckoAppShell::GetScreenDepth_t::signature[];
-
-auto GeckoAppShell::GetScreenDepth() -> int32_t
-{
-    return mozilla::jni::Method<GetScreenDepth_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetScreenOrientation_t::name[];
-constexpr char GeckoAppShell::GetScreenOrientation_t::signature[];
-
-auto GeckoAppShell::GetScreenOrientation() -> int16_t
-{
-    return mozilla::jni::Method<GetScreenOrientation_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetScreenSize_t::name[];
-constexpr char GeckoAppShell::GetScreenSize_t::signature[];
-
-auto GeckoAppShell::GetScreenSize() -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Method<GetScreenSize_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetShowPasswordSetting_t::name[];
-constexpr char GeckoAppShell::GetShowPasswordSetting_t::signature[];
-
-auto GeckoAppShell::GetShowPasswordSetting() -> bool
-{
-    return mozilla::jni::Method<GetShowPasswordSetting_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::GetSystemColors_t::name[];
-constexpr char GeckoAppShell::GetSystemColors_t::signature[];
-
-auto GeckoAppShell::GetSystemColors() -> mozilla::jni::IntArray::LocalRef
-{
-    return mozilla::jni::Method<GetSystemColors_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::HandleUncaughtException_t::name[];
-constexpr char GeckoAppShell::HandleUncaughtException_t::signature[];
-
-auto GeckoAppShell::HandleUncaughtException(mozilla::jni::Throwable::Param a0) -> void
-{
-    return mozilla::jni::Method<HandleUncaughtException_t>::Call(GeckoAppShell::Context(), nullptr, a0);
-}
-
-constexpr char GeckoAppShell::HideProgressDialog_t::name[];
-constexpr char GeckoAppShell::HideProgressDialog_t::signature[];
-
-auto GeckoAppShell::HideProgressDialog() -> void
-{
-    return mozilla::jni::Method<HideProgressDialog_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::InitCamera_t::name[];
-constexpr char GeckoAppShell::InitCamera_t::signature[];
-
-auto GeckoAppShell::InitCamera(mozilla::jni::String::Param a0, int32_t a1, int32_t a2, int32_t a3) -> mozilla::jni::IntArray::LocalRef
-{
-    return mozilla::jni::Method<InitCamera_t>::Call(GeckoAppShell::Context(), nullptr, a0, a1, a2, a3);
-}
-
-constexpr char GeckoAppShell::IsNetworkLinkKnown_t::name[];
-constexpr char GeckoAppShell::IsNetworkLinkKnown_t::signature[];
-
-auto GeckoAppShell::IsNetworkLinkKnown() -> bool
-{
-    return mozilla::jni::Method<IsNetworkLinkKnown_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::IsNetworkLinkUp_t::name[];
-constexpr char GeckoAppShell::IsNetworkLinkUp_t::signature[];
-
-auto GeckoAppShell::IsNetworkLinkUp() -> bool
-{
-    return mozilla::jni::Method<IsNetworkLinkUp_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::IsTablet_t::name[];
-constexpr char GeckoAppShell::IsTablet_t::signature[];
-
-auto GeckoAppShell::IsTablet() -> bool
-{
-    return mozilla::jni::Method<IsTablet_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::KillAnyZombies_t::name[];
-constexpr char GeckoAppShell::KillAnyZombies_t::signature[];
-
-auto GeckoAppShell::KillAnyZombies() -> void
-{
-    return mozilla::jni::Method<KillAnyZombies_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::LockScreenOrientation_t::name[];
-constexpr char GeckoAppShell::LockScreenOrientation_t::signature[];
-
-auto GeckoAppShell::LockScreenOrientation(int32_t a0) -> void
-{
-    return mozilla::jni::Method<LockScreenOrientation_t>::Call(GeckoAppShell::Context(), nullptr, a0);
-}
-
-constexpr char GeckoAppShell::MoveTaskToBack_t::name[];
-constexpr char GeckoAppShell::MoveTaskToBack_t::signature[];
-
-auto GeckoAppShell::MoveTaskToBack() -> void
-{
-    return mozilla::jni::Method<MoveTaskToBack_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::NotifyObservers_t::name[];
-constexpr char GeckoAppShell::NotifyObservers_t::signature[];
-
-constexpr char GeckoAppShell::NotifyAlertListener_t::name[];
-constexpr char GeckoAppShell::NotifyAlertListener_t::signature[];
-
-constexpr char GeckoAppShell::NotifyUriVisited_t::name[];
-constexpr char GeckoAppShell::NotifyUriVisited_t::signature[];
-
-constexpr char GeckoAppShell::NotifyWakeLockChanged_t::name[];
-constexpr char GeckoAppShell::NotifyWakeLockChanged_t::signature[];
-
-auto GeckoAppShell::NotifyWakeLockChanged(mozilla::jni::String::Param a0, mozilla::jni::String::Param a1) -> void
-{
-    return mozilla::jni::Method<NotifyWakeLockChanged_t>::Call(GeckoAppShell::Context(), nullptr, a0, a1);
-}
-
-constexpr char GeckoAppShell::OnLocationChanged_t::name[];
-constexpr char GeckoAppShell::OnLocationChanged_t::signature[];
-
-constexpr char GeckoAppShell::OnSensorChanged_t::name[];
-constexpr char GeckoAppShell::OnSensorChanged_t::signature[];
-
-constexpr char GeckoAppShell::OpenUriExternal_t::name[];
-constexpr char GeckoAppShell::OpenUriExternal_t::signature[];
-
-auto GeckoAppShell::OpenUriExternal(mozilla::jni::String::Param a0, mozilla::jni::String::Param a1, mozilla::jni::String::Param a2, mozilla::jni::String::Param a3, mozilla::jni::String::Param a4, mozilla::jni::String::Param a5) -> bool
-{
-    return mozilla::jni::Method<OpenUriExternal_t>::Call(GeckoAppShell::Context(), nullptr, a0, a1, a2, a3, a4, a5);
-}
-
-constexpr char GeckoAppShell::PerformHapticFeedback_t::name[];
-constexpr char GeckoAppShell::PerformHapticFeedback_t::signature[];
-
-auto GeckoAppShell::PerformHapticFeedback(bool a0) -> void
-{
-    return mozilla::jni::Method<PerformHapticFeedback_t>::Call(GeckoAppShell::Context(), nullptr, a0);
-}
-
-constexpr char GeckoAppShell::ReportJavaCrash_t::name[];
-constexpr char GeckoAppShell::ReportJavaCrash_t::signature[];
-
-constexpr char GeckoAppShell::SetScreenDepthOverride_t::name[];
-constexpr char GeckoAppShell::SetScreenDepthOverride_t::signature[];
-
-auto GeckoAppShell::SetScreenDepthOverride(int32_t a0) -> void
-{
-    return mozilla::jni::Method<SetScreenDepthOverride_t>::Call(GeckoAppShell::Context(), nullptr, a0);
-}
-
-constexpr char GeckoAppShell::ShowNotification_t::name[];
-constexpr char GeckoAppShell::ShowNotification_t::signature[];
-
-auto GeckoAppShell::ShowNotification(mozilla::jni::String::Param a0, mozilla::jni::String::Param a1, mozilla::jni::String::Param a2, mozilla::jni::String::Param a3, mozilla::jni::String::Param a4, mozilla::jni::String::Param a5, mozilla::jni::String::Param a6) -> void
-{
-    return mozilla::jni::Method<ShowNotification_t>::Call(GeckoAppShell::Context(), nullptr, a0, a1, a2, a3, a4, a5, a6);
-}
-
-constexpr char GeckoAppShell::UnlockProfile_t::name[];
-constexpr char GeckoAppShell::UnlockProfile_t::signature[];
-
-auto GeckoAppShell::UnlockProfile() -> bool
-{
-    return mozilla::jni::Method<UnlockProfile_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::UnlockScreenOrientation_t::name[];
-constexpr char GeckoAppShell::UnlockScreenOrientation_t::signature[];
-
-auto GeckoAppShell::UnlockScreenOrientation() -> void
-{
-    return mozilla::jni::Method<UnlockScreenOrientation_t>::Call(GeckoAppShell::Context(), nullptr);
-}
-
-constexpr char GeckoAppShell::Vibrate_t::name[];
-constexpr char GeckoAppShell::Vibrate_t::signature[];
-
-auto GeckoAppShell::Vibrate(int64_t a0) -> void
-{
-    return mozilla::jni::Method<Vibrate_t>::Call(GeckoAppShell::Context(), nullptr, a0);
-}
-
-constexpr char GeckoAppShell::Vibrate2_t::name[];
-constexpr char GeckoAppShell::Vibrate2_t::signature[];
-
-auto GeckoAppShell::Vibrate(mozilla::jni::LongArray::Param a0, int32_t a1) -> void
-{
-    return mozilla::jni::Method<Vibrate2_t>::Call(GeckoAppShell::Context(), nullptr, a0, a1);
-}
-
-const char GeckoAppShell::CameraCallback::name[] =
-        "org/mozilla/gecko/GeckoAppShell$CameraCallback";
-
-constexpr char GeckoAppShell::CameraCallback::OnFrameData_t::name[];
-constexpr char GeckoAppShell::CameraCallback::OnFrameData_t::signature[];
-
-const char GeckoBatteryManager::name[] =
-        "org/mozilla/gecko/GeckoBatteryManager";
-
-constexpr char GeckoBatteryManager::OnBatteryChange_t::name[];
-constexpr char GeckoBatteryManager::OnBatteryChange_t::signature[];
-
-const char GeckoEditableChild::name[] =
-        "org/mozilla/gecko/GeckoEditableChild";
-
-constexpr char GeckoEditableChild::New_t::name[];
-constexpr char GeckoEditableChild::New_t::signature[];
-
-auto GeckoEditableChild::New(mozilla::jni::Object::Param a0) -> GeckoEditableChild::LocalRef
-{
-    return mozilla::jni::Constructor<New_t>::Call(GeckoEditableChild::Context(), nullptr, a0);
-}
-
-constexpr char GeckoEditableChild::NotifyIME_t::name[];
-constexpr char GeckoEditableChild::NotifyIME_t::signature[];
-
-auto GeckoEditableChild::NotifyIME(int32_t a0) const -> void
-{
-    return mozilla::jni::Method<NotifyIME_t>::Call(GeckoEditableChild::mCtx, nullptr, a0);
-}
-
-constexpr char GeckoEditableChild::NotifyIMEContext_t::name[];
-constexpr char GeckoEditableChild::NotifyIMEContext_t::signature[];
-
-auto GeckoEditableChild::NotifyIMEContext(int32_t a0, mozilla::jni::String::Param a1, mozilla::jni::String::Param a2, mozilla::jni::String::Param a3, int32_t a4) const -> void
-{
-    return mozilla::jni::Method<NotifyIMEContext_t>::Call(GeckoEditableChild::mCtx, nullptr, a0, a1, a2, a3, a4);
-}
-
-constexpr char GeckoEditableChild::OnDefaultKeyEvent_t::name[];
-constexpr char GeckoEditableChild::OnDefaultKeyEvent_t::signature[];
-
-auto GeckoEditableChild::OnDefaultKeyEvent(mozilla::jni::Object::Param a0) const -> void
-{
-    return mozilla::jni::Method<OnDefaultKeyEvent_t>::Call(GeckoEditableChild::mCtx, nullptr, a0);
-}
-
-constexpr char GeckoEditableChild::OnImeAddCompositionRange_t::name[];
-constexpr char GeckoEditableChild::OnImeAddCompositionRange_t::signature[];
-
-constexpr char GeckoEditableChild::OnImeReplaceText_t::name[];
-constexpr char GeckoEditableChild::OnImeReplaceText_t::signature[];
-
-constexpr char GeckoEditableChild::OnImeRequestCursorUpdates_t::name[];
-constexpr char GeckoEditableChild::OnImeRequestCursorUpdates_t::signature[];
-
-constexpr char GeckoEditableChild::OnImeSynchronize_t::name[];
-constexpr char GeckoEditableChild::OnImeSynchronize_t::signature[];
-
-constexpr char GeckoEditableChild::OnImeUpdateComposition_t::name[];
-constexpr char GeckoEditableChild::OnImeUpdateComposition_t::signature[];
-
-constexpr char GeckoEditableChild::OnKeyEvent_t::name[];
-constexpr char GeckoEditableChild::OnKeyEvent_t::signature[];
-
-constexpr char GeckoEditableChild::OnSelectionChange_t::name[];
-constexpr char GeckoEditableChild::OnSelectionChange_t::signature[];
-
-auto GeckoEditableChild::OnSelectionChange(int32_t a0, int32_t a1) const -> void
-{
-    return mozilla::jni::Method<OnSelectionChange_t>::Call(GeckoEditableChild::mCtx, nullptr, a0, a1);
-}
-
-constexpr char GeckoEditableChild::OnTextChange_t::name[];
-constexpr char GeckoEditableChild::OnTextChange_t::signature[];
-
-auto GeckoEditableChild::OnTextChange(mozilla::jni::String::Param a0, int32_t a1, int32_t a2, int32_t a3) const -> void
-{
-    return mozilla::jni::Method<OnTextChange_t>::Call(GeckoEditableChild::mCtx, nullptr, a0, a1, a2, a3);
-}
-
-constexpr char GeckoEditableChild::UpdateCompositionRects_t::name[];
-constexpr char GeckoEditableChild::UpdateCompositionRects_t::signature[];
-
-auto GeckoEditableChild::UpdateCompositionRects(mozilla::jni::ObjectArray::Param a0) const -> void
-{
-    return mozilla::jni::Method<UpdateCompositionRects_t>::Call(GeckoEditableChild::mCtx, nullptr, a0);
-}
-
-const char GeckoNetworkManager::name[] =
-        "org/mozilla/gecko/GeckoNetworkManager";
-
-constexpr char GeckoNetworkManager::OnConnectionChanged_t::name[];
-constexpr char GeckoNetworkManager::OnConnectionChanged_t::signature[];
-
-constexpr char GeckoNetworkManager::OnStatusChanged_t::name[];
-constexpr char GeckoNetworkManager::OnStatusChanged_t::signature[];
-
-const char GeckoScreenOrientation::name[] =
-        "org/mozilla/gecko/GeckoScreenOrientation";
-
-constexpr char GeckoScreenOrientation::OnOrientationChange_t::name[];
-constexpr char GeckoScreenOrientation::OnOrientationChange_t::signature[];
-
-const char GeckoThread::name[] =
-        "org/mozilla/gecko/GeckoThread";
-
-constexpr char GeckoThread::CheckAndSetState_t::name[];
-constexpr char GeckoThread::CheckAndSetState_t::signature[];
-
-auto GeckoThread::CheckAndSetState(mozilla::jni::Object::Param a0, mozilla::jni::Object::Param a1) -> bool
-{
-    return mozilla::jni::Method<CheckAndSetState_t>::Call(GeckoThread::Context(), nullptr, a0, a1);
-}
-
-constexpr char GeckoThread::Crash_t::name[];
-constexpr char GeckoThread::Crash_t::signature[];
-
-constexpr char GeckoThread::ForceQuit_t::name[];
-constexpr char GeckoThread::ForceQuit_t::signature[];
-
-constexpr char GeckoThread::IsChildProcess_t::name[];
-constexpr char GeckoThread::IsChildProcess_t::signature[];
-
-auto GeckoThread::IsChildProcess() -> bool
-{
-    return mozilla::jni::Method<IsChildProcess_t>::Call(GeckoThread::Context(), nullptr);
-}
-
-constexpr char GeckoThread::CreateServices_t::name[];
-constexpr char GeckoThread::CreateServices_t::signature[];
-
-constexpr char GeckoThread::OnPause_t::name[];
-constexpr char GeckoThread::OnPause_t::signature[];
-
-constexpr char GeckoThread::OnResume_t::name[];
-constexpr char GeckoThread::OnResume_t::signature[];
-
-constexpr char GeckoThread::PumpMessageLoop_t::name[];
-constexpr char GeckoThread::PumpMessageLoop_t::signature[];
-
-auto GeckoThread::PumpMessageLoop(mozilla::jni::Object::Param a0) -> bool
-{
-    return mozilla::jni::Method<PumpMessageLoop_t>::Call(GeckoThread::Context(), nullptr, a0);
-}
-
-constexpr char GeckoThread::RequestUiThreadCallback_t::name[];
-constexpr char GeckoThread::RequestUiThreadCallback_t::signature[];
-
-auto GeckoThread::RequestUiThreadCallback(int64_t a0) -> void
-{
-    return mozilla::jni::Method<RequestUiThreadCallback_t>::Call(GeckoThread::Context(), nullptr, a0);
-}
-
-constexpr char GeckoThread::RunUiThreadCallback_t::name[];
-constexpr char GeckoThread::RunUiThreadCallback_t::signature[];
-
-constexpr char GeckoThread::SetState_t::name[];
-constexpr char GeckoThread::SetState_t::signature[];
-
-auto GeckoThread::SetState(mozilla::jni::Object::Param a0) -> void
-{
-    return mozilla::jni::Method<SetState_t>::Call(GeckoThread::Context(), nullptr, a0);
-}
-
-constexpr char GeckoThread::SpeculativeConnect_t::name[];
-constexpr char GeckoThread::SpeculativeConnect_t::signature[];
-
-constexpr char GeckoThread::WaitOnGecko_t::name[];
-constexpr char GeckoThread::WaitOnGecko_t::signature[];
-
-constexpr char GeckoThread::ClsLoader_t::name[];
-constexpr char GeckoThread::ClsLoader_t::signature[];
-
-auto GeckoThread::ClsLoader() -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Field<ClsLoader_t>::Get(GeckoThread::Context(), nullptr);
-}
-
-constexpr char GeckoThread::MsgQueue_t::name[];
-constexpr char GeckoThread::MsgQueue_t::signature[];
-
-auto GeckoThread::MsgQueue() -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Field<MsgQueue_t>::Get(GeckoThread::Context(), nullptr);
-}
-
-auto GeckoThread::MsgQueue(mozilla::jni::Object::Param a0) -> void
-{
-    return mozilla::jni::Field<MsgQueue_t>::Set(GeckoThread::Context(), nullptr, a0);
-}
-
-constexpr char GeckoThread::UiThreadId_t::name[];
-constexpr char GeckoThread::UiThreadId_t::signature[];
-
-auto GeckoThread::UiThreadId() -> int32_t
-{
-    return mozilla::jni::Field<UiThreadId_t>::Get(GeckoThread::Context(), nullptr);
-}
-
-auto GeckoThread::UiThreadId(int32_t a0) -> void
-{
-    return mozilla::jni::Field<UiThreadId_t>::Set(GeckoThread::Context(), nullptr, a0);
-}
-
-const char GeckoThread::State::name[] =
-        "org/mozilla/gecko/GeckoThread$State";
-
-constexpr char GeckoThread::State::EXITED_t::name[];
-constexpr char GeckoThread::State::EXITED_t::signature[];
-
-auto GeckoThread::State::EXITED() -> State::LocalRef
-{
-    return mozilla::jni::Field<EXITED_t>::Get(State::Context(), nullptr);
-}
-
-constexpr char GeckoThread::State::EXITING_t::name[];
-constexpr char GeckoThread::State::EXITING_t::signature[];
-
-auto GeckoThread::State::EXITING() -> State::LocalRef
-{
-    return mozilla::jni::Field<EXITING_t>::Get(State::Context(), nullptr);
-}
-
-constexpr char GeckoThread::State::INITIAL_t::name[];
-constexpr char GeckoThread::State::INITIAL_t::signature[];
-
-auto GeckoThread::State::INITIAL() -> State::LocalRef
-{
-    return mozilla::jni::Field<INITIAL_t>::Get(State::Context(), nullptr);
-}
-
-constexpr char GeckoThread::State::JNI_READY_t::name[];
-constexpr char GeckoThread::State::JNI_READY_t::signature[];
-
-auto GeckoThread::State::JNI_READY() -> State::LocalRef
-{
-    return mozilla::jni::Field<JNI_READY_t>::Get(State::Context(), nullptr);
-}
-
-constexpr char GeckoThread::State::LAUNCHED_t::name[];
-constexpr char GeckoThread::State::LAUNCHED_t::signature[];
-
-auto GeckoThread::State::LAUNCHED() -> State::LocalRef
-{
-    return mozilla::jni::Field<LAUNCHED_t>::Get(State::Context(), nullptr);
-}
-
-constexpr char GeckoThread::State::LIBS_READY_t::name[];
-constexpr char GeckoThread::State::LIBS_READY_t::signature[];
-
-auto GeckoThread::State::LIBS_READY() -> State::LocalRef
-{
-    return mozilla::jni::Field<LIBS_READY_t>::Get(State::Context(), nullptr);
-}
-
-constexpr char GeckoThread::State::MOZGLUE_READY_t::name[];
-constexpr char GeckoThread::State::MOZGLUE_READY_t::signature[];
-
-auto GeckoThread::State::MOZGLUE_READY() -> State::LocalRef
-{
-    return mozilla::jni::Field<MOZGLUE_READY_t>::Get(State::Context(), nullptr);
-}
-
-constexpr char GeckoThread::State::PROFILE_READY_t::name[];
-constexpr char GeckoThread::State::PROFILE_READY_t::signature[];
-
-auto GeckoThread::State::PROFILE_READY() -> State::LocalRef
-{
-    return mozilla::jni::Field<PROFILE_READY_t>::Get(State::Context(), nullptr);
-}
-
-constexpr char GeckoThread::State::RESTARTING_t::name[];
-constexpr char GeckoThread::State::RESTARTING_t::signature[];
-
-auto GeckoThread::State::RESTARTING() -> State::LocalRef
-{
-    return mozilla::jni::Field<RESTARTING_t>::Get(State::Context(), nullptr);
-}
-
-constexpr char GeckoThread::State::RUNNING_t::name[];
-constexpr char GeckoThread::State::RUNNING_t::signature[];
-
-auto GeckoThread::State::RUNNING() -> State::LocalRef
-{
-    return mozilla::jni::Field<RUNNING_t>::Get(State::Context(), nullptr);
-}
-
-const char GeckoVRManager::name[] =
-        "org/mozilla/gecko/GeckoVRManager";
-
-constexpr char GeckoVRManager::CleanupGVRNonPresentingContext_t::name[];
-constexpr char GeckoVRManager::CleanupGVRNonPresentingContext_t::signature[];
-
-constexpr char GeckoVRManager::CreateGVRNonPresentingContext_t::name[];
-constexpr char GeckoVRManager::CreateGVRNonPresentingContext_t::signature[];
-
-auto GeckoVRManager::CreateGVRNonPresentingContext() -> int64_t
-{
-    return mozilla::jni::Method<CreateGVRNonPresentingContext_t>::Call(GeckoVRManager::Context(), nullptr);
-}
-
-constexpr char GeckoVRManager::DestroyGVRNonPresentingContext_t::name[];
-constexpr char GeckoVRManager::DestroyGVRNonPresentingContext_t::signature[];
-
-auto GeckoVRManager::DestroyGVRNonPresentingContext() -> void
-{
-    return mozilla::jni::Method<DestroyGVRNonPresentingContext_t>::Call(GeckoVRManager::Context(), nullptr);
-}
-
-constexpr char GeckoVRManager::DisableVRMode_t::name[];
-constexpr char GeckoVRManager::DisableVRMode_t::signature[];
-
-auto GeckoVRManager::DisableVRMode() -> void
-{
-    return mozilla::jni::Method<DisableVRMode_t>::Call(GeckoVRManager::Context(), nullptr);
-}
-
-constexpr char GeckoVRManager::EnableVRMode_t::name[];
-constexpr char GeckoVRManager::EnableVRMode_t::signature[];
-
-auto GeckoVRManager::EnableVRMode() -> void
-{
-    return mozilla::jni::Method<EnableVRMode_t>::Call(GeckoVRManager::Context(), nullptr);
-}
-
-constexpr char GeckoVRManager::IsGVRPresent_t::name[];
-constexpr char GeckoVRManager::IsGVRPresent_t::signature[];
-
-auto GeckoVRManager::IsGVRPresent() -> bool
-{
-    return mozilla::jni::Method<IsGVRPresent_t>::Call(GeckoVRManager::Context(), nullptr);
-}
-
-constexpr char GeckoVRManager::SetGVRPaused_t::name[];
-constexpr char GeckoVRManager::SetGVRPaused_t::signature[];
-
-constexpr char GeckoVRManager::SetGVRPresentingContext_t::name[];
-constexpr char GeckoVRManager::SetGVRPresentingContext_t::signature[];
-
-const char PrefsHelper::name[] =
-        "org/mozilla/gecko/PrefsHelper";
-
-constexpr char PrefsHelper::CallPrefHandler_t::name[];
-constexpr char PrefsHelper::CallPrefHandler_t::signature[];
-
-auto PrefsHelper::CallPrefHandler(mozilla::jni::Object::Param a0, int32_t a1, mozilla::jni::String::Param a2, bool a3, int32_t a4, mozilla::jni::String::Param a5) -> void
-{
-    return mozilla::jni::Method<CallPrefHandler_t>::Call(PrefsHelper::Context(), nullptr, a0, a1, a2, a3, a4, a5);
-}
-
-constexpr char PrefsHelper::AddObserver_t::name[];
-constexpr char PrefsHelper::AddObserver_t::signature[];
-
-constexpr char PrefsHelper::GetPrefs_t::name[];
-constexpr char PrefsHelper::GetPrefs_t::signature[];
-
-constexpr char PrefsHelper::RemoveObserver_t::name[];
-constexpr char PrefsHelper::RemoveObserver_t::signature[];
-
-constexpr char PrefsHelper::SetPref_t::name[];
-constexpr char PrefsHelper::SetPref_t::signature[];
-
-constexpr char PrefsHelper::OnPrefChange_t::name[];
-constexpr char PrefsHelper::OnPrefChange_t::signature[];
-
-auto PrefsHelper::OnPrefChange(mozilla::jni::String::Param a0, int32_t a1, bool a2, int32_t a3, mozilla::jni::String::Param a4) -> void
-{
-    return mozilla::jni::Method<OnPrefChange_t>::Call(PrefsHelper::Context(), nullptr, a0, a1, a2, a3, a4);
-}
-
-const char ScreenManagerHelper::name[] =
-        "org/mozilla/gecko/ScreenManagerHelper";
-
-constexpr char ScreenManagerHelper::AddDisplay_t::name[];
-constexpr char ScreenManagerHelper::AddDisplay_t::signature[];
-
-constexpr char ScreenManagerHelper::RemoveDisplay_t::name[];
-constexpr char ScreenManagerHelper::RemoveDisplay_t::signature[];
-
-const char SpeechSynthesisService::name[] =
-        "org/mozilla/gecko/SpeechSynthesisService";
-
-constexpr char SpeechSynthesisService::DispatchBoundary_t::name[];
-constexpr char SpeechSynthesisService::DispatchBoundary_t::signature[];
-
-constexpr char SpeechSynthesisService::DispatchEnd_t::name[];
-constexpr char SpeechSynthesisService::DispatchEnd_t::signature[];
-
-constexpr char SpeechSynthesisService::DispatchError_t::name[];
-constexpr char SpeechSynthesisService::DispatchError_t::signature[];
-
-constexpr char SpeechSynthesisService::DispatchStart_t::name[];
-constexpr char SpeechSynthesisService::DispatchStart_t::signature[];
-
-constexpr char SpeechSynthesisService::DoneRegisteringVoices_t::name[];
-constexpr char SpeechSynthesisService::DoneRegisteringVoices_t::signature[];
-
-constexpr char SpeechSynthesisService::InitSynth_t::name[];
-constexpr char SpeechSynthesisService::InitSynth_t::signature[];
-
-auto SpeechSynthesisService::InitSynth() -> void
-{
-    return mozilla::jni::Method<InitSynth_t>::Call(SpeechSynthesisService::Context(), nullptr);
-}
-
-constexpr char SpeechSynthesisService::RegisterVoice_t::name[];
-constexpr char SpeechSynthesisService::RegisterVoice_t::signature[];
-
-constexpr char SpeechSynthesisService::Speak_t::name[];
-constexpr char SpeechSynthesisService::Speak_t::signature[];
-
-auto SpeechSynthesisService::Speak(mozilla::jni::String::Param a0, mozilla::jni::String::Param a1, float a2, float a3, float a4) -> mozilla::jni::String::LocalRef
-{
-    return mozilla::jni::Method<Speak_t>::Call(SpeechSynthesisService::Context(), nullptr, a0, a1, a2, a3, a4);
-}
-
-constexpr char SpeechSynthesisService::Stop_t::name[];
-constexpr char SpeechSynthesisService::Stop_t::signature[];
-
-auto SpeechSynthesisService::Stop() -> void
-{
-    return mozilla::jni::Method<Stop_t>::Call(SpeechSynthesisService::Context(), nullptr);
-}
-
-const char SurfaceTextureListener::name[] =
-        "org/mozilla/gecko/SurfaceTextureListener";
-
-constexpr char SurfaceTextureListener::New_t::name[];
-constexpr char SurfaceTextureListener::New_t::signature[];
-
-auto SurfaceTextureListener::New() -> SurfaceTextureListener::LocalRef
-{
-    return mozilla::jni::Constructor<New_t>::Call(SurfaceTextureListener::Context(), nullptr);
-}
-
-constexpr char SurfaceTextureListener::DisposeNative_t::name[];
-constexpr char SurfaceTextureListener::DisposeNative_t::signature[];
-
-constexpr char SurfaceTextureListener::OnFrameAvailable_t::name[];
-constexpr char SurfaceTextureListener::OnFrameAvailable_t::signature[];
-
-const char GeckoSurface::name[] =
-        "org/mozilla/gecko/gfx/GeckoSurface";
-
-constexpr char GeckoSurface::New_t::name[];
-constexpr char GeckoSurface::New_t::signature[];
-
-auto GeckoSurface::New(mozilla::jni::Object::Param a0, GeckoSurface::LocalRef* a1) -> nsresult
-{
-    MOZ_ASSERT(a1);
-    nsresult rv = NS_OK;
-    *a1 = mozilla::jni::Constructor<New_t>::Call(GeckoSurface::Context(), &rv, a0);
-    return rv;
-}
-
-constexpr char GeckoSurface::GetAvailable_t::name[];
-constexpr char GeckoSurface::GetAvailable_t::signature[];
-
-auto GeckoSurface::GetAvailable() const -> bool
-{
-    return mozilla::jni::Method<GetAvailable_t>::Call(GeckoSurface::mCtx, nullptr);
-}
-
-constexpr char GeckoSurface::GetHandle_t::name[];
-constexpr char GeckoSurface::GetHandle_t::signature[];
-
-auto GeckoSurface::GetHandle() const -> int32_t
-{
-    return mozilla::jni::Method<GetHandle_t>::Call(GeckoSurface::mCtx, nullptr);
-}
-
-constexpr char GeckoSurface::SetAvailable_t::name[];
-constexpr char GeckoSurface::SetAvailable_t::signature[];
-
-auto GeckoSurface::SetAvailable(bool a0) const -> void
-{
-    return mozilla::jni::Method<SetAvailable_t>::Call(GeckoSurface::mCtx, nullptr, a0);
-}
-
-const char GeckoSurfaceTexture::name[] =
-        "org/mozilla/gecko/gfx/GeckoSurfaceTexture";
-
-constexpr char GeckoSurfaceTexture::AttachToGLContext_t::name[];
-constexpr char GeckoSurfaceTexture::AttachToGLContext_t::signature[];
-
-auto GeckoSurfaceTexture::AttachToGLContext(int64_t a0, int32_t a1) const -> nsresult
-{
-    nsresult rv = NS_OK;
-    mozilla::jni::Method<AttachToGLContext_t>::Call(GeckoSurfaceTexture::mCtx, &rv, a0, a1);
-    return rv;
-}
-
-constexpr char GeckoSurfaceTexture::DecrementUse_t::name[];
-constexpr char GeckoSurfaceTexture::DecrementUse_t::signature[];
-
-auto GeckoSurfaceTexture::DecrementUse() const -> void
-{
-    return mozilla::jni::Method<DecrementUse_t>::Call(GeckoSurfaceTexture::mCtx, nullptr);
-}
-
-constexpr char GeckoSurfaceTexture::DestroyUnused_t::name[];
-constexpr char GeckoSurfaceTexture::DestroyUnused_t::signature[];
-
-auto GeckoSurfaceTexture::DestroyUnused(int64_t a0) -> void
-{
-    return mozilla::jni::Method<DestroyUnused_t>::Call(GeckoSurfaceTexture::Context(), nullptr, a0);
-}
-
-constexpr char GeckoSurfaceTexture::DetachFromGLContext_t::name[];
-constexpr char GeckoSurfaceTexture::DetachFromGLContext_t::signature[];
-
-auto GeckoSurfaceTexture::DetachFromGLContext() const -> nsresult
-{
-    nsresult rv = NS_OK;
-    mozilla::jni::Method<DetachFromGLContext_t>::Call(GeckoSurfaceTexture::mCtx, &rv);
-    return rv;
-}
-
-constexpr char GeckoSurfaceTexture::GetHandle_t::name[];
-constexpr char GeckoSurfaceTexture::GetHandle_t::signature[];
-
-auto GeckoSurfaceTexture::GetHandle() const -> int32_t
-{
-    return mozilla::jni::Method<GetHandle_t>::Call(GeckoSurfaceTexture::mCtx, nullptr);
-}
-
-constexpr char GeckoSurfaceTexture::GetTexName_t::name[];
-constexpr char GeckoSurfaceTexture::GetTexName_t::signature[];
-
-auto GeckoSurfaceTexture::GetTexName() const -> int32_t
-{
-    return mozilla::jni::Method<GetTexName_t>::Call(GeckoSurfaceTexture::mCtx, nullptr);
-}
-
-constexpr char GeckoSurfaceTexture::IncrementUse_t::name[];
-constexpr char GeckoSurfaceTexture::IncrementUse_t::signature[];
-
-auto GeckoSurfaceTexture::IncrementUse() const -> void
-{
-    return mozilla::jni::Method<IncrementUse_t>::Call(GeckoSurfaceTexture::mCtx, nullptr);
-}
-
-constexpr char GeckoSurfaceTexture::IsAttachedToGLContext_t::name[];
-constexpr char GeckoSurfaceTexture::IsAttachedToGLContext_t::signature[];
-
-auto GeckoSurfaceTexture::IsAttachedToGLContext(int64_t a0) const -> bool
-{
-    return mozilla::jni::Method<IsAttachedToGLContext_t>::Call(GeckoSurfaceTexture::mCtx, nullptr, a0);
-}
-
-constexpr char GeckoSurfaceTexture::IsSingleBuffer_t::name[];
-constexpr char GeckoSurfaceTexture::IsSingleBuffer_t::signature[];
-
-auto GeckoSurfaceTexture::IsSingleBuffer() const -> bool
-{
-    return mozilla::jni::Method<IsSingleBuffer_t>::Call(GeckoSurfaceTexture::mCtx, nullptr);
-}
-
-constexpr char GeckoSurfaceTexture::IsSingleBufferSupported_t::name[];
-constexpr char GeckoSurfaceTexture::IsSingleBufferSupported_t::signature[];
-
-auto GeckoSurfaceTexture::IsSingleBufferSupported() -> bool
-{
-    return mozilla::jni::Method<IsSingleBufferSupported_t>::Call(GeckoSurfaceTexture::Context(), nullptr);
-}
-
-constexpr char GeckoSurfaceTexture::Lookup_t::name[];
-constexpr char GeckoSurfaceTexture::Lookup_t::signature[];
-
-auto GeckoSurfaceTexture::Lookup(int32_t a0) -> GeckoSurfaceTexture::LocalRef
-{
-    return mozilla::jni::Method<Lookup_t>::Call(GeckoSurfaceTexture::Context(), nullptr, a0);
-}
-
-constexpr char GeckoSurfaceTexture::ReleaseTexImage_t::name[];
-constexpr char GeckoSurfaceTexture::ReleaseTexImage_t::signature[];
-
-auto GeckoSurfaceTexture::ReleaseTexImage() const -> void
-{
-    return mozilla::jni::Method<ReleaseTexImage_t>::Call(GeckoSurfaceTexture::mCtx, nullptr);
-}
-
-constexpr char GeckoSurfaceTexture::UpdateTexImage_t::name[];
-constexpr char GeckoSurfaceTexture::UpdateTexImage_t::signature[];
-
-auto GeckoSurfaceTexture::UpdateTexImage() const -> void
-{
-    return mozilla::jni::Method<UpdateTexImage_t>::Call(GeckoSurfaceTexture::mCtx, nullptr);
-}
-
-const char LayerSession::name[] =
-        "org/mozilla/gecko/gfx/LayerSession";
-
-constexpr char LayerSession::GetCompositor_t::name[];
-constexpr char LayerSession::GetCompositor_t::signature[];
-
-auto LayerSession::GetCompositor() const -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Method<GetCompositor_t>::Call(LayerSession::mCtx, nullptr);
-}
-
-const char LayerSession::Compositor::name[] =
-        "org/mozilla/gecko/gfx/LayerSession$Compositor";
-
-constexpr char LayerSession::Compositor::AttachNPZC_t::name[];
-constexpr char LayerSession::Compositor::AttachNPZC_t::signature[];
-
-constexpr char LayerSession::Compositor::CreateCompositor_t::name[];
-constexpr char LayerSession::Compositor::CreateCompositor_t::signature[];
-
-constexpr char LayerSession::Compositor::DisposeNative_t::name[];
-constexpr char LayerSession::Compositor::DisposeNative_t::signature[];
-
-constexpr char LayerSession::Compositor::EnableLayerUpdateNotifications_t::name[];
-constexpr char LayerSession::Compositor::EnableLayerUpdateNotifications_t::signature[];
-
-constexpr char LayerSession::Compositor::OnBoundsChanged_t::name[];
-constexpr char LayerSession::Compositor::OnBoundsChanged_t::signature[];
-
-constexpr char LayerSession::Compositor::OnCompositorAttached_t::name[];
-constexpr char LayerSession::Compositor::OnCompositorAttached_t::signature[];
-
-auto LayerSession::Compositor::OnCompositorAttached() const -> void
-{
-    return mozilla::jni::Method<OnCompositorAttached_t>::Call(Compositor::mCtx, nullptr);
-}
-
-constexpr char LayerSession::Compositor::OnCompositorDetached_t::name[];
-constexpr char LayerSession::Compositor::OnCompositorDetached_t::signature[];
-
-auto LayerSession::Compositor::OnCompositorDetached() const -> void
-{
-    return mozilla::jni::Method<OnCompositorDetached_t>::Call(Compositor::mCtx, nullptr);
-}
-
-constexpr char LayerSession::Compositor::OnSelectionCaretDrag_t::name[];
-constexpr char LayerSession::Compositor::OnSelectionCaretDrag_t::signature[];
-
-auto LayerSession::Compositor::OnSelectionCaretDrag(bool a0) const -> void
-{
-    return mozilla::jni::Method<OnSelectionCaretDrag_t>::Call(Compositor::mCtx, nullptr, a0);
-}
-
-constexpr char LayerSession::Compositor::RecvScreenPixels_t::name[];
-constexpr char LayerSession::Compositor::RecvScreenPixels_t::signature[];
-
-auto LayerSession::Compositor::RecvScreenPixels(int32_t a0, int32_t a1, mozilla::jni::IntArray::Param a2) const -> void
-{
-    return mozilla::jni::Method<RecvScreenPixels_t>::Call(Compositor::mCtx, nullptr, a0, a1, a2);
-}
-
-constexpr char LayerSession::Compositor::RecvToolbarAnimatorMessage_t::name[];
-constexpr char LayerSession::Compositor::RecvToolbarAnimatorMessage_t::signature[];
-
-auto LayerSession::Compositor::RecvToolbarAnimatorMessage(int32_t a0) const -> void
-{
-    return mozilla::jni::Method<RecvToolbarAnimatorMessage_t>::Call(Compositor::mCtx, nullptr, a0);
-}
-
-constexpr char LayerSession::Compositor::RequestScreenPixels_t::name[];
-constexpr char LayerSession::Compositor::RequestScreenPixels_t::signature[];
-
-constexpr char LayerSession::Compositor::SendToolbarAnimatorMessage_t::name[];
-constexpr char LayerSession::Compositor::SendToolbarAnimatorMessage_t::signature[];
-
-constexpr char LayerSession::Compositor::SendToolbarPixelsToCompositor_t::name[];
-constexpr char LayerSession::Compositor::SendToolbarPixelsToCompositor_t::signature[];
-
-constexpr char LayerSession::Compositor::SetDefaultClearColor_t::name[];
-constexpr char LayerSession::Compositor::SetDefaultClearColor_t::signature[];
-
-constexpr char LayerSession::Compositor::SetMaxToolbarHeight_t::name[];
-constexpr char LayerSession::Compositor::SetMaxToolbarHeight_t::signature[];
-
-constexpr char LayerSession::Compositor::SetPinned_t::name[];
-constexpr char LayerSession::Compositor::SetPinned_t::signature[];
-
-constexpr char LayerSession::Compositor::SyncPauseCompositor_t::name[];
-constexpr char LayerSession::Compositor::SyncPauseCompositor_t::signature[];
-
-constexpr char LayerSession::Compositor::SyncResumeResizeCompositor_t::name[];
-constexpr char LayerSession::Compositor::SyncResumeResizeCompositor_t::signature[];
-
-constexpr char LayerSession::Compositor::UpdateOverscrollOffset_t::name[];
-constexpr char LayerSession::Compositor::UpdateOverscrollOffset_t::signature[];
-
-auto LayerSession::Compositor::UpdateOverscrollOffset(float a0, float a1) const -> void
-{
-    return mozilla::jni::Method<UpdateOverscrollOffset_t>::Call(Compositor::mCtx, nullptr, a0, a1);
-}
-
-constexpr char LayerSession::Compositor::UpdateOverscrollVelocity_t::name[];
-constexpr char LayerSession::Compositor::UpdateOverscrollVelocity_t::signature[];
-
-auto LayerSession::Compositor::UpdateOverscrollVelocity(float a0, float a1) const -> void
-{
-    return mozilla::jni::Method<UpdateOverscrollVelocity_t>::Call(Compositor::mCtx, nullptr, a0, a1);
-}
-
-constexpr char LayerSession::Compositor::UpdateRootFrameMetrics_t::name[];
-constexpr char LayerSession::Compositor::UpdateRootFrameMetrics_t::signature[];
-
-auto LayerSession::Compositor::UpdateRootFrameMetrics(float a0, float a1, float a2) const -> void
-{
-    return mozilla::jni::Method<UpdateRootFrameMetrics_t>::Call(Compositor::mCtx, nullptr, a0, a1, a2);
-}
-
-const char PanZoomController::name[] =
-        "org/mozilla/gecko/gfx/PanZoomController";
-
-constexpr char PanZoomController::DisposeNative_t::name[];
-constexpr char PanZoomController::DisposeNative_t::signature[];
-
-constexpr char PanZoomController::HandleMotionEvent_t::name[];
-constexpr char PanZoomController::HandleMotionEvent_t::signature[];
-
-constexpr char PanZoomController::HandleMouseEvent_t::name[];
-constexpr char PanZoomController::HandleMouseEvent_t::signature[];
-
-constexpr char PanZoomController::HandleScrollEvent_t::name[];
-constexpr char PanZoomController::HandleScrollEvent_t::signature[];
-
-constexpr char PanZoomController::SetIsLongpressEnabled_t::name[];
-constexpr char PanZoomController::SetIsLongpressEnabled_t::signature[];
-
-constexpr char PanZoomController::SetAttached_t::name[];
-constexpr char PanZoomController::SetAttached_t::signature[];
-
-auto PanZoomController::SetAttached(bool a0) const -> void
-{
-    return mozilla::jni::Method<SetAttached_t>::Call(PanZoomController::mCtx, nullptr, a0);
-}
-
-constexpr char PanZoomController::SynthesizeNativeMouseEvent_t::name[];
-constexpr char PanZoomController::SynthesizeNativeMouseEvent_t::signature[];
-
-auto PanZoomController::SynthesizeNativeMouseEvent(int32_t a0, int32_t a1, int32_t a2) const -> void
-{
-    return mozilla::jni::Method<SynthesizeNativeMouseEvent_t>::Call(PanZoomController::mCtx, nullptr, a0, a1, a2);
-}
-
-constexpr char PanZoomController::SynthesizeNativeTouchPoint_t::name[];
-constexpr char PanZoomController::SynthesizeNativeTouchPoint_t::signature[];
-
-auto PanZoomController::SynthesizeNativeTouchPoint(int32_t a0, int32_t a1, int32_t a2, int32_t a3, double a4, int32_t a5) const -> void
-{
-    return mozilla::jni::Method<SynthesizeNativeTouchPoint_t>::Call(PanZoomController::mCtx, nullptr, a0, a1, a2, a3, a4, a5);
-}
-
-const char StackScroller::name[] =
-        "org/mozilla/gecko/gfx/StackScroller";
-
-constexpr char StackScroller::New_t::name[];
-constexpr char StackScroller::New_t::signature[];
-
-auto StackScroller::New(mozilla::jni::Object::Param a0, StackScroller::LocalRef* a1) -> nsresult
-{
-    MOZ_ASSERT(a1);
-    nsresult rv = NS_OK;
-    *a1 = mozilla::jni::Constructor<New_t>::Call(StackScroller::Context(), &rv, a0);
-    return rv;
-}
-
-constexpr char StackScroller::AbortAnimation_t::name[];
-constexpr char StackScroller::AbortAnimation_t::signature[];
-
-auto StackScroller::AbortAnimation() const -> nsresult
-{
-    nsresult rv = NS_OK;
-    mozilla::jni::Method<AbortAnimation_t>::Call(StackScroller::mCtx, &rv);
-    return rv;
-}
-
-constexpr char StackScroller::ComputeScrollOffset_t::name[];
-constexpr char StackScroller::ComputeScrollOffset_t::signature[];
-
-auto StackScroller::ComputeScrollOffset(int64_t a0, bool* a1) const -> nsresult
-{
-    MOZ_ASSERT(a1);
-    nsresult rv = NS_OK;
-    *a1 = mozilla::jni::Method<ComputeScrollOffset_t>::Call(StackScroller::mCtx, &rv, a0);
-    return rv;
-}
-
-constexpr char StackScroller::Fling_t::name[];
-constexpr char StackScroller::Fling_t::signature[];
-
-auto StackScroller::Fling(int32_t a0, int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int64_t a10) const -> nsresult
-{
-    nsresult rv = NS_OK;
-    mozilla::jni::Method<Fling_t>::Call(StackScroller::mCtx, &rv, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
-    return rv;
-}
-
-constexpr char StackScroller::ForceFinished_t::name[];
-constexpr char StackScroller::ForceFinished_t::signature[];
-
-auto StackScroller::ForceFinished(bool a0) const -> nsresult
-{
-    nsresult rv = NS_OK;
-    mozilla::jni::Method<ForceFinished_t>::Call(StackScroller::mCtx, &rv, a0);
-    return rv;
-}
-
-constexpr char StackScroller::GetCurrSpeedX_t::name[];
-constexpr char StackScroller::GetCurrSpeedX_t::signature[];
-
-auto StackScroller::GetCurrSpeedX(float* a0) const -> nsresult
-{
-    MOZ_ASSERT(a0);
-    nsresult rv = NS_OK;
-    *a0 = mozilla::jni::Method<GetCurrSpeedX_t>::Call(StackScroller::mCtx, &rv);
-    return rv;
-}
-
-constexpr char StackScroller::GetCurrSpeedY_t::name[];
-constexpr char StackScroller::GetCurrSpeedY_t::signature[];
-
-auto StackScroller::GetCurrSpeedY(float* a0) const -> nsresult
-{
-    MOZ_ASSERT(a0);
-    nsresult rv = NS_OK;
-    *a0 = mozilla::jni::Method<GetCurrSpeedY_t>::Call(StackScroller::mCtx, &rv);
-    return rv;
-}
-
-constexpr char StackScroller::GetCurrX_t::name[];
-constexpr char StackScroller::GetCurrX_t::signature[];
-
-auto StackScroller::GetCurrX(int32_t* a0) const -> nsresult
-{
-    MOZ_ASSERT(a0);
-    nsresult rv = NS_OK;
-    *a0 = mozilla::jni::Method<GetCurrX_t>::Call(StackScroller::mCtx, &rv);
-    return rv;
-}
-
-constexpr char StackScroller::GetCurrY_t::name[];
-constexpr char StackScroller::GetCurrY_t::signature[];
-
-auto StackScroller::GetCurrY(int32_t* a0) const -> nsresult
-{
-    MOZ_ASSERT(a0);
-    nsresult rv = NS_OK;
-    *a0 = mozilla::jni::Method<GetCurrY_t>::Call(StackScroller::mCtx, &rv);
-    return rv;
-}
-
-constexpr char StackScroller::GetFinalX_t::name[];
-constexpr char StackScroller::GetFinalX_t::signature[];
-
-auto StackScroller::GetFinalX(int32_t* a0) const -> nsresult
-{
-    MOZ_ASSERT(a0);
-    nsresult rv = NS_OK;
-    *a0 = mozilla::jni::Method<GetFinalX_t>::Call(StackScroller::mCtx, &rv);
-    return rv;
-}
-
-constexpr char StackScroller::GetFinalY_t::name[];
-constexpr char StackScroller::GetFinalY_t::signature[];
-
-auto StackScroller::GetFinalY(int32_t* a0) const -> nsresult
-{
-    MOZ_ASSERT(a0);
-    nsresult rv = NS_OK;
-    *a0 = mozilla::jni::Method<GetFinalY_t>::Call(StackScroller::mCtx, &rv);
-    return rv;
-}
-
-constexpr char StackScroller::InitContants_t::name[];
-constexpr char StackScroller::InitContants_t::signature[];
-
-auto StackScroller::InitContants() -> nsresult
-{
-    nsresult rv = NS_OK;
-    mozilla::jni::Method<InitContants_t>::Call(StackScroller::Context(), &rv);
-    return rv;
-}
-
-constexpr char StackScroller::IsFinished_t::name[];
-constexpr char StackScroller::IsFinished_t::signature[];
-
-auto StackScroller::IsFinished(bool* a0) const -> nsresult
-{
-    MOZ_ASSERT(a0);
-    nsresult rv = NS_OK;
-    *a0 = mozilla::jni::Method<IsFinished_t>::Call(StackScroller::mCtx, &rv);
-    return rv;
-}
-
-constexpr char StackScroller::SetFinalX_t::name[];
-constexpr char StackScroller::SetFinalX_t::signature[];
-
-auto StackScroller::SetFinalX(int32_t a0) const -> nsresult
-{
-    nsresult rv = NS_OK;
-    mozilla::jni::Method<SetFinalX_t>::Call(StackScroller::mCtx, &rv, a0);
-    return rv;
-}
-
-constexpr char StackScroller::SpringBack_t::name[];
-constexpr char StackScroller::SpringBack_t::signature[];
-
-auto StackScroller::SpringBack(int32_t a0, int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int64_t a6, bool* a7) const -> nsresult
-{
-    MOZ_ASSERT(a7);
-    nsresult rv = NS_OK;
-    *a7 = mozilla::jni::Method<SpringBack_t>::Call(StackScroller::mCtx, &rv, a0, a1, a2, a3, a4, a5, a6);
-    return rv;
-}
-
-constexpr char StackScroller::StartScroll_t::name[];
-constexpr char StackScroller::StartScroll_t::signature[];
-
-auto StackScroller::StartScroll(int32_t a0, int32_t a1, int32_t a2, int32_t a3, int64_t a4, int32_t a5) const -> nsresult
-{
-    nsresult rv = NS_OK;
-    mozilla::jni::Method<StartScroll_t>::Call(StackScroller::mCtx, &rv, a0, a1, a2, a3, a4, a5);
-    return rv;
-}
-
-constexpr char StackScroller::ViscousFluid_t::name[];
-constexpr char StackScroller::ViscousFluid_t::signature[];
-
-auto StackScroller::ViscousFluid(float a0, float* a1) -> nsresult
-{
-    MOZ_ASSERT(a1);
-    nsresult rv = NS_OK;
-    *a1 = mozilla::jni::Method<ViscousFluid_t>::Call(StackScroller::Context(), &rv, a0);
-    return rv;
-}
-
-constexpr char StackScroller::MFlywheel_t::name[];
-constexpr char StackScroller::MFlywheel_t::signature[];
-
-auto StackScroller::MFlywheel(bool* a0) const -> nsresult
-{
-    MOZ_ASSERT(a0);
-    nsresult rv = NS_OK;
-    *a0 = mozilla::jni::Field<MFlywheel_t>::Get(StackScroller::mCtx, &rv);
-    return rv;
-}
-
-constexpr char StackScroller::MMode_t::name[];
-constexpr char StackScroller::MMode_t::signature[];
-
-auto StackScroller::MMode(int32_t* a0) const -> nsresult
-{
-    MOZ_ASSERT(a0);
-    nsresult rv = NS_OK;
-    *a0 = mozilla::jni::Field<MMode_t>::Get(StackScroller::mCtx, &rv);
-    return rv;
-}
-
-auto StackScroller::MMode(int32_t a0) const -> nsresult
-{
-    nsresult rv = NS_OK;
-    mozilla::jni::Field<MMode_t>::Set(StackScroller::mCtx, &rv, a0);
-    return rv;
-}
-
-constexpr char StackScroller::MScrollerX_t::name[];
-constexpr char StackScroller::MScrollerX_t::signature[];
-
-auto StackScroller::MScrollerX(mozilla::jni::Object::LocalRef* a0) const -> nsresult
-{
-    MOZ_ASSERT(a0);
-    nsresult rv = NS_OK;
-    *a0 = mozilla::jni::Field<MScrollerX_t>::Get(StackScroller::mCtx, &rv);
-    return rv;
-}
-
-constexpr char StackScroller::MScrollerY_t::name[];
-constexpr char StackScroller::MScrollerY_t::signature[];
-
-auto StackScroller::MScrollerY(mozilla::jni::Object::LocalRef* a0) const -> nsresult
-{
-    MOZ_ASSERT(a0);
-    nsresult rv = NS_OK;
-    *a0 = mozilla::jni::Field<MScrollerY_t>::Get(StackScroller::mCtx, &rv);
-    return rv;
-}
-
-constexpr char StackScroller::SViscousFluidNormalize_t::name[];
-constexpr char StackScroller::SViscousFluidNormalize_t::signature[];
-
-auto StackScroller::SViscousFluidNormalize(float* a0) -> nsresult
-{
-    MOZ_ASSERT(a0);
-    nsresult rv = NS_OK;
-    *a0 = mozilla::jni::Field<SViscousFluidNormalize_t>::Get(StackScroller::Context(), &rv);
-    return rv;
-}
-
-auto StackScroller::SViscousFluidNormalize(float a0) -> nsresult
-{
-    nsresult rv = NS_OK;
-    mozilla::jni::Field<SViscousFluidNormalize_t>::Set(StackScroller::Context(), &rv, a0);
-    return rv;
-}
-
-constexpr char StackScroller::SViscousFluidScale_t::name[];
-constexpr char StackScroller::SViscousFluidScale_t::signature[];
-
-auto StackScroller::SViscousFluidScale(float* a0) -> nsresult
-{
-    MOZ_ASSERT(a0);
-    nsresult rv = NS_OK;
-    *a0 = mozilla::jni::Field<SViscousFluidScale_t>::Get(StackScroller::Context(), &rv);
-    return rv;
-}
-
-auto StackScroller::SViscousFluidScale(float a0) -> nsresult
-{
-    nsresult rv = NS_OK;
-    mozilla::jni::Field<SViscousFluidScale_t>::Set(StackScroller::Context(), &rv, a0);
-    return rv;
-}
-
-const char SurfaceAllocator::name[] =
-        "org/mozilla/gecko/gfx/SurfaceAllocator";
-
-constexpr char SurfaceAllocator::AcquireSurface_t::name[];
-constexpr char SurfaceAllocator::AcquireSurface_t::signature[];
-
-auto SurfaceAllocator::AcquireSurface(int32_t a0, int32_t a1, bool a2) -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Method<AcquireSurface_t>::Call(SurfaceAllocator::Context(), nullptr, a0, a1, a2);
-}
-
-constexpr char SurfaceAllocator::DisposeSurface_t::name[];
-constexpr char SurfaceAllocator::DisposeSurface_t::signature[];
-
-auto SurfaceAllocator::DisposeSurface(mozilla::jni::Object::Param a0) -> void
-{
-    return mozilla::jni::Method<DisposeSurface_t>::Call(SurfaceAllocator::Context(), nullptr, a0);
-}
-
-const char VsyncSource::name[] =
-        "org/mozilla/gecko/gfx/VsyncSource";
-
-constexpr char VsyncSource::GetRefreshRate_t::name[];
-constexpr char VsyncSource::GetRefreshRate_t::signature[];
-
-auto VsyncSource::GetRefreshRate() const -> float
-{
-    return mozilla::jni::Method<GetRefreshRate_t>::Call(VsyncSource::mCtx, nullptr);
-}
-
-constexpr char VsyncSource::NotifyVsync_t::name[];
-constexpr char VsyncSource::NotifyVsync_t::signature[];
-
-constexpr char VsyncSource::ObserveVsync_t::name[];
-constexpr char VsyncSource::ObserveVsync_t::signature[];
-
-auto VsyncSource::ObserveVsync(bool a0) const -> bool
-{
-    return mozilla::jni::Method<ObserveVsync_t>::Call(VsyncSource::mCtx, nullptr, a0);
-}
-
-constexpr char VsyncSource::INSTANCE_t::name[];
-constexpr char VsyncSource::INSTANCE_t::signature[];
-
-auto VsyncSource::INSTANCE() -> VsyncSource::LocalRef
-{
-    return mozilla::jni::Field<INSTANCE_t>::Get(VsyncSource::Context(), nullptr);
-}
-
-const char CodecProxy::name[] =
-        "org/mozilla/gecko/media/CodecProxy";
-
-constexpr char CodecProxy::Create_t::name[];
-constexpr char CodecProxy::Create_t::signature[];
-
-auto CodecProxy::Create(bool a0, mozilla::jni::Object::Param a1, mozilla::jni::Object::Param a2, mozilla::jni::Object::Param a3, mozilla::jni::String::Param a4) -> CodecProxy::LocalRef
-{
-    return mozilla::jni::Method<Create_t>::Call(CodecProxy::Context(), nullptr, a0, a1, a2, a3, a4);
-}
-
-constexpr char CodecProxy::Flush_t::name[];
-constexpr char CodecProxy::Flush_t::signature[];
-
-auto CodecProxy::Flush() const -> bool
-{
-    return mozilla::jni::Method<Flush_t>::Call(CodecProxy::mCtx, nullptr);
-}
-
-constexpr char CodecProxy::Input_t::name[];
-constexpr char CodecProxy::Input_t::signature[];
-
-auto CodecProxy::Input(mozilla::jni::ByteBuffer::Param a0, mozilla::jni::Object::Param a1, mozilla::jni::Object::Param a2) const -> bool
-{
-    return mozilla::jni::Method<Input_t>::Call(CodecProxy::mCtx, nullptr, a0, a1, a2);
-}
-
-constexpr char CodecProxy::IsAdaptivePlaybackSupported_t::name[];
-constexpr char CodecProxy::IsAdaptivePlaybackSupported_t::signature[];
-
-auto CodecProxy::IsAdaptivePlaybackSupported() const -> bool
-{
-    return mozilla::jni::Method<IsAdaptivePlaybackSupported_t>::Call(CodecProxy::mCtx, nullptr);
-}
-
-constexpr char CodecProxy::IsTunneledPlaybackSupported_t::name[];
-constexpr char CodecProxy::IsTunneledPlaybackSupported_t::signature[];
-
-auto CodecProxy::IsTunneledPlaybackSupported() const -> bool
-{
-    return mozilla::jni::Method<IsTunneledPlaybackSupported_t>::Call(CodecProxy::mCtx, nullptr);
-}
-
-constexpr char CodecProxy::Release_t::name[];
-constexpr char CodecProxy::Release_t::signature[];
-
-auto CodecProxy::Release() const -> bool
-{
-    return mozilla::jni::Method<Release_t>::Call(CodecProxy::mCtx, nullptr);
-}
-
-constexpr char CodecProxy::ReleaseOutput_t::name[];
-constexpr char CodecProxy::ReleaseOutput_t::signature[];
-
-auto CodecProxy::ReleaseOutput(mozilla::jni::Object::Param a0, bool a1) const -> bool
-{
-    return mozilla::jni::Method<ReleaseOutput_t>::Call(CodecProxy::mCtx, nullptr, a0, a1);
-}
-
-constexpr char CodecProxy::SetRates_t::name[];
-constexpr char CodecProxy::SetRates_t::signature[];
-
-auto CodecProxy::SetRates(int32_t a0) const -> bool
-{
-    return mozilla::jni::Method<SetRates_t>::Call(CodecProxy::mCtx, nullptr, a0);
-}
-
-const char CodecProxy::NativeCallbacks::name[] =
-        "org/mozilla/gecko/media/CodecProxy$NativeCallbacks";
-
-constexpr char CodecProxy::NativeCallbacks::New_t::name[];
-constexpr char CodecProxy::NativeCallbacks::New_t::signature[];
-
-auto CodecProxy::NativeCallbacks::New() -> NativeCallbacks::LocalRef
-{
-    return mozilla::jni::Constructor<New_t>::Call(NativeCallbacks::Context(), nullptr);
-}
-
-constexpr char CodecProxy::NativeCallbacks::DisposeNative_t::name[];
-constexpr char CodecProxy::NativeCallbacks::DisposeNative_t::signature[];
-
-auto CodecProxy::NativeCallbacks::DisposeNative() const -> void
-{
-    return mozilla::jni::Method<DisposeNative_t>::Call(NativeCallbacks::mCtx, nullptr);
-}
-
-constexpr char CodecProxy::NativeCallbacks::OnError_t::name[];
-constexpr char CodecProxy::NativeCallbacks::OnError_t::signature[];
-
-constexpr char CodecProxy::NativeCallbacks::OnInputStatus_t::name[];
-constexpr char CodecProxy::NativeCallbacks::OnInputStatus_t::signature[];
-
-constexpr char CodecProxy::NativeCallbacks::OnOutput_t::name[];
-constexpr char CodecProxy::NativeCallbacks::OnOutput_t::signature[];
-
-constexpr char CodecProxy::NativeCallbacks::OnOutputFormatChanged_t::name[];
-constexpr char CodecProxy::NativeCallbacks::OnOutputFormatChanged_t::signature[];
-
-const char GeckoAudioInfo::name[] =
-        "org/mozilla/gecko/media/GeckoAudioInfo";
-
-constexpr char GeckoAudioInfo::New_t::name[];
-constexpr char GeckoAudioInfo::New_t::signature[];
-
-auto GeckoAudioInfo::New(int32_t a0, int32_t a1, int32_t a2, int32_t a3, int64_t a4, mozilla::jni::String::Param a5, mozilla::jni::ByteArray::Param a6) -> GeckoAudioInfo::LocalRef
-{
-    return mozilla::jni::Constructor<New_t>::Call(GeckoAudioInfo::Context(), nullptr, a0, a1, a2, a3, a4, a5, a6);
-}
-
-constexpr char GeckoAudioInfo::BitDepth_t::name[];
-constexpr char GeckoAudioInfo::BitDepth_t::signature[];
-
-auto GeckoAudioInfo::BitDepth() const -> int32_t
-{
-    return mozilla::jni::Field<BitDepth_t>::Get(GeckoAudioInfo::mCtx, nullptr);
-}
-
-constexpr char GeckoAudioInfo::Channels_t::name[];
-constexpr char GeckoAudioInfo::Channels_t::signature[];
-
-auto GeckoAudioInfo::Channels() const -> int32_t
-{
-    return mozilla::jni::Field<Channels_t>::Get(GeckoAudioInfo::mCtx, nullptr);
-}
-
-constexpr char GeckoAudioInfo::CodecSpecificData_t::name[];
-constexpr char GeckoAudioInfo::CodecSpecificData_t::signature[];
-
-auto GeckoAudioInfo::CodecSpecificData() const -> mozilla::jni::ByteArray::LocalRef
-{
-    return mozilla::jni::Field<CodecSpecificData_t>::Get(GeckoAudioInfo::mCtx, nullptr);
-}
-
-constexpr char GeckoAudioInfo::Duration_t::name[];
-constexpr char GeckoAudioInfo::Duration_t::signature[];
-
-auto GeckoAudioInfo::Duration() const -> int64_t
-{
-    return mozilla::jni::Field<Duration_t>::Get(GeckoAudioInfo::mCtx, nullptr);
-}
-
-constexpr char GeckoAudioInfo::MimeType_t::name[];
-constexpr char GeckoAudioInfo::MimeType_t::signature[];
-
-auto GeckoAudioInfo::MimeType() const -> mozilla::jni::String::LocalRef
-{
-    return mozilla::jni::Field<MimeType_t>::Get(GeckoAudioInfo::mCtx, nullptr);
-}
-
-constexpr char GeckoAudioInfo::Profile_t::name[];
-constexpr char GeckoAudioInfo::Profile_t::signature[];
-
-auto GeckoAudioInfo::Profile() const -> int32_t
-{
-    return mozilla::jni::Field<Profile_t>::Get(GeckoAudioInfo::mCtx, nullptr);
-}
-
-constexpr char GeckoAudioInfo::Rate_t::name[];
-constexpr char GeckoAudioInfo::Rate_t::signature[];
-
-auto GeckoAudioInfo::Rate() const -> int32_t
-{
-    return mozilla::jni::Field<Rate_t>::Get(GeckoAudioInfo::mCtx, nullptr);
-}
-
-const char GeckoHLSDemuxerWrapper::name[] =
-        "org/mozilla/gecko/media/GeckoHLSDemuxerWrapper";
-
-constexpr char GeckoHLSDemuxerWrapper::Create_t::name[];
-constexpr char GeckoHLSDemuxerWrapper::Create_t::signature[];
-
-auto GeckoHLSDemuxerWrapper::Create(int32_t a0, mozilla::jni::Object::Param a1) -> GeckoHLSDemuxerWrapper::LocalRef
-{
-    return mozilla::jni::Method<Create_t>::Call(GeckoHLSDemuxerWrapper::Context(), nullptr, a0, a1);
-}
-
-constexpr char GeckoHLSDemuxerWrapper::Destroy_t::name[];
-constexpr char GeckoHLSDemuxerWrapper::Destroy_t::signature[];
-
-auto GeckoHLSDemuxerWrapper::Destroy() const -> void
-{
-    return mozilla::jni::Method<Destroy_t>::Call(GeckoHLSDemuxerWrapper::mCtx, nullptr);
-}
-
-constexpr char GeckoHLSDemuxerWrapper::GetAudioInfo_t::name[];
-constexpr char GeckoHLSDemuxerWrapper::GetAudioInfo_t::signature[];
-
-auto GeckoHLSDemuxerWrapper::GetAudioInfo(int32_t a0) const -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Method<GetAudioInfo_t>::Call(GeckoHLSDemuxerWrapper::mCtx, nullptr, a0);
-}
-
-constexpr char GeckoHLSDemuxerWrapper::GetBuffered_t::name[];
-constexpr char GeckoHLSDemuxerWrapper::GetBuffered_t::signature[];
-
-auto GeckoHLSDemuxerWrapper::GetBuffered() const -> int64_t
-{
-    return mozilla::jni::Method<GetBuffered_t>::Call(GeckoHLSDemuxerWrapper::mCtx, nullptr);
-}
-
-constexpr char GeckoHLSDemuxerWrapper::GetNextKeyFrameTime_t::name[];
-constexpr char GeckoHLSDemuxerWrapper::GetNextKeyFrameTime_t::signature[];
-
-auto GeckoHLSDemuxerWrapper::GetNextKeyFrameTime() const -> int64_t
-{
-    return mozilla::jni::Method<GetNextKeyFrameTime_t>::Call(GeckoHLSDemuxerWrapper::mCtx, nullptr);
-}
-
-constexpr char GeckoHLSDemuxerWrapper::GetNumberOfTracks_t::name[];
-constexpr char GeckoHLSDemuxerWrapper::GetNumberOfTracks_t::signature[];
-
-auto GeckoHLSDemuxerWrapper::GetNumberOfTracks(int32_t a0) const -> int32_t
-{
-    return mozilla::jni::Method<GetNumberOfTracks_t>::Call(GeckoHLSDemuxerWrapper::mCtx, nullptr, a0);
-}
-
-constexpr char GeckoHLSDemuxerWrapper::GetSamples_t::name[];
-constexpr char GeckoHLSDemuxerWrapper::GetSamples_t::signature[];
-
-auto GeckoHLSDemuxerWrapper::GetSamples(int32_t a0, int32_t a1) const -> mozilla::jni::ObjectArray::LocalRef
-{
-    return mozilla::jni::Method<GetSamples_t>::Call(GeckoHLSDemuxerWrapper::mCtx, nullptr, a0, a1);
-}
-
-constexpr char GeckoHLSDemuxerWrapper::GetVideoInfo_t::name[];
-constexpr char GeckoHLSDemuxerWrapper::GetVideoInfo_t::signature[];
-
-auto GeckoHLSDemuxerWrapper::GetVideoInfo(int32_t a0) const -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Method<GetVideoInfo_t>::Call(GeckoHLSDemuxerWrapper::mCtx, nullptr, a0);
-}
-
-constexpr char GeckoHLSDemuxerWrapper::IsLiveStream_t::name[];
-constexpr char GeckoHLSDemuxerWrapper::IsLiveStream_t::signature[];
-
-auto GeckoHLSDemuxerWrapper::IsLiveStream() const -> bool
-{
-    return mozilla::jni::Method<IsLiveStream_t>::Call(GeckoHLSDemuxerWrapper::mCtx, nullptr);
-}
-
-constexpr char GeckoHLSDemuxerWrapper::Seek_t::name[];
-constexpr char GeckoHLSDemuxerWrapper::Seek_t::signature[];
-
-auto GeckoHLSDemuxerWrapper::Seek(int64_t a0) const -> bool
-{
-    return mozilla::jni::Method<Seek_t>::Call(GeckoHLSDemuxerWrapper::mCtx, nullptr, a0);
-}
-
-const char GeckoHLSDemuxerWrapper::Callbacks::name[] =
-        "org/mozilla/gecko/media/GeckoHLSDemuxerWrapper$Callbacks";
-
-constexpr char GeckoHLSDemuxerWrapper::Callbacks::New_t::name[];
-constexpr char GeckoHLSDemuxerWrapper::Callbacks::New_t::signature[];
-
-auto GeckoHLSDemuxerWrapper::Callbacks::New() -> Callbacks::LocalRef
-{
-    return mozilla::jni::Constructor<New_t>::Call(Callbacks::Context(), nullptr);
-}
-
-constexpr char GeckoHLSDemuxerWrapper::Callbacks::OnError_t::name[];
-constexpr char GeckoHLSDemuxerWrapper::Callbacks::OnError_t::signature[];
-
-constexpr char GeckoHLSDemuxerWrapper::Callbacks::OnInitialized_t::name[];
-constexpr char GeckoHLSDemuxerWrapper::Callbacks::OnInitialized_t::signature[];
-
-const char GeckoHLSResourceWrapper::name[] =
-        "org/mozilla/gecko/media/GeckoHLSResourceWrapper";
-
-constexpr char GeckoHLSResourceWrapper::Create_t::name[];
-constexpr char GeckoHLSResourceWrapper::Create_t::signature[];
-
-auto GeckoHLSResourceWrapper::Create(mozilla::jni::String::Param a0, mozilla::jni::Object::Param a1) -> GeckoHLSResourceWrapper::LocalRef
-{
-    return mozilla::jni::Method<Create_t>::Call(GeckoHLSResourceWrapper::Context(), nullptr, a0, a1);
-}
-
-constexpr char GeckoHLSResourceWrapper::Destroy_t::name[];
-constexpr char GeckoHLSResourceWrapper::Destroy_t::signature[];
-
-auto GeckoHLSResourceWrapper::Destroy() const -> void
-{
-    return mozilla::jni::Method<Destroy_t>::Call(GeckoHLSResourceWrapper::mCtx, nullptr);
-}
-
-constexpr char GeckoHLSResourceWrapper::GetPlayerId_t::name[];
-constexpr char GeckoHLSResourceWrapper::GetPlayerId_t::signature[];
-
-auto GeckoHLSResourceWrapper::GetPlayerId() const -> int32_t
-{
-    return mozilla::jni::Method<GetPlayerId_t>::Call(GeckoHLSResourceWrapper::mCtx, nullptr);
-}
-
-constexpr char GeckoHLSResourceWrapper::Pause_t::name[];
-constexpr char GeckoHLSResourceWrapper::Pause_t::signature[];
-
-auto GeckoHLSResourceWrapper::Pause() const -> void
-{
-    return mozilla::jni::Method<Pause_t>::Call(GeckoHLSResourceWrapper::mCtx, nullptr);
-}
-
-constexpr char GeckoHLSResourceWrapper::Play_t::name[];
-constexpr char GeckoHLSResourceWrapper::Play_t::signature[];
-
-auto GeckoHLSResourceWrapper::Play() const -> void
-{
-    return mozilla::jni::Method<Play_t>::Call(GeckoHLSResourceWrapper::mCtx, nullptr);
-}
-
-constexpr char GeckoHLSResourceWrapper::Resume_t::name[];
-constexpr char GeckoHLSResourceWrapper::Resume_t::signature[];
-
-auto GeckoHLSResourceWrapper::Resume() const -> void
-{
-    return mozilla::jni::Method<Resume_t>::Call(GeckoHLSResourceWrapper::mCtx, nullptr);
-}
-
-constexpr char GeckoHLSResourceWrapper::Suspend_t::name[];
-constexpr char GeckoHLSResourceWrapper::Suspend_t::signature[];
-
-auto GeckoHLSResourceWrapper::Suspend() const -> void
-{
-    return mozilla::jni::Method<Suspend_t>::Call(GeckoHLSResourceWrapper::mCtx, nullptr);
-}
-
-const char GeckoHLSResourceWrapper::Callbacks::name[] =
-        "org/mozilla/gecko/media/GeckoHLSResourceWrapper$Callbacks";
-
-constexpr char GeckoHLSResourceWrapper::Callbacks::New_t::name[];
-constexpr char GeckoHLSResourceWrapper::Callbacks::New_t::signature[];
-
-auto GeckoHLSResourceWrapper::Callbacks::New() -> Callbacks::LocalRef
-{
-    return mozilla::jni::Constructor<New_t>::Call(Callbacks::Context(), nullptr);
-}
-
-constexpr char GeckoHLSResourceWrapper::Callbacks::OnDataArrived_t::name[];
-constexpr char GeckoHLSResourceWrapper::Callbacks::OnDataArrived_t::signature[];
-
-constexpr char GeckoHLSResourceWrapper::Callbacks::OnError_t::name[];
-constexpr char GeckoHLSResourceWrapper::Callbacks::OnError_t::signature[];
-
-const char GeckoHLSSample::name[] =
-        "org/mozilla/gecko/media/GeckoHLSSample";
-
-constexpr char GeckoHLSSample::IsEOS_t::name[];
-constexpr char GeckoHLSSample::IsEOS_t::signature[];
-
-auto GeckoHLSSample::IsEOS() const -> bool
-{
-    return mozilla::jni::Method<IsEOS_t>::Call(GeckoHLSSample::mCtx, nullptr);
-}
-
-constexpr char GeckoHLSSample::IsKeyFrame_t::name[];
-constexpr char GeckoHLSSample::IsKeyFrame_t::signature[];
-
-auto GeckoHLSSample::IsKeyFrame() const -> bool
-{
-    return mozilla::jni::Method<IsKeyFrame_t>::Call(GeckoHLSSample::mCtx, nullptr);
-}
-
-constexpr char GeckoHLSSample::WriteToByteBuffer_t::name[];
-constexpr char GeckoHLSSample::WriteToByteBuffer_t::signature[];
-
-auto GeckoHLSSample::WriteToByteBuffer(mozilla::jni::ByteBuffer::Param a0) const -> void
-{
-    return mozilla::jni::Method<WriteToByteBuffer_t>::Call(GeckoHLSSample::mCtx, nullptr, a0);
-}
-
-constexpr char GeckoHLSSample::CryptoInfo_t::name[];
-constexpr char GeckoHLSSample::CryptoInfo_t::signature[];
-
-auto GeckoHLSSample::CryptoInfo() const -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Field<CryptoInfo_t>::Get(GeckoHLSSample::mCtx, nullptr);
-}
-
-constexpr char GeckoHLSSample::Duration_t::name[];
-constexpr char GeckoHLSSample::Duration_t::signature[];
-
-auto GeckoHLSSample::Duration() const -> int64_t
-{
-    return mozilla::jni::Field<Duration_t>::Get(GeckoHLSSample::mCtx, nullptr);
-}
-
-auto GeckoHLSSample::Duration(int64_t a0) const -> void
-{
-    return mozilla::jni::Field<Duration_t>::Set(GeckoHLSSample::mCtx, nullptr, a0);
-}
-
-constexpr char GeckoHLSSample::FormatIndex_t::name[];
-constexpr char GeckoHLSSample::FormatIndex_t::signature[];
-
-auto GeckoHLSSample::FormatIndex() const -> int32_t
-{
-    return mozilla::jni::Field<FormatIndex_t>::Get(GeckoHLSSample::mCtx, nullptr);
-}
-
-constexpr char GeckoHLSSample::Info_t::name[];
-constexpr char GeckoHLSSample::Info_t::signature[];
-
-auto GeckoHLSSample::Info() const -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Field<Info_t>::Get(GeckoHLSSample::mCtx, nullptr);
-}
-
-const char GeckoVideoInfo::name[] =
-        "org/mozilla/gecko/media/GeckoVideoInfo";
-
-constexpr char GeckoVideoInfo::New_t::name[];
-constexpr char GeckoVideoInfo::New_t::signature[];
-
-auto GeckoVideoInfo::New(int32_t a0, int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int64_t a6, mozilla::jni::String::Param a7, mozilla::jni::ByteArray::Param a8, mozilla::jni::ByteArray::Param a9) -> GeckoVideoInfo::LocalRef
-{
-    return mozilla::jni::Constructor<New_t>::Call(GeckoVideoInfo::Context(), nullptr, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
-}
-
-constexpr char GeckoVideoInfo::CodecSpecificData_t::name[];
-constexpr char GeckoVideoInfo::CodecSpecificData_t::signature[];
-
-auto GeckoVideoInfo::CodecSpecificData() const -> mozilla::jni::ByteArray::LocalRef
-{
-    return mozilla::jni::Field<CodecSpecificData_t>::Get(GeckoVideoInfo::mCtx, nullptr);
-}
-
-constexpr char GeckoVideoInfo::DisplayHeight_t::name[];
-constexpr char GeckoVideoInfo::DisplayHeight_t::signature[];
-
-auto GeckoVideoInfo::DisplayHeight() const -> int32_t
-{
-    return mozilla::jni::Field<DisplayHeight_t>::Get(GeckoVideoInfo::mCtx, nullptr);
-}
-
-constexpr char GeckoVideoInfo::DisplayWidth_t::name[];
-constexpr char GeckoVideoInfo::DisplayWidth_t::signature[];
-
-auto GeckoVideoInfo::DisplayWidth() const -> int32_t
-{
-    return mozilla::jni::Field<DisplayWidth_t>::Get(GeckoVideoInfo::mCtx, nullptr);
-}
-
-constexpr char GeckoVideoInfo::Duration_t::name[];
-constexpr char GeckoVideoInfo::Duration_t::signature[];
-
-auto GeckoVideoInfo::Duration() const -> int64_t
-{
-    return mozilla::jni::Field<Duration_t>::Get(GeckoVideoInfo::mCtx, nullptr);
-}
-
-constexpr char GeckoVideoInfo::ExtraData_t::name[];
-constexpr char GeckoVideoInfo::ExtraData_t::signature[];
-
-auto GeckoVideoInfo::ExtraData() const -> mozilla::jni::ByteArray::LocalRef
-{
-    return mozilla::jni::Field<ExtraData_t>::Get(GeckoVideoInfo::mCtx, nullptr);
-}
-
-constexpr char GeckoVideoInfo::MimeType_t::name[];
-constexpr char GeckoVideoInfo::MimeType_t::signature[];
-
-auto GeckoVideoInfo::MimeType() const -> mozilla::jni::String::LocalRef
-{
-    return mozilla::jni::Field<MimeType_t>::Get(GeckoVideoInfo::mCtx, nullptr);
-}
-
-constexpr char GeckoVideoInfo::PictureHeight_t::name[];
-constexpr char GeckoVideoInfo::PictureHeight_t::signature[];
-
-auto GeckoVideoInfo::PictureHeight() const -> int32_t
-{
-    return mozilla::jni::Field<PictureHeight_t>::Get(GeckoVideoInfo::mCtx, nullptr);
-}
-
-constexpr char GeckoVideoInfo::PictureWidth_t::name[];
-constexpr char GeckoVideoInfo::PictureWidth_t::signature[];
-
-auto GeckoVideoInfo::PictureWidth() const -> int32_t
-{
-    return mozilla::jni::Field<PictureWidth_t>::Get(GeckoVideoInfo::mCtx, nullptr);
-}
-
-constexpr char GeckoVideoInfo::Rotation_t::name[];
-constexpr char GeckoVideoInfo::Rotation_t::signature[];
-
-auto GeckoVideoInfo::Rotation() const -> int32_t
-{
-    return mozilla::jni::Field<Rotation_t>::Get(GeckoVideoInfo::mCtx, nullptr);
-}
-
-constexpr char GeckoVideoInfo::StereoMode_t::name[];
-constexpr char GeckoVideoInfo::StereoMode_t::signature[];
-
-auto GeckoVideoInfo::StereoMode() const -> int32_t
-{
-    return mozilla::jni::Field<StereoMode_t>::Get(GeckoVideoInfo::mCtx, nullptr);
-}
-
-const char MediaDrmProxy::name[] =
-        "org/mozilla/gecko/media/MediaDrmProxy";
-
-constexpr char MediaDrmProxy::CanDecode_t::name[];
-constexpr char MediaDrmProxy::CanDecode_t::signature[];
-
-auto MediaDrmProxy::CanDecode(mozilla::jni::String::Param a0) -> bool
-{
-    return mozilla::jni::Method<CanDecode_t>::Call(MediaDrmProxy::Context(), nullptr, a0);
-}
-
-constexpr char MediaDrmProxy::IsCryptoSchemeSupported_t::name[];
-constexpr char MediaDrmProxy::IsCryptoSchemeSupported_t::signature[];
-
-auto MediaDrmProxy::IsCryptoSchemeSupported(mozilla::jni::String::Param a0, mozilla::jni::String::Param a1) -> bool
-{
-    return mozilla::jni::Method<IsCryptoSchemeSupported_t>::Call(MediaDrmProxy::Context(), nullptr, a0, a1);
-}
-
-constexpr char MediaDrmProxy::CloseSession_t::name[];
-constexpr char MediaDrmProxy::CloseSession_t::signature[];
-
-auto MediaDrmProxy::CloseSession(int32_t a0, mozilla::jni::String::Param a1) const -> void
-{
-    return mozilla::jni::Method<CloseSession_t>::Call(MediaDrmProxy::mCtx, nullptr, a0, a1);
-}
-
-constexpr char MediaDrmProxy::Create_t::name[];
-constexpr char MediaDrmProxy::Create_t::signature[];
-
-auto MediaDrmProxy::Create(mozilla::jni::String::Param a0, mozilla::jni::Object::Param a1) -> MediaDrmProxy::LocalRef
-{
-    return mozilla::jni::Method<Create_t>::Call(MediaDrmProxy::Context(), nullptr, a0, a1);
-}
-
-constexpr char MediaDrmProxy::CreateSession_t::name[];
-constexpr char MediaDrmProxy::CreateSession_t::signature[];
-
-auto MediaDrmProxy::CreateSession(int32_t a0, int32_t a1, mozilla::jni::String::Param a2, mozilla::jni::ByteArray::Param a3) const -> void
-{
-    return mozilla::jni::Method<CreateSession_t>::Call(MediaDrmProxy::mCtx, nullptr, a0, a1, a2, a3);
-}
-
-constexpr char MediaDrmProxy::Destroy_t::name[];
-constexpr char MediaDrmProxy::Destroy_t::signature[];
-
-auto MediaDrmProxy::Destroy() const -> void
-{
-    return mozilla::jni::Method<Destroy_t>::Call(MediaDrmProxy::mCtx, nullptr);
-}
-
-constexpr char MediaDrmProxy::GetMediaCrypto_t::name[];
-constexpr char MediaDrmProxy::GetMediaCrypto_t::signature[];
-
-auto MediaDrmProxy::GetMediaCrypto(mozilla::jni::String::Param a0) -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Method<GetMediaCrypto_t>::Call(MediaDrmProxy::Context(), nullptr, a0);
-}
-
-constexpr char MediaDrmProxy::GetStubId_t::name[];
-constexpr char MediaDrmProxy::GetStubId_t::signature[];
-
-auto MediaDrmProxy::GetStubId() const -> mozilla::jni::String::LocalRef
-{
-    return mozilla::jni::Method<GetStubId_t>::Call(MediaDrmProxy::mCtx, nullptr);
-}
-
-constexpr char MediaDrmProxy::IsSchemeSupported_t::name[];
-constexpr char MediaDrmProxy::IsSchemeSupported_t::signature[];
-
-auto MediaDrmProxy::IsSchemeSupported(mozilla::jni::String::Param a0) -> bool
-{
-    return mozilla::jni::Method<IsSchemeSupported_t>::Call(MediaDrmProxy::Context(), nullptr, a0);
-}
-
-constexpr char MediaDrmProxy::UpdateSession_t::name[];
-constexpr char MediaDrmProxy::UpdateSession_t::signature[];
-
-auto MediaDrmProxy::UpdateSession(int32_t a0, mozilla::jni::String::Param a1, mozilla::jni::ByteArray::Param a2) const -> void
-{
-    return mozilla::jni::Method<UpdateSession_t>::Call(MediaDrmProxy::mCtx, nullptr, a0, a1, a2);
-}
-
-const char16_t MediaDrmProxy::AAC[] = u"audio/mp4a-latm";
-
-const char16_t MediaDrmProxy::AVC[] = u"video/avc";
-
-const char16_t MediaDrmProxy::OPUS[] = u"audio/opus";
-
-const char16_t MediaDrmProxy::VORBIS[] = u"audio/vorbis";
-
-const char16_t MediaDrmProxy::VP8[] = u"video/x-vnd.on2.vp8";
-
-const char16_t MediaDrmProxy::VP9[] = u"video/x-vnd.on2.vp9";
-
-const char MediaDrmProxy::NativeMediaDrmProxyCallbacks::name[] =
-        "org/mozilla/gecko/media/MediaDrmProxy$NativeMediaDrmProxyCallbacks";
-
-constexpr char MediaDrmProxy::NativeMediaDrmProxyCallbacks::New_t::name[];
-constexpr char MediaDrmProxy::NativeMediaDrmProxyCallbacks::New_t::signature[];
-
-auto MediaDrmProxy::NativeMediaDrmProxyCallbacks::New() -> NativeMediaDrmProxyCallbacks::LocalRef
-{
-    return mozilla::jni::Constructor<New_t>::Call(NativeMediaDrmProxyCallbacks::Context(), nullptr);
-}
-
-constexpr char MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnRejectPromise_t::name[];
-constexpr char MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnRejectPromise_t::signature[];
-
-constexpr char MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionBatchedKeyChanged_t::name[];
-constexpr char MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionBatchedKeyChanged_t::signature[];
-
-constexpr char MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionClosed_t::name[];
-constexpr char MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionClosed_t::signature[];
-
-constexpr char MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionCreated_t::name[];
-constexpr char MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionCreated_t::signature[];
-
-constexpr char MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionError_t::name[];
-constexpr char MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionError_t::signature[];
-
-constexpr char MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionMessage_t::name[];
-constexpr char MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionMessage_t::signature[];
-
-constexpr char MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionUpdated_t::name[];
-constexpr char MediaDrmProxy::NativeMediaDrmProxyCallbacks::OnSessionUpdated_t::signature[];
-
-const char Sample::name[] =
-        "org/mozilla/gecko/media/Sample";
-
-constexpr char Sample::WriteToByteBuffer_t::name[];
-constexpr char Sample::WriteToByteBuffer_t::signature[];
-
-auto Sample::WriteToByteBuffer(mozilla::jni::ByteBuffer::Param a0) const -> void
-{
-    return mozilla::jni::Method<WriteToByteBuffer_t>::Call(Sample::mCtx, nullptr, a0);
-}
-
-constexpr char Sample::Info_t::name[];
-constexpr char Sample::Info_t::signature[];
-
-auto Sample::Info() const -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Field<Info_t>::Get(Sample::mCtx, nullptr);
-}
-
-auto Sample::Info(mozilla::jni::Object::Param a0) const -> void
-{
-    return mozilla::jni::Field<Info_t>::Set(Sample::mCtx, nullptr, a0);
-}
-
-const char SessionKeyInfo::name[] =
-        "org/mozilla/gecko/media/SessionKeyInfo";
-
-constexpr char SessionKeyInfo::New_t::name[];
-constexpr char SessionKeyInfo::New_t::signature[];
-
-auto SessionKeyInfo::New(mozilla::jni::ByteArray::Param a0, int32_t a1) -> SessionKeyInfo::LocalRef
-{
-    return mozilla::jni::Constructor<New_t>::Call(SessionKeyInfo::Context(), nullptr, a0, a1);
-}
-
-constexpr char SessionKeyInfo::KeyId_t::name[];
-constexpr char SessionKeyInfo::KeyId_t::signature[];
-
-auto SessionKeyInfo::KeyId() const -> mozilla::jni::ByteArray::LocalRef
-{
-    return mozilla::jni::Field<KeyId_t>::Get(SessionKeyInfo::mCtx, nullptr);
-}
-
-auto SessionKeyInfo::KeyId(mozilla::jni::ByteArray::Param a0) const -> void
-{
-    return mozilla::jni::Field<KeyId_t>::Set(SessionKeyInfo::mCtx, nullptr, a0);
-}
-
-constexpr char SessionKeyInfo::Status_t::name[];
-constexpr char SessionKeyInfo::Status_t::signature[];
-
-auto SessionKeyInfo::Status() const -> int32_t
-{
-    return mozilla::jni::Field<Status_t>::Get(SessionKeyInfo::mCtx, nullptr);
-}
-
-auto SessionKeyInfo::Status(int32_t a0) const -> void
-{
-    return mozilla::jni::Field<Status_t>::Set(SessionKeyInfo::mCtx, nullptr, a0);
-}
-
-const char GeckoProcessManager::name[] =
-        "org/mozilla/gecko/process/GeckoProcessManager";
-
-constexpr char GeckoProcessManager::GetEditableParent_t::name[];
-constexpr char GeckoProcessManager::GetEditableParent_t::signature[];
-
-constexpr char GeckoProcessManager::Start_t::name[];
-constexpr char GeckoProcessManager::Start_t::signature[];
-
-auto GeckoProcessManager::Start(mozilla::jni::String::Param a0, mozilla::jni::ObjectArray::Param a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5) -> int32_t
-{
-    return mozilla::jni::Method<Start_t>::Call(GeckoProcessManager::Context(), nullptr, a0, a1, a2, a3, a4, a5);
-}
-
-const char GeckoServiceChildProcess::name[] =
-        "org/mozilla/gecko/process/GeckoServiceChildProcess";
-
-constexpr char GeckoServiceChildProcess::GetEditableParent_t::name[];
-constexpr char GeckoServiceChildProcess::GetEditableParent_t::signature[];
-
-auto GeckoServiceChildProcess::GetEditableParent(int64_t a0, int64_t a1) -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Method<GetEditableParent_t>::Call(GeckoServiceChildProcess::Context(), nullptr, a0, a1);
-}
-
-const char EventCallback::name[] =
-        "org/mozilla/gecko/util/EventCallback";
-
-constexpr char EventCallback::SendError_t::name[];
-constexpr char EventCallback::SendError_t::signature[];
-
-auto EventCallback::SendError(mozilla::jni::Object::Param a0) const -> void
-{
-    return mozilla::jni::Method<SendError_t>::Call(EventCallback::mCtx, nullptr, a0);
-}
-
-constexpr char EventCallback::SendSuccess_t::name[];
-constexpr char EventCallback::SendSuccess_t::signature[];
-
-auto EventCallback::SendSuccess(mozilla::jni::Object::Param a0) const -> void
-{
-    return mozilla::jni::Method<SendSuccess_t>::Call(EventCallback::mCtx, nullptr, a0);
-}
-
-const char GeckoBundle::name[] =
-        "org/mozilla/gecko/util/GeckoBundle";
-
-constexpr char GeckoBundle::New_t::name[];
-constexpr char GeckoBundle::New_t::signature[];
-
-auto GeckoBundle::New(mozilla::jni::ObjectArray::Param a0, mozilla::jni::ObjectArray::Param a1) -> GeckoBundle::LocalRef
-{
-    return mozilla::jni::Constructor<New_t>::Call(GeckoBundle::Context(), nullptr, a0, a1);
-}
-
-constexpr char GeckoBundle::Box_t::name[];
-constexpr char GeckoBundle::Box_t::signature[];
-
-auto GeckoBundle::Box(double a0) -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Method<Box_t>::Call(GeckoBundle::Context(), nullptr, a0);
-}
-
-constexpr char GeckoBundle::Box2_t::name[];
-constexpr char GeckoBundle::Box2_t::signature[];
-
-auto GeckoBundle::Box(int32_t a0) -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Method<Box2_t>::Call(GeckoBundle::Context(), nullptr, a0);
-}
-
-constexpr char GeckoBundle::Box3_t::name[];
-constexpr char GeckoBundle::Box3_t::signature[];
-
-auto GeckoBundle::Box(bool a0) -> mozilla::jni::Object::LocalRef
-{
-    return mozilla::jni::Method<Box3_t>::Call(GeckoBundle::Context(), nullptr, a0);
-}
-
-constexpr char GeckoBundle::Keys_t::name[];
-constexpr char GeckoBundle::Keys_t::signature[];
-
-auto GeckoBundle::Keys() const -> mozilla::jni::ObjectArray::LocalRef
-{
-    return mozilla::jni::Method<Keys_t>::Call(GeckoBundle::mCtx, nullptr);
-}
-
-constexpr char GeckoBundle::UnboxBoolean_t::name[];
-constexpr char GeckoBundle::UnboxBoolean_t::signature[];
-
-auto GeckoBundle::UnboxBoolean(mozilla::jni::Object::Param a0) -> bool
-{
-    return mozilla::jni::Method<UnboxBoolean_t>::Call(GeckoBundle::Context(), nullptr, a0);
-}
-
-constexpr char GeckoBundle::UnboxDouble_t::name[];
-constexpr char GeckoBundle::UnboxDouble_t::signature[];
-
-auto GeckoBundle::UnboxDouble(mozilla::jni::Object::Param a0) -> double
-{
-    return mozilla::jni::Method<UnboxDouble_t>::Call(GeckoBundle::Context(), nullptr, a0);
-}
-
-constexpr char GeckoBundle::UnboxInteger_t::name[];
-constexpr char GeckoBundle::UnboxInteger_t::signature[];
-
-auto GeckoBundle::UnboxInteger(mozilla::jni::Object::Param a0) -> int32_t
-{
-    return mozilla::jni::Method<UnboxInteger_t>::Call(GeckoBundle::Context(), nullptr, a0);
-}
-
-constexpr char GeckoBundle::UnboxString_t::name[];
-constexpr char GeckoBundle::UnboxString_t::signature[];
-
-auto GeckoBundle::UnboxString(mozilla::jni::Object::Param a0) -> mozilla::jni::String::LocalRef
-{
-    return mozilla::jni::Method<UnboxString_t>::Call(GeckoBundle::Context(), nullptr, a0);
-}
-
-constexpr char GeckoBundle::Values_t::name[];
-constexpr char GeckoBundle::Values_t::signature[];
-
-auto GeckoBundle::Values() const -> mozilla::jni::ObjectArray::LocalRef
-{
-    return mozilla::jni::Method<Values_t>::Call(GeckoBundle::mCtx, nullptr);
-}
-
-constexpr char GeckoBundle::EMPTY_BOOLEAN_ARRAY_t::name[];
-constexpr char GeckoBundle::EMPTY_BOOLEAN_ARRAY_t::signature[];
-
-auto GeckoBundle::EMPTY_BOOLEAN_ARRAY() -> mozilla::jni::BooleanArray::LocalRef
-{
-    return mozilla::jni::Field<EMPTY_BOOLEAN_ARRAY_t>::Get(GeckoBundle::Context(), nullptr);
-}
-
-const char HardwareCodecCapabilityUtils::name[] =
-        "org/mozilla/gecko/util/HardwareCodecCapabilityUtils";
-
-constexpr char HardwareCodecCapabilityUtils::HasHWVP9_t::name[];
-constexpr char HardwareCodecCapabilityUtils::HasHWVP9_t::signature[];
-
-auto HardwareCodecCapabilityUtils::HasHWVP9() -> bool
-{
-    return mozilla::jni::Method<HasHWVP9_t>::Call(HardwareCodecCapabilityUtils::Context(), nullptr);
-}
-
-constexpr char HardwareCodecCapabilityUtils::CheckSupportsAdaptivePlayback_t::name[];
-constexpr char HardwareCodecCapabilityUtils::CheckSupportsAdaptivePlayback_t::signature[];
-
-auto HardwareCodecCapabilityUtils::CheckSupportsAdaptivePlayback(mozilla::jni::Object::Param a0, mozilla::jni::String::Param a1) -> bool
-{
-    return mozilla::jni::Method<CheckSupportsAdaptivePlayback_t>::Call(HardwareCodecCapabilityUtils::Context(), nullptr, a0, a1);
-}
-
-constexpr char HardwareCodecCapabilityUtils::FindDecoderCodecInfoForMimeType_t::name[];
-constexpr char HardwareCodecCapabilityUtils::FindDecoderCodecInfoForMimeType_t::signature[];
-
-auto HardwareCodecCapabilityUtils::FindDecoderCodecInfoForMimeType(mozilla::jni::String::Param a0) -> bool
-{
-    return mozilla::jni::Method<FindDecoderCodecInfoForMimeType_t>::Call(HardwareCodecCapabilityUtils::Context(), nullptr, a0);
-}
-
-const char GeckoSession::name[] =
-        "org/mozilla/geckoview/GeckoSession";
-
-const char GeckoSession::Window::name[] =
-        "org/mozilla/geckoview/GeckoSession$Window";
-
-constexpr char GeckoSession::Window::AttachEditable_t::name[];
-constexpr char GeckoSession::Window::AttachEditable_t::signature[];
-
-constexpr char GeckoSession::Window::Close_t::name[];
-constexpr char GeckoSession::Window::Close_t::signature[];
-
-constexpr char GeckoSession::Window::DisposeNative_t::name[];
-constexpr char GeckoSession::Window::DisposeNative_t::signature[];
-
-constexpr char GeckoSession::Window::Transfer_t::name[];
-constexpr char GeckoSession::Window::Transfer_t::signature[];
-
-constexpr char GeckoSession::Window::OnReady_t::name[];
-constexpr char GeckoSession::Window::OnReady_t::signature[];
-
-auto GeckoSession::Window::OnReady(mozilla::jni::Object::Param a0) const -> void
-{
-    return mozilla::jni::Method<OnReady_t>::Call(Window::mCtx, nullptr, a0);
-}
-
-constexpr char GeckoSession::Window::Open_t::name[];
-constexpr char GeckoSession::Window::Open_t::signature[];
-
-const char SessionTextInput::name[] =
-        "org/mozilla/geckoview/SessionTextInput";
-
-const char SessionTextInput::EditableClient::name[] =
-        "org/mozilla/geckoview/SessionTextInput$EditableClient";
-
-const char SessionTextInput::EditableListener::name[] =
-        "org/mozilla/geckoview/SessionTextInput$EditableListener";
-
-} /* java */
-} /* mozilla */
deleted file mode 100644
--- a/widget/android/GeneratedJNIWrappers.h
+++ /dev/null
@@ -1,7525 +0,0 @@
-// 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
-
-#ifndef MOZ_PREPROCESSOR
-#include "mozilla/jni/Refs.h"
-#endif
-
-namespace mozilla {
-namespace java {
-
-class AndroidGamepadManager : public mozilla::jni::ObjectBase<AndroidGamepadManager>
-{
-public:
-    static const char name[];
-
-    explicit AndroidGamepadManager(const Context& ctx) : ObjectBase<AndroidGamepadManager>(ctx) {}
-
-    struct OnAxisChange_t {
-        typedef AndroidGamepadManager Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                mozilla::jni::BooleanArray::Param,
-                mozilla::jni::FloatArray::Param> Args;
-        static constexpr char name[] = "onAxisChange";
-        static constexpr char signature[] =
-                "(I[Z[F)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct OnButtonChange_t {
-        typedef AndroidGamepadManager Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                int32_t,
-                bool,
-                float> Args;
-        static constexpr char name[] = "onButtonChange";
-        static constexpr char signature[] =
-                "(IIZF)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct OnGamepadAdded_t {
-        typedef AndroidGamepadManager Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                int32_t> Args;
-        static constexpr char name[] = "onGamepadAdded";
-        static constexpr char signature[] =
-                "(II)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto OnGamepadAdded(int32_t, int32_t) -> void;
-
-    struct OnGamepadChange_t {
-        typedef AndroidGamepadManager Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                bool> Args;
-        static constexpr char name[] = "onGamepadChange";
-        static constexpr char signature[] =
-                "(IZ)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct Start_t {
-        typedef AndroidGamepadManager Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "start";
-        static constexpr char signature[] =
-                "(Landroid/content/Context;)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto Start(mozilla::jni::Object::Param) -> void;
-
-    struct Stop_t {
-        typedef AndroidGamepadManager Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "stop";
-        static constexpr char signature[] =
-                "(Landroid/content/Context;)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto Stop(mozilla::jni::Object::Param) -> void;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class Clipboard : public mozilla::jni::ObjectBase<Clipboard>
-{
-public:
-    static const char name[];
-
-    explicit Clipboard(const Context& ctx) : ObjectBase<Clipboard>(ctx) {}
-
-    struct ClearText_t {
-        typedef Clipboard Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "clearText";
-        static constexpr char signature[] =
-                "(Landroid/content/Context;)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto ClearText(mozilla::jni::Object::Param) -> void;
-
-    struct GetText_t {
-        typedef Clipboard 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[] = "getText";
-        static constexpr char signature[] =
-                "(Landroid/content/Context;)Ljava/lang/String;";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetText(mozilla::jni::Object::Param) -> mozilla::jni::String::LocalRef;
-
-    struct HasText_t {
-        typedef Clipboard Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "hasText";
-        static constexpr char signature[] =
-                "(Landroid/content/Context;)Z";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto HasText(mozilla::jni::Object::Param) -> bool;
-
-    struct SetText_t {
-        typedef Clipboard Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Object::Param,
-                mozilla::jni::String::Param> Args;
-        static constexpr char name[] = "setText";
-        static constexpr char signature[] =
-                "(Landroid/content/Context;Ljava/lang/CharSequence;)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto SetText(mozilla::jni::Object::Param, mozilla::jni::String::Param) -> void;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::GECKO;
-
-};
-
-class EventDispatcher : public mozilla::jni::ObjectBase<EventDispatcher>
-{
-public:
-    static const char name[];
-
-    explicit EventDispatcher(const Context& ctx) : ObjectBase<EventDispatcher>(ctx) {}
-
-    class NativeCallbackDelegate;
-
-    struct DispatchToGecko_t {
-        typedef EventDispatcher Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::String::Param,
-                mozilla::jni::Object::Param,
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "dispatchToGecko";
-        static constexpr char signature[] =
-                "(Ljava/lang/String;Lorg/mozilla/gecko/util/GeckoBundle;Lorg/mozilla/gecko/util/EventCallback;)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct DispatchToThreads_t {
-        typedef EventDispatcher Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::String::Param,
-                mozilla::jni::Object::Param,
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "dispatchToThreads";
-        static constexpr char signature[] =
-                "(Ljava/lang/String;Lorg/mozilla/gecko/util/GeckoBundle;Lorg/mozilla/gecko/util/EventCallback;)Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto DispatchToThreads(mozilla::jni::String::Param, mozilla::jni::Object::Param, mozilla::jni::Object::Param) const -> bool;
-
-    struct DisposeNative_t {
-        typedef EventDispatcher 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 mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct GetInstance_t {
-        typedef EventDispatcher Owner;
-        typedef EventDispatcher::LocalRef ReturnType;
-        typedef EventDispatcher::Param SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getInstance";
-        static constexpr char signature[] =
-                "()Lorg/mozilla/gecko/EventDispatcher;";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetInstance() -> EventDispatcher::LocalRef;
-
-    struct HasGeckoListener_t {
-        typedef EventDispatcher Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::String::Param> Args;
-        static constexpr char name[] = "hasGeckoListener";
-        static constexpr char signature[] =
-                "(Ljava/lang/String;)Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct SetAttachedToGecko_t {
-        typedef EventDispatcher Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t> Args;
-        static constexpr char name[] = "setAttachedToGecko";
-        static constexpr char signature[] =
-                "(I)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto SetAttachedToGecko(int32_t) const -> void;
-
-    static const int32_t ATTACHED = 1;
-
-    static const int32_t DETACHED = 0;
-
-    static const int32_t REATTACHING = 2;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class EventDispatcher::NativeCallbackDelegate : public mozilla::jni::ObjectBase<NativeCallbackDelegate>
-{
-public:
-    static const char name[];
-
-    explicit NativeCallbackDelegate(const Context& ctx) : ObjectBase<NativeCallbackDelegate>(ctx) {}
-
-    struct New_t {
-        typedef NativeCallbackDelegate Owner;
-        typedef NativeCallbackDelegate::LocalRef ReturnType;
-        typedef NativeCallbackDelegate::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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto New() -> NativeCallbackDelegate::LocalRef;
-
-    struct Finalize_t {
-        typedef NativeCallbackDelegate Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "finalize";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct SendError_t {
-        typedef NativeCallbackDelegate Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "sendError";
-        static constexpr char signature[] =
-                "(Ljava/lang/Object;)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::PROXY;
-    };
-
-    struct SendSuccess_t {
-        typedef NativeCallbackDelegate Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "sendSuccess";
-        static constexpr char signature[] =
-                "(Ljava/lang/Object;)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::PROXY;
-    };
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class GeckoAppShell : public mozilla::jni::ObjectBase<GeckoAppShell>
-{
-public:
-    static const char name[];
-
-    explicit GeckoAppShell(const Context& ctx) : ObjectBase<GeckoAppShell>(ctx) {}
-
-    class CameraCallback;
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto CancelVibrate() -> 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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto CreateInputStream(mozilla::jni::Object::Param) -> mozilla::jni::Object::LocalRef;
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto EnableBatteryNotifications() -> void;
-
-    struct EnableLocation_t {
-        typedef GeckoAppShell Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<
-                bool> Args;
-        static constexpr char name[] = "enableLocation";
-        static constexpr char signature[] =
-                "(Z)Z";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto EnableLocation(bool) -> bool;
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto EnableSensor(int32_t) -> void;
-
-    struct GetAppNotes_t {
-        typedef GeckoAppShell Owner;
-        typedef mozilla::jni::String::LocalRef ReturnType;
-        typedef mozilla::jni::String::Param SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getAppNotes";
-        static constexpr char signature[] =
-                "()Ljava/lang/String;";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::IGNORE;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetAppNotes() -> mozilla::jni::String::LocalRef;
-
-    struct GetApplicationContext_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[] = "getApplicationContext";
-        static constexpr char signature[] =
-                "()Landroid/content/Context;";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetApplicationContext() -> mozilla::jni::Object::LocalRef;
-
-    struct GetAudioOutputFramesPerBuffer_t {
-        typedef GeckoAppShell Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getAudioOutputFramesPerBuffer";
-        static constexpr char signature[] =
-                "()I";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetAudioOutputFramesPerBuffer() -> int32_t;
-
-    struct GetAudioOutputSampleRate_t {
-        typedef GeckoAppShell Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getAudioOutputSampleRate";
-        static constexpr char signature[] =
-                "()I";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetAudioOutputSampleRate() -> int32_t;
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetConnection(mozilla::jni::String::Param) -> mozilla::jni::Object::LocalRef;
-
-    struct GetCurrentBatteryInformation_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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetCurrentBatteryInformation() -> mozilla::jni::DoubleArray::LocalRef;
-
-    struct GetCurrentNetworkInformation_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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetCurrentNetworkInformation() -> mozilla::jni::DoubleArray::LocalRef;
-
-    struct GetDefaultLocale_t {
-        typedef GeckoAppShell Owner;
-        typedef mozilla::jni::String::LocalRef ReturnType;
-        typedef mozilla::jni::String::Param SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getDefaultLocale";
-        static constexpr char signature[] =
-                "()Ljava/lang/String;";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetDefaultLocale() -> mozilla::jni::String::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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetDensity() -> float;
-
-    struct GetDpi_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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetDpi() -> int32_t;
-
-    struct GetExceptionStackTrace_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[] = "getExceptionStackTrace";
-        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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetExceptionStackTrace(mozilla::jni::Throwable::Param) -> mozilla::jni::String::LocalRef;
-
-    struct GetExtensionFromMimeType_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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetExtensionFromMimeType(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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetHWEncoderCapability() -> bool;
-
-    struct GetHandlersForMimeType_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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetHandlersForMimeType(mozilla::jni::String::Param, mozilla::jni::String::Param) -> mozilla::jni::ObjectArray::LocalRef;
-
-    struct GetHandlersForURL_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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetHandlersForURL(mozilla::jni::String::Param, mozilla::jni::String::Param) -> mozilla::jni::ObjectArray::LocalRef;
-
-    struct GetIconForExtension_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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetIconForExtension(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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetMaxTouchPoints() -> int32_t;
-
-    struct GetMimeTypeFromExtensions_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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetMimeTypeFromExtensions(mozilla::jni::String::Param) -> mozilla::jni::String::LocalRef;
-
-    struct GetNetworkLinkType_t {
-        typedef GeckoAppShell Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getNetworkLinkType";
-        static constexpr char signature[] =
-                "()I";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetNetworkLinkType() -> int32_t;
-
-    struct GetProxyForURI_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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetProxyForURI(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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetScreenAngle() -> int32_t;
-
-    struct GetScreenDepth_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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetScreenDepth() -> int32_t;
-
-    struct GetScreenOrientation_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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetScreenOrientation() -> 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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetShowPasswordSetting() -> bool;
-
-    struct GetSystemColors_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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto GetSystemColors() -> mozilla::jni::IntArray::LocalRef;
-
-    struct HandleUncaughtException_t {
-        typedef GeckoAppShell Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Throwable::Param> Args;
-        static constexpr char name[] = "handleUncaughtException";
-        static constexpr char signature[] =
-                "(Ljava/lang/Throwable;)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::IGNORE;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto HandleUncaughtException(mozilla::jni::Throwable::Param) -> void;
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto HideProgressDialog() -> void;
-
-    struct InitCamera_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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto InitCamera(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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto KillAnyZombies() -> void;
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto LockScreenOrientation(int32_t) -> 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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto MoveTaskToBack() -> void;
-
-    struct NotifyObservers_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[] = "nativeNotifyObservers";
-        static constexpr char signature[] =
-                "(Ljava/lang/String;Ljava/lang/String;)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct NotifyAlertListener_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> Args;
-        static constexpr char name[] = "notifyAlertListener";
-        static constexpr char signature[] =
-                "(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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct NotifyUriVisited_t {
-        typedef GeckoAppShell Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::String::Param> Args;
-        static constexpr char name[] = "notifyUriVisited";
-        static constexpr char signature[] =
-                "(Ljava/lang/String;)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto NotifyWakeLockChanged(mozilla::jni::String::Param, mozilla::jni::String::Param) -> void;
-
-    struct OnLocationChanged_t {
-        typedef GeckoAppShell Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                double,
-                double,
-                double,
-                float,
-                float,
-                float,
-                int64_t> Args;
-        static constexpr char name[] = "onLocationChanged";
-        static constexpr char signature[] =
-                "(DDDFFFJ)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct OnSensorChanged_t {
-        typedef GeckoAppShell Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                float,
-                float,
-                float,
-                float,
-                int32_t,
-                int64_t> Args;
-        static constexpr char name[] = "onSensorChanged";
-        static constexpr char signature[] =
-                "(IFFFFIJ)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto PerformHapticFeedback(bool) -> void;
-
-    struct ReportJavaCrash_t {
-        typedef GeckoAppShell Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Throwable::Param,
-                mozilla::jni::String::Param> Args;
-        static constexpr char name[] = "reportJavaCrash";
-        static constexpr char signature[] =
-                "(Ljava/lang/Throwable;Ljava/lang/String;)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto SetScreenDepthOverride(int32_t) -> void;
-
-    struct ShowNotification_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,
-                mozilla::jni::String::Param> Args;
-        static constexpr char name[] = "showNotification";
-        static constexpr char signature[] =
-                "(Ljava/lang/String;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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto ShowNotification(mozilla::jni::String::Param, 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 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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto UnlockScreenOrientation() -> void;
-
-    struct Vibrate_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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto Vibrate(int64_t) -> void;
-
-    struct Vibrate2_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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto Vibrate(mozilla::jni::LongArray::Param, int32_t) -> void;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class GeckoAppShell::CameraCallback : public mozilla::jni::ObjectBase<CameraCallback>
-{
-public:
-    static const char name[];
-
-    explicit CameraCallback(const Context& ctx) : ObjectBase<CameraCallback>(ctx) {}
-
-    struct OnFrameData_t {
-        typedef CameraCallback Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                mozilla::jni::ByteArray::Param> Args;
-        static constexpr char name[] = "onFrameData";
-        static constexpr char signature[] =
-                "(I[B)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::GECKO;
-
-    template<class Impl> class Natives;
-};
-
-class GeckoBatteryManager : public mozilla::jni::ObjectBase<GeckoBatteryManager>
-{
-public:
-    static const char name[];
-
-    explicit GeckoBatteryManager(const Context& ctx) : ObjectBase<GeckoBatteryManager>(ctx) {}
-
-    struct OnBatteryChange_t {
-        typedef GeckoBatteryManager Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                double,
-                bool,
-                double> Args;
-        static constexpr char name[] = "onBatteryChange";
-        static constexpr char signature[] =
-                "(DZD)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::UI;
-
-    template<class Impl> class Natives;
-};
-
-class GeckoEditableChild : public mozilla::jni::ObjectBase<GeckoEditableChild>
-{
-public:
-    static const char name[];
-
-    explicit GeckoEditableChild(const Context& ctx) : ObjectBase<GeckoEditableChild>(ctx) {}
-
-    struct New_t {
-        typedef GeckoEditableChild Owner;
-        typedef GeckoEditableChild::LocalRef ReturnType;
-        typedef GeckoEditableChild::Param SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "<init>";
-        static constexpr char signature[] =
-                "(Lorg/mozilla/gecko/IGeckoEditableParent;)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto New(mozilla::jni::Object::Param) -> GeckoEditableChild::LocalRef;
-
-    struct NotifyIME_t {
-        typedef GeckoEditableChild 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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto NotifyIME(int32_t) const -> void;
-
-    struct NotifyIMEContext_t {
-        typedef GeckoEditableChild 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,
-                int32_t> Args;
-        static constexpr char name[] = "notifyIMEContext";
-        static constexpr char signature[] =
-                "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto NotifyIMEContext(int32_t, mozilla::jni::String::Param, mozilla::jni::String::Param, mozilla::jni::String::Param, int32_t) const -> void;
-
-    struct OnDefaultKeyEvent_t {
-        typedef GeckoEditableChild 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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto OnDefaultKeyEvent(mozilla::jni::Object::Param) const -> void;
-
-    struct OnImeAddCompositionRange_t {
-        typedef GeckoEditableChild 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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::PROXY;
-    };
-
-    struct OnImeReplaceText_t {
-        typedef GeckoEditableChild 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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::PROXY;
-    };
-
-    struct OnImeRequestCursorUpdates_t {
-        typedef GeckoEditableChild Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t> Args;
-        static constexpr char name[] = "onImeRequestCursorUpdates";
-        static constexpr char signature[] =
-                "(I)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::PROXY;
-    };
-
-    struct OnImeSynchronize_t {
-        typedef GeckoEditableChild 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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::PROXY;
-    };
-
-    struct OnImeUpdateComposition_t {
-        typedef GeckoEditableChild Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                int32_t,
-                int32_t> Args;
-        static constexpr char name[] = "onImeUpdateComposition";
-        static constexpr char signature[] =
-                "(III)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::PROXY;
-    };
-
-    struct OnKeyEvent_t {
-        typedef GeckoEditableChild Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                int32_t,
-                int32_t,
-                int32_t,
-                int32_t,
-                int64_t,
-                int32_t,
-                int32_t,
-                int32_t,
-                bool,
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "onKeyEvent";
-        static constexpr char signature[] =
-                "(IIIIIJIIIZLandroid/view/KeyEvent;)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::PROXY;
-    };
-
-    struct OnSelectionChange_t {
-        typedef GeckoEditableChild 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::IGNORE;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto OnSelectionChange(int32_t, int32_t) const -> void;
-
-    struct OnTextChange_t {
-        typedef GeckoEditableChild 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::IGNORE;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto OnTextChange(mozilla::jni::String::Param, int32_t, int32_t, int32_t) const -> void;
-
-    struct UpdateCompositionRects_t {
-        typedef GeckoEditableChild Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::ObjectArray::Param> Args;
-        static constexpr char name[] = "updateCompositionRects";
-        static constexpr char signature[] =
-                "([Landroid/graphics/RectF;)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto UpdateCompositionRects(mozilla::jni::ObjectArray::Param) const -> void;
-
-    static const int32_t FLAG_KEEP_CURRENT_COMPOSITION = 1;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class GeckoNetworkManager : public mozilla::jni::ObjectBase<GeckoNetworkManager>
-{
-public:
-    static const char name[];
-
-    explicit GeckoNetworkManager(const Context& ctx) : ObjectBase<GeckoNetworkManager>(ctx) {}
-
-    struct OnConnectionChanged_t {
-        typedef GeckoNetworkManager Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                mozilla::jni::String::Param,
-                bool,
-                int32_t> Args;
-        static constexpr char name[] = "onConnectionChanged";
-        static constexpr char signature[] =
-                "(ILjava/lang/String;ZI)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct OnStatusChanged_t {
-        typedef GeckoNetworkManager Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::String::Param> Args;
-        static constexpr char name[] = "onStatusChanged";
-        static constexpr char signature[] =
-                "(Ljava/lang/String;)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class GeckoScreenOrientation : public mozilla::jni::ObjectBase<GeckoScreenOrientation>
-{
-public:
-    static const char name[];
-
-    explicit GeckoScreenOrientation(const Context& ctx) : ObjectBase<GeckoScreenOrientation>(ctx) {}
-
-    struct OnOrientationChange_t {
-        typedef GeckoScreenOrientation Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int16_t,
-                int16_t> Args;
-        static constexpr char name[] = "onOrientationChange";
-        static constexpr char signature[] =
-                "(SS)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class GeckoThread : public mozilla::jni::ObjectBase<GeckoThread>
-{
-public:
-    static const char name[];
-
-    explicit GeckoThread(const Context& ctx) : ObjectBase<GeckoThread>(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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto CheckAndSetState(mozilla::jni::Object::Param, mozilla::jni::Object::Param) -> bool;
-
-    struct Crash_t {
-        typedef GeckoThread Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "crash";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct ForceQuit_t {
-        typedef GeckoThread Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "forceQuit";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct IsChildProcess_t {
-        typedef GeckoThread Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "isChildProcess";
-        static constexpr char signature[] =
-                "()Z";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto IsChildProcess() -> bool;
-
-    struct CreateServices_t {
-        typedef GeckoThread Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::String::Param,
-                mozilla::jni::String::Param> Args;
-        static constexpr char name[] = "nativeCreateServices";
-        static constexpr char signature[] =
-                "(Ljava/lang/String;Ljava/lang/String;)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct OnPause_t {
-        typedef GeckoThread Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "nativeOnPause";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct OnResume_t {
-        typedef GeckoThread Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "nativeOnResume";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto PumpMessageLoop(mozilla::jni::Object::Param) -> bool;
-
-    struct RequestUiThreadCallback_t {
-        typedef GeckoThread 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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto RequestUiThreadCallback(int64_t) -> void;
-
-    struct RunUiThreadCallback_t {
-        typedef GeckoThread Owner;
-        typedef int64_t ReturnType;
-        typedef int64_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "runUiThreadCallback";
-        static constexpr char signature[] =
-                "()J";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct 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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct WaitOnGecko_t {
-        typedef GeckoThread Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "waitOnGecko";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct 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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto MsgQueue() -> mozilla::jni::Object::LocalRef;
-
-    static auto MsgQueue(mozilla::jni::Object::Param) -> void;
-
-    struct UiThreadId_t {
-        typedef GeckoThread Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "uiThreadId";
-        static constexpr char signature[] =
-                "I";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto UiThreadId() -> int32_t;
-
-    static auto UiThreadId(int32_t) -> void;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class GeckoThread::State : public mozilla::jni::ObjectBase<State>
-{
-public:
-    static const char name[];
-
-    explicit State(const Context& ctx) : ObjectBase<State>(ctx) {}
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto PROFILE_READY() -> State::LocalRef;
-
-    struct RESTARTING_t {
-        typedef State Owner;
-        typedef State::LocalRef ReturnType;
-        typedef State::Param SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "RESTARTING";
-        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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto RESTARTING() -> 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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto RUNNING() -> State::LocalRef;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-};
-
-class GeckoVRManager : public mozilla::jni::ObjectBase<GeckoVRManager>
-{
-public:
-    static const char name[];
-
-    explicit GeckoVRManager(const Context& ctx) : ObjectBase<GeckoVRManager>(ctx) {}
-
-    struct CleanupGVRNonPresentingContext_t {
-        typedef GeckoVRManager Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "cleanupGVRNonPresentingContext";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct CreateGVRNonPresentingContext_t {
-        typedef GeckoVRManager Owner;
-        typedef int64_t ReturnType;
-        typedef int64_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "createGVRNonPresentingContext";
-        static constexpr char signature[] =
-                "()J";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto CreateGVRNonPresentingContext() -> int64_t;
-
-    struct DestroyGVRNonPresentingContext_t {
-        typedef GeckoVRManager Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "destroyGVRNonPresentingContext";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto DestroyGVRNonPresentingContext() -> void;
-
-    struct DisableVRMode_t {
-        typedef GeckoVRManager Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "disableVRMode";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto DisableVRMode() -> void;
-
-    struct EnableVRMode_t {
-        typedef GeckoVRManager Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "enableVRMode";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto EnableVRMode() -> void;
-
-    struct IsGVRPresent_t {
-        typedef GeckoVRManager Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "isGVRPresent";
-        static constexpr char signature[] =
-                "()Z";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto IsGVRPresent() -> bool;
-
-    struct SetGVRPaused_t {
-        typedef GeckoVRManager Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                bool> Args;
-        static constexpr char name[] = "setGVRPaused";
-        static constexpr char signature[] =
-                "(Z)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct SetGVRPresentingContext_t {
-        typedef GeckoVRManager Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int64_t> Args;
-        static constexpr char name[] = "setGVRPresentingContext";
-        static constexpr char signature[] =
-                "(J)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class PrefsHelper : public mozilla::jni::ObjectBase<PrefsHelper>
-{
-public:
-    static const char name[];
-
-    explicit PrefsHelper(const Context& ctx) : ObjectBase<PrefsHelper>(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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    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 mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class ScreenManagerHelper : public mozilla::jni::ObjectBase<ScreenManagerHelper>
-{
-public:
-    static const char name[];
-
-    explicit ScreenManagerHelper(const Context& ctx) : ObjectBase<ScreenManagerHelper>(ctx) {}
-
-    struct AddDisplay_t {
-        typedef ScreenManagerHelper Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                int32_t,
-                int32_t,
-                float> Args;
-        static constexpr char name[] = "addDisplay";
-        static constexpr char signature[] =
-                "(IIIF)I";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct RemoveDisplay_t {
-        typedef ScreenManagerHelper Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t> Args;
-        static constexpr char name[] = "removeDisplay";
-        static constexpr char signature[] =
-                "(I)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class SpeechSynthesisService : public mozilla::jni::ObjectBase<SpeechSynthesisService>
-{
-public:
-    static const char name[];
-
-    explicit SpeechSynthesisService(const Context& ctx) : ObjectBase<SpeechSynthesisService>(ctx) {}
-
-    struct DispatchBoundary_t {
-        typedef SpeechSynthesisService Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::String::Param,
-                int32_t,
-                int32_t> Args;
-        static constexpr char name[] = "dispatchBoundary";
-        static constexpr char signature[] =
-                "(Ljava/lang/String;II)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct DispatchEnd_t {
-        typedef SpeechSynthesisService Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::String::Param> Args;
-        static constexpr char name[] = "dispatchEnd";
-        static constexpr char signature[] =
-                "(Ljava/lang/String;)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct DispatchError_t {
-        typedef SpeechSynthesisService Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::String::Param> Args;
-        static constexpr char name[] = "dispatchError";
-        static constexpr char signature[] =
-                "(Ljava/lang/String;)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct DispatchStart_t {
-        typedef SpeechSynthesisService Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::String::Param> Args;
-        static constexpr char name[] = "dispatchStart";
-        static constexpr char signature[] =
-                "(Ljava/lang/String;)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct DoneRegisteringVoices_t {
-        typedef SpeechSynthesisService Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "doneRegisteringVoices";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct InitSynth_t {
-        typedef SpeechSynthesisService Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "initSynth";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto InitSynth() -> void;
-
-    struct RegisterVoice_t {
-        typedef SpeechSynthesisService Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::String::Param,
-                mozilla::jni::String::Param,
-                mozilla::jni::String::Param,
-                bool,
-                bool> Args;
-        static constexpr char name[] = "registerVoice";
-        static constexpr char signature[] =
-                "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct Speak_t {
-        typedef SpeechSynthesisService 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,
-                float,
-                float,
-                float> Args;
-        static constexpr char name[] = "speak";
-        static constexpr char signature[] =
-                "(Ljava/lang/String;Ljava/lang/String;FFF)Ljava/lang/String;";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto Speak(mozilla::jni::String::Param, mozilla::jni::String::Param, float, float, float) -> mozilla::jni::String::LocalRef;
-
-    struct Stop_t {
-        typedef SpeechSynthesisService Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "stop";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto Stop() -> void;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class SurfaceTextureListener : public mozilla::jni::ObjectBase<SurfaceTextureListener>
-{
-public:
-    static const char name[];
-
-    explicit SurfaceTextureListener(const Context& ctx) : ObjectBase<SurfaceTextureListener>(ctx) {}
-
-    struct New_t {
-        typedef SurfaceTextureListener Owner;
-        typedef SurfaceTextureListener::LocalRef ReturnType;
-        typedef SurfaceTextureListener::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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::GECKO;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto New() -> SurfaceTextureListener::LocalRef;
-
-    struct DisposeNative_t {
-        typedef SurfaceTextureListener 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 mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct OnFrameAvailable_t {
-        typedef SurfaceTextureListener Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "nativeOnFrameAvailable";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class GeckoSurface : public mozilla::jni::ObjectBase<GeckoSurface>
-{
-public:
-    static const char name[];
-
-    explicit GeckoSurface(const Context& ctx) : ObjectBase<GeckoSurface>(ctx) {}
-
-    struct New_t {
-        typedef GeckoSurface Owner;
-        typedef GeckoSurface::LocalRef ReturnType;
-        typedef GeckoSurface::Param SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "<init>";
-        static constexpr char signature[] =
-                "(Lorg/mozilla/gecko/gfx/GeckoSurfaceTexture;)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto New(mozilla::jni::Object::Param, GeckoSurface::LocalRef*) -> nsresult;
-
-    struct GetAvailable_t {
-        typedef GeckoSurface Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getAvailable";
-        static constexpr char signature[] =
-                "()Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto GetAvailable() const -> bool;
-
-    struct GetHandle_t {
-        typedef GeckoSurface Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getHandle";
-        static constexpr char signature[] =
-                "()I";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto GetHandle() const -> int32_t;
-
-    struct SetAvailable_t {
-        typedef GeckoSurface Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                bool> Args;
-        static constexpr char name[] = "setAvailable";
-        static constexpr char signature[] =
-                "(Z)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto SetAvailable(bool) const -> void;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-};
-
-class GeckoSurfaceTexture : public mozilla::jni::ObjectBase<GeckoSurfaceTexture>
-{
-public:
-    static const char name[];
-
-    explicit GeckoSurfaceTexture(const Context& ctx) : ObjectBase<GeckoSurfaceTexture>(ctx) {}
-
-    struct AttachToGLContext_t {
-        typedef GeckoSurfaceTexture Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int64_t,
-                int32_t> Args;
-        static constexpr char name[] = "attachToGLContext";
-        static constexpr char signature[] =
-                "(JI)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto AttachToGLContext(int64_t, int32_t) const -> nsresult;
-
-    struct DecrementUse_t {
-        typedef GeckoSurfaceTexture Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "decrementUse";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto DecrementUse() const -> void;
-
-    struct DestroyUnused_t {
-        typedef GeckoSurfaceTexture Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int64_t> Args;
-        static constexpr char name[] = "destroyUnused";
-        static constexpr char signature[] =
-                "(J)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto DestroyUnused(int64_t) -> void;
-
-    struct DetachFromGLContext_t {
-        typedef GeckoSurfaceTexture Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "detachFromGLContext";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto DetachFromGLContext() const -> nsresult;
-
-    struct GetHandle_t {
-        typedef GeckoSurfaceTexture Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getHandle";
-        static constexpr char signature[] =
-                "()I";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto GetHandle() const -> int32_t;
-
-    struct GetTexName_t {
-        typedef GeckoSurfaceTexture Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getTexName";
-        static constexpr char signature[] =
-                "()I";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto GetTexName() const -> int32_t;
-
-    struct IncrementUse_t {
-        typedef GeckoSurfaceTexture Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "incrementUse";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto IncrementUse() const -> void;
-
-    struct IsAttachedToGLContext_t {
-        typedef GeckoSurfaceTexture Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<
-                int64_t> Args;
-        static constexpr char name[] = "isAttachedToGLContext";
-        static constexpr char signature[] =
-                "(J)Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto IsAttachedToGLContext(int64_t) const -> bool;
-
-    struct IsSingleBuffer_t {
-        typedef GeckoSurfaceTexture Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "isSingleBuffer";
-        static constexpr char signature[] =
-                "()Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto IsSingleBuffer() const -> bool;
-
-    struct IsSingleBufferSupported_t {
-        typedef GeckoSurfaceTexture Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "isSingleBufferSupported";
-        static constexpr char signature[] =
-                "()Z";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto IsSingleBufferSupported() -> bool;
-
-    struct Lookup_t {
-        typedef GeckoSurfaceTexture Owner;
-        typedef GeckoSurfaceTexture::LocalRef ReturnType;
-        typedef GeckoSurfaceTexture::Param SetterType;
-        typedef mozilla::jni::Args<
-                int32_t> Args;
-        static constexpr char name[] = "lookup";
-        static constexpr char signature[] =
-                "(I)Lorg/mozilla/gecko/gfx/GeckoSurfaceTexture;";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto Lookup(int32_t) -> GeckoSurfaceTexture::LocalRef;
-
-    struct ReleaseTexImage_t {
-        typedef GeckoSurfaceTexture Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "releaseTexImage";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto ReleaseTexImage() const -> void;
-
-    struct UpdateTexImage_t {
-        typedef GeckoSurfaceTexture Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "updateTexImage";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto UpdateTexImage() const -> void;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-};
-
-class LayerSession : public mozilla::jni::ObjectBase<LayerSession>
-{
-public:
-    static const char name[];
-
-    explicit LayerSession(const Context& ctx) : ObjectBase<LayerSession>(ctx) {}
-
-    class Compositor;
-
-    struct GetCompositor_t {
-        typedef LayerSession Owner;
-        typedef mozilla::jni::Object::LocalRef ReturnType;
-        typedef mozilla::jni::Object::Param SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getCompositorFromNative";
-        static constexpr char signature[] =
-                "()Ljava/lang/Object;";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto GetCompositor() const -> mozilla::jni::Object::LocalRef;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::UI;
-
-};
-
-class LayerSession::Compositor : public mozilla::jni::ObjectBase<Compositor>
-{
-public:
-    static const char name[];
-
-    explicit Compositor(const Context& ctx) : ObjectBase<Compositor>(ctx) {}
-
-    struct AttachNPZC_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "attachNPZC";
-        static constexpr char signature[] =
-                "(Lorg/mozilla/gecko/gfx/PanZoomController;)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct CreateCompositor_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                int32_t,
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "createCompositor";
-        static constexpr char signature[] =
-                "(IILjava/lang/Object;)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::PROXY;
-    };
-
-    struct DisposeNative_t {
-        typedef Compositor 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 mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct EnableLayerUpdateNotifications_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                bool> Args;
-        static constexpr char name[] = "enableLayerUpdateNotifications";
-        static constexpr char signature[] =
-                "(Z)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct OnBoundsChanged_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                int32_t,
-                int32_t,
-                int32_t> Args;
-        static constexpr char name[] = "onBoundsChanged";
-        static constexpr char signature[] =
-                "(IIII)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct OnCompositorAttached_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "onCompositorAttached";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto OnCompositorAttached() const -> void;
-
-    struct OnCompositorDetached_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "onCompositorDetached";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto OnCompositorDetached() const -> void;
-
-    struct OnSelectionCaretDrag_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                bool> Args;
-        static constexpr char name[] = "onSelectionCaretDrag";
-        static constexpr char signature[] =
-                "(Z)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto OnSelectionCaretDrag(bool) const -> void;
-
-    struct RecvScreenPixels_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                int32_t,
-                mozilla::jni::IntArray::Param> Args;
-        static constexpr char name[] = "recvScreenPixels";
-        static constexpr char signature[] =
-                "(II[I)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto RecvScreenPixels(int32_t, int32_t, mozilla::jni::IntArray::Param) const -> void;
-
-    struct RecvToolbarAnimatorMessage_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t> Args;
-        static constexpr char name[] = "recvToolbarAnimatorMessage";
-        static constexpr char signature[] =
-                "(I)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto RecvToolbarAnimatorMessage(int32_t) const -> void;
-
-    struct RequestScreenPixels_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "requestScreenPixels";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct SendToolbarAnimatorMessage_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t> Args;
-        static constexpr char name[] = "sendToolbarAnimatorMessage";
-        static constexpr char signature[] =
-                "(I)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct SendToolbarPixelsToCompositor_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                int32_t,
-                mozilla::jni::IntArray::Param> Args;
-        static constexpr char name[] = "sendToolbarPixelsToCompositor";
-        static constexpr char signature[] =
-                "(II[I)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct SetDefaultClearColor_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t> Args;
-        static constexpr char name[] = "setDefaultClearColor";
-        static constexpr char signature[] =
-                "(I)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct SetMaxToolbarHeight_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t> Args;
-        static constexpr char name[] = "setMaxToolbarHeight";
-        static constexpr char signature[] =
-                "(I)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct SetPinned_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                bool,
-                int32_t> Args;
-        static constexpr char name[] = "setPinned";
-        static constexpr char signature[] =
-                "(ZI)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct SyncPauseCompositor_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "syncPauseCompositor";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct SyncResumeResizeCompositor_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                int32_t,
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "syncResumeResizeCompositor";
-        static constexpr char signature[] =
-                "(IILjava/lang/Object;)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct UpdateOverscrollOffset_t {
-        typedef Compositor 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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto UpdateOverscrollOffset(float, float) const -> void;
-
-    struct UpdateOverscrollVelocity_t {
-        typedef Compositor 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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto UpdateOverscrollVelocity(float, float) const -> void;
-
-    struct UpdateRootFrameMetrics_t {
-        typedef Compositor Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                float,
-                float,
-                float> Args;
-        static constexpr char name[] = "updateRootFrameMetrics";
-        static constexpr char signature[] =
-                "(FFF)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto UpdateRootFrameMetrics(float, float, float) const -> void;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class PanZoomController : public mozilla::jni::ObjectBase<PanZoomController>
-{
-public:
-    static const char name[];
-
-    explicit PanZoomController(const Context& ctx) : ObjectBase<PanZoomController>(ctx) {}
-
-    struct DisposeNative_t {
-        typedef PanZoomController 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 mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::GECKO;
-    };
-
-    struct HandleMotionEvent_t {
-        typedef PanZoomController 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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct HandleMouseEvent_t {
-        typedef PanZoomController 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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct HandleScrollEvent_t {
-        typedef PanZoomController 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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct SetIsLongpressEnabled_t {
-        typedef PanZoomController 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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct SetAttached_t {
-        typedef PanZoomController Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                bool> Args;
-        static constexpr char name[] = "setAttached";
-        static constexpr char signature[] =
-                "(Z)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto SetAttached(bool) const -> void;
-
-    struct SynthesizeNativeMouseEvent_t {
-        typedef PanZoomController Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                int32_t,
-                int32_t> Args;
-        static constexpr char name[] = "synthesizeNativeMouseEvent";
-        static constexpr char signature[] =
-                "(III)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto SynthesizeNativeMouseEvent(int32_t, int32_t, int32_t) const -> void;
-
-    struct SynthesizeNativeTouchPoint_t {
-        typedef PanZoomController 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;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::UI;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto SynthesizeNativeTouchPoint(int32_t, int32_t, int32_t, int32_t, double, int32_t) const -> void;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class StackScroller : public mozilla::jni::ObjectBase<StackScroller>
-{
-public:
-    static const char name[];
-
-    explicit StackScroller(const Context& ctx) : ObjectBase<StackScroller>(ctx) {}
-
-    struct New_t {
-        typedef StackScroller Owner;
-        typedef StackScroller::LocalRef ReturnType;
-        typedef StackScroller::Param SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "<init>";
-        static constexpr char signature[] =
-                "(Landroid/content/Context;)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto New(mozilla::jni::Object::Param, StackScroller::LocalRef*) -> nsresult;
-
-    struct AbortAnimation_t {
-        typedef StackScroller Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "abortAnimation";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto AbortAnimation() const -> nsresult;
-
-    struct ComputeScrollOffset_t {
-        typedef StackScroller Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<
-                int64_t> Args;
-        static constexpr char name[] = "computeScrollOffset";
-        static constexpr char signature[] =
-                "(J)Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto ComputeScrollOffset(int64_t, bool*) const -> nsresult;
-
-    struct Fling_t {
-        typedef StackScroller Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                int32_t,
-                int32_t,
-                int32_t,
-                int32_t,
-                int32_t,
-                int32_t,
-                int32_t,
-                int32_t,
-                int32_t,
-                int64_t> Args;
-        static constexpr char name[] = "fling";
-        static constexpr char signature[] =
-                "(IIIIIIIIIIJ)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto Fling(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int64_t) const -> nsresult;
-
-    struct ForceFinished_t {
-        typedef StackScroller Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                bool> Args;
-        static constexpr char name[] = "forceFinished";
-        static constexpr char signature[] =
-                "(Z)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto ForceFinished(bool) const -> nsresult;
-
-    struct GetCurrSpeedX_t {
-        typedef StackScroller Owner;
-        typedef float ReturnType;
-        typedef float SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getCurrSpeedX";
-        static constexpr char signature[] =
-                "()F";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto GetCurrSpeedX(float*) const -> nsresult;
-
-    struct GetCurrSpeedY_t {
-        typedef StackScroller Owner;
-        typedef float ReturnType;
-        typedef float SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getCurrSpeedY";
-        static constexpr char signature[] =
-                "()F";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto GetCurrSpeedY(float*) const -> nsresult;
-
-    struct GetCurrX_t {
-        typedef StackScroller Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getCurrX";
-        static constexpr char signature[] =
-                "()I";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto GetCurrX(int32_t*) const -> nsresult;
-
-    struct GetCurrY_t {
-        typedef StackScroller Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getCurrY";
-        static constexpr char signature[] =
-                "()I";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto GetCurrY(int32_t*) const -> nsresult;
-
-    struct GetFinalX_t {
-        typedef StackScroller Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getFinalX";
-        static constexpr char signature[] =
-                "()I";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto GetFinalX(int32_t*) const -> nsresult;
-
-    struct GetFinalY_t {
-        typedef StackScroller Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getFinalY";
-        static constexpr char signature[] =
-                "()I";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto GetFinalY(int32_t*) const -> nsresult;
-
-    struct InitContants_t {
-        typedef StackScroller Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "initContants";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto InitContants() -> nsresult;
-
-    struct IsFinished_t {
-        typedef StackScroller Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "isFinished";
-        static constexpr char signature[] =
-                "()Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto IsFinished(bool*) const -> nsresult;
-
-    struct SetFinalX_t {
-        typedef StackScroller Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t> Args;
-        static constexpr char name[] = "setFinalX";
-        static constexpr char signature[] =
-                "(I)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto SetFinalX(int32_t) const -> nsresult;
-
-    struct SpringBack_t {
-        typedef StackScroller Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                int32_t,
-                int32_t,
-                int32_t,
-                int32_t,
-                int32_t,
-                int64_t> Args;
-        static constexpr char name[] = "springBack";
-        static constexpr char signature[] =
-                "(IIIIIIJ)Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto SpringBack(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int64_t, bool*) const -> nsresult;
-
-    struct StartScroll_t {
-        typedef StackScroller Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                int32_t,
-                int32_t,
-                int32_t,
-                int64_t,
-                int32_t> Args;
-        static constexpr char name[] = "startScroll";
-        static constexpr char signature[] =
-                "(IIIIJI)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto StartScroll(int32_t, int32_t, int32_t, int32_t, int64_t, int32_t) const -> nsresult;
-
-    struct ViscousFluid_t {
-        typedef StackScroller Owner;
-        typedef float ReturnType;
-        typedef float SetterType;
-        typedef mozilla::jni::Args<
-                float> Args;
-        static constexpr char name[] = "viscousFluid";
-        static constexpr char signature[] =
-                "(F)F";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto ViscousFluid(float, float*) -> nsresult;
-
-    static const int32_t FLING_MODE = 1;
-
-    static const int32_t SCROLL_MODE = 0;
-
-    struct MFlywheel_t {
-        typedef StackScroller Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "mFlywheel";
-        static constexpr char signature[] =
-                "Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto MFlywheel(bool*) const -> nsresult;
-
-    struct MMode_t {
-        typedef StackScroller Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "mMode";
-        static constexpr char signature[] =
-                "I";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto MMode(int32_t*) const -> nsresult;
-
-    auto MMode(int32_t) const -> nsresult;
-
-    struct MScrollerX_t {
-        typedef StackScroller Owner;
-        typedef mozilla::jni::Object::LocalRef ReturnType;
-        typedef mozilla::jni::Object::Param SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "mScrollerX";
-        static constexpr char signature[] =
-                "Lorg/mozilla/gecko/gfx/StackScroller$SplineStackScroller;";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto MScrollerX(mozilla::jni::Object::LocalRef*) const -> nsresult;
-
-    struct MScrollerY_t {
-        typedef StackScroller Owner;
-        typedef mozilla::jni::Object::LocalRef ReturnType;
-        typedef mozilla::jni::Object::Param SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "mScrollerY";
-        static constexpr char signature[] =
-                "Lorg/mozilla/gecko/gfx/StackScroller$SplineStackScroller;";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto MScrollerY(mozilla::jni::Object::LocalRef*) const -> nsresult;
-
-    struct SViscousFluidNormalize_t {
-        typedef StackScroller Owner;
-        typedef float ReturnType;
-        typedef float SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "sViscousFluidNormalize";
-        static constexpr char signature[] =
-                "F";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto SViscousFluidNormalize(float*) -> nsresult;
-
-    static auto SViscousFluidNormalize(float) -> nsresult;
-
-    struct SViscousFluidScale_t {
-        typedef StackScroller Owner;
-        typedef float ReturnType;
-        typedef float SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "sViscousFluidScale";
-        static constexpr char signature[] =
-                "F";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::NSRESULT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto SViscousFluidScale(float*) -> nsresult;
-
-    static auto SViscousFluidScale(float) -> nsresult;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-};
-
-class SurfaceAllocator : public mozilla::jni::ObjectBase<SurfaceAllocator>
-{
-public:
-    static const char name[];
-
-    explicit SurfaceAllocator(const Context& ctx) : ObjectBase<SurfaceAllocator>(ctx) {}
-
-    struct AcquireSurface_t {
-        typedef SurfaceAllocator Owner;
-        typedef mozilla::jni::Object::LocalRef ReturnType;
-        typedef mozilla::jni::Object::Param SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                int32_t,
-                bool> Args;
-        static constexpr char name[] = "acquireSurface";
-        static constexpr char signature[] =
-                "(IIZ)Lorg/mozilla/gecko/gfx/GeckoSurface;";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto AcquireSurface(int32_t, int32_t, bool) -> mozilla::jni::Object::LocalRef;
-
-    struct DisposeSurface_t {
-        typedef SurfaceAllocator Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "disposeSurface";
-        static constexpr char signature[] =
-                "(Lorg/mozilla/gecko/gfx/GeckoSurface;)V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto DisposeSurface(mozilla::jni::Object::Param) -> void;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-};
-
-class VsyncSource : public mozilla::jni::ObjectBase<VsyncSource>
-{
-public:
-    static const char name[];
-
-    explicit VsyncSource(const Context& ctx) : ObjectBase<VsyncSource>(ctx) {}
-
-    struct GetRefreshRate_t {
-        typedef VsyncSource Owner;
-        typedef float ReturnType;
-        typedef float SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "getRefreshRate";
-        static constexpr char signature[] =
-                "()F";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto GetRefreshRate() const -> float;
-
-    struct NotifyVsync_t {
-        typedef VsyncSource Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "nativeNotifyVsync";
-        static constexpr char signature[] =
-                "()V";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct ObserveVsync_t {
-        typedef VsyncSource Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<
-                bool> Args;
-        static constexpr char name[] = "observeVsync";
-        static constexpr char signature[] =
-                "(Z)Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto ObserveVsync(bool) const -> bool;
-
-    struct INSTANCE_t {
-        typedef VsyncSource Owner;
-        typedef VsyncSource::LocalRef ReturnType;
-        typedef VsyncSource::Param SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "INSTANCE";
-        static constexpr char signature[] =
-                "Lorg/mozilla/gecko/gfx/VsyncSource;";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto INSTANCE() -> VsyncSource::LocalRef;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class CodecProxy : public mozilla::jni::ObjectBase<CodecProxy>
-{
-public:
-    static const char name[];
-
-    explicit CodecProxy(const Context& ctx) : ObjectBase<CodecProxy>(ctx) {}
-
-    class NativeCallbacks;
-
-    struct Create_t {
-        typedef CodecProxy Owner;
-        typedef CodecProxy::LocalRef ReturnType;
-        typedef CodecProxy::Param SetterType;
-        typedef mozilla::jni::Args<
-                bool,
-                mozilla::jni::Object::Param,
-                mozilla::jni::Object::Param,
-                mozilla::jni::Object::Param,
-                mozilla::jni::String::Param> Args;
-        static constexpr char name[] = "create";
-        static constexpr char signature[] =
-                "(ZLandroid/media/MediaFormat;Lorg/mozilla/gecko/gfx/GeckoSurface;Lorg/mozilla/gecko/media/CodecProxy$Callbacks;Ljava/lang/String;)Lorg/mozilla/gecko/media/CodecProxy;";
-        static const bool isStatic = true;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto Create(bool, mozilla::jni::Object::Param, mozilla::jni::Object::Param, mozilla::jni::Object::Param, mozilla::jni::String::Param) -> CodecProxy::LocalRef;
-
-    struct Flush_t {
-        typedef CodecProxy Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "flush";
-        static constexpr char signature[] =
-                "()Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto Flush() const -> bool;
-
-    struct Input_t {
-        typedef CodecProxy Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::ByteBuffer::Param,
-                mozilla::jni::Object::Param,
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "input";
-        static constexpr char signature[] =
-                "(Ljava/nio/ByteBuffer;Landroid/media/MediaCodec$BufferInfo;Landroid/media/MediaCodec$CryptoInfo;)Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto Input(mozilla::jni::ByteBuffer::Param, mozilla::jni::Object::Param, mozilla::jni::Object::Param) const -> bool;
-
-    struct IsAdaptivePlaybackSupported_t {
-        typedef CodecProxy Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "isAdaptivePlaybackSupported";
-        static constexpr char signature[] =
-                "()Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto IsAdaptivePlaybackSupported() const -> bool;
-
-    struct IsTunneledPlaybackSupported_t {
-        typedef CodecProxy Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "isTunneledPlaybackSupported";
-        static constexpr char signature[] =
-                "()Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto IsTunneledPlaybackSupported() const -> bool;
-
-    struct Release_t {
-        typedef CodecProxy Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "release";
-        static constexpr char signature[] =
-                "()Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto Release() const -> bool;
-
-    struct ReleaseOutput_t {
-        typedef CodecProxy Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Object::Param,
-                bool> Args;
-        static constexpr char name[] = "releaseOutput";
-        static constexpr char signature[] =
-                "(Lorg/mozilla/gecko/media/Sample;Z)Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto ReleaseOutput(mozilla::jni::Object::Param, bool) const -> bool;
-
-    struct SetRates_t {
-        typedef CodecProxy Owner;
-        typedef bool ReturnType;
-        typedef bool SetterType;
-        typedef mozilla::jni::Args<
-                int32_t> Args;
-        static constexpr char name[] = "setRates";
-        static constexpr char signature[] =
-                "(I)Z";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto SetRates(int32_t) const -> bool;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-};
-
-class CodecProxy::NativeCallbacks : public mozilla::jni::ObjectBase<NativeCallbacks>
-{
-public:
-    static const char name[];
-
-    explicit NativeCallbacks(const Context& ctx) : ObjectBase<NativeCallbacks>(ctx) {}
-
-    struct New_t {
-        typedef NativeCallbacks Owner;
-        typedef NativeCallbacks::LocalRef ReturnType;
-        typedef NativeCallbacks::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 const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto New() -> NativeCallbacks::LocalRef;
-
-    struct DisposeNative_t {
-        typedef NativeCallbacks 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 mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto DisposeNative() const -> void;
-
-    struct OnError_t {
-        typedef NativeCallbacks Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                bool> Args;
-        static constexpr char name[] = "onError";
-        static constexpr char signature[] =
-                "(Z)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct OnInputStatus_t {
-        typedef NativeCallbacks Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                int64_t,
-                bool> Args;
-        static constexpr char name[] = "onInputStatus";
-        static constexpr char signature[] =
-                "(JZ)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct OnOutput_t {
-        typedef NativeCallbacks Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "onOutput";
-        static constexpr char signature[] =
-                "(Lorg/mozilla/gecko/media/Sample;)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    struct OnOutputFormatChanged_t {
-        typedef NativeCallbacks Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "onOutputFormatChanged";
-        static constexpr char signature[] =
-                "(Landroid/media/MediaFormat;)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-    template<class Impl> class Natives;
-};
-
-class GeckoAudioInfo : public mozilla::jni::ObjectBase<GeckoAudioInfo>
-{
-public:
-    static const char name[];
-
-    explicit GeckoAudioInfo(const Context& ctx) : ObjectBase<GeckoAudioInfo>(ctx) {}
-
-    struct New_t {
-        typedef GeckoAudioInfo Owner;
-        typedef GeckoAudioInfo::LocalRef ReturnType;
-        typedef GeckoAudioInfo::Param SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                int32_t,
-                int32_t,
-                int32_t,
-                int64_t,
-                mozilla::jni::String::Param,
-                mozilla::jni::ByteArray::Param> Args;
-        static constexpr char name[] = "<init>";
-        static constexpr char signature[] =
-                "(IIIIJLjava/lang/String;[B)V";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    static auto New(int32_t, int32_t, int32_t, int32_t, int64_t, mozilla::jni::String::Param, mozilla::jni::ByteArray::Param) -> GeckoAudioInfo::LocalRef;
-
-    struct BitDepth_t {
-        typedef GeckoAudioInfo Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "bitDepth";
-        static constexpr char signature[] =
-                "I";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto BitDepth() const -> int32_t;
-
-    struct Channels_t {
-        typedef GeckoAudioInfo Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "channels";
-        static constexpr char signature[] =
-                "I";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto Channels() const -> int32_t;
-
-    struct CodecSpecificData_t {
-        typedef GeckoAudioInfo Owner;
-        typedef mozilla::jni::ByteArray::LocalRef ReturnType;
-        typedef mozilla::jni::ByteArray::Param SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "codecSpecificData";
-        static constexpr char signature[] =
-                "[B";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto CodecSpecificData() const -> mozilla::jni::ByteArray::LocalRef;
-
-    struct Duration_t {
-        typedef GeckoAudioInfo Owner;
-        typedef int64_t ReturnType;
-        typedef int64_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "duration";
-        static constexpr char signature[] =
-                "J";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto Duration() const -> int64_t;
-
-    struct MimeType_t {
-        typedef GeckoAudioInfo Owner;
-        typedef mozilla::jni::String::LocalRef ReturnType;
-        typedef mozilla::jni::String::Param SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "mimeType";
-        static constexpr char signature[] =
-                "Ljava/lang/String;";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto MimeType() const -> mozilla::jni::String::LocalRef;
-
-    struct Profile_t {
-        typedef GeckoAudioInfo Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "profile";
-        static constexpr char signature[] =
-                "I";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto Profile() const -> int32_t;
-
-    struct Rate_t {
-        typedef GeckoAudioInfo Owner;
-        typedef int32_t ReturnType;
-        typedef int32_t SetterType;
-        typedef mozilla::jni::Args<> Args;
-        static constexpr char name[] = "rate";
-        static constexpr char signature[] =
-                "I";
-        static const bool isStatic = false;
-        static const mozilla::jni::ExceptionMode exceptionMode =
-                mozilla::jni::ExceptionMode::ABORT;
-        static const mozilla::jni::CallingThread callingThread =
-                mozilla::jni::CallingThread::ANY;
-        static const mozilla::jni::DispatchTarget dispatchTarget =
-                mozilla::jni::DispatchTarget::CURRENT;
-    };
-
-    auto Rate() const -> int32_t;
-
-    static const mozilla::jni::CallingThread callingThread =
-            mozilla::jni::CallingThread::ANY;
-
-};
-
-class GeckoHLSDemuxerWrapper : public mozilla::jni::ObjectBase<GeckoHLSDemuxerWrapper>