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 462188 f0a4cabc8c940923aef39a2be39c10056eef891e
parent 462187 731eb2e4b5579cc727068d346a32a67d79ec6756
child 462189 4d69ed596b02737d692ce233a3d7617539569d1c
push id166
push userfmarier@mozilla.com
push dateThu, 10 May 2018 00:43:18 +0000
reviewersfroydnj, jchen
bugs1444546
milestone61.0a1
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>
-{
-public:
-    static const char name[];
-
-    explicit GeckoHLSDemuxerWrapper(const Context& ctx) : ObjectBase<GeckoHLSDemuxerWrapper>(ctx) {}
-
-    class Callbacks;
-
-    struct Create_t {
-        typedef GeckoHLSDemuxerWrapper Owner;
-        typedef GeckoHLSDemuxerWrapper::LocalRef ReturnType;
-        typedef GeckoHLSDemuxerWrapper::Param SetterType;
-        typedef mozilla::jni::Args<
-                int32_t,
-                mozilla::jni::Object::Param> Args;
-        static constexpr char name[] = "create";
-        static constexpr char signature[] =
-                "(ILorg/mozilla/gecko/media/BaseHlsPlayer$DemuxerCallbacks;)Lorg/mozilla/gecko/media/GeckoHLSDemuxerWrapper;";
-        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 Create(int32_t, mozilla::jni::Object::Param) -> GeckoHLSDemuxerWrapper::LocalRef;
-
-    struct Destroy_t {
-        typedef GeckoHLSDemuxerWrapper Owner;
-        typedef void ReturnType;
-        typedef void SetterType;
-        typedef mozilla::jni::Args<> Args;