tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

api.txt (182782B)


      1 import android.app.Activity;
      2 import android.app.PendingIntent;
      3 import android.content.Context;
      4 import android.content.Intent;
      5 import android.content.res.Configuration;
      6 import android.graphics.Bitmap;
      7 import android.graphics.Canvas;
      8 import android.graphics.Matrix;
      9 import android.graphics.Point;
     10 import android.graphics.Rect;
     11 import android.graphics.RectF;
     12 import android.graphics.Region;
     13 import android.net.Uri;
     14 import android.os.Bundle;
     15 import android.os.CancellationSignal;
     16 import android.os.Handler;
     17 import android.os.Looper;
     18 import android.os.Parcel;
     19 import android.os.ParcelFileDescriptor;
     20 import android.os.Parcelable;
     21 import android.print.PageRange;
     22 import android.print.PrintAttributes;
     23 import android.print.PrintDocumentAdapter;
     24 import android.util.AttributeSet;
     25 import android.util.SparseArray;
     26 import android.view.ActionMode;
     27 import android.view.DragEvent;
     28 import android.view.KeyEvent;
     29 import android.view.Menu;
     30 import android.view.MenuItem;
     31 import android.view.MotionEvent;
     32 import android.view.PointerIcon;
     33 import android.view.Surface;
     34 import android.view.SurfaceControl;
     35 import android.view.View;
     36 import android.view.ViewStructure;
     37 import android.view.autofill.AutofillValue;
     38 import android.view.inputmethod.CursorAnchorInfo;
     39 import android.view.inputmethod.EditorInfo;
     40 import android.view.inputmethod.ExtractedText;
     41 import android.view.inputmethod.ExtractedTextRequest;
     42 import android.view.inputmethod.InputConnection;
     43 import android.widget.FrameLayout;
     44 import androidx.annotation.AnyThread;
     45 import androidx.annotation.NonNull;
     46 import androidx.annotation.Nullable;
     47 import androidx.annotation.UiThread;
     48 import androidx.core.view.OnApplyWindowInsetsListener;
     49 import androidx.core.view.WindowInsetsCompat;
     50 import java.io.File;
     51 import java.io.InputStream;
     52 import java.lang.Boolean;
     53 import java.lang.CharSequence;
     54 import java.lang.Class;
     55 import java.lang.Comparable;
     56 import java.lang.Deprecated;
     57 import java.lang.Double;
     58 import java.lang.Exception;
     59 import java.lang.Float;
     60 import java.lang.FunctionalInterface;
     61 import java.lang.Integer;
     62 import java.lang.Long;
     63 import java.lang.Object;
     64 import java.lang.Runnable;
     65 import java.lang.RuntimeException;
     66 import java.lang.SafeVarargs;
     67 import java.lang.String;
     68 import java.lang.Thread;
     69 import java.lang.Throwable;
     70 import java.lang.Void;
     71 import java.lang.annotation.Documented;
     72 import java.lang.annotation.ElementType;
     73 import java.lang.annotation.Retention;
     74 import java.lang.annotation.RetentionPolicy;
     75 import java.lang.annotation.Target;
     76 import java.net.InetAddress;
     77 import java.nio.ByteBuffer;
     78 import java.security.Principal;
     79 import java.security.cert.X509Certificate;
     80 import java.util.AbstractSequentialList;
     81 import java.util.Collection;
     82 import java.util.List;
     83 import java.util.Map;
     84 import org.json.JSONObject;
     85 import org.mozilla.gecko.util.GeckoBundle;
     86 import org.mozilla.geckoview.AllowOrDeny;
     87 import org.mozilla.geckoview.Autocomplete;
     88 import org.mozilla.geckoview.Autofill;
     89 import org.mozilla.geckoview.CompositorController;
     90 import org.mozilla.geckoview.ContentBlocking;
     91 import org.mozilla.geckoview.ContentBlockingController;
     92 import org.mozilla.geckoview.CrashHandler;
     93 import org.mozilla.geckoview.CrashPullController;
     94 import org.mozilla.geckoview.DeprecationSchedule;
     95 import org.mozilla.geckoview.ExperimentDelegate;
     96 import org.mozilla.geckoview.GeckoDisplay;
     97 import org.mozilla.geckoview.GeckoPreferenceController;
     98 import org.mozilla.geckoview.GeckoResult;
     99 import org.mozilla.geckoview.GeckoRuntime;
    100 import org.mozilla.geckoview.GeckoRuntimeSettings;
    101 import org.mozilla.geckoview.GeckoSession;
    102 import org.mozilla.geckoview.GeckoSessionSettings;
    103 import org.mozilla.geckoview.GeckoView;
    104 import org.mozilla.geckoview.Image;
    105 import org.mozilla.geckoview.MediaSession;
    106 import org.mozilla.geckoview.OrientationController;
    107 import org.mozilla.geckoview.OverscrollEdgeEffect;
    108 import org.mozilla.geckoview.PanZoomController;
    109 import org.mozilla.geckoview.RuntimeSettings;
    110 import org.mozilla.geckoview.ScreenLength;
    111 import org.mozilla.geckoview.SessionAccessibility;
    112 import org.mozilla.geckoview.SessionFinder;
    113 import org.mozilla.geckoview.SessionPdfFileSaver;
    114 import org.mozilla.geckoview.SessionTextInput;
    115 import org.mozilla.geckoview.SlowScriptResponse;
    116 import org.mozilla.geckoview.StorageController;
    117 import org.mozilla.geckoview.TranslationsController;
    118 import org.mozilla.geckoview.WebExtension;
    119 import org.mozilla.geckoview.WebExtensionController;
    120 import org.mozilla.geckoview.WebMessage;
    121 import org.mozilla.geckoview.WebNotification;
    122 import org.mozilla.geckoview.WebNotificationAction;
    123 import org.mozilla.geckoview.WebNotificationDelegate;
    124 import org.mozilla.geckoview.WebPushController;
    125 import org.mozilla.geckoview.WebPushDelegate;
    126 import org.mozilla.geckoview.WebPushSubscription;
    127 import org.mozilla.geckoview.WebRequest;
    128 import org.mozilla.geckoview.WebRequestError;
    129 import org.mozilla.geckoview.WebResponse;
    130 
    131 package org.mozilla.geckoview {
    132 
    133  @AnyThread public final enum AllowOrDeny {
    134    method public static AllowOrDeny valueOf(String);
    135    method public static AllowOrDeny[] values();
    136    enum_constant public static final AllowOrDeny ALLOW;
    137    enum_constant public static final AllowOrDeny DENY;
    138  }
    139 
    140  public class Autocomplete {
    141    ctor protected Autocomplete();
    142  }
    143 
    144  public static class Autocomplete.Address {
    145    ctor @AnyThread protected Address();
    146    field @NonNull public final String additionalName;
    147    field @NonNull public final String addressLevel1;
    148    field @NonNull public final String addressLevel2;
    149    field @NonNull public final String addressLevel3;
    150    field @NonNull public final String country;
    151    field @NonNull public final String email;
    152    field @NonNull public final String familyName;
    153    field @NonNull public final String givenName;
    154    field @Nullable public final String guid;
    155    field @NonNull public final String name;
    156    field @NonNull public final String organization;
    157    field @NonNull public final String postalCode;
    158    field @NonNull public final String streetAddress;
    159    field @NonNull public final String tel;
    160  }
    161 
    162  public static class Autocomplete.Address.Builder {
    163    ctor @AnyThread public Builder();
    164    method @AnyThread @NonNull public Autocomplete.Address.Builder additionalName(@Nullable String);
    165    method @AnyThread @NonNull public Autocomplete.Address.Builder addressLevel1(@Nullable String);
    166    method @AnyThread @NonNull public Autocomplete.Address.Builder addressLevel2(@Nullable String);
    167    method @AnyThread @NonNull public Autocomplete.Address.Builder addressLevel3(@Nullable String);
    168    method @AnyThread @NonNull public Autocomplete.Address build();
    169    method @AnyThread @NonNull public Autocomplete.Address.Builder country(@Nullable String);
    170    method @AnyThread @NonNull public Autocomplete.Address.Builder email(@Nullable String);
    171    method @AnyThread @NonNull public Autocomplete.Address.Builder familyName(@Nullable String);
    172    method @AnyThread @NonNull public Autocomplete.Address.Builder givenName(@Nullable String);
    173    method @AnyThread @NonNull public Autocomplete.Address.Builder guid(@Nullable String);
    174    method @AnyThread @NonNull public Autocomplete.Address.Builder name(@Nullable String);
    175    method @AnyThread @NonNull public Autocomplete.Address.Builder organization(@Nullable String);
    176    method @AnyThread @NonNull public Autocomplete.Address.Builder postalCode(@Nullable String);
    177    method @AnyThread @NonNull public Autocomplete.Address.Builder streetAddress(@Nullable String);
    178    method @AnyThread @NonNull public Autocomplete.Address.Builder tel(@Nullable String);
    179  }
    180 
    181  public static class Autocomplete.AddressSaveOption extends Autocomplete.SaveOption<Autocomplete.Address> {
    182    ctor public AddressSaveOption(@NonNull Autocomplete.Address);
    183  }
    184 
    185  public static class Autocomplete.AddressSelectOption extends Autocomplete.SelectOption<Autocomplete.Address> {
    186    ctor public AddressSelectOption(@NonNull Autocomplete.Address);
    187  }
    188 
    189  @Retention(value=RetentionPolicy.SOURCE) public static interface Autocomplete.AddressSelectOption.AddressSelectHint {
    190  }
    191 
    192  public static class Autocomplete.AddressSelectOption.Hint {
    193    ctor public Hint();
    194    field public static final int INSECURE_FORM = 2;
    195    field public static final int NONE = 0;
    196  }
    197 
    198  public static class Autocomplete.AddressStructure {
    199    method @AnyThread @NonNull public static GeckoResult<List<Autocomplete.AddressStructure.Field>> getAddressStructure(@NonNull String);
    200  }
    201 
    202  public static interface Autocomplete.AddressStructure.Field {
    203    method @AnyThread @NonNull default public String getId();
    204    method @AnyThread @NonNull default public String getLocalizationKey();
    205  }
    206 
    207  public static class Autocomplete.AddressStructure.Field.SelectField implements Autocomplete.AddressStructure.Field {
    208    ctor public SelectField(String, String, @NonNull String, @NonNull List<Autocomplete.AddressStructure.Field.SelectField.Option>);
    209    field @NonNull public final String defaultValue;
    210    field @NonNull public final List<Autocomplete.AddressStructure.Field.SelectField.Option> options;
    211  }
    212 
    213  public static class Autocomplete.AddressStructure.Field.SelectField.Option {
    214    ctor public Option(@NonNull String, @NonNull String);
    215    field @NonNull public final String key;
    216    field @NonNull public final String value;
    217  }
    218 
    219  public static final class Autocomplete.AddressStructure.Field.TextField implements Autocomplete.AddressStructure.Field {
    220    ctor public TextField(String, String);
    221  }
    222 
    223  public static class Autocomplete.CreditCard {
    224    ctor @AnyThread protected CreditCard();
    225    field @NonNull public final String expirationMonth;
    226    field @NonNull public final String expirationYear;
    227    field @Nullable public final String guid;
    228    field @NonNull public final String name;
    229    field @NonNull public final String number;
    230  }
    231 
    232  public static class Autocomplete.CreditCard.Builder {
    233    ctor @AnyThread public Builder();
    234    method @AnyThread @NonNull public Autocomplete.CreditCard build();
    235    method @AnyThread @NonNull public Autocomplete.CreditCard.Builder expirationMonth(@Nullable String);
    236    method @AnyThread @NonNull public Autocomplete.CreditCard.Builder expirationYear(@Nullable String);
    237    method @AnyThread @NonNull public Autocomplete.CreditCard.Builder guid(@Nullable String);
    238    method @AnyThread @NonNull public Autocomplete.CreditCard.Builder name(@Nullable String);
    239    method @AnyThread @NonNull public Autocomplete.CreditCard.Builder number(@Nullable String);
    240  }
    241 
    242  public static class Autocomplete.CreditCardSaveOption extends Autocomplete.SaveOption<Autocomplete.CreditCard> {
    243    ctor public CreditCardSaveOption(@NonNull Autocomplete.CreditCard);
    244  }
    245 
    246  public static class Autocomplete.CreditCardSelectOption extends Autocomplete.SelectOption<Autocomplete.CreditCard> {
    247    ctor public CreditCardSelectOption(@NonNull Autocomplete.CreditCard);
    248  }
    249 
    250  @Retention(value=RetentionPolicy.SOURCE) public static interface Autocomplete.CreditCardSelectOption.CreditCardSelectHint {
    251  }
    252 
    253  public static class Autocomplete.CreditCardSelectOption.Hint {
    254    ctor public Hint();
    255    field public static final int INSECURE_FORM = 2;
    256    field public static final int NONE = 0;
    257  }
    258 
    259  @Retention(value=RetentionPolicy.SOURCE) public static interface Autocomplete.LSUsedField {
    260  }
    261 
    262  public static class Autocomplete.LoginEntry {
    263    ctor @AnyThread protected LoginEntry();
    264    field @Nullable public final String formActionOrigin;
    265    field @Nullable public final String guid;
    266    field @Nullable public final String httpRealm;
    267    field @NonNull public final String origin;
    268    field @NonNull public final String password;
    269    field @NonNull public final String username;
    270  }
    271 
    272  public static class Autocomplete.LoginEntry.Builder {
    273    ctor @AnyThread public Builder();
    274    method @AnyThread @NonNull public Autocomplete.LoginEntry build();
    275    method @AnyThread @NonNull public Autocomplete.LoginEntry.Builder formActionOrigin(@Nullable String);
    276    method @AnyThread @NonNull public Autocomplete.LoginEntry.Builder guid(@Nullable String);
    277    method @AnyThread @NonNull public Autocomplete.LoginEntry.Builder httpRealm(@Nullable String);
    278    method @AnyThread @NonNull public Autocomplete.LoginEntry.Builder origin(@NonNull String);
    279    method @AnyThread @NonNull public Autocomplete.LoginEntry.Builder password(@NonNull String);
    280    method @AnyThread @NonNull public Autocomplete.LoginEntry.Builder username(@NonNull String);
    281  }
    282 
    283  public static class Autocomplete.LoginSaveOption extends Autocomplete.SaveOption<Autocomplete.LoginEntry> {
    284    ctor public LoginSaveOption(@NonNull Autocomplete.LoginEntry);
    285  }
    286 
    287  public static class Autocomplete.LoginSelectOption extends Autocomplete.SelectOption<Autocomplete.LoginEntry> {
    288    ctor public LoginSelectOption(@NonNull Autocomplete.LoginEntry, int);
    289    ctor public LoginSelectOption(@NonNull Autocomplete.LoginEntry);
    290  }
    291 
    292  public abstract static class Autocomplete.Option<T> {
    293    ctor public Option(@NonNull T, int);
    294    field public final int hint;
    295    field @NonNull public final T value;
    296  }
    297 
    298  public abstract static class Autocomplete.SaveOption<T> extends Autocomplete.Option<T> {
    299    ctor public SaveOption(@NonNull T, int);
    300  }
    301 
    302  public static class Autocomplete.SaveOption.Hint {
    303    ctor protected Hint();
    304    field public static final int GENERATED = 1;
    305    field public static final int LOW_CONFIDENCE = 2;
    306    field public static final int NONE = 0;
    307  }
    308 
    309  @Retention(value=RetentionPolicy.SOURCE) public static interface Autocomplete.SaveOption.SaveOptionHint {
    310  }
    311 
    312  public abstract static class Autocomplete.SelectOption<T> extends Autocomplete.Option<T> {
    313    ctor public SelectOption(@NonNull T, int);
    314  }
    315 
    316  public static class Autocomplete.SelectOption.Hint {
    317    ctor public Hint();
    318    field public static final int DUPLICATE_USERNAME = 4;
    319    field public static final int GENERATED = 1;
    320    field public static final int INSECURE_FORM = 2;
    321    field public static final int MATCHING_ORIGIN = 8;
    322    field public static final int NONE = 0;
    323  }
    324 
    325  @Retention(value=RetentionPolicy.SOURCE) public static interface Autocomplete.SelectOption.SelectOptionHint {
    326  }
    327 
    328  public static interface Autocomplete.StorageDelegate {
    329    method @Nullable @UiThread default public GeckoResult<Autocomplete.Address[]> onAddressFetch();
    330    method @UiThread default public void onAddressSave(@NonNull Autocomplete.Address);
    331    method @Nullable @UiThread default public GeckoResult<Autocomplete.CreditCard[]> onCreditCardFetch();
    332    method @UiThread default public void onCreditCardSave(@NonNull Autocomplete.CreditCard);
    333    method @Nullable @UiThread default public GeckoResult<Autocomplete.LoginEntry[]> onLoginFetch(@NonNull String);
    334    method @Nullable @UiThread default public GeckoResult<Autocomplete.LoginEntry[]> onLoginFetch();
    335    method @UiThread default public void onLoginSave(@NonNull Autocomplete.LoginEntry);
    336    method @UiThread default public void onLoginUsed(@NonNull Autocomplete.LoginEntry, int);
    337  }
    338 
    339  public static class Autocomplete.UsedField {
    340    ctor protected UsedField();
    341    field public static final int PASSWORD = 1;
    342  }
    343 
    344  public class Autofill {
    345    ctor public Autofill();
    346  }
    347 
    348  @Retention(value=RetentionPolicy.SOURCE) public static interface Autofill.AutofillHint {
    349  }
    350 
    351  @Retention(value=RetentionPolicy.SOURCE) public static interface Autofill.AutofillInputType {
    352  }
    353 
    354  public static interface Autofill.AutofillNotify {
    355  }
    356 
    357  public static interface Autofill.Delegate {
    358    method @UiThread default public void onNodeAdd(@NonNull GeckoSession, @NonNull Autofill.Node, @NonNull Autofill.NodeData);
    359    method @UiThread default public void onNodeBlur(@NonNull GeckoSession, @NonNull Autofill.Node, @NonNull Autofill.NodeData);
    360    method @UiThread default public void onNodeFocus(@NonNull GeckoSession, @NonNull Autofill.Node, @NonNull Autofill.NodeData);
    361    method @UiThread default public void onNodeRemove(@NonNull GeckoSession, @NonNull Autofill.Node, @NonNull Autofill.NodeData);
    362    method @UiThread default public void onNodeUpdate(@NonNull GeckoSession, @NonNull Autofill.Node, @NonNull Autofill.NodeData);
    363    method @UiThread default public void onSessionCancel(@NonNull GeckoSession);
    364    method @UiThread default public void onSessionCommit(@NonNull GeckoSession, @NonNull Autofill.Node, @NonNull Autofill.NodeData);
    365    method @UiThread default public void onSessionStart(@NonNull GeckoSession);
    366  }
    367 
    368  public static final class Autofill.Hint {
    369    method @AnyThread @Nullable public static String toString(int);
    370    field public static final int EMAIL_ADDRESS = 0;
    371    field public static final int NONE = -1;
    372    field public static final int PASSWORD = 1;
    373    field public static final int URI = 2;
    374    field public static final int USERNAME = 3;
    375  }
    376 
    377  public static final class Autofill.InputType {
    378    method @AnyThread @Nullable public static String toString(int);
    379    field public static final int NONE = -1;
    380    field public static final int NUMBER = 1;
    381    field public static final int PHONE = 2;
    382    field public static final int TEXT = 0;
    383  }
    384 
    385  public static final class Autofill.Node {
    386    method @AnyThread @Nullable public String getAttribute(@NonNull String);
    387    method @AnyThread @NonNull public Map<String,String> getAttributes();
    388    method @AnyThread @NonNull public Collection<Autofill.Node> getChildren();
    389    method @AnyThread @NonNull public String getDomain();
    390    method @AnyThread public boolean getEnabled();
    391    method @AnyThread public boolean getFocusable();
    392    method @AnyThread public int getHint();
    393    method @AnyThread public int getInputType();
    394    method @AnyThread @NonNull public Rect getScreenRect();
    395    method @AnyThread @NonNull public String getTag();
    396  }
    397 
    398  public static class Autofill.NodeData {
    399    method @AnyThread public int getId();
    400    method @AnyThread @Nullable public String getValue();
    401  }
    402 
    403  public static final class Autofill.Session {
    404    method @UiThread public void autofill(@NonNull SparseArray<CharSequence>);
    405    method @NonNull @UiThread public Autofill.NodeData dataFor(@NonNull Autofill.Node);
    406    method @UiThread public void fillViewStructure(@NonNull View, @NonNull ViewStructure, int);
    407    method @UiThread public void fillViewStructure(@NonNull Autofill.Node, @NonNull View, @NonNull ViewStructure, int);
    408    method @NonNull @UiThread public Rect getDefaultDimensions();
    409    method @Nullable @UiThread public Autofill.Node getFocused();
    410    method @Nullable @UiThread public Autofill.NodeData getFocusedData();
    411    method @AnyThread @NonNull public Autofill.Node getRoot();
    412    method @UiThread public boolean isVisible(@NonNull Autofill.Node);
    413  }
    414 
    415  @UiThread public class BasicSelectionActionDelegate implements ActionMode.Callback GeckoSession.SelectionActionDelegate {
    416    ctor public BasicSelectionActionDelegate(@NonNull Activity);
    417    ctor public BasicSelectionActionDelegate(@NonNull Activity, boolean);
    418    method public boolean areExternalActionsEnabled();
    419    method public void clearSelection();
    420    method public void enableExternalActions(boolean);
    421    method @Nullable public GeckoSession.SelectionActionDelegate.Selection getSelection();
    422    method public boolean isActionAvailable();
    423    method public void onGetContentRect(@Nullable ActionMode, @Nullable View, @NonNull Rect);
    424    method @NonNull protected String[] getAllActions();
    425    method protected boolean isActionAvailable(@NonNull String);
    426    method protected boolean performAction(@NonNull String, @NonNull MenuItem);
    427    method protected void prepareAction(@NonNull String, @NonNull MenuItem);
    428    field protected static final String ACTION_PROCESS_TEXT = "android.intent.action.PROCESS_TEXT";
    429    field @Nullable protected ActionMode mActionMode;
    430    field @NonNull protected final Activity mActivity;
    431    field protected boolean mRepopulatedMenu;
    432    field @Nullable protected GeckoSession.SelectionActionDelegate.Selection mSelection;
    433    field @Nullable protected GeckoSession mSession;
    434    field protected final boolean mUseFloatingToolbar;
    435  }
    436 
    437  @UiThread public final class CompositorController {
    438    method public void addDrawCallback(@NonNull Runnable);
    439    method public int getClearColor();
    440    method @Nullable public Runnable getFirstPaintCallback();
    441    method public void onPipModeChanged(boolean);
    442    method public void removeDrawCallback(@NonNull Runnable);
    443    method public void setClearColor(int);
    444    method public void setFirstPaintCallback(@Nullable Runnable);
    445  }
    446 
    447  @AnyThread public class ContentBlocking {
    448    ctor protected ContentBlocking();
    449    field public static final ContentBlocking.SafeBrowsingProvider GOOGLE_LEGACY_SAFE_BROWSING_PROVIDER;
    450    field public static final ContentBlocking.SafeBrowsingProvider GOOGLE_SAFE_BROWSING_PROVIDER;
    451    field public static final ContentBlocking.SafeBrowsingProvider GOOGLE_SAFE_BROWSING_V5_PROVIDER;
    452  }
    453 
    454  public static class ContentBlocking.AntiTracking {
    455    ctor protected AntiTracking();
    456    field public static final int AD = 2;
    457    field public static final int ANALYTIC = 4;
    458    field public static final int CONTENT = 16;
    459    field public static final int CRYPTOMINING = 64;
    460    field public static final int DEFAULT = 46;
    461    field public static final int EMAIL = 512;
    462    field public static final int FINGERPRINTING = 128;
    463    field public static final int NONE = 0;
    464    field public static final int SOCIAL = 8;
    465    field public static final int STP = 256;
    466    field public static final int STRICT = 766;
    467    field public static final int TEST = 32;
    468  }
    469 
    470  public static class ContentBlocking.BlockEvent {
    471    ctor public BlockEvent(@NonNull String, int, int, int, boolean);
    472    method @UiThread public int getAntiTrackingCategory();
    473    method @UiThread public int getCookieBehaviorCategory();
    474    method @UiThread public int getSafeBrowsingCategory();
    475    method @UiThread public boolean isBlocking();
    476    field @NonNull public final String uri;
    477  }
    478 
    479  public static class ContentBlocking.BounceTrackingProtectionMode {
    480    ctor protected BounceTrackingProtectionMode();
    481    field public static final int BOUNCE_TRACKING_PROTECTION_MODE_DISABLED = 0;
    482    field public static final int BOUNCE_TRACKING_PROTECTION_MODE_ENABLED = 1;
    483    field public static final int BOUNCE_TRACKING_PROTECTION_MODE_ENABLED_DRY_RUN = 3;
    484    field public static final int BOUNCE_TRACKING_PROTECTION_MODE_ENABLED_STANDBY = 2;
    485  }
    486 
    487  @Retention(value=RetentionPolicy.SOURCE) public static interface ContentBlocking.CBAntiTracking {
    488  }
    489 
    490  @Retention(value=RetentionPolicy.SOURCE) public static interface ContentBlocking.CBCBounceTrackingProtectionMode {
    491  }
    492 
    493  @Retention(value=RetentionPolicy.SOURCE) public static interface ContentBlocking.CBCookieBannerMode {
    494  }
    495 
    496  @Retention(value=RetentionPolicy.SOURCE) public static interface ContentBlocking.CBCookieBehavior {
    497  }
    498 
    499  @Retention(value=RetentionPolicy.SOURCE) public static interface ContentBlocking.CBEtpCategory {
    500  }
    501 
    502  @Retention(value=RetentionPolicy.SOURCE) public static interface ContentBlocking.CBEtpLevel {
    503  }
    504 
    505  @Retention(value=RetentionPolicy.SOURCE) public static interface ContentBlocking.CBSafeBrowsing {
    506  }
    507 
    508  public static class ContentBlocking.CookieBannerMode {
    509    ctor protected CookieBannerMode();
    510    field public static final int COOKIE_BANNER_MODE_DISABLED = 0;
    511    field public static final int COOKIE_BANNER_MODE_REJECT = 1;
    512    field public static final int COOKIE_BANNER_MODE_REJECT_OR_ACCEPT = 2;
    513  }
    514 
    515  public static class ContentBlocking.CookieBehavior {
    516    ctor protected CookieBehavior();
    517    field public static final int ACCEPT_ALL = 0;
    518    field public static final int ACCEPT_FIRST_PARTY = 1;
    519    field public static final int ACCEPT_FIRST_PARTY_AND_ISOLATE_OTHERS = 5;
    520    field public static final int ACCEPT_NONE = 2;
    521    field public static final int ACCEPT_NON_TRACKERS = 4;
    522    field public static final int ACCEPT_VISITED = 3;
    523  }
    524 
    525  public static interface ContentBlocking.Delegate {
    526    method @UiThread default public void onContentBlocked(@NonNull GeckoSession, @NonNull ContentBlocking.BlockEvent);
    527    method @UiThread default public void onContentLoaded(@NonNull GeckoSession, @NonNull ContentBlocking.BlockEvent);
    528  }
    529 
    530  public static class ContentBlocking.EtpCategory {
    531    ctor public EtpCategory();
    532    field public static final int CUSTOM = 2;
    533    field public static final int STANDARD = 0;
    534    field public static final int STRICT = 1;
    535  }
    536 
    537  public static class ContentBlocking.EtpLevel {
    538    ctor public EtpLevel();
    539    field public static final int DEFAULT = 1;
    540    field public static final int NONE = 0;
    541    field public static final int STRICT = 2;
    542  }
    543 
    544  public static class ContentBlocking.SafeBrowsing {
    545    ctor protected SafeBrowsing();
    546    field public static final int DEFAULT = 31744;
    547    field public static final int HARMFUL = 4096;
    548    field public static final int HARMFULADDON = 16384;
    549    field public static final int MALWARE = 1024;
    550    field public static final int NONE = 0;
    551    field public static final int PHISHING = 8192;
    552    field public static final int UNWANTED = 2048;
    553  }
    554 
    555  @AnyThread public static class ContentBlocking.SafeBrowsingProvider extends RuntimeSettings {
    556    method @NonNull public static ContentBlocking.SafeBrowsingProvider.Builder from(@NonNull ContentBlocking.SafeBrowsingProvider);
    557    method @Nullable public String getAdvisoryName();
    558    method @Nullable public String getAdvisoryUrl();
    559    method @Nullable public Boolean getDataSharingEnabled();
    560    method @Nullable public String getDataSharingUrl();
    561    method @Nullable public Boolean getEnabled();
    562    method @Nullable public String getGetHashUrl();
    563    method @NonNull public String[] getLists();
    564    method @NonNull public String getName();
    565    method @Nullable public String getReportMalwareMistakeUrl();
    566    method @Nullable public String getReportPhishingMistakeUrl();
    567    method @Nullable public String getReportUrl();
    568    method @Nullable public String getUpdateUrl();
    569    method @Nullable public String getVersion();
    570    method @NonNull public static ContentBlocking.SafeBrowsingProvider.Builder withName(@NonNull String);
    571    field public static final Parcelable.Creator<ContentBlocking.SafeBrowsingProvider> CREATOR;
    572  }
    573 
    574  @AnyThread public static class ContentBlocking.SafeBrowsingProvider.Builder {
    575    method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder advisoryName(@NonNull String);
    576    method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder advisoryUrl(@NonNull String);
    577    method @NonNull public ContentBlocking.SafeBrowsingProvider build();
    578    method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder dataSharingEnabled(boolean);
    579    method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder dataSharingUrl(@NonNull String);
    580    method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder enabled(boolean);
    581    method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder getHashUrl(@NonNull String);
    582    method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder lists(@NonNull String...);
    583    method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder reportMalwareMistakeUrl(@NonNull String);
    584    method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder reportPhishingMistakeUrl(@NonNull String);
    585    method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder reportUrl(@NonNull String);
    586    method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder updateUrl(@NonNull String);
    587    method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder version(@NonNull String);
    588  }
    589 
    590  @AnyThread public static class ContentBlocking.Settings extends RuntimeSettings {
    591    method public boolean getAllowListBaselineTrackingProtection();
    592    method public boolean getAllowListConvenienceTrackingProtection();
    593    method public int getAntiTrackingCategories();
    594    method public int getBounceTrackingProtectionMode();
    595    method public boolean getCookieBannerDetectOnlyMode();
    596    method public boolean getCookieBannerGlobalRulesEnabled();
    597    method public boolean getCookieBannerGlobalRulesSubFramesEnabled();
    598    method public int getCookieBannerMode();
    599    method public int getCookieBannerModePrivateBrowsing();
    600    method public int getCookieBehavior();
    601    method public int getCookieBehaviorPrivateMode();
    602    method public boolean getCookiePurging();
    603    method @NonNull public Boolean getEmailTrackerBlockingPrivateBrowsingEnabled();
    604    method public int getEnhancedTrackingProtectionCategory();
    605    method public int getEnhancedTrackingProtectionLevel();
    606    method @NonNull public String[] getQueryParameterStrippingAllowList();
    607    method public boolean getQueryParameterStrippingEnabled();
    608    method public boolean getQueryParameterStrippingPrivateBrowsingEnabled();
    609    method @NonNull public String[] getQueryParameterStrippingStripList();
    610    method public int getSafeBrowsingCategories();
    611    method @NonNull public String[] getSafeBrowsingMalwareTable();
    612    method @NonNull public String[] getSafeBrowsingPhishingTable();
    613    method @NonNull public Collection<ContentBlocking.SafeBrowsingProvider> getSafeBrowsingProviders();
    614    method @NonNull public Boolean getSafeBrowsingV5Enabled();
    615    method public boolean getStrictSocialTrackingProtection();
    616    method @NonNull public ContentBlocking.Settings setAllowListBaselineTrackingProtection(boolean);
    617    method @NonNull public ContentBlocking.Settings setAllowListConvenienceTrackingProtection(boolean);
    618    method @NonNull public ContentBlocking.Settings setAntiTracking(int);
    619    method @NonNull public ContentBlocking.Settings setBounceTrackingProtectionMode(int);
    620    method @NonNull public ContentBlocking.Settings setCookieBannerDetectOnlyMode(boolean);
    621    method @NonNull public ContentBlocking.Settings setCookieBannerGlobalRulesEnabled(boolean);
    622    method @NonNull public ContentBlocking.Settings setCookieBannerGlobalRulesSubFramesEnabled(boolean);
    623    method @NonNull public ContentBlocking.Settings setCookieBannerMode(int);
    624    method @NonNull public ContentBlocking.Settings setCookieBannerModePrivateBrowsing(int);
    625    method @NonNull public ContentBlocking.Settings setCookieBehavior(int);
    626    method @NonNull public ContentBlocking.Settings setCookieBehaviorPrivateMode(int);
    627    method @NonNull public ContentBlocking.Settings setCookiePurging(boolean);
    628    method @NonNull public ContentBlocking.Settings setEmailTrackerBlockingPrivateBrowsing(boolean);
    629    method @NonNull public ContentBlocking.Settings setEnhancedTrackingProtectionCategory(int);
    630    method @NonNull public ContentBlocking.Settings setEnhancedTrackingProtectionLevel(int);
    631    method @NonNull public ContentBlocking.Settings setQueryParameterStrippingAllowList(@NonNull String...);
    632    method @NonNull public ContentBlocking.Settings setQueryParameterStrippingEnabled(boolean);
    633    method @NonNull public ContentBlocking.Settings setQueryParameterStrippingPrivateBrowsingEnabled(boolean);
    634    method @NonNull public ContentBlocking.Settings setQueryParameterStrippingStripList(@NonNull String...);
    635    method @NonNull public ContentBlocking.Settings setSafeBrowsing(int);
    636    method @NonNull public ContentBlocking.Settings setSafeBrowsingMalwareTable(@NonNull String...);
    637    method @NonNull public ContentBlocking.Settings setSafeBrowsingPhishingTable(@NonNull String...);
    638    method @NonNull public ContentBlocking.Settings setSafeBrowsingProviders(@NonNull ContentBlocking.SafeBrowsingProvider...);
    639    method @NonNull public ContentBlocking.Settings setSafeBrowsingV5Enabled(boolean);
    640    method @NonNull public ContentBlocking.Settings setStrictSocialTrackingProtection(boolean);
    641    field public static final Parcelable.Creator<ContentBlocking.Settings> CREATOR;
    642  }
    643 
    644  @AnyThread public static class ContentBlocking.Settings.Builder extends RuntimeSettings.Builder<ContentBlocking.Settings> {
    645    ctor public Builder();
    646    method @NonNull public ContentBlocking.Settings.Builder allowListBaselineTrackingProtection(boolean);
    647    method @NonNull public ContentBlocking.Settings.Builder allowListConvenienceTrackingProtection(boolean);
    648    method @NonNull public ContentBlocking.Settings.Builder antiTracking(int);
    649    method @NonNull public ContentBlocking.Settings.Builder bounceTrackingProtectionMode(int);
    650    method @NonNull public ContentBlocking.Settings.Builder cookieBannerGlobalRulesEnabled(boolean);
    651    method @NonNull public ContentBlocking.Settings.Builder cookieBannerGlobalRulesSubFramesEnabled(boolean);
    652    method @NonNull public ContentBlocking.Settings.Builder cookieBannerHandlingDetectOnlyMode(boolean);
    653    method @NonNull public ContentBlocking.Settings.Builder cookieBannerHandlingMode(int);
    654    method @NonNull public ContentBlocking.Settings.Builder cookieBannerHandlingModePrivateBrowsing(int);
    655    method @NonNull public ContentBlocking.Settings.Builder cookieBehavior(int);
    656    method @NonNull public ContentBlocking.Settings.Builder cookieBehaviorPrivateMode(int);
    657    method @NonNull public ContentBlocking.Settings.Builder cookiePurging(boolean);
    658    method @NonNull public ContentBlocking.Settings.Builder emailTrackerBlockingPrivateMode(boolean);
    659    method @NonNull public ContentBlocking.Settings.Builder enhancedTrackingProtectionCategory(int);
    660    method @NonNull public ContentBlocking.Settings.Builder enhancedTrackingProtectionLevel(int);
    661    method @NonNull public ContentBlocking.Settings.Builder queryParameterStrippingAllowList(@NonNull String...);
    662    method @NonNull public ContentBlocking.Settings.Builder queryParameterStrippingEnabled(boolean);
    663    method @NonNull public ContentBlocking.Settings.Builder queryParameterStrippingPrivateBrowsingEnabled(boolean);
    664    method @NonNull public ContentBlocking.Settings.Builder queryParameterStrippingStripList(@NonNull String...);
    665    method @NonNull public ContentBlocking.Settings.Builder safeBrowsing(int);
    666    method @NonNull public ContentBlocking.Settings.Builder safeBrowsingMalwareTable(@NonNull String[]);
    667    method @NonNull public ContentBlocking.Settings.Builder safeBrowsingPhishingTable(@NonNull String[]);
    668    method @NonNull public ContentBlocking.Settings.Builder safeBrowsingProviders(@NonNull ContentBlocking.SafeBrowsingProvider...);
    669    method @NonNull public ContentBlocking.Settings.Builder strictSocialTrackingProtection(boolean);
    670    method @NonNull protected ContentBlocking.Settings newSettings(@Nullable ContentBlocking.Settings);
    671  }
    672 
    673  @AnyThread public class ContentBlockingController {
    674    ctor public ContentBlockingController();
    675    method @NonNull @UiThread public GeckoResult<List<ContentBlockingController.LogEntry>> getLog(@NonNull GeckoSession);
    676  }
    677 
    678  public static class ContentBlockingController.Event {
    679    ctor protected Event();
    680    field public static final int ALLOWED_TRACKING_CONTENT = 32;
    681    field public static final int BLOCKED_CRYPTOMINING_CONTENT = 2048;
    682    field public static final int BLOCKED_EMAILTRACKING_CONTENT = 4194304;
    683    field public static final int BLOCKED_FINGERPRINTING_CONTENT = 64;
    684    field public static final int BLOCKED_SOCIALTRACKING_CONTENT = 65536;
    685    field public static final int BLOCKED_SUSPICIOUS_FINGERPRINTING = 4;
    686    field public static final int BLOCKED_TRACKING_CONTENT = 4096;
    687    field public static final int BLOCKED_UNSAFE_CONTENT = 16384;
    688    field public static final int COOKIES_BLOCKED_ALL = 1073741824;
    689    field public static final int COOKIES_BLOCKED_BY_PERMISSION = 268435456;
    690    field public static final int COOKIES_BLOCKED_FOREIGN = 128;
    691    field public static final int COOKIES_BLOCKED_SOCIALTRACKER = 16777216;
    692    field public static final int COOKIES_BLOCKED_TRACKER = 536870912;
    693    field public static final int COOKIES_LOADED = 32768;
    694    field public static final int COOKIES_LOADED_SOCIALTRACKER = 524288;
    695    field public static final int COOKIES_LOADED_TRACKER = 262144;
    696    field public static final int COOKIES_PARTITIONED_FOREIGN = -2147483648;
    697    field public static final int LOADED_CRYPTOMINING_CONTENT = 2097152;
    698    field public static final int LOADED_EMAILTRACKING_LEVEL_1_CONTENT = 8388608;
    699    field public static final int LOADED_EMAILTRACKING_LEVEL_2_CONTENT = 256;
    700    field public static final int LOADED_FINGERPRINTING_CONTENT = 1024;
    701    field public static final int LOADED_LEVEL_1_TRACKING_CONTENT = 8192;
    702    field public static final int LOADED_LEVEL_2_TRACKING_CONTENT = 1048576;
    703    field public static final int LOADED_SOCIALTRACKING_CONTENT = 131072;
    704    field public static final int PURGED_BOUNCETRACKER = 7;
    705    field public static final int REPLACED_TRACKING_CONTENT = 16;
    706  }
    707 
    708  @AnyThread public static class ContentBlockingController.LogEntry {
    709    ctor protected LogEntry();
    710    field @NonNull public final List<ContentBlockingController.LogEntry.BlockingData> blockingData;
    711    field @NonNull public final String origin;
    712  }
    713 
    714  public static class ContentBlockingController.LogEntry.BlockingData {
    715    ctor protected BlockingData();
    716    field public final boolean blocked;
    717    field public final int category;
    718    field public final int count;
    719  }
    720 
    721  @Retention(value=RetentionPolicy.SOURCE) public static interface ContentBlockingController.LogEntry.BlockingData.LogEvent {
    722  }
    723 
    724  @FunctionalInterface public class CrashHandler implements Thread.UncaughtExceptionHandler {
    725    ctor public CrashHandler(@Nullable Class<? extends android.app.Service>);
    726    ctor public CrashHandler(@Nullable Context, @Nullable Class<? extends android.app.Service>);
    727    ctor public CrashHandler(Thread, Class<? extends android.app.Service>);
    728    ctor public CrashHandler(@Nullable Thread, Context, Class<? extends android.app.Service>);
    729    method @AnyThread @NonNull public static CrashHandler createDefaultCrashHandler(@NonNull Context);
    730    method @AnyThread @Nullable public Context getAppContext();
    731    method @AnyThread @Nullable public String getAppPackageName();
    732    method @AnyThread @NonNull public byte[] getCrashDump(@Nullable Thread, @Nullable Throwable);
    733    method @AnyThread @NonNull public Bundle getCrashExtras(@NonNull Thread, @NonNull Throwable);
    734    method @AnyThread @NonNull public static String getExceptionStackTrace(@NonNull Throwable);
    735    method @AnyThread @NonNull public static Throwable getRootException(@NonNull Throwable);
    736    method @AnyThread @NonNull public String getServerUrl(@NonNull Bundle);
    737    method @AnyThread public boolean launchCrashReporter(@NonNull String, @NonNull String);
    738    method @AnyThread public static void logException(@NonNull Thread, @NonNull Throwable);
    739    method @AnyThread public boolean reportException(@NonNull Thread, @NonNull Throwable);
    740    method @AnyThread public static void terminateProcess();
    741    method @AnyThread public void unregister();
    742  }
    743 
    744  public class CrashPullController {
    745    ctor public CrashPullController();
    746  }
    747 
    748  public static interface CrashPullController.Delegate {
    749    method @UiThread default public void onCrashPull(@NonNull String[]);
    750  }
    751 
    752  public class CrashReporter {
    753    ctor public CrashReporter();
    754    method @AnyThread @NonNull public static GeckoResult<String> sendCrashReport(@NonNull Context, @NonNull Intent, @NonNull String);
    755    method @AnyThread @NonNull public static GeckoResult<String> sendCrashReport(@NonNull Context, @NonNull Bundle, @NonNull String);
    756    method @AnyThread @NonNull public static GeckoResult<String> sendCrashReport(@NonNull Context, @NonNull File, @NonNull File, @NonNull String);
    757  }
    758 
    759  @Documented @Retention(value=RetentionPolicy.RUNTIME) @Target(value={ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.LOCAL_VARIABLE, ElementType.METHOD, ElementType.PACKAGE, ElementType.PARAMETER, ElementType.TYPE}) public interface DeprecationSchedule {
    760    element public String id();
    761    element public int version();
    762  }
    763 
    764  public interface ExperimentDelegate {
    765    method @AnyThread @NonNull default public GeckoResult<JSONObject> onGetExperimentFeature(@NonNull String);
    766    method @AnyThread @NonNull default public GeckoResult<Void> onRecordExperimentExposureEvent(@NonNull String, @NonNull String);
    767    method @AnyThread @NonNull default public GeckoResult<Void> onRecordExposureEvent(@NonNull String);
    768    method @AnyThread @NonNull default public GeckoResult<Void> onRecordMalformedConfigurationEvent(@NonNull String, @NonNull String);
    769  }
    770 
    771  public static class ExperimentDelegate.ExperimentException extends Exception {
    772    ctor public ExperimentException(int);
    773    field public static final int ERROR_EXPERIMENT_DELEGATE_NOT_IMPLEMENTED = -4;
    774    field public static final int ERROR_EXPERIMENT_SLUG_NOT_FOUND = -3;
    775    field public static final int ERROR_FEATURE_NOT_FOUND = -2;
    776    field public static final int ERROR_UNKNOWN = -1;
    777    field public final int code;
    778  }
    779 
    780  @Retention(value=RetentionPolicy.SOURCE) public static interface ExperimentDelegate.ExperimentException.Codes {
    781  }
    782 
    783  @Retention(value=RetentionPolicy.CLASS) @Target(value={ElementType.TYPE, ElementType.TYPE_USE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.PACKAGE}) public interface ExperimentalGeckoViewApi {
    784  }
    785 
    786  public class GeckoDisplay {
    787    ctor protected GeckoDisplay(GeckoSession);
    788    method @NonNull @UiThread public GeckoResult<Bitmap> capturePixels();
    789    method @UiThread public void safeAreaInsetsChanged(int, int, int, int);
    790    method @UiThread public void screenOriginChanged(int, int);
    791    method @NonNull @UiThread public GeckoDisplay.ScreenshotBuilder screenshot();
    792    method @UiThread public void setDynamicToolbarMaxHeight(int);
    793    method @UiThread public void setVerticalClipping(int);
    794    method @UiThread public boolean shouldPinOnScreen();
    795    method @UiThread public void surfaceChanged(@NonNull GeckoDisplay.SurfaceInfo);
    796    method @UiThread public void surfaceDestroyed();
    797    method @UiThread public void windowInsetsChanged(@NonNull WindowInsetsCompat);
    798  }
    799 
    800  public static interface GeckoDisplay.NewSurfaceProvider {
    801    method @UiThread public void requestNewSurface();
    802  }
    803 
    804  public static final class GeckoDisplay.ScreenshotBuilder {
    805    method @AnyThread @NonNull public GeckoDisplay.ScreenshotBuilder aspectPreservingSize(int);
    806    method @AnyThread @NonNull public GeckoDisplay.ScreenshotBuilder bitmap(@Nullable Bitmap);
    807    method @NonNull @UiThread public GeckoResult<Bitmap> capture();
    808    method @AnyThread @NonNull public GeckoDisplay.ScreenshotBuilder scale(float);
    809    method @AnyThread @NonNull public GeckoDisplay.ScreenshotBuilder size(int, int);
    810    method @AnyThread @NonNull public GeckoDisplay.ScreenshotBuilder source(int, int, int, int);
    811    method @AnyThread @NonNull public GeckoDisplay.ScreenshotBuilder source(@NonNull Rect);
    812  }
    813 
    814  public static class GeckoDisplay.SurfaceInfo {
    815  }
    816 
    817  public static class GeckoDisplay.SurfaceInfo.Builder {
    818    ctor public Builder(@NonNull Surface);
    819    method @NonNull @UiThread public GeckoDisplay.SurfaceInfo build();
    820    method @NonNull @UiThread public GeckoDisplay.SurfaceInfo.Builder newSurfaceProvider(@Nullable GeckoDisplay.NewSurfaceProvider);
    821    method @NonNull @UiThread public GeckoDisplay.SurfaceInfo.Builder offset(int, int);
    822    method @NonNull @UiThread public GeckoDisplay.SurfaceInfo.Builder size(int, int);
    823    method @NonNull @UiThread public GeckoDisplay.SurfaceInfo.Builder surfaceControl(@Nullable SurfaceControl);
    824  }
    825 
    826  public class GeckoPreferenceController {
    827    ctor public GeckoPreferenceController();
    828    method @AnyThread @NonNull public static GeckoResult<Void> clearGeckoUserPref(@NonNull String);
    829    method @AnyThread @NonNull public static GeckoResult<GeckoPreferenceController.GeckoPreference<?>> getGeckoPref(@NonNull String);
    830    method @AnyThread @NonNull public static GeckoResult<List<GeckoPreferenceController.GeckoPreference<?>>> getGeckoPrefs(@NonNull List<String>);
    831    method @AnyThread @NonNull public static GeckoResult<Void> setGeckoPref(@NonNull String, @NonNull String, int);
    832    method @AnyThread @NonNull public static GeckoResult<Void> setGeckoPref(@NonNull String, @NonNull Integer, int);
    833    method @AnyThread @NonNull public static GeckoResult<Void> setGeckoPref(@NonNull String, @NonNull Boolean, int);
    834    method @AnyThread @NonNull public static GeckoResult<Map<String,Boolean>> setGeckoPrefs(@NonNull List<GeckoPreferenceController.SetGeckoPreference<?>>);
    835    field public static final int PREF_BRANCH_DEFAULT = 1;
    836    field public static final int PREF_BRANCH_USER = 0;
    837    field public static final int PREF_TYPE_BOOL = 128;
    838    field public static final int PREF_TYPE_INT = 64;
    839    field public static final int PREF_TYPE_INVALID = 0;
    840    field public static final int PREF_TYPE_STRING = 32;
    841  }
    842 
    843  public static class GeckoPreferenceController.GeckoPreference<T> {
    844    method @AnyThread public boolean getHasUserChangedValue();
    845    method @AnyThread @Nullable public T getValue();
    846    field @Nullable public final T defaultValue;
    847    field @NonNull public final String pref;
    848    field public final int type;
    849    field @Nullable public final T userValue;
    850  }
    851 
    852  public static final class GeckoPreferenceController.Observer {
    853    ctor public Observer();
    854    method @AnyThread @NonNull public static GeckoResult<Void> registerPreference(@NonNull String);
    855    method @AnyThread @NonNull public static GeckoResult<Void> registerPreferences(@NonNull List<String>);
    856    method @NonNull @UiThread public static GeckoResult<Void> unregisterPreference(@NonNull String);
    857    method @NonNull @UiThread public static GeckoResult<Void> unregisterPreferences(@NonNull List<String>);
    858  }
    859 
    860  public static interface GeckoPreferenceController.Observer.Delegate {
    861    method @AnyThread default public void onGeckoPreferenceChange(@NonNull GeckoPreferenceController.GeckoPreference<?>);
    862  }
    863 
    864  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoPreferenceController.PrefBranch {
    865  }
    866 
    867  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoPreferenceController.PrefType {
    868  }
    869 
    870  public static class GeckoPreferenceController.SetGeckoPreference<T> {
    871    method @AnyThread @NonNull public static GeckoPreferenceController.SetGeckoPreference<Boolean> setBoolPref(@NonNull String, @NonNull Boolean, int);
    872    method @AnyThread @NonNull public static GeckoPreferenceController.SetGeckoPreference<Integer> setIntPref(@NonNull String, @NonNull Integer, int);
    873    method @AnyThread @NonNull public static GeckoPreferenceController.SetGeckoPreference<String> setStringPref(@NonNull String, @NonNull String, int);
    874    field public final int branch;
    875    field @NonNull public final String pref;
    876    field public final int type;
    877    field @NonNull public final T value;
    878  }
    879 
    880  @AnyThread public class GeckoResult<T> {
    881    ctor public GeckoResult();
    882    ctor public GeckoResult(Handler);
    883    ctor public GeckoResult(GeckoResult<T>);
    884    method @NonNull public GeckoResult<Void> accept(@Nullable GeckoResult.Consumer<T>);
    885    method @NonNull public GeckoResult<Void> accept(@Nullable GeckoResult.Consumer<T>, @Nullable GeckoResult.Consumer<Throwable>);
    886    method @NonNull @SafeVarargs public static <V> GeckoResult<List<V>> allOf(@NonNull GeckoResult<V>...);
    887    method @NonNull public static <V> GeckoResult<List<V>> allOf(@Nullable List<GeckoResult<V>>);
    888    method @AnyThread @NonNull public static GeckoResult<AllowOrDeny> allow();
    889    method @NonNull public synchronized GeckoResult<Boolean> cancel();
    890    method public synchronized void complete(@Nullable T);
    891    method public synchronized void completeExceptionally(@NonNull Throwable);
    892    method public void completeFrom(@Nullable GeckoResult<T>);
    893    method @AnyThread @NonNull public static GeckoResult<AllowOrDeny> deny();
    894    method @NonNull public <U> GeckoResult<U> exceptionally(@NonNull GeckoResult.OnExceptionListener<U>);
    895    method @NonNull public GeckoResult<Void> finally_(@NonNull Runnable);
    896    method @NonNull public static <T> GeckoResult<T> fromException(@NonNull Throwable);
    897    method @NonNull public static <U> GeckoResult<U> fromValue(@Nullable U);
    898    method @Nullable public Looper getLooper();
    899    method @NonNull public <U> GeckoResult<U> map(@Nullable GeckoResult.OnValueMapper<T,U>);
    900    method @NonNull public <U> GeckoResult<U> map(@Nullable GeckoResult.OnValueMapper<T,U>, @Nullable GeckoResult.OnExceptionMapper);
    901    method @Nullable public synchronized T poll();
    902    method @Nullable public synchronized T poll(long);
    903    method public void setCancellationDelegate(@Nullable GeckoResult.CancellationDelegate);
    904    method @NonNull public <U> GeckoResult<U> then(@NonNull GeckoResult.OnValueListener<T,U>);
    905    method @NonNull public <U> GeckoResult<U> then(@Nullable GeckoResult.OnValueListener<T,U>, @Nullable GeckoResult.OnExceptionListener<U>);
    906    method @NonNull public GeckoResult<T> withHandler(@Nullable Handler);
    907  }
    908 
    909  @AnyThread public static interface GeckoResult.CancellationDelegate {
    910    method @NonNull default public GeckoResult<Boolean> cancel();
    911  }
    912 
    913  public static interface GeckoResult.Consumer<T> {
    914    method @AnyThread public void accept(@Nullable T);
    915  }
    916 
    917  public static interface GeckoResult.OnExceptionListener<V> {
    918    method @AnyThread @Nullable public GeckoResult<V> onException(@NonNull Throwable);
    919  }
    920 
    921  public static interface GeckoResult.OnExceptionMapper {
    922    method @AnyThread @Nullable public Throwable onException(@NonNull Throwable);
    923  }
    924 
    925  public static interface GeckoResult.OnValueListener<T,U> {
    926    method @AnyThread @Nullable public GeckoResult<U> onValue(@Nullable T);
    927  }
    928 
    929  public static interface GeckoResult.OnValueMapper<T,U> {
    930    method @AnyThread @Nullable public U onValue(@Nullable T);
    931  }
    932 
    933  public static final class GeckoResult.UncaughtException extends RuntimeException {
    934    ctor public UncaughtException(Throwable);
    935  }
    936 
    937  public final class GeckoRuntime implements Parcelable {
    938    method @AnyThread public void appendAppNotesToCrashReport(@NonNull String);
    939    method @UiThread public void attachTo(@NonNull Context);
    940    method @UiThread public void configurationChanged(@NonNull Configuration);
    941    method @NonNull @UiThread public static GeckoRuntime create(@NonNull Context);
    942    method @NonNull @UiThread public static GeckoRuntime create(@NonNull Context, @NonNull GeckoRuntimeSettings);
    943    method @Nullable @UiThread public GeckoRuntime.ActivityDelegate getActivityDelegate();
    944    method @Nullable @UiThread public Autocomplete.StorageDelegate getAutocompleteStorageDelegate();
    945    method @NonNull @UiThread public ContentBlockingController getContentBlockingController();
    946    method @Nullable @UiThread public CrashPullController.Delegate getCrashPullDelegate();
    947    method @NonNull @UiThread public static synchronized GeckoRuntime getDefault(@NonNull Context);
    948    method @Nullable @UiThread public GeckoRuntime.Delegate getDelegate();
    949    method @NonNull @UiThread public OrientationController getOrientationController();
    950    method @AnyThread @Nullable public GeckoPreferenceController.Observer.Delegate getPreferencesObserverDelegate();
    951    method @Nullable @UiThread public GeckoRuntime.ServiceWorkerDelegate getServiceWorkerDelegate();
    952    method @AnyThread @NonNull public GeckoRuntimeSettings getSettings();
    953    method @NonNull @UiThread public StorageController getStorageController();
    954    method @NonNull @UiThread public WebExtensionController getWebExtensionController();
    955    method @Nullable @UiThread public WebNotificationDelegate getWebNotificationDelegate();
    956    method @NonNull @UiThread public WebPushController getWebPushController();
    957    method @AnyThread public boolean isInteractiveWidgetDefaultResizesVisual();
    958    method @AnyThread public void notifyTelemetryPrefChanged(boolean);
    959    method @UiThread public void orientationChanged();
    960    method @UiThread public void orientationChanged(int);
    961    method @AnyThread public void readFromParcel(@NonNull Parcel);
    962    method @UiThread public void setActivityDelegate(@Nullable GeckoRuntime.ActivityDelegate);
    963    method @UiThread public void setAutocompleteStorageDelegate(@Nullable Autocomplete.StorageDelegate);
    964    method @UiThread public void setCrashPullDelegate(@Nullable CrashPullController.Delegate);
    965    method @UiThread public void setDelegate(@Nullable GeckoRuntime.Delegate);
    966    method @AnyThread public void setPreferencesObserverDelegate(@Nullable GeckoPreferenceController.Observer.Delegate);
    967    method @UiThread public void setServiceWorkerDelegate(@Nullable GeckoRuntime.ServiceWorkerDelegate);
    968    method @UiThread public void setWebNotificationDelegate(@Nullable WebNotificationDelegate);
    969    method @AnyThread public void shutdown();
    970    field public static final String ACTION_CRASHED = "org.mozilla.gecko.ACTION_CRASHED";
    971    field public static final String CRASHED_PROCESS_VISIBILITY_BACKGROUND_CHILD = "BACKGROUND_CHILD";
    972    field public static final String CRASHED_PROCESS_VISIBILITY_FOREGROUND_CHILD = "FOREGROUND_CHILD";
    973    field public static final String CRASHED_PROCESS_VISIBILITY_MAIN = "MAIN";
    974    field public static final Parcelable.Creator<GeckoRuntime> CREATOR;
    975    field public static final String EXTRA_CRASH_PROCESS_TYPE = "processType";
    976    field public static final String EXTRA_CRASH_PROCESS_VISIBILITY = "processVisibility";
    977    field public static final String EXTRA_CRASH_REMOTE_TYPE = "remoteType";
    978    field public static final String EXTRA_EXTRAS_PATH = "extrasPath";
    979    field public static final String EXTRA_MINIDUMP_PATH = "minidumpPath";
    980  }
    981 
    982  public static interface GeckoRuntime.ActivityDelegate {
    983    method @Nullable @UiThread public GeckoResult<Intent> onStartActivityForResult(@NonNull PendingIntent);
    984  }
    985 
    986  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoRuntime.CrashedProcessVisibility {
    987  }
    988 
    989  public static interface GeckoRuntime.Delegate {
    990    method @UiThread public void onShutdown();
    991  }
    992 
    993  @UiThread public static interface GeckoRuntime.ServiceWorkerDelegate {
    994    method @NonNull @UiThread public GeckoResult<GeckoSession> onOpenWindow(@NonNull String);
    995  }
    996 
    997  @AnyThread public final class GeckoRuntimeSettings extends RuntimeSettings {
    998    method public boolean getAboutConfigEnabled();
    999    method public int getAllowInsecureConnections();
   1000    method public boolean getAppZygoteProcessEnabled();
   1001    method @NonNull public String[] getArguments();
   1002    method public boolean getAutomaticFontSizeAdjustment();
   1003    method @NonNull public String getBannedPorts();
   1004    method @Nullable public Boolean getBaselineFingerprintingProtection();
   1005    method @Nullable public String getBaselineFingerprintingProtectionOverrides();
   1006    method @NonNull public int getCertificateTransparencyMode();
   1007    method @Nullable public String getConfigFilePath();
   1008    method public boolean getConsoleOutputEnabled();
   1009    method @NonNull public ContentBlocking.Settings getContentBlocking();
   1010    method public boolean getCookieBehaviorOptInPartitioning();
   1011    method public boolean getCookieBehaviorOptInPartitioningPBM();
   1012    method @Nullable public Class<? extends android.app.Service> getCrashHandler();
   1013    method @NonNull public String getCrliteChannel();
   1014    method @Nullable public String getDefaultRecursiveResolverUri();
   1015    method @Nullable public Boolean getDisableShip();
   1016    method @Nullable public Float getDisplayDensityOverride();
   1017    method @Nullable public Integer getDisplayDpiOverride();
   1018    method public boolean getDohAutoselectEnabled();
   1019    method public boolean getDoubleTapZoomingEnabled();
   1020    method public boolean getEnterpriseRootsEnabled();
   1021    method @AnyThread @Nullable public ExperimentDelegate getExperimentDelegate();
   1022    method @Nullable public Integer getExtensionsProcessCrashThreshold();
   1023    method @Nullable public Long getExtensionsProcessCrashTimeframe();
   1024    method @Nullable public Boolean getExtensionsProcessEnabled();
   1025    method public boolean getExtensionsWebAPIEnabled();
   1026    method @NonNull public Bundle getExtras();
   1027    method public boolean getFdlibmMathEnabled();
   1028    method public boolean getFetchPriorityEnabled();
   1029    method @Nullable public Boolean getFingerprintingProtection();
   1030    method @NonNull public String getFingerprintingProtectionOverrides();
   1031    method @Nullable public Boolean getFingerprintingProtectionPrivateBrowsing();
   1032    method @Nullable public Boolean getFissionEnabled();
   1033    method public boolean getFontInflationEnabled();
   1034    method public float getFontSizeFactor();
   1035    method public boolean getForceEnableAccessibility();
   1036    method public boolean getForceUserScalableEnabled();
   1037    method public int getGlMsaaLevel();
   1038    method public boolean getGlobalPrivacyControl();
   1039    method public boolean getGlobalPrivacyControlPrivateMode();
   1040    method public boolean getInputAutoZoomEnabled();
   1041    method public boolean getIsolatedProcessEnabled();
   1042    method public boolean getJavaScriptEnabled();
   1043    method @NonNull public int getLargeKeepaliveFactor();
   1044    method @Nullable public Boolean getLnaBlockTrackers();
   1045    method @Nullable public Boolean getLnaBlocking();
   1046    method @Nullable public Boolean getLnaEnabled();
   1047    method @Nullable public String[] getLocales();
   1048    method public boolean getLoginAutofillEnabled();
   1049    method public boolean getLowMemoryDetection();
   1050    method public boolean getParallelMarkingEnabled();
   1051    method public boolean getPauseForDebuggerEnabled();
   1052    method @NonNull public boolean getPostQuantumKeyExchangeEnabled();
   1053    method public int getPreferredColorScheme();
   1054    method public boolean getRemoteDebuggingEnabled();
   1055    method @Nullable public GeckoRuntime getRuntime();
   1056    method @NonNull public boolean getSameDocumentNavigationOverridesLoadType();
   1057    method @NonNull public String getSameDocumentNavigationOverridesLoadTypeForceDisable();
   1058    method @Nullable public Rect getScreenSizeOverride();
   1059    method public boolean getSpoofEnglish();
   1060    method public int getTorSecurityLevel();
   1061    method public boolean getTranslationsOfferPopup();
   1062    method @NonNull public List<String> getTrustedRecursiveResolverExcludedDomains();
   1063    method @NonNull public String getTrustedRecursiveResolverUri();
   1064    method public int getTrustedRecusiveResolverMode();
   1065    method public boolean getUseMaxScreenDepth();
   1066    method @NonNull public int getUserCharacteristicPingCurrentVersion();
   1067    method @Nullable public Integer getWebContentIsolationStrategy();
   1068    method public boolean getWebFontsEnabled();
   1069    method public boolean getWebManifestEnabled();
   1070    method @NonNull public GeckoRuntimeSettings setAboutConfigEnabled(boolean);
   1071    method @NonNull public GeckoRuntimeSettings setAllowInsecureConnections(int);
   1072    method @NonNull public GeckoRuntimeSettings setAutomaticFontSizeAdjustment(boolean);
   1073    method @NonNull public GeckoRuntimeSettings setBannedPorts(@NonNull String);
   1074    method @NonNull public GeckoRuntimeSettings setBaselineFingerprintingProtection(boolean);
   1075    method @NonNull public GeckoRuntimeSettings setBaselineFingerprintingProtectionOverrides(@NonNull String);
   1076    method @NonNull public GeckoRuntimeSettings setCertificateTransparencyMode(int);
   1077    method @NonNull public GeckoRuntimeSettings setConsoleOutputEnabled(boolean);
   1078    method @NonNull public GeckoRuntimeSettings setCookieBehaviorOptInPartitioning(boolean);
   1079    method @NonNull public GeckoRuntimeSettings setCookieBehaviorOptInPartitioningPBM(boolean);
   1080    method @NonNull public GeckoRuntimeSettings setCrliteChannel(@NonNull String);
   1081    method @NonNull public GeckoRuntimeSettings setDefaultRecursiveResolverUri(@NonNull String);
   1082    method @NonNull public GeckoRuntimeSettings setDohAutoselectEnabled(boolean);
   1083    method @NonNull public GeckoRuntimeSettings setDoubleTapZoomingEnabled(boolean);
   1084    method @NonNull public GeckoRuntimeSettings setEnterpriseRootsEnabled(boolean);
   1085    method @NonNull public GeckoRuntimeSettings setExtensionsProcessCrashThreshold(@NonNull Integer);
   1086    method @NonNull public GeckoRuntimeSettings setExtensionsProcessCrashTimeframe(@NonNull Long);
   1087    method @NonNull public GeckoRuntimeSettings setExtensionsProcessEnabled(boolean);
   1088    method @NonNull public GeckoRuntimeSettings setExtensionsWebAPIEnabled(boolean);
   1089    method @NonNull public GeckoRuntimeSettings setFdlibmMathEnabled(boolean);
   1090    method @NonNull public GeckoRuntimeSettings setFetchPriorityEnabled(boolean);
   1091    method @NonNull public GeckoRuntimeSettings setFingerprintingProtection(boolean);
   1092    method @NonNull public GeckoRuntimeSettings setFingerprintingProtectionOverrides(@NonNull String);
   1093    method @NonNull public GeckoRuntimeSettings setFingerprintingProtectionPrivateBrowsing(boolean);
   1094    method @NonNull public GeckoRuntimeSettings setFontInflationEnabled(boolean);
   1095    method @NonNull public GeckoRuntimeSettings setFontSizeFactor(float);
   1096    method @NonNull public GeckoRuntimeSettings setForceEnableAccessibility(boolean);
   1097    method @NonNull public GeckoRuntimeSettings setForceUserScalableEnabled(boolean);
   1098    method @NonNull public GeckoRuntimeSettings setGlMsaaLevel(int);
   1099    method @NonNull public GeckoRuntimeSettings setGlobalPrivacyControl(boolean);
   1100    method @NonNull public GeckoRuntimeSettings setInputAutoZoomEnabled(boolean);
   1101    method @NonNull public GeckoRuntimeSettings setJavaScriptEnabled(boolean);
   1102    method @NonNull public GeckoRuntimeSettings setLargeKeepaliveFactor(int);
   1103    method @NonNull public GeckoRuntimeSettings setLnaBlockTrackers(boolean);
   1104    method @NonNull public GeckoRuntimeSettings setLnaBlocking(boolean);
   1105    method @NonNull public GeckoRuntimeSettings setLnaEnabled(boolean);
   1106    method public void setLocales(@Nullable String[]);
   1107    method @NonNull public GeckoRuntimeSettings setLoginAutofillEnabled(boolean);
   1108    method @NonNull public GeckoRuntimeSettings setParallelMarkingEnabled(boolean);
   1109    method @NonNull public GeckoRuntimeSettings setPostQuantumKeyExchangeEnabled(boolean);
   1110    method @NonNull public GeckoRuntimeSettings setPreferredColorScheme(int);
   1111    method @NonNull public GeckoRuntimeSettings setRemoteDebuggingEnabled(boolean);
   1112    method @NonNull public GeckoRuntimeSettings setRemoteSettingCrashPullNeverShowAgain(boolean);
   1113    method @NonNull public GeckoRuntimeSettings setSameDocumentNavigationOverridesLoadType(boolean);
   1114    method @NonNull public GeckoRuntimeSettings setSameDocumentNavigationOverridesLoadTypeForceDisable(@NonNull String);
   1115    method @NonNull public GeckoRuntimeSettings setSpoofEnglish(boolean);
   1116    method @NonNull public GeckoRuntimeSettings setTorSecurityLevel(int);
   1117    method @NonNull public GeckoRuntimeSettings setTranslationsOfferPopup(boolean);
   1118    method @NonNull public GeckoRuntimeSettings setTrustedRecursiveResolverExcludedDomains(@NonNull List<String>);
   1119    method @NonNull public GeckoRuntimeSettings setTrustedRecursiveResolverMode(int);
   1120    method @NonNull public GeckoRuntimeSettings setTrustedRecursiveResolverUri(@NonNull String);
   1121    method @NonNull public GeckoRuntimeSettings setUserCharacteristicPingCurrentVersion(int);
   1122    method @NonNull public GeckoRuntimeSettings setWebContentIsolationStrategy(@NonNull Integer);
   1123    method @NonNull public GeckoRuntimeSettings setWebFontsEnabled(boolean);
   1124    method @NonNull public GeckoRuntimeSettings setWebManifestEnabled(boolean);
   1125    field public static final int ALLOW_ALL = 0;
   1126    field public static final int COLOR_SCHEME_DARK = 1;
   1127    field public static final int COLOR_SCHEME_LIGHT = 0;
   1128    field public static final int COLOR_SCHEME_SYSTEM = -1;
   1129    field public static final Parcelable.Creator<GeckoRuntimeSettings> CREATOR;
   1130    field public static final int HTTPS_ONLY = 2;
   1131    field public static final int HTTPS_ONLY_PRIVATE = 1;
   1132    field public static final int STRATEGY_ISOLATE_EVERYTHING = 1;
   1133    field public static final int STRATEGY_ISOLATE_HIGH_VALUE = 2;
   1134    field public static final int STRATEGY_ISOLATE_NOTHING = 0;
   1135    field public static final int TRR_MODE_DISABLED = 5;
   1136    field public static final int TRR_MODE_FIRST = 2;
   1137    field public static final int TRR_MODE_OFF = 0;
   1138    field public static final int TRR_MODE_ONLY = 3;
   1139  }
   1140 
   1141  @AnyThread public static final class GeckoRuntimeSettings.Builder extends RuntimeSettings.Builder<GeckoRuntimeSettings> {
   1142    ctor public Builder();
   1143    method @NonNull public GeckoRuntimeSettings.Builder aboutConfigEnabled(boolean);
   1144    method @NonNull public GeckoRuntimeSettings.Builder allowInsecureConnections(int);
   1145    method @NonNull public GeckoRuntimeSettings.Builder appZygoteProcessEnabled(boolean);
   1146    method @NonNull public GeckoRuntimeSettings.Builder arguments(@NonNull String[]);
   1147    method @NonNull public GeckoRuntimeSettings.Builder automaticFontSizeAdjustment(boolean);
   1148    method @NonNull public GeckoRuntimeSettings.Builder configFilePath(@Nullable String);
   1149    method @NonNull public GeckoRuntimeSettings.Builder consoleOutput(boolean);
   1150    method @NonNull public GeckoRuntimeSettings.Builder contentBlocking(@NonNull ContentBlocking.Settings);
   1151    method @NonNull public GeckoRuntimeSettings.Builder crashHandler(@Nullable Class<? extends android.app.Service>);
   1152    method @NonNull public GeckoRuntimeSettings.Builder crashPullNeverShowAgain(boolean);
   1153    method @NonNull public GeckoRuntimeSettings.Builder debugLogging(boolean);
   1154    method @NonNull public GeckoRuntimeSettings.Builder defaultRecursiveResolverUri(@NonNull String);
   1155    method @NonNull public GeckoRuntimeSettings.Builder disableShip(boolean);
   1156    method @NonNull public GeckoRuntimeSettings.Builder displayDensityOverride(float);
   1157    method @NonNull public GeckoRuntimeSettings.Builder displayDpiOverride(int);
   1158    method @NonNull public GeckoRuntimeSettings.Builder doubleTapZoomingEnabled(boolean);
   1159    method @NonNull public GeckoRuntimeSettings.Builder enterpriseRootsEnabled(boolean);
   1160    method @AnyThread @NonNull public GeckoRuntimeSettings.Builder experimentDelegate(@Nullable ExperimentDelegate);
   1161    method @NonNull public GeckoRuntimeSettings.Builder extensionsProcessCrashThreshold(@NonNull Integer);
   1162    method @NonNull public GeckoRuntimeSettings.Builder extensionsProcessCrashTimeframe(@NonNull Long);
   1163    method @NonNull public GeckoRuntimeSettings.Builder extensionsProcessEnabled(boolean);
   1164    method @NonNull public GeckoRuntimeSettings.Builder extensionsWebAPIEnabled(boolean);
   1165    method @NonNull public GeckoRuntimeSettings.Builder extras(@NonNull Bundle);
   1166    method @NonNull public GeckoRuntimeSettings.Builder fissionEnabled(boolean);
   1167    method @NonNull public GeckoRuntimeSettings.Builder fontInflation(boolean);
   1168    method @NonNull public GeckoRuntimeSettings.Builder fontSizeFactor(float);
   1169    method @NonNull public GeckoRuntimeSettings.Builder forceUserScalableEnabled(boolean);
   1170    method @NonNull public GeckoRuntimeSettings.Builder glMsaaLevel(int);
   1171    method @NonNull public GeckoRuntimeSettings.Builder globalPrivacyControlEnabled(boolean);
   1172    method @NonNull public GeckoRuntimeSettings.Builder inputAutoZoomEnabled(boolean);
   1173    method @NonNull public GeckoRuntimeSettings.Builder isolatedProcessEnabled(boolean);
   1174    method @NonNull public GeckoRuntimeSettings.Builder javaScriptEnabled(boolean);
   1175    method @NonNull public GeckoRuntimeSettings.Builder largeKeepaliveFactor(int);
   1176    method @NonNull public GeckoRuntimeSettings.Builder locales(@Nullable String[]);
   1177    method @NonNull public GeckoRuntimeSettings.Builder loginAutofillEnabled(boolean);
   1178    method @NonNull public GeckoRuntimeSettings.Builder lowMemoryDetection(boolean);
   1179    method @NonNull public GeckoRuntimeSettings.Builder pauseForDebugger(boolean);
   1180    method @NonNull public GeckoRuntimeSettings.Builder preferredColorScheme(int);
   1181    method @NonNull public GeckoRuntimeSettings.Builder remoteDebuggingEnabled(boolean);
   1182    method @NonNull public GeckoRuntimeSettings.Builder screenSizeOverride(int, int);
   1183    method @NonNull public GeckoRuntimeSettings.Builder setLnaBlockTrackers(@NonNull Boolean);
   1184    method @NonNull public GeckoRuntimeSettings.Builder setLnaBlocking(@NonNull Boolean);
   1185    method @NonNull public GeckoRuntimeSettings.Builder setLnaEnabled(@NonNull Boolean);
   1186    method @NonNull public GeckoRuntimeSettings.Builder setSameDocumentNavigationOverridesLoadType(boolean);
   1187    method @NonNull public GeckoRuntimeSettings.Builder setSameDocumentNavigationOverridesLoadTypeForceDisable(@NonNull String);
   1188    method @NonNull public GeckoRuntimeSettings.Builder spoofEnglish(boolean);
   1189    method @NonNull public GeckoRuntimeSettings.Builder torSecurityLevel(int);
   1190    method @NonNull public GeckoRuntimeSettings.Builder translationsOfferPopup(boolean);
   1191    method @NonNull public GeckoRuntimeSettings.Builder trustedRecursiveResolverMode(int);
   1192    method @NonNull public GeckoRuntimeSettings.Builder trustedRecursiveResolverUri(@NonNull String);
   1193    method @NonNull public GeckoRuntimeSettings.Builder useMaxScreenDepth(boolean);
   1194    method @NonNull public GeckoRuntimeSettings.Builder webFontsEnabled(boolean);
   1195    method @NonNull public GeckoRuntimeSettings.Builder webManifest(boolean);
   1196    method @NonNull protected GeckoRuntimeSettings newSettings(@Nullable GeckoRuntimeSettings);
   1197  }
   1198 
   1199  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoRuntimeSettings.ColorScheme {
   1200  }
   1201 
   1202  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoRuntimeSettings.HttpsOnlyMode {
   1203  }
   1204 
   1205  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoRuntimeSettings.TrustedRecursiveResolverMode {
   1206  }
   1207 
   1208  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoRuntimeSettings.WebContentIsolationStrategy {
   1209  }
   1210 
   1211  public class GeckoSession {
   1212    ctor public GeckoSession();
   1213    ctor public GeckoSession(@Nullable GeckoSessionSettings);
   1214    method @NonNull @UiThread public GeckoDisplay acquireDisplay();
   1215    method @UiThread public void close();
   1216    method @AnyThread @NonNull public GeckoResult<Boolean> containsFormData();
   1217    method @AnyThread @NonNull public GeckoResult<Boolean> didPrintPageContent();
   1218    method @AnyThread public void exitFullScreen();
   1219    method @AnyThread public void flushSessionState();
   1220    method @NonNull @UiThread public SessionAccessibility getAccessibility();
   1221    method @Nullable @UiThread public Autofill.Delegate getAutofillDelegate();
   1222    method @NonNull @UiThread public Autofill.Session getAutofillSession();
   1223    method @UiThread public void getClientBounds(@NonNull RectF);
   1224    method @UiThread public void getClientToScreenMatrix(@NonNull Matrix);
   1225    method @UiThread public void getClientToSurfaceMatrix(@NonNull Matrix);
   1226    method @NonNull @UiThread public CompositorController getCompositorController();
   1227    method @Nullable @UiThread public GeckoSession.CompositorScrollDelegate getCompositorScrollDelegate();
   1228    method @AnyThread @Nullable public ContentBlocking.Delegate getContentBlockingDelegate();
   1229    method @Nullable @UiThread public GeckoSession.ContentDelegate getContentDelegate();
   1230    method @AnyThread @NonNull public static String getDefaultUserAgent();
   1231    method @AnyThread @Nullable public ExperimentDelegate getExperimentDelegate();
   1232    method @AnyThread @NonNull public SessionFinder getFinder();
   1233    method @AnyThread @Nullable public GeckoSession.HistoryDelegate getHistoryDelegate();
   1234    method @AnyThread @Nullable public GeckoSession.MediaDelegate getMediaDelegate();
   1235    method @AnyThread @Nullable public MediaSession.Delegate getMediaSessionDelegate();
   1236    method @Nullable @UiThread public GeckoSession.NavigationDelegate getNavigationDelegate();
   1237    method @NonNull @UiThread public OverscrollEdgeEffect getOverscrollEdgeEffect();
   1238    method @UiThread public void getPageToScreenMatrix(@NonNull Matrix);
   1239    method @UiThread public void getPageToSurfaceMatrix(@NonNull Matrix);
   1240    method @NonNull @UiThread public PanZoomController getPanZoomController();
   1241    method @AnyThread @NonNull public SessionPdfFileSaver getPdfFileSaver();
   1242    method @Nullable @UiThread public GeckoSession.PermissionDelegate getPermissionDelegate();
   1243    method @AnyThread @Nullable public GeckoSession.PrintDelegate getPrintDelegate();
   1244    method @Nullable @UiThread public GeckoSession.ProgressDelegate getProgressDelegate();
   1245    method @AnyThread @Nullable public GeckoSession.PromptDelegate getPromptDelegate();
   1246    method @Nullable @UiThread public GeckoSession.ScrollDelegate getScrollDelegate();
   1247    method @AnyThread @Nullable public GeckoSession.SelectionActionDelegate getSelectionActionDelegate();
   1248    method @AnyThread @Nullable public TranslationsController.SessionTranslation getSessionTranslation();
   1249    method @AnyThread @NonNull public GeckoSessionSettings getSettings();
   1250    method @UiThread public void getSurfaceBounds(@NonNull Rect);
   1251    method @AnyThread @NonNull public SessionTextInput getTextInput();
   1252    method @AnyThread @Nullable public TranslationsController.SessionTranslation.Delegate getTranslationsSessionDelegate();
   1253    method @AnyThread @NonNull public GeckoResult<String> getUserAgent();
   1254    method @AnyThread @NonNull public GeckoResult<JSONObject> getWebCompatInfo();
   1255    method @NonNull @UiThread public WebExtension.SessionController getWebExtensionController();
   1256    method @AnyThread public void goBack();
   1257    method @AnyThread public void goBack(boolean);
   1258    method @AnyThread public void goForward();
   1259    method @AnyThread public void goForward(boolean);
   1260    method @AnyThread public void gotoHistoryIndex(int);
   1261    method @AnyThread @NonNull public GeckoResult<Boolean> hasCookieBannerRuleForBrowsingContextTree();
   1262    method @UiThread public boolean isOpen();
   1263    method @AnyThread @NonNull public GeckoResult<Boolean> isPdfJs();
   1264    method @AnyThread public void load(@NonNull GeckoSession.Loader);
   1265    method @AnyThread public void loadUri(@NonNull String);
   1266    method @UiThread public void open(@NonNull GeckoRuntime);
   1267    method @AnyThread public void printPageContent();
   1268    method @AnyThread public void purgeHistory();
   1269    method @UiThread public void releaseDisplay(@NonNull GeckoDisplay);
   1270    method @AnyThread public void reload();
   1271    method @AnyThread public void reload(int);
   1272    method @AnyThread public void restoreState(@NonNull GeckoSession.SessionState);
   1273    method @AnyThread @NonNull public GeckoResult<InputStream> saveAsPdf();
   1274    method @AnyThread @NonNull public GeckoResult<Void> sendMoreWebCompatInfo(@NonNull JSONObject);
   1275    method @AnyThread public void setActive(boolean);
   1276    method @UiThread public void setAutofillDelegate(@Nullable Autofill.Delegate);
   1277    method @UiThread public void setCompositorScrollDelegate(@Nullable GeckoSession.CompositorScrollDelegate);
   1278    method @AnyThread public void setContentBlockingDelegate(@Nullable ContentBlocking.Delegate);
   1279    method @UiThread public void setContentDelegate(@Nullable GeckoSession.ContentDelegate);
   1280    method @AnyThread public void setExperimentDelegate(@Nullable ExperimentDelegate);
   1281    method @AnyThread public void setFocused(boolean);
   1282    method @AnyThread public void setHistoryDelegate(@Nullable GeckoSession.HistoryDelegate);
   1283    method @AnyThread public void setMediaDelegate(@Nullable GeckoSession.MediaDelegate);
   1284    method @AnyThread public void setMediaSessionDelegate(@Nullable MediaSession.Delegate);
   1285    method @UiThread public void setNavigationDelegate(@Nullable GeckoSession.NavigationDelegate);
   1286    method @UiThread public void setPermissionDelegate(@Nullable GeckoSession.PermissionDelegate);
   1287    method @AnyThread public void setPrintDelegate(@Nullable GeckoSession.PrintDelegate);
   1288    method @AnyThread public void setPriorityHint(int);
   1289    method @UiThread public void setProgressDelegate(@Nullable GeckoSession.ProgressDelegate);
   1290    method @AnyThread public void setPromptDelegate(@Nullable GeckoSession.PromptDelegate);
   1291    method @UiThread public void setScrollDelegate(@Nullable GeckoSession.ScrollDelegate);
   1292    method @UiThread public void setSelectionActionDelegate(@Nullable GeckoSession.SelectionActionDelegate);
   1293    method @AnyThread public void setTranslationsSessionDelegate(@Nullable TranslationsController.SessionTranslation.Delegate);
   1294    method @AnyThread public void stop();
   1295    method @UiThread protected void setShouldPinOnScreen(boolean);
   1296    field public static final int APP_LINK_LAUNCH_TYPE_COLD = 1;
   1297    field public static final int APP_LINK_LAUNCH_TYPE_HOT = 3;
   1298    field public static final int APP_LINK_LAUNCH_TYPE_UNKNOWN = 0;
   1299    field public static final int APP_LINK_LAUNCH_TYPE_WARM = 2;
   1300    field public static final int FINDER_DISPLAY_DIM_PAGE = 2;
   1301    field public static final int FINDER_DISPLAY_DRAW_LINK_OUTLINE = 4;
   1302    field public static final int FINDER_DISPLAY_HIGHLIGHT_ALL = 1;
   1303    field public static final int FINDER_FIND_BACKWARDS = 1;
   1304    field public static final int FINDER_FIND_FORWARD = 0;
   1305    field public static final int FINDER_FIND_LINKS_ONLY = 8;
   1306    field public static final int FINDER_FIND_MATCH_CASE = 2;
   1307    field public static final int FINDER_FIND_WHOLE_WORD = 4;
   1308    field public static final int HEADER_FILTER_CORS_SAFELISTED = 1;
   1309    field public static final int HEADER_FILTER_UNRESTRICTED_UNSAFE = 2;
   1310    field public static final int LOAD_FLAGS_ALLOW_POPUPS = 8;
   1311    field public static final int LOAD_FLAGS_BYPASS_CACHE = 1;
   1312    field public static final int LOAD_FLAGS_BYPASS_CLASSIFIER = 16;
   1313    field public static final int LOAD_FLAGS_BYPASS_LOAD_URI_DELEGATE = 128;
   1314    field public static final int LOAD_FLAGS_BYPASS_PROXY = 2;
   1315    field public static final int LOAD_FLAGS_EXTERNAL = 4;
   1316    field public static final int LOAD_FLAGS_FORCE_ALLOW_DATA_URI = 32;
   1317    field public static final int LOAD_FLAGS_NONE = 0;
   1318    field public static final int LOAD_FLAGS_REPLACE_HISTORY = 64;
   1319    field public static final int PRIORITY_DEFAULT = 0;
   1320    field public static final int PRIORITY_HIGH = 1;
   1321    field @Nullable protected GeckoSession.Window mWindow;
   1322  }
   1323 
   1324  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.AppLinkLaunchType {
   1325  }
   1326 
   1327  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.ClipboardPermissionType {
   1328  }
   1329 
   1330  public static interface GeckoSession.CompositorScrollDelegate {
   1331    method @UiThread default public void onScrollChanged(@NonNull GeckoSession, @NonNull GeckoSession.ScrollPositionUpdate);
   1332  }
   1333 
   1334  public static interface GeckoSession.ContentDelegate {
   1335    method @UiThread default public void onCloseRequest(@NonNull GeckoSession);
   1336    method @UiThread default public void onContextMenu(@NonNull GeckoSession, int, int, @NonNull GeckoSession.ContentDelegate.ContextElement);
   1337    method @AnyThread default public void onCookieBannerDetected(@NonNull GeckoSession);
   1338    method @AnyThread default public void onCookieBannerHandled(@NonNull GeckoSession);
   1339    method @UiThread default public void onCrash(@NonNull GeckoSession);
   1340    method @UiThread default public void onExternalResponse(@NonNull GeckoSession, @NonNull WebResponse);
   1341    method @UiThread default public void onFirstComposite(@NonNull GeckoSession);
   1342    method @UiThread default public void onFirstContentfulPaint(@NonNull GeckoSession);
   1343    method @UiThread default public void onFocusRequest(@NonNull GeckoSession);
   1344    method @UiThread default public void onFullScreen(@NonNull GeckoSession, boolean);
   1345    method @UiThread default public void onHideDynamicToolbar(@NonNull GeckoSession);
   1346    method @UiThread default public void onKill(@NonNull GeckoSession);
   1347    method @UiThread default public void onMetaViewportFitChange(@NonNull GeckoSession, @NonNull String);
   1348    method @UiThread default public void onPaintStatusReset(@NonNull GeckoSession);
   1349    method @UiThread default public void onPointerIconChange(@NonNull GeckoSession, @NonNull PointerIcon);
   1350    method @UiThread default public void onPreviewImage(@NonNull GeckoSession, @NonNull String);
   1351    method @UiThread default public void onShowDynamicToolbar(@NonNull GeckoSession);
   1352    method @Nullable @UiThread default public GeckoResult<SlowScriptResponse> onSlowScript(@NonNull GeckoSession, @NonNull String);
   1353    method @UiThread default public void onTitleChange(@NonNull GeckoSession, @Nullable String);
   1354    method @UiThread default public void onWebAppManifest(@NonNull GeckoSession, @NonNull JSONObject);
   1355  }
   1356 
   1357  public static class GeckoSession.ContentDelegate.ContextElement {
   1358    ctor protected ContextElement(@Nullable String, @Nullable String, @Nullable String, @Nullable String, @NonNull String, @Nullable String, @Nullable String, @Nullable String);
   1359    ctor @Deprecated @DeprecationSchedule(id="context-element-api-updates",version=151) protected ContextElement(@Nullable String, @Nullable String, @Nullable String, @Nullable String, @NonNull String, @Nullable String);
   1360    field public static final int TYPE_AUDIO = 3;
   1361    field public static final int TYPE_IMAGE = 1;
   1362    field public static final int TYPE_NONE = 0;
   1363    field public static final int TYPE_VIDEO = 2;
   1364    field @Nullable public final String altText;
   1365    field @Nullable public final String baseUri;
   1366    field @Nullable public final String linkText;
   1367    field @Nullable public final String linkUri;
   1368    field @Nullable public final String srcUri;
   1369    field @Deprecated @DeprecationSchedule(id="context-element-api-updates",version=151) @Nullable public final String textContent;
   1370    field @Nullable public final String title;
   1371    field public final int type;
   1372  }
   1373 
   1374  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.ContentDelegate.ContextElement.Type {
   1375  }
   1376 
   1377  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.FinderDisplayFlags {
   1378  }
   1379 
   1380  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.FinderFindFlags {
   1381  }
   1382 
   1383  @AnyThread public static class GeckoSession.FinderResult {
   1384    ctor protected FinderResult();
   1385    field @Nullable public final RectF clientRect;
   1386    field public final int current;
   1387    field public final int flags;
   1388    field public final boolean found;
   1389    field @Nullable public final String linkUri;
   1390    field @NonNull public final String searchString;
   1391    field public final int total;
   1392    field public final boolean wrapped;
   1393  }
   1394 
   1395  public static class GeckoSession.GeckoPrintException extends Exception {
   1396    ctor protected GeckoPrintException();
   1397    field public static final int ERROR_NO_ACTIVITY_CONTEXT = -5;
   1398    field public static final int ERROR_NO_ACTIVITY_CONTEXT_DELEGATE = -4;
   1399    field public static final int ERROR_NO_PRINT_DELEGATE = -6;
   1400    field public static final int ERROR_PRINT_SETTINGS_SERVICE_NOT_AVAILABLE = -1;
   1401    field public static final int ERROR_UNABLE_TO_CREATE_PRINT_SETTINGS = -2;
   1402    field public static final int ERROR_UNABLE_TO_RETRIEVE_CANONICAL_BROWSING_CONTEXT = -3;
   1403    field public final int code;
   1404  }
   1405 
   1406  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.GeckoPrintException.Codes {
   1407  }
   1408 
   1409  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.HeaderFilter {
   1410  }
   1411 
   1412  public static interface GeckoSession.HistoryDelegate {
   1413    method @Nullable @UiThread default public GeckoResult<boolean[]> getVisited(@NonNull GeckoSession, @NonNull String[]);
   1414    method @UiThread default public void onHistoryStateChange(@NonNull GeckoSession, @NonNull GeckoSession.HistoryDelegate.HistoryList);
   1415    method @Nullable @UiThread default public GeckoResult<Boolean> onVisited(@NonNull GeckoSession, @NonNull String, @Nullable String, int);
   1416    field public static final int VISIT_REDIRECT_PERMANENT = 4;
   1417    field public static final int VISIT_REDIRECT_SOURCE = 8;
   1418    field public static final int VISIT_REDIRECT_SOURCE_PERMANENT = 16;
   1419    field public static final int VISIT_REDIRECT_TEMPORARY = 2;
   1420    field public static final int VISIT_TOP_LEVEL = 1;
   1421    field public static final int VISIT_UNRECOVERABLE_ERROR = 32;
   1422  }
   1423 
   1424  public static interface GeckoSession.HistoryDelegate.HistoryItem {
   1425    method @AnyThread @NonNull default public String getTitle();
   1426    method @AnyThread @NonNull default public String getUri();
   1427  }
   1428 
   1429  public static interface GeckoSession.HistoryDelegate.HistoryList implements List<GeckoSession.HistoryDelegate.HistoryItem> {
   1430    method @AnyThread default public int getCurrentIndex();
   1431  }
   1432 
   1433  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.LoadFlags {
   1434  }
   1435 
   1436  @AnyThread public static class GeckoSession.Loader {
   1437    ctor public Loader();
   1438    method @NonNull public GeckoSession.Loader additionalHeaders(@NonNull Map<String,String>);
   1439    method @NonNull public GeckoSession.Loader appLinkLaunchType(int);
   1440    method @NonNull public GeckoSession.Loader data(@NonNull byte[], @Nullable String);
   1441    method @NonNull public GeckoSession.Loader data(@NonNull String, @Nullable String);
   1442    method @NonNull public GeckoSession.Loader flags(int);
   1443    method @NonNull public GeckoSession.Loader headerFilter(int);
   1444    method @NonNull public GeckoSession.Loader originalInput(@Nullable String);
   1445    method @NonNull public GeckoSession.Loader referrer(@NonNull GeckoSession);
   1446    method @NonNull public GeckoSession.Loader referrer(@NonNull Uri);
   1447    method @NonNull public GeckoSession.Loader referrer(@NonNull String);
   1448    method @NonNull public GeckoSession.Loader textDirectiveUserActivation(boolean);
   1449    method @NonNull public GeckoSession.Loader uri(@NonNull String);
   1450    method @NonNull public GeckoSession.Loader uri(@NonNull Uri);
   1451  }
   1452 
   1453  public static interface GeckoSession.MediaDelegate {
   1454    method @UiThread default public void onRecordingStatusChanged(@NonNull GeckoSession, @NonNull GeckoSession.MediaDelegate.RecordingDevice[]);
   1455  }
   1456 
   1457  public static class GeckoSession.MediaDelegate.RecordingDevice {
   1458    ctor protected RecordingDevice();
   1459    field public final long status;
   1460    field public final long type;
   1461  }
   1462 
   1463  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.MediaDelegate.RecordingDevice.DeviceType {
   1464  }
   1465 
   1466  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.MediaDelegate.RecordingDevice.RecordingStatus {
   1467  }
   1468 
   1469  public static class GeckoSession.MediaDelegate.RecordingDevice.Status {
   1470    ctor protected Status();
   1471    field public static final long INACTIVE = 1L;
   1472    field public static final long RECORDING = 0L;
   1473  }
   1474 
   1475  public static class GeckoSession.MediaDelegate.RecordingDevice.Type {
   1476    ctor protected Type();
   1477    field public static final long CAMERA = 0L;
   1478    field public static final long MICROPHONE = 1L;
   1479  }
   1480 
   1481  public static interface GeckoSession.NavigationDelegate {
   1482    method @UiThread default public void onCanGoBack(@NonNull GeckoSession, boolean);
   1483    method @UiThread default public void onCanGoForward(@NonNull GeckoSession, boolean);
   1484    method @Nullable @UiThread default public GeckoResult<String> onLoadError(@NonNull GeckoSession, @Nullable String, @NonNull WebRequestError);
   1485    method @Nullable @UiThread default public GeckoResult<AllowOrDeny> onLoadRequest(@NonNull GeckoSession, @NonNull GeckoSession.NavigationDelegate.LoadRequest);
   1486    method @UiThread default public void onLocationChange(@NonNull GeckoSession, @Nullable String, @NonNull List<GeckoSession.PermissionDelegate.ContentPermission>, @NonNull Boolean);
   1487    method @Nullable @UiThread default public GeckoResult<GeckoSession> onNewSession(@NonNull GeckoSession, @NonNull String);
   1488    method @Nullable @UiThread default public GeckoResult<AllowOrDeny> onSubframeLoadRequest(@NonNull GeckoSession, @NonNull GeckoSession.NavigationDelegate.LoadRequest);
   1489    field public static final int LOAD_REQUEST_IS_REDIRECT = 8388608;
   1490    field public static final int TARGET_WINDOW_CURRENT = 1;
   1491    field public static final int TARGET_WINDOW_NEW = 2;
   1492    field public static final int TARGET_WINDOW_NONE = 0;
   1493  }
   1494 
   1495  public static class GeckoSession.NavigationDelegate.LoadRequest {
   1496    ctor protected LoadRequest();
   1497    field public final boolean hasUserGesture;
   1498    field public final boolean isDirectNavigation;
   1499    field public final boolean isRedirect;
   1500    field public final int target;
   1501    field @Nullable public final String triggerUri;
   1502    field @NonNull public final String uri;
   1503  }
   1504 
   1505  @AnyThread public static class GeckoSession.PdfSaveResult {
   1506    ctor protected PdfSaveResult();
   1507    field @NonNull public final byte[] bytes;
   1508    field @NonNull public final String filename;
   1509    field public final boolean isPrivate;
   1510  }
   1511 
   1512  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.Permission {
   1513  }
   1514 
   1515  public static interface GeckoSession.PermissionDelegate {
   1516    method @UiThread default public void onAndroidPermissionsRequest(@NonNull GeckoSession, @Nullable String[], @NonNull GeckoSession.PermissionDelegate.Callback);
   1517    method @Nullable @UiThread default public GeckoResult<Integer> onContentPermissionRequest(@NonNull GeckoSession, @NonNull GeckoSession.PermissionDelegate.ContentPermission);
   1518    method @UiThread default public void onMediaPermissionRequest(@NonNull GeckoSession, @NonNull String, @Nullable GeckoSession.PermissionDelegate.MediaSource[], @Nullable GeckoSession.PermissionDelegate.MediaSource[], @NonNull GeckoSession.PermissionDelegate.MediaCallback);
   1519    field public static final int PERMISSION_AUTOPLAY_AUDIBLE = 5;
   1520    field public static final int PERMISSION_AUTOPLAY_INAUDIBLE = 4;
   1521    field public static final int PERMISSION_DESKTOP_NOTIFICATION = 1;
   1522    field public static final int PERMISSION_GEOLOCATION = 0;
   1523    field public static final int PERMISSION_LOCAL_DEVICE_ACCESS = 9;
   1524    field public static final int PERMISSION_LOCAL_NETWORK_ACCESS = 10;
   1525    field public static final int PERMISSION_MEDIA_KEY_SYSTEM_ACCESS = 6;
   1526    field public static final int PERMISSION_PERSISTENT_STORAGE = 2;
   1527    field public static final int PERMISSION_STORAGE_ACCESS = 8;
   1528    field public static final int PERMISSION_TRACKING = 7;
   1529    field public static final int PERMISSION_XR = 3;
   1530  }
   1531 
   1532  public static interface GeckoSession.PermissionDelegate.Callback {
   1533    method @UiThread default public void grant();
   1534    method @UiThread default public void reject();
   1535  }
   1536 
   1537  public static class GeckoSession.PermissionDelegate.ContentPermission {
   1538    ctor protected ContentPermission();
   1539    method @AnyThread @Nullable public static GeckoSession.PermissionDelegate.ContentPermission fromJson(@NonNull JSONObject);
   1540    method @AnyThread @NonNull public JSONObject toJson();
   1541    field public static final int VALUE_ALLOW = 1;
   1542    field public static final int VALUE_DENY = 2;
   1543    field public static final int VALUE_PROMPT = 3;
   1544    field @Nullable public final String contextId;
   1545    field public final int permission;
   1546    field public final boolean privateMode;
   1547    field @Nullable public final String thirdPartyOrigin;
   1548    field @NonNull public final String uri;
   1549    field public final int value;
   1550  }
   1551 
   1552  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PermissionDelegate.ContentPermission.Value {
   1553  }
   1554 
   1555  public static interface GeckoSession.PermissionDelegate.MediaCallback {
   1556    method @UiThread default public void grant(@Nullable String, @Nullable String);
   1557    method @UiThread default public void grant(@Nullable GeckoSession.PermissionDelegate.MediaSource, @Nullable GeckoSession.PermissionDelegate.MediaSource);
   1558    method @UiThread default public void reject();
   1559  }
   1560 
   1561  public static class GeckoSession.PermissionDelegate.MediaSource {
   1562    ctor protected MediaSource();
   1563    field public static final int SOURCE_AUDIOCAPTURE = 3;
   1564    field public static final int SOURCE_CAMERA = 0;
   1565    field public static final int SOURCE_MICROPHONE = 2;
   1566    field public static final int SOURCE_OTHER = 4;
   1567    field public static final int SOURCE_SCREEN = 1;
   1568    field public static final int TYPE_AUDIO = 1;
   1569    field public static final int TYPE_VIDEO = 0;
   1570    field @NonNull public final String id;
   1571    field @Nullable public final String name;
   1572    field public final int source;
   1573    field public final int type;
   1574  }
   1575 
   1576  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PermissionDelegate.MediaSource.Source {
   1577  }
   1578 
   1579  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PermissionDelegate.MediaSource.Type {
   1580  }
   1581 
   1582  @AnyThread public static interface GeckoSession.PrintDelegate {
   1583    method default public void onPrint(@NonNull GeckoSession);
   1584    method default public void onPrint(@NonNull InputStream);
   1585    method @Nullable default public GeckoResult<Boolean> onPrintWithStatus(@NonNull InputStream);
   1586  }
   1587 
   1588  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.Priority {
   1589  }
   1590 
   1591  public static interface GeckoSession.ProgressDelegate {
   1592    method @UiThread default public void onPageStart(@NonNull GeckoSession, @NonNull String);
   1593    method @UiThread default public void onPageStop(@NonNull GeckoSession, boolean);
   1594    method @UiThread default public void onProgressChange(@NonNull GeckoSession, int);
   1595    method @UiThread default public void onSecurityChange(@NonNull GeckoSession, @NonNull GeckoSession.ProgressDelegate.SecurityInformation);
   1596    method @UiThread default public void onSessionStateChange(@NonNull GeckoSession, @NonNull GeckoSession.SessionState);
   1597  }
   1598 
   1599  public static class GeckoSession.ProgressDelegate.SecurityInformation {
   1600    ctor protected SecurityInformation();
   1601    field public static final int CONTENT_BLOCKED = 1;
   1602    field public static final int CONTENT_LOADED = 2;
   1603    field public static final int CONTENT_UNKNOWN = 0;
   1604    field public static final int SECURITY_MODE_IDENTIFIED = 1;
   1605    field public static final int SECURITY_MODE_UNKNOWN = 0;
   1606    field public static final int SECURITY_MODE_VERIFIED = 2;
   1607    field @Nullable public final X509Certificate certificate;
   1608    field @NonNull public final String host;
   1609    field public final boolean isException;
   1610    field public final boolean isSecure;
   1611    field public final int mixedModeActive;
   1612    field public final int mixedModePassive;
   1613    field @Nullable public final String origin;
   1614    field public final int securityMode;
   1615  }
   1616 
   1617  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.ProgressDelegate.SecurityInformation.ContentType {
   1618  }
   1619 
   1620  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.ProgressDelegate.SecurityInformation.SecurityMode {
   1621  }
   1622 
   1623  public static interface GeckoSession.PromptDelegate {
   1624    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onAddressSave(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AutocompleteRequest<Autocomplete.AddressSaveOption>);
   1625    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onAddressSelect(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AutocompleteRequest<Autocomplete.AddressSelectOption>);
   1626    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onAlertPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AlertPrompt);
   1627    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onAuthPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AuthPrompt);
   1628    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onBeforeUnloadPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.BeforeUnloadPrompt);
   1629    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onButtonPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.ButtonPrompt);
   1630    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onChoicePrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.ChoicePrompt);
   1631    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onColorPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.ColorPrompt);
   1632    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onCreditCardSave(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AutocompleteRequest<Autocomplete.CreditCardSaveOption>);
   1633    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onCreditCardSelect(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AutocompleteRequest<Autocomplete.CreditCardSelectOption>);
   1634    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onDateTimePrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.DateTimePrompt);
   1635    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onFilePrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.FilePrompt);
   1636    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onFolderUploadPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.FolderUploadPrompt);
   1637    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onLoginSave(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AutocompleteRequest<Autocomplete.LoginSaveOption>);
   1638    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onLoginSelect(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AutocompleteRequest<Autocomplete.LoginSelectOption>);
   1639    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onPopupPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.PopupPrompt);
   1640    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onRedirectPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.RedirectPrompt);
   1641    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onRepostConfirmPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.RepostConfirmPrompt);
   1642    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onRequestCertificate(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.CertificateRequest);
   1643    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onSelectIdentityCredentialAccount(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt);
   1644    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onSelectIdentityCredentialProvider(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.IdentityCredential.ProviderSelectorPrompt);
   1645    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onSharePrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.SharePrompt);
   1646    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onShowPrivacyPolicyIdentityCredential(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.IdentityCredential.PrivacyPolicyPrompt);
   1647    method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onTextPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.TextPrompt);
   1648  }
   1649 
   1650  public static class GeckoSession.PromptDelegate.AlertPrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1651    ctor protected AlertPrompt(@NonNull String, @Nullable String, @Nullable String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
   1652    field @Nullable public final String message;
   1653  }
   1654 
   1655  public static class GeckoSession.PromptDelegate.AuthPrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1656    ctor protected AuthPrompt(@NonNull String, @Nullable String, @Nullable String, @NonNull GeckoSession.PromptDelegate.AuthPrompt.AuthOptions, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
   1657    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull String);
   1658    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull String, @NonNull String);
   1659    field @NonNull public final GeckoSession.PromptDelegate.AuthPrompt.AuthOptions authOptions;
   1660    field @Nullable public final String message;
   1661  }
   1662 
   1663  public static class GeckoSession.PromptDelegate.AuthPrompt.AuthOptions {
   1664    ctor protected AuthOptions();
   1665    field public final int flags;
   1666    field public final int level;
   1667    field @Nullable public final String password;
   1668    field @Nullable public final String uri;
   1669    field @Nullable public final String username;
   1670  }
   1671 
   1672  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PromptDelegate.AuthPrompt.AuthOptions.AuthFlag {
   1673  }
   1674 
   1675  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PromptDelegate.AuthPrompt.AuthOptions.AuthLevel {
   1676  }
   1677 
   1678  public static class GeckoSession.PromptDelegate.AuthPrompt.AuthOptions.Flags {
   1679    ctor protected Flags();
   1680    field public static final int CROSS_ORIGIN_SUB_RESOURCE = 32;
   1681    field public static final int HOST = 1;
   1682    field public static final int ONLY_PASSWORD = 8;
   1683    field public static final int PREVIOUS_FAILED = 16;
   1684    field public static final int PROXY = 2;
   1685  }
   1686 
   1687  public static class GeckoSession.PromptDelegate.AuthPrompt.AuthOptions.Level {
   1688    ctor protected Level();
   1689    field public static final int NONE = 0;
   1690    field public static final int PW_ENCRYPTED = 1;
   1691    field public static final int SECURE = 2;
   1692  }
   1693 
   1694  public static class GeckoSession.PromptDelegate.AutocompleteRequest<T extends Autocomplete.Option<?>> extends GeckoSession.PromptDelegate.BasePrompt {
   1695    ctor protected AutocompleteRequest(@NonNull String, @NonNull T[], GeckoSession.PromptDelegate.BasePrompt.Observer);
   1696    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull Autocomplete.Option<?>);
   1697    field @NonNull public final T[] options;
   1698  }
   1699 
   1700  public static class GeckoSession.PromptDelegate.BasePrompt {
   1701    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse dismiss();
   1702    method @Nullable @UiThread public GeckoSession.PromptDelegate.PromptInstanceDelegate getDelegate();
   1703    method @UiThread public boolean isComplete();
   1704    method @UiThread public void setDelegate(@Nullable GeckoSession.PromptDelegate.PromptInstanceDelegate);
   1705    method @NonNull @UiThread protected GeckoSession.PromptDelegate.PromptResponse confirm();
   1706    field @Nullable public final String title;
   1707  }
   1708 
   1709  protected static interface GeckoSession.PromptDelegate.BasePrompt.Observer {
   1710    method @AnyThread default public void onPromptCompleted(@NonNull GeckoSession.PromptDelegate.BasePrompt);
   1711  }
   1712 
   1713  public static class GeckoSession.PromptDelegate.BeforeUnloadPrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1714    ctor protected BeforeUnloadPrompt(@NonNull String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
   1715    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@Nullable AllowOrDeny);
   1716  }
   1717 
   1718  public static class GeckoSession.PromptDelegate.ButtonPrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1719    ctor protected ButtonPrompt(@NonNull String, @Nullable String, @Nullable String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
   1720    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(int);
   1721    field @Nullable public final String message;
   1722  }
   1723 
   1724  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PromptDelegate.ButtonPrompt.ButtonType {
   1725  }
   1726 
   1727  public static class GeckoSession.PromptDelegate.ButtonPrompt.Type {
   1728    ctor protected Type();
   1729    field public static final int NEGATIVE = 2;
   1730    field public static final int POSITIVE = 0;
   1731  }
   1732 
   1733  public static class GeckoSession.PromptDelegate.CertificateRequest extends GeckoSession.PromptDelegate.BasePrompt {
   1734    ctor protected CertificateRequest(@NonNull String, GeckoSession.PromptDelegate.BasePrompt.Observer, String, Principal[]);
   1735    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@Nullable String);
   1736    field @NonNull public final String host;
   1737    field @Nullable public final Principal[] issuers;
   1738  }
   1739 
   1740  public static class GeckoSession.PromptDelegate.ChoicePrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1741    ctor protected ChoicePrompt(@NonNull String, @Nullable String, @Nullable String, int, @NonNull GeckoSession.PromptDelegate.ChoicePrompt.Choice[], @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
   1742    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull String);
   1743    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull String[]);
   1744    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull GeckoSession.PromptDelegate.ChoicePrompt.Choice);
   1745    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull GeckoSession.PromptDelegate.ChoicePrompt.Choice[]);
   1746    field @NonNull public final GeckoSession.PromptDelegate.ChoicePrompt.Choice[] choices;
   1747    field @Nullable public final String message;
   1748    field public final int type;
   1749  }
   1750 
   1751  public static class GeckoSession.PromptDelegate.ChoicePrompt.Choice {
   1752    ctor protected Choice();
   1753    field public final boolean disabled;
   1754    field @Nullable public final String icon;
   1755    field @NonNull public final String id;
   1756    field @Nullable public final GeckoSession.PromptDelegate.ChoicePrompt.Choice[] items;
   1757    field @NonNull public final String label;
   1758    field public final boolean selected;
   1759    field public final boolean separator;
   1760  }
   1761 
   1762  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PromptDelegate.ChoicePrompt.ChoiceType {
   1763  }
   1764 
   1765  public static class GeckoSession.PromptDelegate.ChoicePrompt.Type {
   1766    ctor protected Type();
   1767    field public static final int MENU = 1;
   1768    field public static final int MULTIPLE = 3;
   1769    field public static final int SINGLE = 2;
   1770  }
   1771 
   1772  public static class GeckoSession.PromptDelegate.ColorPrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1773    ctor protected ColorPrompt(@NonNull String, @Nullable String, @Nullable String, @Nullable String[], @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
   1774    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull String);
   1775    field @Nullable public final String defaultValue;
   1776    field @Nullable public final String[] predefinedValues;
   1777  }
   1778 
   1779  public static class GeckoSession.PromptDelegate.DateTimePrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1780    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull String);
   1781    field @Nullable public final String defaultValue;
   1782    field @Nullable public final String maxValue;
   1783    field @Nullable public final String minValue;
   1784    field @Nullable public final String stepValue;
   1785    field public final int type;
   1786  }
   1787 
   1788  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PromptDelegate.DateTimePrompt.DatetimeType {
   1789  }
   1790 
   1791  public static class GeckoSession.PromptDelegate.DateTimePrompt.Type {
   1792    ctor protected Type();
   1793    field public static final int DATE = 1;
   1794    field public static final int DATETIME_LOCAL = 5;
   1795    field public static final int MONTH = 2;
   1796    field public static final int TIME = 4;
   1797    field public static final int WEEK = 3;
   1798  }
   1799 
   1800  public static class GeckoSession.PromptDelegate.FilePrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1801    ctor protected FilePrompt(@NonNull String, @Nullable String, int, int, @Nullable String[], @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
   1802    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull Context, @NonNull Uri);
   1803    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull Context, @NonNull Uri[]);
   1804    field public final int capture;
   1805    field @Nullable public final String[] mimeTypes;
   1806    field public final int type;
   1807  }
   1808 
   1809  public static class GeckoSession.PromptDelegate.FilePrompt.Capture {
   1810    ctor protected Capture();
   1811    field public static final int ANY = 1;
   1812    field public static final int ENVIRONMENT = 3;
   1813    field public static final int NONE = 0;
   1814    field public static final int USER = 2;
   1815  }
   1816 
   1817  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PromptDelegate.FilePrompt.CaptureType {
   1818  }
   1819 
   1820  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PromptDelegate.FilePrompt.FileType {
   1821  }
   1822 
   1823  public static class GeckoSession.PromptDelegate.FilePrompt.Type {
   1824    ctor protected Type();
   1825    field public static final int FOLDER = 3;
   1826    field public static final int MULTIPLE = 2;
   1827    field public static final int SINGLE = 1;
   1828  }
   1829 
   1830  public static class GeckoSession.PromptDelegate.FolderUploadPrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1831    ctor protected FolderUploadPrompt(@NonNull String, @Nullable String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
   1832    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@Nullable AllowOrDeny);
   1833    field @Nullable public final String directoryName;
   1834  }
   1835 
   1836  public static final class GeckoSession.PromptDelegate.IdentityCredential {
   1837    ctor public IdentityCredential();
   1838  }
   1839 
   1840  public static class GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1841    ctor public AccountSelectorPrompt(@NonNull String, @NonNull GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Account[], @NonNull GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Provider, GeckoSession.PromptDelegate.BasePrompt.Observer);
   1842    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull int);
   1843    field @NonNull public final GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Account[] accounts;
   1844    field @NonNull public final GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Provider provider;
   1845  }
   1846 
   1847  public static class GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Account {
   1848    ctor public Account(int, @NonNull String, @NonNull String, @Nullable String);
   1849    field @NonNull public final String email;
   1850    field @Nullable public final String icon;
   1851    field public final int id;
   1852    field @NonNull public final String name;
   1853  }
   1854 
   1855  public static class GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Provider {
   1856    ctor public Provider(@NonNull String, @NonNull String, @Nullable String);
   1857    field @NonNull public final String domain;
   1858    field @Nullable public final String icon;
   1859    field @NonNull public final String name;
   1860  }
   1861 
   1862  public static class GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.ProviderAccounts {
   1863    ctor public ProviderAccounts(int, @Nullable GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Provider, @NonNull GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Account[]);
   1864    field @NonNull public final GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Account[] accounts;
   1865    field public final int id;
   1866    field @Nullable public final GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Provider provider;
   1867  }
   1868 
   1869  public static class GeckoSession.PromptDelegate.IdentityCredential.PrivacyPolicyPrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1870    ctor protected PrivacyPolicyPrompt(@NonNull String, @NonNull String, @NonNull String, @NonNull String, @NonNull String, @Nullable String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
   1871    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(boolean);
   1872    field @NonNull public final String host;
   1873    field @Nullable public final String icon;
   1874    field @NonNull public final String privacyPolicyUrl;
   1875    field @NonNull public final String providerDomain;
   1876    field @NonNull public final String termsOfServiceUrl;
   1877  }
   1878 
   1879  public static class GeckoSession.PromptDelegate.IdentityCredential.ProviderSelectorPrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1880    ctor protected ProviderSelectorPrompt(@NonNull String, @NonNull GeckoSession.PromptDelegate.IdentityCredential.ProviderSelectorPrompt.Provider[], @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
   1881    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(int);
   1882    field @NonNull public final GeckoSession.PromptDelegate.IdentityCredential.ProviderSelectorPrompt.Provider[] providers;
   1883  }
   1884 
   1885  public static class GeckoSession.PromptDelegate.IdentityCredential.ProviderSelectorPrompt.Provider {
   1886    ctor public Provider(int, @NonNull String, @Nullable String, @NonNull String);
   1887    field @NonNull public final String domain;
   1888    field @Nullable public final String icon;
   1889    field public final int id;
   1890    field @NonNull public final String name;
   1891  }
   1892 
   1893  public static class GeckoSession.PromptDelegate.PopupPrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1894    ctor protected PopupPrompt(@NonNull String, @Nullable String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
   1895    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull AllowOrDeny);
   1896    field @Nullable public final String targetUri;
   1897  }
   1898 
   1899  public static interface GeckoSession.PromptDelegate.PromptInstanceDelegate {
   1900    method @UiThread default public void onPromptDismiss(@NonNull GeckoSession.PromptDelegate.BasePrompt);
   1901    method @UiThread default public void onPromptUpdate(@NonNull GeckoSession.PromptDelegate.BasePrompt);
   1902  }
   1903 
   1904  public static class GeckoSession.PromptDelegate.PromptResponse {
   1905  }
   1906 
   1907  public static class GeckoSession.PromptDelegate.RedirectPrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1908    ctor protected RedirectPrompt(@NonNull String, @Nullable String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
   1909    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull AllowOrDeny);
   1910    field @Nullable public final String targetUri;
   1911  }
   1912 
   1913  public static class GeckoSession.PromptDelegate.RepostConfirmPrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1914    ctor protected RepostConfirmPrompt(@NonNull String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
   1915    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@Nullable AllowOrDeny);
   1916  }
   1917 
   1918  public static class GeckoSession.PromptDelegate.SharePrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1919    ctor protected SharePrompt(@NonNull String, @Nullable String, @Nullable String, @Nullable String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
   1920    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(int);
   1921    field @Nullable public final String text;
   1922    field @Nullable public final String uri;
   1923  }
   1924 
   1925  public static class GeckoSession.PromptDelegate.SharePrompt.Result {
   1926    ctor protected Result();
   1927    field public static final int ABORT = 2;
   1928    field public static final int FAILURE = 1;
   1929    field public static final int SUCCESS = 0;
   1930  }
   1931 
   1932  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PromptDelegate.SharePrompt.ShareResult {
   1933  }
   1934 
   1935  public static class GeckoSession.PromptDelegate.TextPrompt extends GeckoSession.PromptDelegate.BasePrompt {
   1936    ctor protected TextPrompt(@NonNull String, @Nullable String, @Nullable String, @Nullable String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
   1937    method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull String);
   1938    field @Nullable public final String defaultValue;
   1939    field @Nullable public final String message;
   1940  }
   1941 
   1942  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.RestartReason {
   1943  }
   1944 
   1945  public static interface GeckoSession.ScrollDelegate {
   1946    method @UiThread default public void onScrollChanged(@NonNull GeckoSession, int, int);
   1947  }
   1948 
   1949  public class GeckoSession.ScrollPositionUpdate {
   1950    ctor public ScrollPositionUpdate();
   1951    field public static final int SOURCE_OTHER = 1;
   1952    field public static final int SOURCE_USER_INTERACTION = 0;
   1953    field public float scrollX;
   1954    field public float scrollY;
   1955    field public int source;
   1956    field public float zoom;
   1957  }
   1958 
   1959  public static interface GeckoSession.SelectionActionDelegate {
   1960    method @UiThread default public void onDismissClipboardPermissionRequest(@NonNull GeckoSession);
   1961    method @UiThread default public void onHideAction(@NonNull GeckoSession, int);
   1962    method @UiThread default public void onShowActionRequest(@NonNull GeckoSession, @NonNull GeckoSession.SelectionActionDelegate.Selection);
   1963    method @Nullable @UiThread default public GeckoResult<AllowOrDeny> onShowClipboardPermissionRequest(@NonNull GeckoSession, @NonNull GeckoSession.SelectionActionDelegate.ClipboardPermission);
   1964    field public static final String ACTION_COLLAPSE_TO_END = "org.mozilla.geckoview.COLLAPSE_TO_END";
   1965    field public static final String ACTION_COLLAPSE_TO_START = "org.mozilla.geckoview.COLLAPSE_TO_START";
   1966    field public static final String ACTION_COPY = "org.mozilla.geckoview.COPY";
   1967    field public static final String ACTION_CUT = "org.mozilla.geckoview.CUT";
   1968    field public static final String ACTION_DELETE = "org.mozilla.geckoview.DELETE";
   1969    field public static final String ACTION_HIDE = "org.mozilla.geckoview.HIDE";
   1970    field public static final String ACTION_PASTE = "org.mozilla.geckoview.PASTE";
   1971    field public static final String ACTION_PASTE_AS_PLAIN_TEXT = "org.mozilla.geckoview.PASTE_AS_PLAIN_TEXT";
   1972    field public static final String ACTION_SELECT_ALL = "org.mozilla.geckoview.SELECT_ALL";
   1973    field public static final String ACTION_UNSELECT = "org.mozilla.geckoview.UNSELECT";
   1974    field public static final int FLAG_IS_COLLAPSED = 1;
   1975    field public static final int FLAG_IS_EDITABLE = 2;
   1976    field public static final int FLAG_IS_PASSWORD = 4;
   1977    field public static final int HIDE_REASON_ACTIVE_SCROLL = 3;
   1978    field public static final int HIDE_REASON_ACTIVE_SELECTION = 2;
   1979    field public static final int HIDE_REASON_INVISIBLE_SELECTION = 1;
   1980    field public static final int HIDE_REASON_NO_SELECTION = 0;
   1981    field public static final int PERMISSION_CLIPBOARD_READ = 1;
   1982  }
   1983 
   1984  public static class GeckoSession.SelectionActionDelegate.ClipboardPermission {
   1985    ctor protected ClipboardPermission();
   1986    field @Nullable public final Point screenPoint;
   1987    field public final int type;
   1988    field @NonNull public final String uri;
   1989  }
   1990 
   1991  public static class GeckoSession.SelectionActionDelegate.Selection {
   1992    ctor protected Selection();
   1993    method @AnyThread public void collapseToEnd();
   1994    method @AnyThread public void collapseToStart();
   1995    method @AnyThread public void copy();
   1996    method @AnyThread public void cut();
   1997    method @AnyThread public void delete();
   1998    method @AnyThread public void execute(@NonNull String);
   1999    method @AnyThread public void hide();
   2000    method @AnyThread public boolean isActionAvailable(@NonNull String);
   2001    method @AnyThread public void paste();
   2002    method @AnyThread public void pasteAsPlainText();
   2003    method @AnyThread public void selectAll();
   2004    method @AnyThread public void unselect();
   2005    field @NonNull public final Collection<String> availableActions;
   2006    field public final int flags;
   2007    field @Nullable public final RectF screenRect;
   2008    field @NonNull public final String text;
   2009  }
   2010 
   2011  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.SelectionActionDelegateAction {
   2012  }
   2013 
   2014  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.SelectionActionDelegateFlag {
   2015  }
   2016 
   2017  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.SelectionActionDelegateHideReason {
   2018  }
   2019 
   2020  @AnyThread public static class GeckoSession.SessionState extends AbstractSequentialList<GeckoSession.HistoryDelegate.HistoryItem> implements Parcelable GeckoSession.HistoryDelegate.HistoryList {
   2021    ctor public SessionState(@NonNull GeckoSession.SessionState);
   2022    method @Nullable public static GeckoSession.SessionState fromString(@Nullable String);
   2023    method public void readFromParcel(@NonNull Parcel);
   2024    field public static final Parcelable.Creator<GeckoSession.SessionState> CREATOR;
   2025  }
   2026 
   2027  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.TargetWindow {
   2028  }
   2029 
   2030  public static interface GeckoSession.TextInputDelegate {
   2031    method @UiThread default public void hideSoftInput(@NonNull GeckoSession);
   2032    method @UiThread default public void restartInput(@NonNull GeckoSession, int);
   2033    method @UiThread default public void showSoftInput(@NonNull GeckoSession);
   2034    method @UiThread default public void updateCursorAnchorInfo(@NonNull GeckoSession, @NonNull CursorAnchorInfo);
   2035    method @UiThread default public void updateExtractedText(@NonNull GeckoSession, @NonNull ExtractedTextRequest, @NonNull ExtractedText);
   2036    method @UiThread default public void updateSelection(@NonNull GeckoSession, int, int, int, int);
   2037    field public static final int RESTART_REASON_BLUR = 1;
   2038    field public static final int RESTART_REASON_CONTENT_CHANGE = 2;
   2039    field public static final int RESTART_REASON_FOCUS = 0;
   2040  }
   2041 
   2042  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.VisitFlags {
   2043  }
   2044 
   2045  @AnyThread public static class GeckoSession.WebResponseInfo {
   2046    ctor protected WebResponseInfo();
   2047    field @Nullable public final long contentLength;
   2048    field @Nullable public final String contentType;
   2049    field @Nullable public final String filename;
   2050    field @NonNull public final String uri;
   2051  }
   2052 
   2053  @AnyThread public final class GeckoSessionSettings implements Parcelable {
   2054    ctor public GeckoSessionSettings();
   2055    ctor public GeckoSessionSettings(@NonNull GeckoSessionSettings);
   2056    method public boolean getAllowJavascript();
   2057    method @Nullable public String getChromeUri();
   2058    method @Nullable public String getContextId();
   2059    method public int getDisplayMode();
   2060    method public boolean getFullAccessibilityTree();
   2061    method public int getScreenId();
   2062    method public boolean getSuspendMediaWhenInactive();
   2063    method public boolean getUsePrivateMode();
   2064    method public boolean getUseTrackingProtection();
   2065    method public int getUserAgentMode();
   2066    method @Nullable public String getUserAgentOverride();
   2067    method public int getViewportMode();
   2068    method public void readFromParcel(@NonNull Parcel);
   2069    method public void setAllowJavascript(boolean);
   2070    method public void setDisplayMode(int);
   2071    method public void setFullAccessibilityTree(boolean);
   2072    method public void setSuspendMediaWhenInactive(boolean);
   2073    method public void setUseTrackingProtection(boolean);
   2074    method public void setUserAgentMode(int);
   2075    method public void setUserAgentOverride(@Nullable String);
   2076    method public void setViewportMode(int);
   2077    field public static final Parcelable.Creator<GeckoSessionSettings> CREATOR;
   2078    field public static final int DISPLAY_MODE_BROWSER = 0;
   2079    field public static final int DISPLAY_MODE_FULLSCREEN = 3;
   2080    field public static final int DISPLAY_MODE_MINIMAL_UI = 1;
   2081    field public static final int DISPLAY_MODE_STANDALONE = 2;
   2082    field public static final int USER_AGENT_MODE_DESKTOP = 1;
   2083    field public static final int USER_AGENT_MODE_MOBILE = 0;
   2084    field public static final int USER_AGENT_MODE_VR = 2;
   2085    field public static final int VIEWPORT_MODE_DESKTOP = 1;
   2086    field public static final int VIEWPORT_MODE_MOBILE = 0;
   2087  }
   2088 
   2089  @AnyThread public static final class GeckoSessionSettings.Builder {
   2090    ctor public Builder();
   2091    ctor public Builder(GeckoSessionSettings);
   2092    method @NonNull public GeckoSessionSettings.Builder allowJavascript(boolean);
   2093    method @NonNull public GeckoSessionSettings build();
   2094    method @NonNull public GeckoSessionSettings.Builder chromeUri(@NonNull String);
   2095    method @NonNull public GeckoSessionSettings.Builder contextId(@Nullable String);
   2096    method @NonNull public GeckoSessionSettings.Builder displayMode(int);
   2097    method @NonNull public GeckoSessionSettings.Builder fullAccessibilityTree(boolean);
   2098    method @NonNull public GeckoSessionSettings.Builder screenId(int);
   2099    method @NonNull public GeckoSessionSettings.Builder suspendMediaWhenInactive(boolean);
   2100    method @NonNull public GeckoSessionSettings.Builder usePrivateMode(boolean);
   2101    method @NonNull public GeckoSessionSettings.Builder useTrackingProtection(boolean);
   2102    method @NonNull public GeckoSessionSettings.Builder userAgentMode(int);
   2103    method @NonNull public GeckoSessionSettings.Builder userAgentOverride(@NonNull String);
   2104    method @NonNull public GeckoSessionSettings.Builder viewportMode(int);
   2105  }
   2106 
   2107  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSessionSettings.DisplayMode {
   2108  }
   2109 
   2110  public static class GeckoSessionSettings.Key<T> {
   2111  }
   2112 
   2113  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSessionSettings.UserAgentMode {
   2114  }
   2115 
   2116  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSessionSettings.ViewportMode {
   2117  }
   2118 
   2119  public class GeckoVRManager {
   2120    method @AnyThread public static synchronized void setExternalContext(long);
   2121  }
   2122 
   2123  @UiThread public class GeckoView extends FrameLayout implements GeckoDisplay.NewSurfaceProvider {
   2124    ctor public GeckoView(Context);
   2125    ctor public GeckoView(Context, AttributeSet);
   2126    method @UiThread public void addWindowInsetsListener(@NonNull String, @Nullable OnApplyWindowInsetsListener);
   2127    method @NonNull @UiThread public GeckoResult<Bitmap> capturePixels();
   2128    method public void coverUntilFirstPaint(int);
   2129    method public void dispatchDraw(@Nullable Canvas);
   2130    method @Nullable public GeckoView.ActivityContextDelegate getActivityContextDelegate();
   2131    method public boolean getAutofillEnabled();
   2132    method @NonNull public PanZoomController getPanZoomController();
   2133    method @Nullable public GeckoSession.PrintDelegate getPrintDelegate();
   2134    method public void getPrintDelegate(@Nullable GeckoSession.PrintDelegate);
   2135    method @AnyThread @Nullable public GeckoSession getSession();
   2136    method public void onAttachedToWindow();
   2137    method public void onDetachedFromWindow();
   2138    method @NonNull public GeckoResult<PanZoomController.InputResultDetail> onTouchEventForDetailResult(@NonNull MotionEvent);
   2139    method @Nullable @UiThread public GeckoSession releaseSession();
   2140    method @UiThread public void removeWindowInsetsListener(@NonNull String);
   2141    method public void setActivityContextDelegate(@Nullable GeckoView.ActivityContextDelegate);
   2142    method public void setAutofillEnabled(boolean);
   2143    method public void setDynamicToolbarMaxHeight(int);
   2144    method @UiThread public void setSession(@NonNull GeckoSession);
   2145    method public void setVerticalClipping(int);
   2146    method public void setViewBackend(int);
   2147    method public boolean shouldPinOnScreen();
   2148    field public static final int BACKEND_SURFACE_VIEW = 1;
   2149    field public static final int BACKEND_TEXTURE_VIEW = 2;
   2150    field @NonNull protected final GeckoView.Display mDisplay;
   2151    field @Nullable protected GeckoSession mSession;
   2152  }
   2153 
   2154  @AnyThread public static interface GeckoView.ActivityContextDelegate {
   2155    method @Nullable public Context getActivityContext();
   2156  }
   2157 
   2158  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoView.ViewBackend {
   2159  }
   2160 
   2161  public class GeckoViewPrintDocumentAdapter extends PrintDocumentAdapter {
   2162    ctor public GeckoViewPrintDocumentAdapter(@NonNull InputStream, @NonNull Context);
   2163    ctor public GeckoViewPrintDocumentAdapter(@NonNull InputStream, @NonNull Context, @Nullable GeckoResult<Boolean>);
   2164    ctor public GeckoViewPrintDocumentAdapter(@NonNull File);
   2165    method @AnyThread @Nullable public static File makeTempPdfFile(@NonNull InputStream, @NonNull Context);
   2166  }
   2167 
   2168  @AnyThread public class GeckoWebExecutor {
   2169    ctor public GeckoWebExecutor(@NonNull GeckoRuntime);
   2170    method @NonNull public GeckoResult<WebResponse> fetch(@NonNull WebRequest);
   2171    method @NonNull public GeckoResult<WebResponse> fetch(@NonNull WebRequest, int);
   2172    method @NonNull public GeckoResult<InetAddress[]> resolve(@NonNull String);
   2173    method public void speculativeConnect(@NonNull String);
   2174    field public static final int FETCH_FLAGS_ANONYMOUS = 1;
   2175    field public static final int FETCH_FLAGS_NONE = 0;
   2176    field public static final int FETCH_FLAGS_NO_REDIRECTS = 2;
   2177    field public static final int FETCH_FLAGS_OHTTP = 2048;
   2178    field public static final int FETCH_FLAGS_PRIVATE = 8;
   2179    field public static final int FETCH_FLAGS_STREAM_FAILURE_TEST = 1024;
   2180  }
   2181 
   2182  @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoWebExecutor.FetchFlags {
   2183  }
   2184 
   2185  @AnyThread public class Image {
   2186    method @NonNull public GeckoResult<Bitmap> getBitmap(int);
   2187  }
   2188 
   2189  public static class Image.ImageProcessingException extends RuntimeException {
   2190    ctor public ImageProcessingException(String);
   2191  }
   2192 
   2193  @UiThread public class MediaSession {
   2194    ctor protected MediaSession(GeckoSession);
   2195    method public boolean isActive();
   2196    method public void muteAudio(boolean);
   2197    method public void nextTrack();
   2198    method public void pause();
   2199    method public void play();
   2200    method public void previousTrack();
   2201    method public void seekBackward();
   2202    method public void seekForward();
   2203    method public void seekTo(double, boolean);
   2204    method public void skipAd();
   2205    method public void stop();
   2206  }
   2207 
   2208  @UiThread public static interface MediaSession.Delegate {
   2209    method default public void onActivated(@NonNull GeckoSession, @NonNull MediaSession);
   2210    method default public void onDeactivated(@NonNull GeckoSession, @NonNull MediaSession);
   2211    method default public void onFeatures(@NonNull GeckoSession, @NonNull MediaSession, long);
   2212    method default public void onFullscreen(@NonNull GeckoSession, @NonNull MediaSession, boolean, @Nullable MediaSession.ElementMetadata);
   2213    method default public void onMetadata(@NonNull GeckoSession, @NonNull MediaSession, @NonNull MediaSession.Metadata);
   2214    method default public void onPause(@NonNull GeckoSession, @NonNull MediaSession);
   2215    method default public void onPlay(@NonNull GeckoSession, @NonNull MediaSession);
   2216    method default public void onPositionState(@NonNull GeckoSession, @NonNull MediaSession, @NonNull MediaSession.PositionState);
   2217    method default public void onStop(@NonNull GeckoSession, @NonNull MediaSession);
   2218  }
   2219 
   2220  public static class MediaSession.ElementMetadata {
   2221    ctor public ElementMetadata(@Nullable String, double, long, long, int, int);
   2222    field public final int audioTrackCount;
   2223    field public final double duration;
   2224    field public final long height;
   2225    field @Nullable public final String source;
   2226    field public final int videoTrackCount;
   2227    field public final long width;
   2228  }
   2229 
   2230  public static class MediaSession.Feature {
   2231    ctor public Feature();
   2232    field public static final long FOCUS = 512L;
   2233    field public static final long NEXT_TRACK = 128L;
   2234    field public static final long NONE = 0L;
   2235    field public static final long PAUSE = 2L;
   2236    field public static final long PLAY = 1L;
   2237    field public static final long PREVIOUS_TRACK = 256L;
   2238    field public static final long SEEK_BACKWARD = 32L;
   2239    field public static final long SEEK_FORWARD = 16L;
   2240    field public static final long SEEK_TO = 8L;
   2241    field public static final long SKIP_AD = 64L;
   2242    field public static final long STOP = 4L;
   2243  }
   2244 
   2245  @Retention(value=RetentionPolicy.SOURCE) public static interface MediaSession.MSFeature {
   2246  }
   2247 
   2248  public static class MediaSession.Metadata {
   2249    ctor protected Metadata(@Nullable String, @Nullable String, @Nullable String, @Nullable Image);
   2250    field @Nullable public final String album;
   2251    field @Nullable public final String artist;
   2252    field @Nullable public final Image artwork;
   2253    field @Nullable public final String title;
   2254  }
   2255 
   2256  public static class MediaSession.PositionState {
   2257    ctor protected PositionState(double, double, double);
   2258    field public final double duration;
   2259    field public final double playbackRate;
   2260    field public final double position;
   2261  }
   2262 
   2263  public class OrientationController {
   2264    method @Nullable @UiThread public OrientationController.OrientationDelegate getDelegate();
   2265    method @UiThread public void setDelegate(@Nullable OrientationController.OrientationDelegate);
   2266  }
   2267 
   2268  @UiThread public static interface OrientationController.OrientationDelegate {
   2269    method @Nullable default public GeckoResult<AllowOrDeny> onOrientationLock(@NonNull int);
   2270    method @Nullable default public void onOrientationUnlock();
   2271  }
   2272 
   2273  @UiThread public final class OverscrollEdgeEffect {
   2274    method public void draw(@NonNull Canvas);
   2275    method @Nullable public Runnable getInvalidationCallback();
   2276    method public void setInvalidationCallback(@Nullable Runnable);
   2277    method public void setTheme(@NonNull Context);
   2278  }
   2279 
   2280  @UiThread public class PanZoomController {
   2281    ctor protected PanZoomController(GeckoSession);
   2282    method public float getScrollFactor();
   2283    method public boolean onDragEvent(@NonNull DragEvent);
   2284    method public void onMotionEvent(@NonNull MotionEvent);
   2285    method public void onMouseEvent(@NonNull MotionEvent);
   2286    method public void onTouchEvent(@NonNull MotionEvent);
   2287    method @NonNull public GeckoResult<PanZoomController.InputResultDetail> onTouchEventForDetailResult(@NonNull MotionEvent);
   2288    method @UiThread public void scrollBy(@NonNull ScreenLength, @NonNull ScreenLength);
   2289    method @UiThread public void scrollBy(@NonNull ScreenLength, @NonNull ScreenLength, int);
   2290    method @UiThread public void scrollTo(@NonNull ScreenLength, @NonNull ScreenLength);
   2291    method @UiThread public void scrollTo(@NonNull ScreenLength, @NonNull ScreenLength, int);
   2292    method @UiThread public void scrollToBottom();
   2293    method @UiThread public void scrollToTop();
   2294    method public void setIsLongpressEnabled(boolean);
   2295    method public void setScrollFactor(float);
   2296    field public static final int INPUT_RESULT_HANDLED = 1;
   2297    field public static final int INPUT_RESULT_HANDLED_CONTENT = 2;
   2298    field public static final int INPUT_RESULT_IGNORED = 3;
   2299    field public static final int INPUT_RESULT_UNHANDLED = 0;
   2300    field public static final int OVERSCROLL_FLAG_HORIZONTAL = 1;
   2301    field public static final int OVERSCROLL_FLAG_NONE = 0;
   2302    field public static final int OVERSCROLL_FLAG_VERTICAL = 2;
   2303    field public static final int SCROLLABLE_FLAG_BOTTOM = 4;
   2304    field public static final int SCROLLABLE_FLAG_LEFT = 8;
   2305    field public static final int SCROLLABLE_FLAG_NONE = 0;
   2306    field public static final int SCROLLABLE_FLAG_RIGHT = 2;
   2307    field public static final int SCROLLABLE_FLAG_TOP = 1;
   2308    field public static final int SCROLL_BEHAVIOR_AUTO = 1;
   2309    field public static final int SCROLL_BEHAVIOR_SMOOTH = 0;
   2310  }
   2311 
   2312  @Retention(value=RetentionPolicy.SOURCE) public static interface PanZoomController.InputResult {
   2313  }
   2314 
   2315  public static class PanZoomController.InputResultDetail {
   2316    ctor protected InputResultDetail(int, int, int);
   2317    method @AnyThread public int handledResult();
   2318    method @AnyThread public int overscrollDirections();
   2319    method @AnyThread public int scrollableDirections();
   2320  }
   2321 
   2322  @Retention(value=RetentionPolicy.SOURCE) public static interface PanZoomController.OverscrollDirections {
   2323  }
   2324 
   2325  @Retention(value=RetentionPolicy.SOURCE) public static interface PanZoomController.ScrollBehaviorType {
   2326  }
   2327 
   2328  @Retention(value=RetentionPolicy.SOURCE) public static interface PanZoomController.ScrollableDirections {
   2329  }
   2330 
   2331  @UiThread public class ProfilerController {
   2332    ctor public ProfilerController();
   2333    method public static void addMarker(@NonNull String, @Nullable Double, @Nullable Double, @Nullable String);
   2334    method public static void addMarker(@NonNull String, @Nullable Double, @Nullable String);
   2335    method public static void addMarker(@NonNull String, @Nullable Double);
   2336    method public static void addMarker(@NonNull String, @Nullable String);
   2337    method public static void addMarker(@NonNull String);
   2338    method @Nullable public static Double getProfilerTime();
   2339    method public static boolean isProfilerActive();
   2340    method public static void startProfiler(@NonNull String[], @NonNull String[]);
   2341    method @NonNull public static GeckoResult<byte[]> stopProfiler();
   2342  }
   2343 
   2344  public abstract class RuntimeSettings implements Parcelable {
   2345    ctor protected RuntimeSettings();
   2346    ctor protected RuntimeSettings(@Nullable RuntimeSettings);
   2347    method @AnyThread public void readFromParcel(@NonNull Parcel);
   2348    method @AnyThread protected void updatePrefs(@NonNull RuntimeSettings);
   2349  }
   2350 
   2351  public abstract static class RuntimeSettings.Builder<Settings extends RuntimeSettings> {
   2352    ctor public Builder();
   2353    method @AnyThread @NonNull public Settings build();
   2354    method @AnyThread @NonNull protected Settings getSettings();
   2355    method @AnyThread @NonNull protected abstract Settings newSettings(@Nullable Settings);
   2356  }
   2357 
   2358  public class ScreenLength {
   2359    method @AnyThread @NonNull public static ScreenLength bottom();
   2360    method @AnyThread @NonNull public static ScreenLength fromPixels(double);
   2361    method @AnyThread @NonNull public static ScreenLength fromVisualViewportHeight(double);
   2362    method @AnyThread @NonNull public static ScreenLength fromVisualViewportWidth(double);
   2363    method @AnyThread public int getType();
   2364    method @AnyThread public double getValue();
   2365    method @AnyThread @NonNull public static ScreenLength top();
   2366    method @AnyThread @NonNull public static ScreenLength zero();
   2367    field public static final int DOCUMENT_HEIGHT = 4;
   2368    field public static final int DOCUMENT_WIDTH = 3;
   2369    field public static final int PIXEL = 0;
   2370    field public static final int VISUAL_VIEWPORT_HEIGHT = 2;
   2371    field public static final int VISUAL_VIEWPORT_WIDTH = 1;
   2372  }
   2373 
   2374  @Retention(value=RetentionPolicy.SOURCE) public static interface ScreenLength.ScreenLengthType {
   2375  }
   2376 
   2377  @UiThread public class SessionAccessibility {
   2378    method @Nullable public View getView();
   2379    method public boolean onMotionEvent(@NonNull MotionEvent);
   2380    method @UiThread public void setView(@Nullable View);
   2381  }
   2382 
   2383  @AnyThread public final class SessionFinder {
   2384    method public void clear();
   2385    method @NonNull public GeckoResult<GeckoSession.FinderResult> find(@Nullable String, int);
   2386    method public int getDisplayFlags();
   2387    method public void setDisplayFlags(int);
   2388  }
   2389 
   2390  @AnyThread public final class SessionPdfFileSaver {
   2391    method @Nullable public static GeckoResult<WebResponse> createResponse(@NonNull GeckoSession, @NonNull String, @NonNull String, @NonNull String, boolean, boolean);
   2392    method @NonNull public GeckoResult<WebResponse> save();
   2393  }
   2394 
   2395  public final class SessionTextInput {
   2396    method @NonNull @UiThread public GeckoSession.TextInputDelegate getDelegate();
   2397    method @AnyThread @NonNull public synchronized Handler getHandler(@NonNull Handler);
   2398    method @Nullable @UiThread public View getView();
   2399    method @AnyThread @Nullable public synchronized InputConnection onCreateInputConnection(@NonNull EditorInfo);
   2400    method @UiThread public boolean onKeyDown(int, @NonNull KeyEvent);
   2401    method @UiThread public boolean onKeyLongPress(int, @NonNull KeyEvent);
   2402    method @UiThread public boolean onKeyMultiple(int, int, @NonNull KeyEvent);
   2403    method @UiThread public boolean onKeyPreIme(int, @NonNull KeyEvent);
   2404    method @UiThread public boolean onKeyUp(int, @NonNull KeyEvent);
   2405    method @UiThread public void setDelegate(@Nullable GeckoSession.TextInputDelegate);
   2406    method @UiThread public synchronized void setView(@Nullable View);
   2407  }
   2408 
   2409  @AnyThread public final enum SlowScriptResponse {
   2410    method public static SlowScriptResponse valueOf(String);
   2411    method public static SlowScriptResponse[] values();
   2412    enum_constant public static final SlowScriptResponse CONTINUE;
   2413    enum_constant public static final SlowScriptResponse STOP;
   2414  }
   2415 
   2416  public final class StorageController {
   2417    ctor public StorageController();
   2418    method @AnyThread @NonNull public GeckoResult<Void> clearData(long);
   2419    method @AnyThread public void clearDataForSessionContext(@NonNull String);
   2420    method @AnyThread @NonNull public GeckoResult<Void> clearDataFromBaseDomain(@NonNull String, long);
   2421    method @AnyThread @NonNull public GeckoResult<Void> clearDataFromHost(@NonNull String, long);
   2422    method @AnyThread @NonNull public GeckoResult<List<GeckoSession.PermissionDelegate.ContentPermission>> getAllPermissions();
   2423    method @AnyThread @NonNull public GeckoResult<Integer> getCookieBannerModeForDomain(@NonNull String, boolean);
   2424    method @AnyThread @NonNull public GeckoResult<List<GeckoSession.PermissionDelegate.ContentPermission>> getPermissions(@NonNull String);
   2425    method @AnyThread @NonNull public GeckoResult<List<GeckoSession.PermissionDelegate.ContentPermission>> getPermissions(@NonNull String, boolean);
   2426    method @AnyThread @NonNull public GeckoResult<List<GeckoSession.PermissionDelegate.ContentPermission>> getPermissions(@NonNull String, @Nullable String, boolean);
   2427    method @AnyThread @NonNull public GeckoResult<Void> removeCookieBannerModeForDomain(@NonNull String, boolean);
   2428    method @AnyThread @NonNull public GeckoResult<Void> setCookieBannerModeAndPersistInPrivateBrowsingForDomain(@NonNull String, int);
   2429    method @AnyThread @NonNull public GeckoResult<Void> setCookieBannerModeForDomain(@NonNull String, int, boolean);
   2430    method @AnyThread public void setPermission(@NonNull GeckoSession.PermissionDelegate.ContentPermission, int);
   2431    method @AnyThread public void setPrivateBrowsingPermanentPermission(@NonNull GeckoSession.PermissionDelegate.ContentPermission, int);
   2432  }
   2433 
   2434  public static class StorageController.ClearFlags {
   2435    ctor public ClearFlags();
   2436    field public static final long ALL = 512L;
   2437    field public static final long ALL_CACHES = 6L;
   2438    field public static final long AUTH_SESSIONS = 32L;
   2439    field public static final long COOKIES = 1L;
   2440    field public static final long DOM_STORAGES = 16L;
   2441    field public static final long IMAGE_CACHE = 4L;
   2442    field public static final long NETWORK_CACHE = 2L;
   2443    field public static final long PERMISSIONS = 64L;
   2444    field public static final long SITE_DATA = 471L;
   2445    field public static final long SITE_SETTINGS = 192L;
   2446  }
   2447 
   2448  @Retention(value=RetentionPolicy.SOURCE) public static interface StorageController.StorageControllerClearFlags {
   2449  }
   2450 
   2451  public class TranslationsController {
   2452    ctor public TranslationsController();
   2453  }
   2454 
   2455  public static class TranslationsController.Language implements Comparable<TranslationsController.Language> {
   2456    ctor public Language(@NonNull String, @Nullable String);
   2457    method @AnyThread public int compareTo(@Nullable TranslationsController.Language);
   2458    field @NonNull public final String code;
   2459    field @Nullable public final String localizedDisplayName;
   2460  }
   2461 
   2462  public static class TranslationsController.RuntimeTranslation {
   2463    ctor public RuntimeTranslation();
   2464    method @AnyThread @NonNull public static GeckoResult<Long> checkPairDownloadSize(@NonNull String, @NonNull String);
   2465    method @AnyThread @NonNull public static GeckoResult<Long> checkPairDownloadSize(@NonNull TranslationsController.SessionTranslation.TranslationPair);
   2466    method @AnyThread @NonNull public static GeckoResult<String> getLanguageSetting(@NonNull String);
   2467    method @AnyThread @NonNull public static GeckoResult<Map<String,String>> getLanguageSettings();
   2468    method @AnyThread @NonNull public static GeckoResult<List<String>> getNeverTranslateSiteList();
   2469    method @AnyThread @NonNull public static GeckoResult<Boolean> isTranslationsEngineSupported();
   2470    method @AnyThread @NonNull public static GeckoResult<List<TranslationsController.RuntimeTranslation.LanguageModel>> listModelDownloadStates();
   2471    method @AnyThread @NonNull public static GeckoResult<TranslationsController.RuntimeTranslation.TranslationSupport> listSupportedLanguages();
   2472    method @AnyThread @NonNull public static GeckoResult<Void> manageLanguageModel(@NonNull TranslationsController.RuntimeTranslation.ModelManagementOptions);
   2473    method @AnyThread @NonNull public static GeckoResult<List<String>> preferredLanguages();
   2474    method @AnyThread @NonNull public static GeckoResult<Void> setLanguageSettings(@NonNull String, @NonNull String);
   2475    method @AnyThread @NonNull public static GeckoResult<Void> setNeverTranslateSpecifiedSite(@NonNull Boolean, @NonNull String);
   2476    field public static final String ALL = "all";
   2477    field public static final String ALWAYS = "always";
   2478    field public static final String CACHE = "cache";
   2479    field public static final String DELETE = "delete";
   2480    field public static final String DOWNLOAD = "download";
   2481    field public static final String LANGUAGE = "language";
   2482    field public static final String NEVER = "never";
   2483    field public static final String OFFER = "offer";
   2484  }
   2485 
   2486  public static class TranslationsController.RuntimeTranslation.LanguageModel {
   2487    ctor public LanguageModel(@Nullable TranslationsController.Language, Boolean, long);
   2488    field @NonNull public final Boolean isDownloaded;
   2489    field @Nullable public final TranslationsController.Language language;
   2490    field public final long size;
   2491  }
   2492 
   2493  @Retention(value=RetentionPolicy.SOURCE) public static interface TranslationsController.RuntimeTranslation.LanguageSetting {
   2494  }
   2495 
   2496  @AnyThread public static class TranslationsController.RuntimeTranslation.ModelManagementOptions {
   2497    ctor protected ModelManagementOptions(@NonNull TranslationsController.RuntimeTranslation.ModelManagementOptions.Builder);
   2498    field @Nullable public final String language;
   2499    field @NonNull public final String operation;
   2500    field @NonNull public final String operationLevel;
   2501  }
   2502 
   2503  @AnyThread public static class TranslationsController.RuntimeTranslation.ModelManagementOptions.Builder {
   2504    ctor public Builder();
   2505    method @AnyThread @NonNull public TranslationsController.RuntimeTranslation.ModelManagementOptions build();
   2506    method @NonNull public TranslationsController.RuntimeTranslation.ModelManagementOptions.Builder languageToManage(@NonNull String);
   2507    method @NonNull public TranslationsController.RuntimeTranslation.ModelManagementOptions.Builder operation(@NonNull String);
   2508    method @NonNull public TranslationsController.RuntimeTranslation.ModelManagementOptions.Builder operationLevel(@NonNull String);
   2509  }
   2510 
   2511  @Retention(value=RetentionPolicy.SOURCE) public static interface TranslationsController.RuntimeTranslation.ModelOperation {
   2512  }
   2513 
   2514  @Retention(value=RetentionPolicy.SOURCE) public static interface TranslationsController.RuntimeTranslation.OperationLevel {
   2515  }
   2516 
   2517  public static class TranslationsController.RuntimeTranslation.TranslationSupport {
   2518    ctor public TranslationSupport(@Nullable List<TranslationsController.Language>, @Nullable List<TranslationsController.Language>);
   2519    field @Nullable public final List<TranslationsController.Language> fromLanguages;
   2520    field @Nullable public final List<TranslationsController.Language> toLanguages;
   2521  }
   2522 
   2523  public static class TranslationsController.SessionTranslation {
   2524    ctor public SessionTranslation(GeckoSession);
   2525    method @AnyThread @NonNull public TranslationsController.SessionTranslation.Handler getHandler();
   2526    method @AnyThread @NonNull public GeckoResult<Boolean> getNeverTranslateSiteSetting();
   2527    method @AnyThread @NonNull public GeckoResult<Void> restoreOriginalPage();
   2528    method @AnyThread @NonNull public GeckoResult<Void> setNeverTranslateSiteSetting(@NonNull Boolean);
   2529    method @AnyThread @NonNull public GeckoResult<Void> translate(@NonNull String, @NonNull String, @Nullable TranslationsController.SessionTranslation.TranslationOptions);
   2530    method @AnyThread @NonNull public GeckoResult<Void> translate(@NonNull TranslationsController.SessionTranslation.TranslationPair, @Nullable TranslationsController.SessionTranslation.TranslationOptions);
   2531  }
   2532 
   2533  @AnyThread public static interface TranslationsController.SessionTranslation.Delegate {
   2534    method default public void onExpectedTranslate(@NonNull GeckoSession);
   2535    method default public void onOfferTranslate(@NonNull GeckoSession);
   2536    method default public void onTranslationStateChange(@NonNull GeckoSession, @Nullable TranslationsController.SessionTranslation.TranslationState);
   2537  }
   2538 
   2539  public static class TranslationsController.SessionTranslation.DetectedLanguages {
   2540    ctor public DetectedLanguages(@Nullable String, @NonNull Boolean, @Nullable String);
   2541    field @Nullable public final String docLangTag;
   2542    field @NonNull public final Boolean isDocLangTagSupported;
   2543    field @Nullable public final String userLangTag;
   2544  }
   2545 
   2546  @AnyThread public static class TranslationsController.SessionTranslation.TranslationOptions {
   2547    ctor protected TranslationOptions(@NonNull TranslationsController.SessionTranslation.TranslationOptions.Builder);
   2548    field @NonNull public final boolean downloadModel;
   2549  }
   2550 
   2551  @AnyThread public static class TranslationsController.SessionTranslation.TranslationOptions.Builder {
   2552    ctor public Builder();
   2553    method @AnyThread @NonNull public TranslationsController.SessionTranslation.TranslationOptions build();
   2554    method @NonNull public TranslationsController.SessionTranslation.TranslationOptions.Builder downloadModel(@NonNull boolean);
   2555  }
   2556 
   2557  public static class TranslationsController.SessionTranslation.TranslationPair {
   2558    ctor public TranslationPair(@Nullable String, @Nullable String);
   2559    field @Nullable public final String fromLanguage;
   2560    field @Nullable public final String toLanguage;
   2561  }
   2562 
   2563  public static class TranslationsController.SessionTranslation.TranslationState {
   2564    ctor public TranslationState(@Nullable TranslationsController.SessionTranslation.TranslationPair, @Nullable String, @Nullable TranslationsController.SessionTranslation.DetectedLanguages, @NonNull Boolean, @NonNull Boolean);
   2565    field @Nullable public final TranslationsController.SessionTranslation.DetectedLanguages detectedLanguages;
   2566    field @Nullable public final String error;
   2567    field @NonNull public final Boolean hasVisibleChange;
   2568    field @NonNull public final Boolean isEngineReady;
   2569    field @Nullable public final TranslationsController.SessionTranslation.TranslationPair requestedTranslationPair;
   2570  }
   2571 
   2572  public static class TranslationsController.TranslationsException extends Exception {
   2573    ctor public TranslationsException(int);
   2574    field public static final int ERROR_COULD_NOT_LOAD_LANGUAGES = -5;
   2575    field public static final int ERROR_COULD_NOT_RESTORE = -4;
   2576    field public static final int ERROR_COULD_NOT_TRANSLATE = -3;
   2577    field public static final int ERROR_ENGINE_NOT_SUPPORTED = -2;
   2578    field public static final int ERROR_LANGUAGE_NOT_SUPPORTED = -6;
   2579    field public static final int ERROR_MODEL_COULD_NOT_DELETE = -8;
   2580    field public static final int ERROR_MODEL_COULD_NOT_DOWNLOAD = -9;
   2581    field public static final int ERROR_MODEL_COULD_NOT_RETRIEVE = -7;
   2582    field public static final int ERROR_MODEL_DOWNLOAD_REQUIRED = -11;
   2583    field public static final int ERROR_MODEL_LANGUAGE_REQUIRED = -10;
   2584    field public static final int ERROR_UNKNOWN = -1;
   2585    field public final int code;
   2586  }
   2587 
   2588  @Retention(value=RetentionPolicy.SOURCE) public static interface TranslationsController.TranslationsException.Code {
   2589  }
   2590 
   2591  public class WebExtension {
   2592    method @Nullable @UiThread public WebExtension.BrowsingDataDelegate getBrowsingDataDelegate();
   2593    method @Nullable @UiThread public WebExtension.DownloadDelegate getDownloadDelegate();
   2594    method @Nullable @UiThread public WebExtension.TabDelegate getTabDelegate();
   2595    method @AnyThread public void setActionDelegate(@Nullable WebExtension.ActionDelegate);
   2596    method @UiThread public void setBrowsingDataDelegate(@Nullable WebExtension.BrowsingDataDelegate);
   2597    method @UiThread public void setDownloadDelegate(@Nullable WebExtension.DownloadDelegate);
   2598    method @UiThread public void setMessageDelegate(@Nullable WebExtension.MessageDelegate, @NonNull String);
   2599    method @UiThread public void setTabDelegate(@Nullable WebExtension.TabDelegate);
   2600    field public static final List<String> DATA_COLLECTION_PERMISSIONS;
   2601    field public final long flags;
   2602    field @NonNull public final String id;
   2603    field public final boolean isBuiltIn;
   2604    field @NonNull public final String location;
   2605    field @NonNull public final WebExtension.MetaData metaData;
   2606  }
   2607 
   2608  @AnyThread public static class WebExtension.Action {
   2609    ctor protected Action();
   2610    method @UiThread public void click();
   2611    method @NonNull public WebExtension.Action withDefault(@NonNull WebExtension.Action);
   2612    field @Nullable public final Integer badgeBackgroundColor;
   2613    field @Nullable public final String badgeText;
   2614    field @Nullable public final Integer badgeTextColor;
   2615    field @Nullable public final Boolean enabled;
   2616    field @Nullable public final Image icon;
   2617    field @Nullable public final String title;
   2618  }
   2619 
   2620  @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.Action.ActionType {
   2621  }
   2622 
   2623  public static interface WebExtension.ActionDelegate {
   2624    method @UiThread default public void onBrowserAction(@NonNull WebExtension, @Nullable GeckoSession, @NonNull WebExtension.Action);
   2625    method @Nullable @UiThread default public GeckoResult<GeckoSession> onOpenPopup(@NonNull WebExtension, @NonNull WebExtension.Action);
   2626    method @UiThread default public void onPageAction(@NonNull WebExtension, @Nullable GeckoSession, @NonNull WebExtension.Action);
   2627    method @Nullable @UiThread default public GeckoResult<GeckoSession> onTogglePopup(@NonNull WebExtension, @NonNull WebExtension.Action);
   2628  }
   2629 
   2630  @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.BlocklistState {
   2631  }
   2632 
   2633  public static class WebExtension.BlocklistStateFlags {
   2634    ctor public BlocklistStateFlags();
   2635    field public static final int BLOCKED = 2;
   2636    field public static final int NOT_BLOCKED = 0;
   2637    field public static final int OUTDATED = 3;
   2638    field public static final int SOFTBLOCKED = 1;
   2639    field public static final int VULNERABLE_NO_UPDATE = 5;
   2640    field public static final int VULNERABLE_UPDATE_AVAILABLE = 4;
   2641  }
   2642 
   2643  @UiThread public static interface WebExtension.BrowsingDataDelegate {
   2644    method @Nullable default public GeckoResult<Void> onClearDownloads(long);
   2645    method @Nullable default public GeckoResult<Void> onClearFormData(long);
   2646    method @Nullable default public GeckoResult<Void> onClearHistory(long);
   2647    method @Nullable default public GeckoResult<Void> onClearPasswords(long);
   2648    method @Nullable default public GeckoResult<WebExtension.BrowsingDataDelegate.Settings> onGetSettings();
   2649  }
   2650 
   2651  @UiThread public static class WebExtension.BrowsingDataDelegate.Settings {
   2652    ctor @UiThread public Settings(int, long, long);
   2653    field public final long selectedTypes;
   2654    field public final int sinceUnixTimestamp;
   2655    field public final long toggleableTypes;
   2656  }
   2657 
   2658  public static class WebExtension.BrowsingDataDelegate.Type {
   2659    ctor protected Type();
   2660    field public static final long CACHE = 1L;
   2661    field public static final long COOKIES = 2L;
   2662    field public static final long DOWNLOADS = 4L;
   2663    field public static final long FORM_DATA = 8L;
   2664    field public static final long HISTORY = 16L;
   2665    field public static final long LOCAL_STORAGE = 32L;
   2666    field public static final long PASSWORDS = 64L;
   2667  }
   2668 
   2669  @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.BrowsingDataTypes {
   2670  }
   2671 
   2672  @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.ContextFlags {
   2673  }
   2674 
   2675  public static class WebExtension.CreateTabDetails {
   2676    ctor protected CreateTabDetails();
   2677    field @Nullable public final Boolean active;
   2678    field @Nullable public final String cookieStoreId;
   2679    field @Nullable public final Boolean discarded;
   2680    field @Nullable public final Integer index;
   2681    field @Nullable public final Boolean openInReaderMode;
   2682    field @Nullable public final Boolean pinned;
   2683    field @Nullable public final String url;
   2684  }
   2685 
   2686  public static class WebExtension.DisabledFlags {
   2687    ctor public DisabledFlags();
   2688    field public static final int APP = 8;
   2689    field public static final int APP_VERSION = 32;
   2690    field public static final int BLOCKLIST = 4;
   2691    field public static final int SIGNATURE = 16;
   2692    field public static final int SOFT_BLOCKLIST = 64;
   2693    field public static final int USER = 2;
   2694  }
   2695 
   2696  public static class WebExtension.Download {
   2697    ctor protected Download(int);
   2698    method @Nullable @UiThread public GeckoResult<Void> update(@NonNull WebExtension.Download.Info);
   2699    field public static final int INTERRUPT_REASON_CRASH = 24;
   2700    field public static final int INTERRUPT_REASON_FILE_ACCESS_DENIED = 2;
   2701    field public static final int INTERRUPT_REASON_FILE_BLOCKED = 8;
   2702    field public static final int INTERRUPT_REASON_FILE_FAILED = 1;
   2703    field public static final int INTERRUPT_REASON_FILE_NAME_TOO_LONG = 4;
   2704    field public static final int INTERRUPT_REASON_FILE_NO_SPACE = 3;
   2705    field public static final int INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED = 9;
   2706    field public static final int INTERRUPT_REASON_FILE_TOO_LARGE = 5;
   2707    field public static final int INTERRUPT_REASON_FILE_TOO_SHORT = 10;
   2708    field public static final int INTERRUPT_REASON_FILE_TRANSIENT_ERROR = 7;
   2709    field public static final int INTERRUPT_REASON_FILE_VIRUS_INFECTED = 6;
   2710    field public static final int INTERRUPT_REASON_NETWORK_DISCONNECTED = 13;
   2711    field public static final int INTERRUPT_REASON_NETWORK_FAILED = 11;
   2712    field public static final int INTERRUPT_REASON_NETWORK_INVALID_REQUEST = 15;
   2713    field public static final int INTERRUPT_REASON_NETWORK_SERVER_DOWN = 14;
   2714    field public static final int INTERRUPT_REASON_NETWORK_TIMEOUT = 12;
   2715    field public static final int INTERRUPT_REASON_NO_INTERRUPT = 0;
   2716    field public static final int INTERRUPT_REASON_SERVER_BAD_CONTENT = 18;
   2717    field public static final int INTERRUPT_REASON_SERVER_CERT_PROBLEM = 20;
   2718    field public static final int INTERRUPT_REASON_SERVER_FAILED = 16;
   2719    field public static final int INTERRUPT_REASON_SERVER_FORBIDDEN = 21;
   2720    field public static final int INTERRUPT_REASON_SERVER_NO_RANGE = 17;
   2721    field public static final int INTERRUPT_REASON_SERVER_UNAUTHORIZED = 19;
   2722    field public static final int INTERRUPT_REASON_USER_CANCELED = 22;
   2723    field public static final int INTERRUPT_REASON_USER_SHUTDOWN = 23;
   2724    field public static final int STATE_COMPLETE = 2;
   2725    field public static final int STATE_INTERRUPTED = 1;
   2726    field public static final int STATE_IN_PROGRESS = 0;
   2727    field public final int id;
   2728  }
   2729 
   2730  @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.Download.DownloadInterruptReason {
   2731  }
   2732 
   2733  @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.Download.DownloadState {
   2734  }
   2735 
   2736  public static interface WebExtension.Download.Info {
   2737    method @UiThread default public long bytesReceived();
   2738    method @UiThread default public boolean canResume();
   2739    method @Nullable @UiThread default public Long endTime();
   2740    method @Nullable @UiThread default public Integer error();
   2741    method @Nullable @UiThread default public Long estimatedEndTime();
   2742    method @UiThread default public boolean fileExists();
   2743    method @UiThread default public long fileSize();
   2744    method @NonNull @UiThread default public String filename();
   2745    method @NonNull @UiThread default public String mime();
   2746    method @UiThread default public boolean paused();
   2747    method @NonNull @UiThread default public String referrer();
   2748    method @UiThread default public long startTime();
   2749    method @UiThread default public int state();
   2750    method @UiThread default public long totalBytes();
   2751  }
   2752 
   2753  public static interface WebExtension.DownloadDelegate {
   2754    method @AnyThread @Nullable default public GeckoResult<WebExtension.DownloadInitData> onDownload(@NonNull WebExtension, @NonNull WebExtension.DownloadRequest);
   2755  }
   2756 
   2757  public static class WebExtension.DownloadInitData {
   2758    ctor public DownloadInitData(WebExtension.Download, WebExtension.Download.Info);
   2759    field @NonNull public final WebExtension.Download download;
   2760    field @NonNull public final WebExtension.Download.Info initData;
   2761  }
   2762 
   2763  public static class WebExtension.DownloadRequest {
   2764    ctor protected DownloadRequest(WebExtension.DownloadRequest.Builder);
   2765    field public static final int CONFLICT_ACTION_OVERWRITE = 1;
   2766    field public static final int CONFLICT_ACTION_PROMPT = 2;
   2767    field public static final int CONFLICT_ACTION_UNIQUIFY = 0;
   2768    field public final boolean allowHttpErrors;
   2769    field public final int conflictActionFlag;
   2770    field public final int downloadFlags;
   2771    field @Nullable public final String filename;
   2772    field @NonNull public final WebRequest request;
   2773    field public final boolean saveAs;
   2774  }
   2775 
   2776  @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.DownloadRequest.ConflictActionFlags {
   2777  }
   2778 
   2779  @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.EnabledFlags {
   2780  }
   2781 
   2782  public static class WebExtension.Flags {
   2783    ctor protected Flags();
   2784    field public static final long ALLOW_CONTENT_MESSAGING = 1L;
   2785    field public static final long NONE = 0L;
   2786  }
   2787 
   2788  public static class WebExtension.InstallException extends Exception {
   2789    ctor protected InstallException();
   2790    field public final int code;
   2791    field @Nullable public final String extensionId;
   2792    field @Nullable public final String extensionName;
   2793    field @Nullable public final String extensionVersion;
   2794  }
   2795 
   2796  @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.InstallException.Codes {
   2797  }
   2798 
   2799  public static class WebExtension.InstallException.ErrorCodes {
   2800    ctor protected ErrorCodes();
   2801    field public static final int ERROR_ADMIN_INSTALL_ONLY = -13;
   2802    field public static final int ERROR_BLOCKLISTED = -10;
   2803    field public static final int ERROR_CORRUPT_FILE = -3;
   2804    field public static final int ERROR_FILE_ACCESS = -4;
   2805    field public static final int ERROR_INCOMPATIBLE = -11;
   2806    field public static final int ERROR_INCORRECT_HASH = -2;
   2807    field public static final int ERROR_INCORRECT_ID = -7;
   2808    field public static final int ERROR_INVALID_DOMAIN = -8;
   2809    field public static final int ERROR_NETWORK_FAILURE = -1;
   2810    field public static final int ERROR_POSTPONED = -101;
   2811    field public static final int ERROR_SIGNEDSTATE_REQUIRED = -5;
   2812    field public static final int ERROR_SOFT_BLOCKED = -14;
   2813    field public static final int ERROR_UNEXPECTED_ADDON_TYPE = -6;
   2814    field public static final int ERROR_UNEXPECTED_ADDON_VERSION = -9;
   2815    field public static final int ERROR_UNSUPPORTED_ADDON_TYPE = -12;
   2816    field public static final int ERROR_USER_CANCELED = -100;
   2817  }
   2818 
   2819  public static class WebExtension.InvalidMetaDataException extends RuntimeException {
   2820    ctor protected InvalidMetaDataException();
   2821  }
   2822 
   2823  @UiThread public static interface WebExtension.MessageDelegate {
   2824    method @Nullable default public void onConnect(@NonNull WebExtension.Port);
   2825    method @Nullable default public GeckoResult<Object> onMessage(@NonNull String, @NonNull Object, @NonNull WebExtension.MessageSender);
   2826  }
   2827 
   2828  @UiThread public static class WebExtension.MessageSender {
   2829    ctor protected MessageSender();
   2830    method public boolean isTopLevel();
   2831    field public static final int ENV_TYPE_CONTENT_SCRIPT = 2;
   2832    field public static final int ENV_TYPE_EXTENSION = 1;
   2833    field public final int environmentType;
   2834    field @Nullable public final GeckoSession session;
   2835    field @NonNull public final String url;
   2836    field @NonNull public final WebExtension webExtension;
   2837  }
   2838 
   2839  @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.MessageSender.EnvType {
   2840  }
   2841 
   2842  public class WebExtension.MetaData {
   2843    ctor protected MetaData();
   2844    field public final boolean allowedInPrivateBrowsing;
   2845    field @Nullable public final String amoListingUrl;
   2846    field public final double averageRating;
   2847    field @NonNull public final String baseUrl;
   2848    field public final int blocklistState;
   2849    field @Nullable public final String creatorName;
   2850    field @Nullable public final String creatorUrl;
   2851    field @Nullable public final String description;
   2852    field public final int disabledFlags;
   2853    field @Nullable public final String downloadUrl;
   2854    field public final boolean enabled;
   2855    field @Nullable public final String fullDescription;
   2856    field @NonNull public final String[] grantedOptionalDataCollectionPermissions;
   2857    field @NonNull public final String[] grantedOptionalOrigins;
   2858    field @NonNull public final String[] grantedOptionalPermissions;
   2859    field @Nullable public final String homepageUrl;
   2860    field @NonNull public final Image icon;
   2861    field @Nullable public final String incognito;
   2862    field public final boolean isRecommended;
   2863    field @Nullable public final String name;
   2864    field public final boolean openOptionsPageInTab;
   2865    field @NonNull public final String[] optionalDataCollectionPermissions;
   2866    field @NonNull public final String[] optionalOrigins;
   2867    field @NonNull public final String[] optionalPermissions;
   2868    field @Nullable public final String optionsPageUrl;
   2869    field @NonNull public final String[] requiredDataCollectionPermissions;
   2870    field @NonNull public final String[] requiredOrigins;
   2871    field @NonNull public final String[] requiredPermissions;
   2872    field public final int reviewCount;
   2873    field @Nullable public final String reviewUrl;
   2874    field public final int signedState;
   2875    field public final boolean temporary;
   2876    field @Nullable public final String updateDate;
   2877    field @NonNull public final String version;
   2878  }
   2879 
   2880  public static class WebExtension.PermissionPromptResponse {
   2881    ctor public PermissionPromptResponse(Boolean, Boolean, Boolean);
   2882    field @Nullable public final Boolean isPermissionsGranted;
   2883    field @Nullable public final Boolean isPrivateModeGranted;
   2884    field @Nullable public final Boolean isTechnicalAndInteractionDataGranted;
   2885  }
   2886 
   2887  @UiThread public static class WebExtension.Port {
   2888    ctor protected Port();
   2889    method public void disconnect();
   2890    method public void postMessage(@NonNull JSONObject);
   2891    method public void setDelegate(@Nullable WebExtension.PortDelegate);
   2892    field @NonNull public final String name;
   2893    field @NonNull public final WebExtension.MessageSender sender;
   2894  }
   2895 
   2896  @UiThread public static interface WebExtension.PortDelegate {
   2897    method @NonNull default public void onDisconnect(@NonNull WebExtension.Port);
   2898    method default public void onPortMessage(@NonNull Object, @NonNull WebExtension.Port);
   2899  }
   2900 
   2901  public static class WebExtension.SessionController {
   2902    method @AnyThread @Nullable public WebExtension.ActionDelegate getActionDelegate(@NonNull WebExtension);
   2903    method @AnyThread @Nullable public WebExtension.MessageDelegate getMessageDelegate(@NonNull WebExtension, @NonNull String);
   2904    method @AnyThread @Nullable public WebExtension.SessionTabDelegate getTabDelegate(@NonNull WebExtension);
   2905    method @AnyThread public void setActionDelegate(@NonNull WebExtension, @Nullable WebExtension.ActionDelegate);
   2906    method @AnyThread public void setMessageDelegate(@NonNull WebExtension, @Nullable WebExtension.MessageDelegate, @NonNull String);
   2907    method @AnyThread public void setTabDelegate(@NonNull WebExtension, @Nullable WebExtension.SessionTabDelegate);
   2908  }
   2909 
   2910  public static interface WebExtension.SessionTabDelegate {
   2911    method @NonNull @UiThread default public GeckoResult<AllowOrDeny> onCloseTab(@Nullable WebExtension, @NonNull GeckoSession);
   2912    method @NonNull @UiThread default public GeckoResult<AllowOrDeny> onUpdateTab(@NonNull WebExtension, @NonNull GeckoSession, @NonNull WebExtension.UpdateTabDetails);
   2913  }
   2914 
   2915  @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.SignedState {
   2916  }
   2917 
   2918  public static class WebExtension.SignedStateFlags {
   2919    ctor public SignedStateFlags();
   2920    field public static final int MISSING = 0;
   2921    field public static final int PRELIMINARY = 1;
   2922    field public static final int PRIVILEGED = 4;
   2923    field public static final int SIGNED = 2;
   2924    field public static final int SYSTEM = 3;
   2925    field public static final int UNKNOWN = -1;
   2926  }
   2927 
   2928  public static interface WebExtension.TabDelegate {
   2929    method @Nullable @UiThread default public GeckoResult<GeckoSession> onNewTab(@NonNull WebExtension, @NonNull WebExtension.CreateTabDetails);
   2930    method @UiThread default public void onOpenOptionsPage(@NonNull WebExtension);
   2931  }
   2932 
   2933  public static class WebExtension.UpdateTabDetails {
   2934    ctor protected UpdateTabDetails();
   2935    field @Nullable public final Boolean active;
   2936    field @Nullable public final Boolean autoDiscardable;
   2937    field @Nullable public final Boolean highlighted;
   2938    field @Nullable public final Boolean muted;
   2939    field @Nullable public final Boolean pinned;
   2940    field @Nullable public final String url;
   2941  }
   2942 
   2943  @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.WebExtensionFlags {
   2944  }
   2945 
   2946  public class WebExtensionController {
   2947    method @AnyThread @NonNull public GeckoResult<WebExtension> addOptionalPermissions(@NonNull String, @NonNull String[], @NonNull String[], @NonNull String[]);
   2948    method @Nullable @UiThread public WebExtension.Download createDownload(int);
   2949    method @AnyThread @NonNull public GeckoResult<WebExtension> disable(@NonNull WebExtension, int);
   2950    method @AnyThread public void disableExtensionProcessSpawning();
   2951    method @AnyThread @NonNull public GeckoResult<WebExtension> enable(@NonNull WebExtension, int);
   2952    method @AnyThread public void enableExtensionProcessSpawning();
   2953    method @AnyThread @NonNull public GeckoResult<WebExtension> ensureBuiltIn(@NonNull String, @Nullable String);
   2954    method @Nullable @UiThread public WebExtensionController.PromptDelegate getPromptDelegate();
   2955    method @AnyThread @NonNull public GeckoResult<WebExtension> install(@NonNull String, @Nullable String);
   2956    method @AnyThread @NonNull public GeckoResult<WebExtension> install(@NonNull String);
   2957    method @AnyThread @NonNull public GeckoResult<WebExtension> installBuiltIn(@NonNull String);
   2958    method @AnyThread @NonNull public GeckoResult<List<WebExtension>> list();
   2959    method @AnyThread @NonNull public GeckoResult<WebExtension> removeOptionalPermissions(@NonNull String, @NonNull String[], @NonNull String[], @NonNull String[]);
   2960    method @UiThread public void setAddonManagerDelegate(@Nullable WebExtensionController.AddonManagerDelegate);
   2961    method @AnyThread @NonNull public GeckoResult<WebExtension> setAllowedInPrivateBrowsing(@NonNull WebExtension, boolean);
   2962    method @UiThread public void setDebuggerDelegate(@NonNull WebExtensionController.DebuggerDelegate);
   2963    method @UiThread public void setExtensionProcessDelegate(@Nullable WebExtensionController.ExtensionProcessDelegate);
   2964    method @UiThread public void setPromptDelegate(@Nullable WebExtensionController.PromptDelegate);
   2965    method @AnyThread public void setTabActive(@NonNull GeckoSession, boolean);
   2966    method @AnyThread @NonNull public GeckoResult<Void> uninstall(@NonNull WebExtension);
   2967    method @AnyThread @NonNull public GeckoResult<WebExtension> update(@NonNull WebExtension);
   2968    field public static final String INSTALLATION_METHOD_FROM_FILE = "install-from-file";
   2969    field public static final String INSTALLATION_METHOD_MANAGER = "manager";
   2970    field public static final String INSTALLATION_METHOD_ONBOARDING = "onboarding";
   2971  }
   2972 
   2973  public static interface WebExtensionController.AddonManagerDelegate {
   2974    method @UiThread default public void onDisabled(@NonNull WebExtension);
   2975    method @UiThread default public void onDisabling(@NonNull WebExtension);
   2976    method @UiThread default public void onEnabled(@NonNull WebExtension);
   2977    method @UiThread default public void onEnabling(@NonNull WebExtension);
   2978    method @UiThread default public void onInstallationFailed(@Nullable WebExtension, @NonNull WebExtension.InstallException);
   2979    method @UiThread default public void onInstalled(@NonNull WebExtension);
   2980    method @UiThread default public void onInstalling(@NonNull WebExtension);
   2981    method @UiThread default public void onOptionalPermissionsChanged(@NonNull WebExtension);
   2982    method @UiThread default public void onReady(@NonNull WebExtension);
   2983    method @UiThread default public void onUninstalled(@NonNull WebExtension);
   2984    method @UiThread default public void onUninstalling(@NonNull WebExtension);
   2985  }
   2986 
   2987  public static interface WebExtensionController.DebuggerDelegate {
   2988    method @UiThread default public void onExtensionListUpdated();
   2989  }
   2990 
   2991  public static class WebExtensionController.EnableSource {
   2992    ctor public EnableSource();
   2993    field public static final int APP = 2;
   2994    field public static final int USER = 1;
   2995  }
   2996 
   2997  @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtensionController.EnableSources {
   2998  }
   2999 
   3000  public static interface WebExtensionController.ExtensionProcessDelegate {
   3001    method @UiThread default public void onDisabledProcessSpawning();
   3002  }
   3003 
   3004  @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtensionController.InstallationMethod {
   3005  }
   3006 
   3007  @UiThread public static interface WebExtensionController.PromptDelegate {
   3008    method @Nullable default public GeckoResult<WebExtension.PermissionPromptResponse> onInstallPromptRequest(@NonNull WebExtension, @NonNull String[], @NonNull String[], @NonNull String[]);
   3009    method @Nullable default public GeckoResult<AllowOrDeny> onOptionalPrompt(@NonNull WebExtension, @NonNull String[], @NonNull String[], @NonNull String[]);
   3010    method @Nullable default public GeckoResult<AllowOrDeny> onUpdatePrompt(@NonNull WebExtension, @NonNull String[], @NonNull String[], @NonNull String[]);
   3011  }
   3012 
   3013  @AnyThread public abstract class WebMessage {
   3014    ctor protected WebMessage(@NonNull WebMessage.Builder);
   3015    field @NonNull public final Map<String,String> headers;
   3016    field @NonNull public final String uri;
   3017  }
   3018 
   3019  @AnyThread public abstract static class WebMessage.Builder {
   3020    method @NonNull public WebMessage.Builder addHeader(@NonNull String, @NonNull String);
   3021    method @NonNull public WebMessage.Builder header(@NonNull String, @NonNull String);
   3022    method @NonNull public WebMessage.Builder uri(@NonNull String);
   3023  }
   3024 
   3025  public class WebNotification implements Parcelable {
   3026    method @UiThread public void click();
   3027    method @UiThread public void click(@NonNull String);
   3028    method @UiThread public void dismiss();
   3029    method @UiThread public void show();
   3030    field public static final Parcelable.Creator<WebNotification> CREATOR;
   3031    field @NonNull public final WebNotificationAction[] actions;
   3032    field @Nullable public final String imageUrl;
   3033    field @Nullable public final String lang;
   3034    field @NonNull public final String origin;
   3035    field public final boolean privateBrowsing;
   3036    field public final boolean requireInteraction;
   3037    field public final boolean silent;
   3038    field @Nullable public final String source;
   3039    field @NonNull public final String tag;
   3040    field @Nullable public final String text;
   3041    field @Nullable public final String textDirection;
   3042    field @Nullable public final String title;
   3043    field @NonNull public final int[] vibrate;
   3044  }
   3045 
   3046  public class WebNotificationAction implements Parcelable {
   3047    ctor public WebNotificationAction(@NonNull String, @NonNull String);
   3048    field public static final Parcelable.Creator<WebNotificationAction> CREATOR;
   3049    field @NonNull public final String name;
   3050    field @NonNull public final String title;
   3051  }
   3052 
   3053  public interface WebNotificationDelegate {
   3054    method @AnyThread default public void onCloseNotification(@NonNull WebNotification);
   3055    method @AnyThread default public void onShowNotification(@NonNull WebNotification);
   3056  }
   3057 
   3058  public class WebPushController {
   3059    method @Nullable @UiThread public WebPushDelegate getDelegate();
   3060    method @UiThread public void onPushEvent(@NonNull String);
   3061    method @UiThread public void onPushEvent(@NonNull String, @Nullable byte[]);
   3062    method @UiThread public void onSubscriptionChanged(@NonNull String);
   3063    method @UiThread public void setDelegate(@Nullable WebPushDelegate);
   3064  }
   3065 
   3066  public interface WebPushDelegate {
   3067    method @Nullable @UiThread default public GeckoResult<WebPushSubscription> onGetSubscription(@NonNull String);
   3068    method @Nullable @UiThread default public GeckoResult<WebPushSubscription> onSubscribe(@NonNull String, @Nullable byte[]);
   3069    method @Nullable @UiThread default public GeckoResult<Void> onUnsubscribe(@NonNull String);
   3070  }
   3071 
   3072  public class WebPushSubscription implements Parcelable {
   3073    ctor public WebPushSubscription(@NonNull String, @NonNull String, @Nullable byte[], @NonNull byte[], @NonNull byte[]);
   3074    field public static final Parcelable.Creator<WebPushSubscription> CREATOR;
   3075    field @Nullable public final byte[] appServerKey;
   3076    field @NonNull public final byte[] authSecret;
   3077    field @NonNull public final byte[] browserPublicKey;
   3078    field @NonNull public final String endpoint;
   3079    field @NonNull public final String scope;
   3080  }
   3081 
   3082  @AnyThread public class WebRequest extends WebMessage {
   3083    ctor public WebRequest(@NonNull String);
   3084    field public static final int CACHE_MODE_DEFAULT = 1;
   3085    field public static final int CACHE_MODE_FORCE_CACHE = 5;
   3086    field public static final int CACHE_MODE_NO_CACHE = 4;
   3087    field public static final int CACHE_MODE_NO_STORE = 2;
   3088    field public static final int CACHE_MODE_ONLY_IF_CACHED = 6;
   3089    field public static final int CACHE_MODE_RELOAD = 3;
   3090    field public final boolean beConservative;
   3091    field @Nullable public final ByteBuffer body;
   3092    field public final int cacheMode;
   3093    field @NonNull public final String method;
   3094    field @Nullable public final String referrer;
   3095  }
   3096 
   3097  @AnyThread public static class WebRequest.Builder extends WebMessage.Builder {
   3098    ctor public Builder(@NonNull String);
   3099    method @NonNull public WebRequest.Builder beConservative(boolean);
   3100    method @NonNull public WebRequest.Builder body(@Nullable ByteBuffer);
   3101    method @NonNull public WebRequest.Builder body(@Nullable String);
   3102    method @NonNull public WebRequest build();
   3103    method @NonNull public WebRequest.Builder cacheMode(int);
   3104    method @NonNull public WebRequest.Builder method(@NonNull String);
   3105    method @NonNull public WebRequest.Builder referrer(@Nullable String);
   3106  }
   3107 
   3108  @Retention(value=RetentionPolicy.SOURCE) public static interface WebRequest.CacheMode {
   3109  }
   3110 
   3111  @AnyThread public class WebRequestError extends Exception {
   3112    ctor public WebRequestError(int, int);
   3113    ctor public WebRequestError(int, int, X509Certificate);
   3114    field public static final int ERROR_BAD_HSTS_CERT = 179;
   3115    field public static final int ERROR_CATEGORY_CONTENT = 4;
   3116    field public static final int ERROR_CATEGORY_NETWORK = 3;
   3117    field public static final int ERROR_CATEGORY_PROXY = 6;
   3118    field public static final int ERROR_CATEGORY_SAFEBROWSING = 7;
   3119    field public static final int ERROR_CATEGORY_SECURITY = 2;
   3120    field public static final int ERROR_CATEGORY_UNKNOWN = 1;
   3121    field public static final int ERROR_CATEGORY_URI = 5;
   3122    field public static final int ERROR_CONNECTION_REFUSED = 67;
   3123    field public static final int ERROR_CONTENT_CRASHED = 68;
   3124    field public static final int ERROR_CORRUPTED_CONTENT = 52;
   3125    field public static final int ERROR_DATA_URI_TOO_LONG = 117;
   3126    field public static final int ERROR_FILE_ACCESS_DENIED = 101;
   3127    field public static final int ERROR_FILE_NOT_FOUND = 85;
   3128    field public static final int ERROR_HARMFULADDON_URI = 103;
   3129    field public static final int ERROR_HTTPS_ONLY = 163;
   3130    field public static final int ERROR_INVALID_CONTENT_ENCODING = 84;
   3131    field public static final int ERROR_MALFORMED_URI = 53;
   3132    field public static final int ERROR_NET_INTERRUPT = 35;
   3133    field public static final int ERROR_NET_RESET = 147;
   3134    field public static final int ERROR_NET_TIMEOUT = 51;
   3135    field public static final int ERROR_OFFLINE = 115;
   3136    field public static final int ERROR_PORT_BLOCKED = 131;
   3137    field public static final int ERROR_PROXY_CONNECTION_REFUSED = 38;
   3138    field public static final int ERROR_REDIRECT_LOOP = 99;
   3139    field public static final int ERROR_SAFEBROWSING_HARMFUL_URI = 71;
   3140    field public static final int ERROR_SAFEBROWSING_MALWARE_URI = 39;
   3141    field public static final int ERROR_SAFEBROWSING_PHISHING_URI = 87;
   3142    field public static final int ERROR_SAFEBROWSING_UNWANTED_URI = 55;
   3143    field public static final int ERROR_SECURITY_BAD_CERT = 50;
   3144    field public static final int ERROR_SECURITY_SSL = 34;
   3145    field public static final int ERROR_UNKNOWN = 17;
   3146    field public static final int ERROR_UNKNOWN_HOST = 37;
   3147    field public static final int ERROR_UNKNOWN_PROTOCOL = 69;
   3148    field public static final int ERROR_UNKNOWN_PROXY_HOST = 54;
   3149    field public static final int ERROR_UNKNOWN_SOCKET_TYPE = 83;
   3150    field public static final int ERROR_UNSAFE_CONTENT_TYPE = 36;
   3151    field public final int category;
   3152    field @Nullable public final X509Certificate certificate;
   3153    field public final int code;
   3154  }
   3155 
   3156  @Retention(value=RetentionPolicy.SOURCE) public static interface WebRequestError.Error {
   3157  }
   3158 
   3159  @Retention(value=RetentionPolicy.SOURCE) public static interface WebRequestError.ErrorCategory {
   3160  }
   3161 
   3162  @AnyThread public class WebResponse extends WebMessage {
   3163    ctor protected WebResponse(@NonNull WebResponse.Builder);
   3164    method public void setReadTimeoutMillis(long);
   3165    field public static final long DEFAULT_READ_TIMEOUT_MS = 30000L;
   3166    field @Nullable public final InputStream body;
   3167    field @Nullable public final X509Certificate certificate;
   3168    field public final boolean isSecure;
   3169    field public final boolean redirected;
   3170    field @Nullable public final boolean requestExternalApp;
   3171    field @Nullable public final boolean skipConfirmation;
   3172    field public final int statusCode;
   3173  }
   3174 
   3175  @AnyThread public static class WebResponse.Builder extends WebMessage.Builder {
   3176    ctor public Builder(@NonNull String);
   3177    method @NonNull public WebResponse.Builder body(@NonNull InputStream);
   3178    method @NonNull public WebResponse build();
   3179    method @NonNull public WebResponse.Builder certificate(@NonNull X509Certificate);
   3180    method @NonNull public WebResponse.Builder isSecure(boolean);
   3181    method @NonNull public WebResponse.Builder redirected(boolean);
   3182    method @NonNull public WebResponse.Builder requestExternalApp(boolean);
   3183    method @NonNull public WebResponse.Builder skipConfirmation(boolean);
   3184    method @NonNull public WebResponse.Builder statusCode(int);
   3185  }
   3186 
   3187 }