Bug 1849470 - Update in-tree zlib to version 1.3. r=aosmond
[gecko.git] / mobile / android / geckoview / api.txt
blob03610a90a6daa96838d9ab346a6ebcf74f73e42a
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.KeyEvent;
28 import android.view.Menu;
29 import android.view.MenuItem;
30 import android.view.MotionEvent;
31 import android.view.PointerIcon;
32 import android.view.Surface;
33 import android.view.SurfaceControl;
34 import android.view.View;
35 import android.view.ViewStructure;
36 import android.view.autofill.AutofillValue;
37 import android.view.inputmethod.CursorAnchorInfo;
38 import android.view.inputmethod.EditorInfo;
39 import android.view.inputmethod.ExtractedText;
40 import android.view.inputmethod.ExtractedTextRequest;
41 import android.view.inputmethod.InputConnection;
42 import android.widget.FrameLayout;
43 import androidx.annotation.AnyThread;
44 import androidx.annotation.NonNull;
45 import androidx.annotation.Nullable;
46 import androidx.annotation.UiThread;
47 import java.io.File;
48 import java.io.InputStream;
49 import java.lang.Boolean;
50 import java.lang.CharSequence;
51 import java.lang.Class;
52 import java.lang.Deprecated;
53 import java.lang.Double;
54 import java.lang.Exception;
55 import java.lang.Float;
56 import java.lang.FunctionalInterface;
57 import java.lang.Integer;
58 import java.lang.Long;
59 import java.lang.Object;
60 import java.lang.Runnable;
61 import java.lang.RuntimeException;
62 import java.lang.SafeVarargs;
63 import java.lang.String;
64 import java.lang.Thread;
65 import java.lang.Throwable;
66 import java.lang.Void;
67 import java.lang.annotation.Documented;
68 import java.lang.annotation.ElementType;
69 import java.lang.annotation.Retention;
70 import java.lang.annotation.RetentionPolicy;
71 import java.lang.annotation.Target;
72 import java.net.InetAddress;
73 import java.nio.ByteBuffer;
74 import java.security.cert.X509Certificate;
75 import java.util.AbstractSequentialList;
76 import java.util.Collection;
77 import java.util.List;
78 import java.util.Map;
79 import org.json.JSONObject;
80 import org.mozilla.geckoview.AllowOrDeny;
81 import org.mozilla.geckoview.Autocomplete;
82 import org.mozilla.geckoview.Autofill;
83 import org.mozilla.geckoview.CompositorController;
84 import org.mozilla.geckoview.ContentBlocking;
85 import org.mozilla.geckoview.ContentBlockingController;
86 import org.mozilla.geckoview.CrashHandler;
87 import org.mozilla.geckoview.DeprecationSchedule;
88 import org.mozilla.geckoview.ExperimentDelegate;
89 import org.mozilla.geckoview.GeckoDisplay;
90 import org.mozilla.geckoview.GeckoResult;
91 import org.mozilla.geckoview.GeckoRuntime;
92 import org.mozilla.geckoview.GeckoRuntimeSettings;
93 import org.mozilla.geckoview.GeckoSession;
94 import org.mozilla.geckoview.GeckoSessionSettings;
95 import org.mozilla.geckoview.GeckoView;
96 import org.mozilla.geckoview.Image;
97 import org.mozilla.geckoview.MediaSession;
98 import org.mozilla.geckoview.OrientationController;
99 import org.mozilla.geckoview.OverscrollEdgeEffect;
100 import org.mozilla.geckoview.PanZoomController;
101 import org.mozilla.geckoview.ProfilerController;
102 import org.mozilla.geckoview.RuntimeSettings;
103 import org.mozilla.geckoview.RuntimeTelemetry;
104 import org.mozilla.geckoview.ScreenLength;
105 import org.mozilla.geckoview.SessionAccessibility;
106 import org.mozilla.geckoview.SessionFinder;
107 import org.mozilla.geckoview.SessionPdfFileSaver;
108 import org.mozilla.geckoview.SessionTextInput;
109 import org.mozilla.geckoview.SlowScriptResponse;
110 import org.mozilla.geckoview.StorageController;
111 import org.mozilla.geckoview.WebExtension;
112 import org.mozilla.geckoview.WebExtensionController;
113 import org.mozilla.geckoview.WebMessage;
114 import org.mozilla.geckoview.WebNotification;
115 import org.mozilla.geckoview.WebNotificationDelegate;
116 import org.mozilla.geckoview.WebPushController;
117 import org.mozilla.geckoview.WebPushDelegate;
118 import org.mozilla.geckoview.WebPushSubscription;
119 import org.mozilla.geckoview.WebRequest;
120 import org.mozilla.geckoview.WebRequestError;
121 import org.mozilla.geckoview.WebResponse;
123 package org.mozilla.geckoview {
125   @AnyThread public final enum AllowOrDeny {
126     method public static AllowOrDeny valueOf(String);
127     method public static AllowOrDeny[] values();
128     enum_constant public static final AllowOrDeny ALLOW;
129     enum_constant public static final AllowOrDeny DENY;
130   }
132   public class Autocomplete {
133     ctor protected Autocomplete();
134   }
136   public static class Autocomplete.Address {
137     ctor @AnyThread protected Address();
138     field @NonNull public final String additionalName;
139     field @NonNull public final String addressLevel1;
140     field @NonNull public final String addressLevel2;
141     field @NonNull public final String addressLevel3;
142     field @NonNull public final String country;
143     field @NonNull public final String email;
144     field @NonNull public final String familyName;
145     field @NonNull public final String givenName;
146     field @Nullable public final String guid;
147     field @NonNull public final String name;
148     field @NonNull public final String organization;
149     field @NonNull public final String postalCode;
150     field @NonNull public final String streetAddress;
151     field @NonNull public final String tel;
152   }
154   public static class Autocomplete.Address.Builder {
155     ctor @AnyThread public Builder();
156     method @AnyThread @NonNull public Autocomplete.Address.Builder additionalName(@Nullable String);
157     method @AnyThread @NonNull public Autocomplete.Address.Builder addressLevel1(@Nullable String);
158     method @AnyThread @NonNull public Autocomplete.Address.Builder addressLevel2(@Nullable String);
159     method @AnyThread @NonNull public Autocomplete.Address.Builder addressLevel3(@Nullable String);
160     method @AnyThread @NonNull public Autocomplete.Address build();
161     method @AnyThread @NonNull public Autocomplete.Address.Builder country(@Nullable String);
162     method @AnyThread @NonNull public Autocomplete.Address.Builder email(@Nullable String);
163     method @AnyThread @NonNull public Autocomplete.Address.Builder familyName(@Nullable String);
164     method @AnyThread @NonNull public Autocomplete.Address.Builder givenName(@Nullable String);
165     method @AnyThread @NonNull public Autocomplete.Address.Builder guid(@Nullable String);
166     method @AnyThread @NonNull public Autocomplete.Address.Builder name(@Nullable String);
167     method @AnyThread @NonNull public Autocomplete.Address.Builder organization(@Nullable String);
168     method @AnyThread @NonNull public Autocomplete.Address.Builder postalCode(@Nullable String);
169     method @AnyThread @NonNull public Autocomplete.Address.Builder streetAddress(@Nullable String);
170     method @AnyThread @NonNull public Autocomplete.Address.Builder tel(@Nullable String);
171   }
173   public static class Autocomplete.AddressSaveOption extends Autocomplete.SaveOption<Autocomplete.Address> {
174     ctor public AddressSaveOption(@NonNull Autocomplete.Address);
175   }
177   public static class Autocomplete.AddressSelectOption extends Autocomplete.SelectOption<Autocomplete.Address> {
178     ctor public AddressSelectOption(@NonNull Autocomplete.Address);
179   }
181   @Retention(value=RetentionPolicy.SOURCE) public static interface Autocomplete.AddressSelectOption.AddressSelectHint {
182   }
184   public static class Autocomplete.AddressSelectOption.Hint {
185     ctor public Hint();
186     field public static final int INSECURE_FORM = 2;
187     field public static final int NONE = 0;
188   }
190   public static class Autocomplete.CreditCard {
191     ctor @AnyThread protected CreditCard();
192     field @NonNull public final String expirationMonth;
193     field @NonNull public final String expirationYear;
194     field @Nullable public final String guid;
195     field @NonNull public final String name;
196     field @NonNull public final String number;
197   }
199   public static class Autocomplete.CreditCard.Builder {
200     ctor @AnyThread public Builder();
201     method @AnyThread @NonNull public Autocomplete.CreditCard build();
202     method @AnyThread @NonNull public Autocomplete.CreditCard.Builder expirationMonth(@Nullable String);
203     method @AnyThread @NonNull public Autocomplete.CreditCard.Builder expirationYear(@Nullable String);
204     method @AnyThread @NonNull public Autocomplete.CreditCard.Builder guid(@Nullable String);
205     method @AnyThread @NonNull public Autocomplete.CreditCard.Builder name(@Nullable String);
206     method @AnyThread @NonNull public Autocomplete.CreditCard.Builder number(@Nullable String);
207   }
209   public static class Autocomplete.CreditCardSaveOption extends Autocomplete.SaveOption<Autocomplete.CreditCard> {
210     ctor public CreditCardSaveOption(@NonNull Autocomplete.CreditCard);
211   }
213   public static class Autocomplete.CreditCardSelectOption extends Autocomplete.SelectOption<Autocomplete.CreditCard> {
214     ctor public CreditCardSelectOption(@NonNull Autocomplete.CreditCard);
215   }
217   @Retention(value=RetentionPolicy.SOURCE) public static interface Autocomplete.CreditCardSelectOption.CreditCardSelectHint {
218   }
220   public static class Autocomplete.CreditCardSelectOption.Hint {
221     ctor public Hint();
222     field public static final int INSECURE_FORM = 2;
223     field public static final int NONE = 0;
224   }
226   @Retention(value=RetentionPolicy.SOURCE) public static interface Autocomplete.LSUsedField {
227   }
229   public static class Autocomplete.LoginEntry {
230     ctor @AnyThread protected LoginEntry();
231     field @Nullable public final String formActionOrigin;
232     field @Nullable public final String guid;
233     field @Nullable public final String httpRealm;
234     field @NonNull public final String origin;
235     field @NonNull public final String password;
236     field @NonNull public final String username;
237   }
239   public static class Autocomplete.LoginEntry.Builder {
240     ctor @AnyThread public Builder();
241     method @AnyThread @NonNull public Autocomplete.LoginEntry build();
242     method @AnyThread @NonNull public Autocomplete.LoginEntry.Builder formActionOrigin(@Nullable String);
243     method @AnyThread @NonNull public Autocomplete.LoginEntry.Builder guid(@Nullable String);
244     method @AnyThread @NonNull public Autocomplete.LoginEntry.Builder httpRealm(@Nullable String);
245     method @AnyThread @NonNull public Autocomplete.LoginEntry.Builder origin(@NonNull String);
246     method @AnyThread @NonNull public Autocomplete.LoginEntry.Builder password(@NonNull String);
247     method @AnyThread @NonNull public Autocomplete.LoginEntry.Builder username(@NonNull String);
248   }
250   public static class Autocomplete.LoginSaveOption extends Autocomplete.SaveOption<Autocomplete.LoginEntry> {
251     ctor public LoginSaveOption(@NonNull Autocomplete.LoginEntry);
252   }
254   public static class Autocomplete.LoginSelectOption extends Autocomplete.SelectOption<Autocomplete.LoginEntry> {
255     ctor public LoginSelectOption(@NonNull Autocomplete.LoginEntry);
256   }
258   public abstract static class Autocomplete.Option<T> {
259     ctor public Option(@NonNull T, int);
260     field public final int hint;
261     field @NonNull public final T value;
262   }
264   public abstract static class Autocomplete.SaveOption<T> extends Autocomplete.Option<T> {
265     ctor public SaveOption(@NonNull T, int);
266   }
268   public static class Autocomplete.SaveOption.Hint {
269     ctor protected Hint();
270     field public static final int GENERATED = 1;
271     field public static final int LOW_CONFIDENCE = 2;
272     field public static final int NONE = 0;
273   }
275   @Retention(value=RetentionPolicy.SOURCE) public static interface Autocomplete.SaveOption.SaveOptionHint {
276   }
278   public abstract static class Autocomplete.SelectOption<T> extends Autocomplete.Option<T> {
279     ctor public SelectOption(@NonNull T, int);
280   }
282   public static class Autocomplete.SelectOption.Hint {
283     ctor public Hint();
284     field public static final int DUPLICATE_USERNAME = 4;
285     field public static final int GENERATED = 1;
286     field public static final int INSECURE_FORM = 2;
287     field public static final int MATCHING_ORIGIN = 8;
288     field public static final int NONE = 0;
289   }
291   @Retention(value=RetentionPolicy.SOURCE) public static interface Autocomplete.SelectOption.SelectOptionHint {
292   }
294   public static interface Autocomplete.StorageDelegate {
295     method @Nullable @UiThread default public GeckoResult<Autocomplete.Address[]> onAddressFetch();
296     method @UiThread default public void onAddressSave(@NonNull Autocomplete.Address);
297     method @Nullable @UiThread default public GeckoResult<Autocomplete.CreditCard[]> onCreditCardFetch();
298     method @UiThread default public void onCreditCardSave(@NonNull Autocomplete.CreditCard);
299     method @Nullable @UiThread default public GeckoResult<Autocomplete.LoginEntry[]> onLoginFetch(@NonNull String);
300     method @Nullable @UiThread default public GeckoResult<Autocomplete.LoginEntry[]> onLoginFetch();
301     method @UiThread default public void onLoginSave(@NonNull Autocomplete.LoginEntry);
302     method @UiThread default public void onLoginUsed(@NonNull Autocomplete.LoginEntry, int);
303   }
305   public static class Autocomplete.UsedField {
306     ctor protected UsedField();
307     field public static final int PASSWORD = 1;
308   }
310   public class Autofill {
311     ctor public Autofill();
312   }
314   @Retention(value=RetentionPolicy.SOURCE) public static interface Autofill.AutofillHint {
315   }
317   @Retention(value=RetentionPolicy.SOURCE) public static interface Autofill.AutofillInputType {
318   }
320   public static interface Autofill.AutofillNotify {
321   }
323   public static interface Autofill.Delegate {
324     method @UiThread default public void onNodeAdd(@NonNull GeckoSession, @NonNull Autofill.Node, @NonNull Autofill.NodeData);
325     method @UiThread default public void onNodeBlur(@NonNull GeckoSession, @NonNull Autofill.Node, @NonNull Autofill.NodeData);
326     method @UiThread default public void onNodeFocus(@NonNull GeckoSession, @NonNull Autofill.Node, @NonNull Autofill.NodeData);
327     method @UiThread default public void onNodeRemove(@NonNull GeckoSession, @NonNull Autofill.Node, @NonNull Autofill.NodeData);
328     method @UiThread default public void onNodeUpdate(@NonNull GeckoSession, @NonNull Autofill.Node, @NonNull Autofill.NodeData);
329     method @UiThread default public void onSessionCancel(@NonNull GeckoSession);
330     method @UiThread default public void onSessionCommit(@NonNull GeckoSession, @NonNull Autofill.Node, @NonNull Autofill.NodeData);
331     method @UiThread default public void onSessionStart(@NonNull GeckoSession);
332   }
334   public static final class Autofill.Hint {
335     method @AnyThread @Nullable public static String toString(int);
336     field public static final int EMAIL_ADDRESS = 0;
337     field public static final int NONE = -1;
338     field public static final int PASSWORD = 1;
339     field public static final int URI = 2;
340     field public static final int USERNAME = 3;
341   }
343   public static final class Autofill.InputType {
344     method @AnyThread @Nullable public static String toString(int);
345     field public static final int NONE = -1;
346     field public static final int NUMBER = 1;
347     field public static final int PHONE = 2;
348     field public static final int TEXT = 0;
349   }
351   public static final class Autofill.Node {
352     method @AnyThread @Nullable public String getAttribute(@NonNull String);
353     method @AnyThread @NonNull public Map<String,String> getAttributes();
354     method @AnyThread @NonNull public Collection<Autofill.Node> getChildren();
355     method @AnyThread @NonNull public String getDomain();
356     method @AnyThread public boolean getEnabled();
357     method @AnyThread public boolean getFocusable();
358     method @AnyThread public int getHint();
359     method @AnyThread public int getInputType();
360     method @AnyThread @NonNull public Rect getScreenRect();
361     method @AnyThread @NonNull public String getTag();
362   }
364   public static class Autofill.NodeData {
365     method @AnyThread public int getId();
366     method @AnyThread @Nullable public String getValue();
367   }
369   public static final class Autofill.Session {
370     method @UiThread public void autofill(@NonNull SparseArray<CharSequence>);
371     method @NonNull @UiThread public Autofill.NodeData dataFor(@NonNull Autofill.Node);
372     method @UiThread public void fillViewStructure(@NonNull View, @NonNull ViewStructure, int);
373     method @UiThread public void fillViewStructure(@NonNull Autofill.Node, @NonNull View, @NonNull ViewStructure, int);
374     method @NonNull @UiThread public Rect getDefaultDimensions();
375     method @Nullable @UiThread public Autofill.Node getFocused();
376     method @Nullable @UiThread public Autofill.NodeData getFocusedData();
377     method @AnyThread @NonNull public Autofill.Node getRoot();
378     method @UiThread public boolean isVisible(@NonNull Autofill.Node);
379   }
381   @UiThread public class BasicSelectionActionDelegate implements ActionMode.Callback GeckoSession.SelectionActionDelegate {
382     ctor public BasicSelectionActionDelegate(@NonNull Activity);
383     ctor public BasicSelectionActionDelegate(@NonNull Activity, boolean);
384     method public boolean areExternalActionsEnabled();
385     method public void clearSelection();
386     method public void enableExternalActions(boolean);
387     method @Nullable public GeckoSession.SelectionActionDelegate.Selection getSelection();
388     method public boolean isActionAvailable();
389     method public void onGetContentRect(@Nullable ActionMode, @Nullable View, @NonNull Rect);
390     method @NonNull protected String[] getAllActions();
391     method protected boolean isActionAvailable(@NonNull String);
392     method protected boolean performAction(@NonNull String, @NonNull MenuItem);
393     method protected void prepareAction(@NonNull String, @NonNull MenuItem);
394     field protected static final String ACTION_PROCESS_TEXT = "android.intent.action.PROCESS_TEXT";
395     field @Nullable protected ActionMode mActionMode;
396     field @NonNull protected final Activity mActivity;
397     field protected boolean mRepopulatedMenu;
398     field @Nullable protected GeckoSession.SelectionActionDelegate.Selection mSelection;
399     field @Nullable protected GeckoSession mSession;
400     field protected final boolean mUseFloatingToolbar;
401   }
403   @UiThread public final class CompositorController {
404     method public void addDrawCallback(@NonNull Runnable);
405     method public int getClearColor();
406     method @Nullable public Runnable getFirstPaintCallback();
407     method public void removeDrawCallback(@NonNull Runnable);
408     method public void setClearColor(int);
409     method public void setFirstPaintCallback(@Nullable Runnable);
410   }
412   @AnyThread public class ContentBlocking {
413     ctor protected ContentBlocking();
414     field public static final ContentBlocking.SafeBrowsingProvider GOOGLE_LEGACY_SAFE_BROWSING_PROVIDER;
415     field public static final ContentBlocking.SafeBrowsingProvider GOOGLE_SAFE_BROWSING_PROVIDER;
416   }
418   public static class ContentBlocking.AntiTracking {
419     ctor protected AntiTracking();
420     field public static final int AD = 2;
421     field public static final int ANALYTIC = 4;
422     field public static final int CONTENT = 16;
423     field public static final int CRYPTOMINING = 64;
424     field public static final int DEFAULT = 46;
425     field public static final int FINGERPRINTING = 128;
426     field public static final int NONE = 0;
427     field public static final int SOCIAL = 8;
428     field public static final int STP = 256;
429     field public static final int STRICT = 254;
430     field public static final int TEST = 32;
431   }
433   public static class ContentBlocking.BlockEvent {
434     ctor public BlockEvent(@NonNull String, int, int, int, boolean);
435     method @UiThread public int getAntiTrackingCategory();
436     method @UiThread public int getCookieBehaviorCategory();
437     method @UiThread public int getSafeBrowsingCategory();
438     method @UiThread public boolean isBlocking();
439     field @NonNull public final String uri;
440   }
442   @Retention(value=RetentionPolicy.SOURCE) public static interface ContentBlocking.CBAntiTracking {
443   }
445   @Retention(value=RetentionPolicy.SOURCE) public static interface ContentBlocking.CBCookieBannerMode {
446   }
448   @Retention(value=RetentionPolicy.SOURCE) public static interface ContentBlocking.CBCookieBehavior {
449   }
451   @Retention(value=RetentionPolicy.SOURCE) public static interface ContentBlocking.CBEtpLevel {
452   }
454   @Retention(value=RetentionPolicy.SOURCE) public static interface ContentBlocking.CBSafeBrowsing {
455   }
457   public static class ContentBlocking.CookieBannerMode {
458     ctor protected CookieBannerMode();
459     field public static final int COOKIE_BANNER_MODE_DISABLED = 0;
460     field public static final int COOKIE_BANNER_MODE_REJECT = 1;
461     field public static final int COOKIE_BANNER_MODE_REJECT_OR_ACCEPT = 2;
462   }
464   public static class ContentBlocking.CookieBehavior {
465     ctor protected CookieBehavior();
466     field public static final int ACCEPT_ALL = 0;
467     field public static final int ACCEPT_FIRST_PARTY = 1;
468     field public static final int ACCEPT_FIRST_PARTY_AND_ISOLATE_OTHERS = 5;
469     field public static final int ACCEPT_NONE = 2;
470     field public static final int ACCEPT_NON_TRACKERS = 4;
471     field public static final int ACCEPT_VISITED = 3;
472   }
474   public static interface ContentBlocking.Delegate {
475     method @UiThread default public void onContentBlocked(@NonNull GeckoSession, @NonNull ContentBlocking.BlockEvent);
476     method @UiThread default public void onContentLoaded(@NonNull GeckoSession, @NonNull ContentBlocking.BlockEvent);
477   }
479   public static class ContentBlocking.EtpLevel {
480     ctor public EtpLevel();
481     field public static final int DEFAULT = 1;
482     field public static final int NONE = 0;
483     field public static final int STRICT = 2;
484   }
486   public static class ContentBlocking.SafeBrowsing {
487     ctor protected SafeBrowsing();
488     field public static final int DEFAULT = 15360;
489     field public static final int HARMFUL = 4096;
490     field public static final int MALWARE = 1024;
491     field public static final int NONE = 0;
492     field public static final int PHISHING = 8192;
493     field public static final int UNWANTED = 2048;
494   }
496   @AnyThread public static class ContentBlocking.SafeBrowsingProvider extends RuntimeSettings {
497     method @NonNull public static ContentBlocking.SafeBrowsingProvider.Builder from(@NonNull ContentBlocking.SafeBrowsingProvider);
498     method @Nullable public String getAdvisoryName();
499     method @Nullable public String getAdvisoryUrl();
500     method @Nullable public Boolean getDataSharingEnabled();
501     method @Nullable public String getDataSharingUrl();
502     method @Nullable public String getGetHashUrl();
503     method @NonNull public String[] getLists();
504     method @NonNull public String getName();
505     method @Nullable public String getReportMalwareMistakeUrl();
506     method @Nullable public String getReportPhishingMistakeUrl();
507     method @Nullable public String getReportUrl();
508     method @Nullable public String getUpdateUrl();
509     method @Nullable public String getVersion();
510     method @NonNull public static ContentBlocking.SafeBrowsingProvider.Builder withName(@NonNull String);
511     field public static final Parcelable.Creator<ContentBlocking.SafeBrowsingProvider> CREATOR;
512   }
514   @AnyThread public static class ContentBlocking.SafeBrowsingProvider.Builder {
515     method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder advisoryName(@NonNull String);
516     method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder advisoryUrl(@NonNull String);
517     method @NonNull public ContentBlocking.SafeBrowsingProvider build();
518     method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder dataSharingEnabled(boolean);
519     method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder dataSharingUrl(@NonNull String);
520     method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder getHashUrl(@NonNull String);
521     method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder lists(@NonNull String...);
522     method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder reportMalwareMistakeUrl(@NonNull String);
523     method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder reportPhishingMistakeUrl(@NonNull String);
524     method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder reportUrl(@NonNull String);
525     method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder updateUrl(@NonNull String);
526     method @NonNull public ContentBlocking.SafeBrowsingProvider.Builder version(@NonNull String);
527   }
529   @AnyThread public static class ContentBlocking.Settings extends RuntimeSettings {
530     method public int getAntiTrackingCategories();
531     method public boolean getCookieBannerDetectOnlyMode();
532     method public int getCookieBannerMode();
533     method public int getCookieBannerModePrivateBrowsing();
534     method public int getCookieBehavior();
535     method public int getCookieBehaviorPrivateMode();
536     method public boolean getCookiePurging();
537     method public int getEnhancedTrackingProtectionLevel();
538     method public int getSafeBrowsingCategories();
539     method @NonNull public String[] getSafeBrowsingMalwareTable();
540     method @NonNull public String[] getSafeBrowsingPhishingTable();
541     method @NonNull public Collection<ContentBlocking.SafeBrowsingProvider> getSafeBrowsingProviders();
542     method public boolean getStrictSocialTrackingProtection();
543     method @NonNull public ContentBlocking.Settings setAntiTracking(int);
544     method @NonNull public ContentBlocking.Settings setCookieBannerDetectOnlyMode(boolean);
545     method @NonNull public ContentBlocking.Settings setCookieBannerMode(int);
546     method @NonNull public ContentBlocking.Settings setCookieBannerModePrivateBrowsing(int);
547     method @NonNull public ContentBlocking.Settings setCookieBehavior(int);
548     method @NonNull public ContentBlocking.Settings setCookieBehaviorPrivateMode(int);
549     method @NonNull public ContentBlocking.Settings setCookiePurging(boolean);
550     method @NonNull public ContentBlocking.Settings setEnhancedTrackingProtectionLevel(int);
551     method @NonNull public ContentBlocking.Settings setSafeBrowsing(int);
552     method @NonNull public ContentBlocking.Settings setSafeBrowsingMalwareTable(@NonNull String...);
553     method @NonNull public ContentBlocking.Settings setSafeBrowsingPhishingTable(@NonNull String...);
554     method @NonNull public ContentBlocking.Settings setSafeBrowsingProviders(@NonNull ContentBlocking.SafeBrowsingProvider...);
555     method @NonNull public ContentBlocking.Settings setStrictSocialTrackingProtection(boolean);
556     field public static final Parcelable.Creator<ContentBlocking.Settings> CREATOR;
557   }
559   @AnyThread public static class ContentBlocking.Settings.Builder extends RuntimeSettings.Builder<ContentBlocking.Settings> {
560     ctor public Builder();
561     method @NonNull public ContentBlocking.Settings.Builder antiTracking(int);
562     method @NonNull public ContentBlocking.Settings.Builder cookieBannerHandlingDetectOnlyMode(boolean);
563     method @NonNull public ContentBlocking.Settings.Builder cookieBannerHandlingMode(int);
564     method @NonNull public ContentBlocking.Settings.Builder cookieBannerHandlingModePrivateBrowsing(int);
565     method @NonNull public ContentBlocking.Settings.Builder cookieBehavior(int);
566     method @NonNull public ContentBlocking.Settings.Builder cookieBehaviorPrivateMode(int);
567     method @NonNull public ContentBlocking.Settings.Builder cookiePurging(boolean);
568     method @NonNull public ContentBlocking.Settings.Builder enhancedTrackingProtectionLevel(int);
569     method @NonNull public ContentBlocking.Settings.Builder safeBrowsing(int);
570     method @NonNull public ContentBlocking.Settings.Builder safeBrowsingMalwareTable(@NonNull String[]);
571     method @NonNull public ContentBlocking.Settings.Builder safeBrowsingPhishingTable(@NonNull String[]);
572     method @NonNull public ContentBlocking.Settings.Builder safeBrowsingProviders(@NonNull ContentBlocking.SafeBrowsingProvider...);
573     method @NonNull public ContentBlocking.Settings.Builder strictSocialTrackingProtection(boolean);
574     method @NonNull protected ContentBlocking.Settings newSettings(@Nullable ContentBlocking.Settings);
575   }
577   @AnyThread public class ContentBlockingController {
578     ctor public ContentBlockingController();
579     method @NonNull @UiThread public GeckoResult<List<ContentBlockingController.LogEntry>> getLog(@NonNull GeckoSession);
580   }
582   public static class ContentBlockingController.Event {
583     ctor protected Event();
584     field public static final int ALLOWED_TRACKING_CONTENT = 32;
585     field public static final int BLOCKED_CRYPTOMINING_CONTENT = 2048;
586     field public static final int BLOCKED_FINGERPRINTING_CONTENT = 64;
587     field public static final int BLOCKED_SOCIALTRACKING_CONTENT = 65536;
588     field public static final int BLOCKED_TRACKING_CONTENT = 4096;
589     field public static final int BLOCKED_UNSAFE_CONTENT = 16384;
590     field public static final int COOKIES_BLOCKED_ALL = 1073741824;
591     field public static final int COOKIES_BLOCKED_BY_PERMISSION = 268435456;
592     field public static final int COOKIES_BLOCKED_FOREIGN = 128;
593     field public static final int COOKIES_BLOCKED_SOCIALTRACKER = 16777216;
594     field public static final int COOKIES_BLOCKED_TRACKER = 536870912;
595     field public static final int COOKIES_LOADED = 32768;
596     field public static final int COOKIES_LOADED_SOCIALTRACKER = 524288;
597     field public static final int COOKIES_LOADED_TRACKER = 262144;
598     field public static final int COOKIES_PARTITIONED_FOREIGN = -2147483648;
599     field public static final int LOADED_CRYPTOMINING_CONTENT = 2097152;
600     field public static final int LOADED_FINGERPRINTING_CONTENT = 1024;
601     field public static final int LOADED_LEVEL_1_TRACKING_CONTENT = 8192;
602     field public static final int LOADED_LEVEL_2_TRACKING_CONTENT = 1048576;
603     field public static final int LOADED_SOCIALTRACKING_CONTENT = 131072;
604     field public static final int REPLACED_TRACKING_CONTENT = 16;
605   }
607   @AnyThread public static class ContentBlockingController.LogEntry {
608     ctor protected LogEntry();
609     field @NonNull public final List<ContentBlockingController.LogEntry.BlockingData> blockingData;
610     field @NonNull public final String origin;
611   }
613   public static class ContentBlockingController.LogEntry.BlockingData {
614     ctor protected BlockingData();
615     field public final boolean blocked;
616     field public final int category;
617     field public final int count;
618   }
620   @Retention(value=RetentionPolicy.SOURCE) public static interface ContentBlockingController.LogEntry.BlockingData.LogEvent {
621   }
623   @FunctionalInterface public class CrashHandler implements Thread.UncaughtExceptionHandler {
624     ctor public CrashHandler(@Nullable Class<? extends android.app.Service>);
625     ctor public CrashHandler(@Nullable Context, @Nullable Class<? extends android.app.Service>);
626     ctor public CrashHandler(Thread, Class<? extends android.app.Service>);
627     ctor public CrashHandler(@Nullable Thread, Context, Class<? extends android.app.Service>);
628     method @AnyThread @NonNull public static CrashHandler createDefaultCrashHandler(@NonNull Context);
629     method @AnyThread @Nullable public Context getAppContext();
630     method @AnyThread @Nullable public String getAppPackageName();
631     method @AnyThread @NonNull public byte[] getCrashDump(@Nullable Thread, @Nullable Throwable);
632     method @AnyThread @NonNull public Bundle getCrashExtras(@NonNull Thread, @NonNull Throwable);
633     method @AnyThread @NonNull public static String getExceptionStackTrace(@NonNull Throwable);
634     method @AnyThread @NonNull public static Throwable getRootException(@NonNull Throwable);
635     method @AnyThread @NonNull public String getServerUrl(@NonNull Bundle);
636     method @AnyThread public boolean launchCrashReporter(@NonNull String, @NonNull String);
637     method @AnyThread public static void logException(@NonNull Thread, @NonNull Throwable);
638     method @AnyThread public boolean reportException(@NonNull Thread, @NonNull Throwable);
639     method @AnyThread public static void terminateProcess();
640     method @AnyThread public void unregister();
641   }
643   public class CrashReporter {
644     ctor public CrashReporter();
645     method @AnyThread @NonNull public static GeckoResult<String> sendCrashReport(@NonNull Context, @NonNull Intent, @NonNull String);
646     method @AnyThread @NonNull public static GeckoResult<String> sendCrashReport(@NonNull Context, @NonNull Bundle, @NonNull String);
647     method @AnyThread @NonNull public static GeckoResult<String> sendCrashReport(@NonNull Context, @NonNull File, @NonNull File, @NonNull String);
648     method @AnyThread @NonNull public static GeckoResult<String> sendCrashReport(@NonNull String, @NonNull File, @NonNull JSONObject);
649   }
651   @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 {
652     element public String id();
653     element public int version();
654   }
656   public interface ExperimentDelegate {
657     method @AnyThread @NonNull default public GeckoResult<JSONObject> onGetExperimentFeature(@NonNull String);
658     method @AnyThread @NonNull default public GeckoResult<Void> onRecordExperimentExposureEvent(@NonNull String, @NonNull String);
659     method @AnyThread @NonNull default public GeckoResult<Void> onRecordExposureEvent(@NonNull String);
660     method @AnyThread @NonNull default public GeckoResult<Void> onRecordMalformedConfigurationEvent(@NonNull String, @NonNull String);
661   }
663   public static class ExperimentDelegate.ExperimentException extends Exception {
664     ctor public ExperimentException(int);
665     field public static final int ERROR_EXPERIMENT_DELEGATE_NOT_IMPLEMENTED = -4;
666     field public static final int ERROR_EXPERIMENT_SLUG_NOT_FOUND = -3;
667     field public static final int ERROR_FEATURE_NOT_FOUND = -2;
668     field public static final int ERROR_UNKNOWN = -1;
669     field public final int code;
670   }
672   @Retention(value=RetentionPolicy.SOURCE) public static interface ExperimentDelegate.ExperimentException.Codes {
673   }
675   public class GeckoDisplay {
676     ctor protected GeckoDisplay(GeckoSession);
677     method @NonNull @UiThread public GeckoResult<Bitmap> capturePixels();
678     method @UiThread public void safeAreaInsetsChanged(int, int, int, int);
679     method @UiThread public void screenOriginChanged(int, int);
680     method @NonNull @UiThread public GeckoDisplay.ScreenshotBuilder screenshot();
681     method @UiThread public void setDynamicToolbarMaxHeight(int);
682     method @UiThread public void setVerticalClipping(int);
683     method @UiThread public boolean shouldPinOnScreen();
684     method @UiThread public void surfaceChanged(@NonNull GeckoDisplay.SurfaceInfo);
685     method @UiThread public void surfaceDestroyed();
686   }
688   public static interface GeckoDisplay.NewSurfaceProvider {
689     method @UiThread public void requestNewSurface();
690   }
692   public static final class GeckoDisplay.ScreenshotBuilder {
693     method @AnyThread @NonNull public GeckoDisplay.ScreenshotBuilder aspectPreservingSize(int);
694     method @AnyThread @NonNull public GeckoDisplay.ScreenshotBuilder bitmap(@Nullable Bitmap);
695     method @NonNull @UiThread public GeckoResult<Bitmap> capture();
696     method @AnyThread @NonNull public GeckoDisplay.ScreenshotBuilder scale(float);
697     method @AnyThread @NonNull public GeckoDisplay.ScreenshotBuilder size(int, int);
698     method @AnyThread @NonNull public GeckoDisplay.ScreenshotBuilder source(int, int, int, int);
699     method @AnyThread @NonNull public GeckoDisplay.ScreenshotBuilder source(@NonNull Rect);
700   }
702   public static class GeckoDisplay.SurfaceInfo {
703   }
705   public static class GeckoDisplay.SurfaceInfo.Builder {
706     ctor public Builder(@NonNull Surface);
707     method @NonNull @UiThread public GeckoDisplay.SurfaceInfo build();
708     method @NonNull @UiThread public GeckoDisplay.SurfaceInfo.Builder newSurfaceProvider(@Nullable GeckoDisplay.NewSurfaceProvider);
709     method @NonNull @UiThread public GeckoDisplay.SurfaceInfo.Builder offset(int, int);
710     method @NonNull @UiThread public GeckoDisplay.SurfaceInfo.Builder size(int, int);
711     method @NonNull @UiThread public GeckoDisplay.SurfaceInfo.Builder surfaceControl(@Nullable SurfaceControl);
712   }
714   @AnyThread public class GeckoResult<T> {
715     ctor public GeckoResult();
716     ctor public GeckoResult(Handler);
717     ctor public GeckoResult(GeckoResult<T>);
718     method @NonNull public GeckoResult<Void> accept(@Nullable GeckoResult.Consumer<T>);
719     method @NonNull public GeckoResult<Void> accept(@Nullable GeckoResult.Consumer<T>, @Nullable GeckoResult.Consumer<Throwable>);
720     method @NonNull @SafeVarargs public static <V> GeckoResult<List<V>> allOf(@NonNull GeckoResult<V>...);
721     method @NonNull public static <V> GeckoResult<List<V>> allOf(@Nullable List<GeckoResult<V>>);
722     method @AnyThread @NonNull public static GeckoResult<AllowOrDeny> allow();
723     method @NonNull public synchronized GeckoResult<Boolean> cancel();
724     method public synchronized void complete(@Nullable T);
725     method public synchronized void completeExceptionally(@NonNull Throwable);
726     method public void completeFrom(@Nullable GeckoResult<T>);
727     method @AnyThread @NonNull public static GeckoResult<AllowOrDeny> deny();
728     method @NonNull public <U> GeckoResult<U> exceptionally(@NonNull GeckoResult.OnExceptionListener<U>);
729     method @NonNull public GeckoResult<Void> finally_(@NonNull Runnable);
730     method @NonNull public static <T> GeckoResult<T> fromException(@NonNull Throwable);
731     method @NonNull public static <U> GeckoResult<U> fromValue(@Nullable U);
732     method @Nullable public Looper getLooper();
733     method @NonNull public <U> GeckoResult<U> map(@Nullable GeckoResult.OnValueMapper<T,U>);
734     method @NonNull public <U> GeckoResult<U> map(@Nullable GeckoResult.OnValueMapper<T,U>, @Nullable GeckoResult.OnExceptionMapper);
735     method @Nullable public synchronized T poll();
736     method @Nullable public synchronized T poll(long);
737     method public void setCancellationDelegate(@Nullable GeckoResult.CancellationDelegate);
738     method @NonNull public <U> GeckoResult<U> then(@NonNull GeckoResult.OnValueListener<T,U>);
739     method @NonNull public <U> GeckoResult<U> then(@Nullable GeckoResult.OnValueListener<T,U>, @Nullable GeckoResult.OnExceptionListener<U>);
740     method @NonNull public GeckoResult<T> withHandler(@Nullable Handler);
741   }
743   @AnyThread public static interface GeckoResult.CancellationDelegate {
744     method @NonNull default public GeckoResult<Boolean> cancel();
745   }
747   public static interface GeckoResult.Consumer<T> {
748     method @AnyThread public void accept(@Nullable T);
749   }
751   public static interface GeckoResult.OnExceptionListener<V> {
752     method @AnyThread @Nullable public GeckoResult<V> onException(@NonNull Throwable);
753   }
755   public static interface GeckoResult.OnExceptionMapper {
756     method @AnyThread @Nullable public Throwable onException(@NonNull Throwable);
757   }
759   public static interface GeckoResult.OnValueListener<T,U> {
760     method @AnyThread @Nullable public GeckoResult<U> onValue(@Nullable T);
761   }
763   public static interface GeckoResult.OnValueMapper<T,U> {
764     method @AnyThread @Nullable public U onValue(@Nullable T);
765   }
767   public static final class GeckoResult.UncaughtException extends RuntimeException {
768     ctor public UncaughtException(Throwable);
769   }
771   public final class GeckoRuntime implements Parcelable {
772     method @AnyThread public void appendAppNotesToCrashReport(@NonNull String);
773     method @UiThread public void attachTo(@NonNull Context);
774     method @UiThread public void configurationChanged(@NonNull Configuration);
775     method @NonNull @UiThread public static GeckoRuntime create(@NonNull Context);
776     method @NonNull @UiThread public static GeckoRuntime create(@NonNull Context, @NonNull GeckoRuntimeSettings);
777     method @Nullable @UiThread public GeckoRuntime.ActivityDelegate getActivityDelegate();
778     method @Nullable @UiThread public Autocomplete.StorageDelegate getAutocompleteStorageDelegate();
779     method @NonNull @UiThread public ContentBlockingController getContentBlockingController();
780     method @NonNull @UiThread public static synchronized GeckoRuntime getDefault(@NonNull Context);
781     method @Nullable @UiThread public GeckoRuntime.Delegate getDelegate();
782     method @NonNull @UiThread public OrientationController getOrientationController();
783     method @NonNull @UiThread public ProfilerController getProfilerController();
784     method @Nullable @UiThread public GeckoRuntime.ServiceWorkerDelegate getServiceWorkerDelegate();
785     method @AnyThread @NonNull public GeckoRuntimeSettings getSettings();
786     method @NonNull @UiThread public StorageController getStorageController();
787     method @NonNull @UiThread public WebExtensionController getWebExtensionController();
788     method @Nullable @UiThread public WebNotificationDelegate getWebNotificationDelegate();
789     method @NonNull @UiThread public WebPushController getWebPushController();
790     method @UiThread public void orientationChanged();
791     method @UiThread public void orientationChanged(int);
792     method @AnyThread public void readFromParcel(@NonNull Parcel);
793     method @UiThread public void setActivityDelegate(@Nullable GeckoRuntime.ActivityDelegate);
794     method @UiThread public void setAutocompleteStorageDelegate(@Nullable Autocomplete.StorageDelegate);
795     method @UiThread public void setDelegate(@Nullable GeckoRuntime.Delegate);
796     method @UiThread public void setServiceWorkerDelegate(@Nullable GeckoRuntime.ServiceWorkerDelegate);
797     method @UiThread public void setWebNotificationDelegate(@Nullable WebNotificationDelegate);
798     method @AnyThread public void shutdown();
799     field public static final String ACTION_CRASHED = "org.mozilla.gecko.ACTION_CRASHED";
800     field public static final String CRASHED_PROCESS_TYPE_BACKGROUND_CHILD = "BACKGROUND_CHILD";
801     field public static final String CRASHED_PROCESS_TYPE_FOREGROUND_CHILD = "FOREGROUND_CHILD";
802     field public static final String CRASHED_PROCESS_TYPE_MAIN = "MAIN";
803     field public static final Parcelable.Creator<GeckoRuntime> CREATOR;
804     field public static final String EXTRA_CRASH_PROCESS_TYPE = "processType";
805     field public static final String EXTRA_EXTRAS_PATH = "extrasPath";
806     field public static final String EXTRA_MINIDUMP_PATH = "minidumpPath";
807   }
809   public static interface GeckoRuntime.ActivityDelegate {
810     method @Nullable @UiThread public GeckoResult<Intent> onStartActivityForResult(@NonNull PendingIntent);
811   }
813   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoRuntime.CrashedProcessType {
814   }
816   public static interface GeckoRuntime.Delegate {
817     method @UiThread public void onShutdown();
818   }
820   @UiThread public static interface GeckoRuntime.ServiceWorkerDelegate {
821     method @NonNull @UiThread public GeckoResult<GeckoSession> onOpenWindow(@NonNull String);
822   }
824   @AnyThread public final class GeckoRuntimeSettings extends RuntimeSettings {
825     method public boolean getAboutConfigEnabled();
826     method public int getAllowInsecureConnections();
827     method @NonNull public String[] getArguments();
828     method public boolean getAutomaticFontSizeAdjustment();
829     method @Nullable public String getConfigFilePath();
830     method public boolean getConsoleOutputEnabled();
831     method @NonNull public ContentBlocking.Settings getContentBlocking();
832     method @Nullable public Class<? extends android.app.Service> getCrashHandler();
833     method @Nullable public Float getDisplayDensityOverride();
834     method @Nullable public Integer getDisplayDpiOverride();
835     method public boolean getDoubleTapZoomingEnabled();
836     method public boolean getEnterpriseRootsEnabled();
837     method @AnyThread @Nullable public ExperimentDelegate getExperimentDelegate();
838     method @Nullable public Boolean getExtensionsProcessEnabled();
839     method public boolean getExtensionsWebAPIEnabled();
840     method @NonNull public Bundle getExtras();
841     method public boolean getFontInflationEnabled();
842     method public float getFontSizeFactor();
843     method public boolean getForceEnableAccessibility();
844     method public boolean getForceUserScalableEnabled();
845     method public int getGlMsaaLevel();
846     method public boolean getInputAutoZoomEnabled();
847     method public boolean getJavaScriptEnabled();
848     method @Nullable public String[] getLocales();
849     method public boolean getLoginAutofillEnabled();
850     method public boolean getPauseForDebuggerEnabled();
851     method public int getPreferredColorScheme();
852     method public boolean getRemoteDebuggingEnabled();
853     method @Nullable public GeckoRuntime getRuntime();
854     method @Nullable public Rect getScreenSizeOverride();
855     method @Nullable public RuntimeTelemetry.Delegate getTelemetryDelegate();
856     method public boolean getUseMaxScreenDepth();
857     method public boolean getWebFontsEnabled();
858     method public boolean getWebManifestEnabled();
859     method @NonNull public GeckoRuntimeSettings setAboutConfigEnabled(boolean);
860     method @NonNull public GeckoRuntimeSettings setAllowInsecureConnections(int);
861     method @NonNull public GeckoRuntimeSettings setAutomaticFontSizeAdjustment(boolean);
862     method @NonNull public GeckoRuntimeSettings setConsoleOutputEnabled(boolean);
863     method @NonNull public GeckoRuntimeSettings setDoubleTapZoomingEnabled(boolean);
864     method @NonNull public GeckoRuntimeSettings setEnterpriseRootsEnabled(boolean);
865     method @NonNull public GeckoRuntimeSettings setExtensionsProcessEnabled(boolean);
866     method @NonNull public GeckoRuntimeSettings setExtensionsWebAPIEnabled(boolean);
867     method @NonNull public GeckoRuntimeSettings setFontInflationEnabled(boolean);
868     method @NonNull public GeckoRuntimeSettings setFontSizeFactor(float);
869     method @NonNull public GeckoRuntimeSettings setForceEnableAccessibility(boolean);
870     method @NonNull public GeckoRuntimeSettings setForceUserScalableEnabled(boolean);
871     method @NonNull public GeckoRuntimeSettings setGlMsaaLevel(int);
872     method @NonNull public GeckoRuntimeSettings setInputAutoZoomEnabled(boolean);
873     method @NonNull public GeckoRuntimeSettings setJavaScriptEnabled(boolean);
874     method public void setLocales(@Nullable String[]);
875     method @NonNull public GeckoRuntimeSettings setLoginAutofillEnabled(boolean);
876     method @NonNull public GeckoRuntimeSettings setPreferredColorScheme(int);
877     method @NonNull public GeckoRuntimeSettings setRemoteDebuggingEnabled(boolean);
878     method @NonNull public GeckoRuntimeSettings setWebFontsEnabled(boolean);
879     method @NonNull public GeckoRuntimeSettings setWebManifestEnabled(boolean);
880     field public static final int ALLOW_ALL = 0;
881     field public static final int COLOR_SCHEME_DARK = 1;
882     field public static final int COLOR_SCHEME_LIGHT = 0;
883     field public static final int COLOR_SCHEME_SYSTEM = -1;
884     field public static final Parcelable.Creator<GeckoRuntimeSettings> CREATOR;
885     field public static final int HTTPS_ONLY = 2;
886     field public static final int HTTPS_ONLY_PRIVATE = 1;
887   }
889   @AnyThread public static final class GeckoRuntimeSettings.Builder extends RuntimeSettings.Builder<GeckoRuntimeSettings> {
890     ctor public Builder();
891     method @NonNull public GeckoRuntimeSettings.Builder aboutConfigEnabled(boolean);
892     method @NonNull public GeckoRuntimeSettings.Builder allowInsecureConnections(int);
893     method @NonNull public GeckoRuntimeSettings.Builder arguments(@NonNull String[]);
894     method @NonNull public GeckoRuntimeSettings.Builder automaticFontSizeAdjustment(boolean);
895     method @NonNull public GeckoRuntimeSettings.Builder configFilePath(@Nullable String);
896     method @NonNull public GeckoRuntimeSettings.Builder consoleOutput(boolean);
897     method @NonNull public GeckoRuntimeSettings.Builder contentBlocking(@NonNull ContentBlocking.Settings);
898     method @NonNull public GeckoRuntimeSettings.Builder crashHandler(@Nullable Class<? extends android.app.Service>);
899     method @NonNull public GeckoRuntimeSettings.Builder debugLogging(boolean);
900     method @NonNull public GeckoRuntimeSettings.Builder displayDensityOverride(float);
901     method @NonNull public GeckoRuntimeSettings.Builder displayDpiOverride(int);
902     method @NonNull public GeckoRuntimeSettings.Builder doubleTapZoomingEnabled(boolean);
903     method @NonNull public GeckoRuntimeSettings.Builder enterpriseRootsEnabled(boolean);
904     method @AnyThread @NonNull public GeckoRuntimeSettings.Builder experimentDelegate(@Nullable ExperimentDelegate);
905     method @NonNull public GeckoRuntimeSettings.Builder extensionsProcessEnabled(boolean);
906     method @NonNull public GeckoRuntimeSettings.Builder extensionsWebAPIEnabled(boolean);
907     method @NonNull public GeckoRuntimeSettings.Builder extras(@NonNull Bundle);
908     method @NonNull public GeckoRuntimeSettings.Builder fontInflation(boolean);
909     method @NonNull public GeckoRuntimeSettings.Builder fontSizeFactor(float);
910     method @NonNull public GeckoRuntimeSettings.Builder forceUserScalableEnabled(boolean);
911     method @NonNull public GeckoRuntimeSettings.Builder glMsaaLevel(int);
912     method @NonNull public GeckoRuntimeSettings.Builder inputAutoZoomEnabled(boolean);
913     method @NonNull public GeckoRuntimeSettings.Builder javaScriptEnabled(boolean);
914     method @NonNull public GeckoRuntimeSettings.Builder locales(@Nullable String[]);
915     method @NonNull public GeckoRuntimeSettings.Builder loginAutofillEnabled(boolean);
916     method @NonNull public GeckoRuntimeSettings.Builder pauseForDebugger(boolean);
917     method @NonNull public GeckoRuntimeSettings.Builder preferredColorScheme(int);
918     method @NonNull public GeckoRuntimeSettings.Builder remoteDebuggingEnabled(boolean);
919     method @NonNull public GeckoRuntimeSettings.Builder screenSizeOverride(int, int);
920     method @NonNull public GeckoRuntimeSettings.Builder telemetryDelegate(@NonNull RuntimeTelemetry.Delegate);
921     method @NonNull public GeckoRuntimeSettings.Builder useMaxScreenDepth(boolean);
922     method @NonNull public GeckoRuntimeSettings.Builder webFontsEnabled(boolean);
923     method @NonNull public GeckoRuntimeSettings.Builder webManifest(boolean);
924     method @NonNull protected GeckoRuntimeSettings newSettings(@Nullable GeckoRuntimeSettings);
925   }
927   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoRuntimeSettings.ColorScheme {
928   }
930   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoRuntimeSettings.HttpsOnlyMode {
931   }
933   public class GeckoSession {
934     ctor public GeckoSession();
935     ctor public GeckoSession(@Nullable GeckoSessionSettings);
936     method @NonNull @UiThread public GeckoDisplay acquireDisplay();
937     method @UiThread public void close();
938     method @AnyThread @NonNull public GeckoResult<Boolean> containsFormData();
939     method @AnyThread @NonNull public GeckoResult<Boolean> didPrintPageContent();
940     method @AnyThread public void exitFullScreen();
941     method @NonNull @UiThread public SessionAccessibility getAccessibility();
942     method @Nullable @UiThread public Autofill.Delegate getAutofillDelegate();
943     method @NonNull @UiThread public Autofill.Session getAutofillSession();
944     method @UiThread public void getClientBounds(@NonNull RectF);
945     method @UiThread public void getClientToScreenMatrix(@NonNull Matrix);
946     method @UiThread public void getClientToSurfaceMatrix(@NonNull Matrix);
947     method @NonNull @UiThread public CompositorController getCompositorController();
948     method @AnyThread @Nullable public ContentBlocking.Delegate getContentBlockingDelegate();
949     method @Nullable @UiThread public GeckoSession.ContentDelegate getContentDelegate();
950     method @AnyThread @NonNull public static String getDefaultUserAgent();
951     method @AnyThread @Nullable public ExperimentDelegate getExperimentDelegate();
952     method @AnyThread @NonNull public SessionFinder getFinder();
953     method @AnyThread @Nullable public GeckoSession.HistoryDelegate getHistoryDelegate();
954     method @AnyThread @Nullable public GeckoSession.MediaDelegate getMediaDelegate();
955     method @AnyThread @Nullable public MediaSession.Delegate getMediaSessionDelegate();
956     method @Nullable @UiThread public GeckoSession.NavigationDelegate getNavigationDelegate();
957     method @NonNull @UiThread public OverscrollEdgeEffect getOverscrollEdgeEffect();
958     method @UiThread public void getPageToScreenMatrix(@NonNull Matrix);
959     method @UiThread public void getPageToSurfaceMatrix(@NonNull Matrix);
960     method @NonNull @UiThread public PanZoomController getPanZoomController();
961     method @AnyThread @NonNull public SessionPdfFileSaver getPdfFileSaver();
962     method @Nullable @UiThread public GeckoSession.PermissionDelegate getPermissionDelegate();
963     method @AnyThread @Nullable public GeckoSession.PrintDelegate getPrintDelegate();
964     method @Nullable @UiThread public GeckoSession.ProgressDelegate getProgressDelegate();
965     method @AnyThread @Nullable public GeckoSession.PromptDelegate getPromptDelegate();
966     method @Nullable @UiThread public GeckoSession.ScrollDelegate getScrollDelegate();
967     method @AnyThread @Nullable public GeckoSession.SelectionActionDelegate getSelectionActionDelegate();
968     method @AnyThread @NonNull public GeckoSessionSettings getSettings();
969     method @UiThread public void getSurfaceBounds(@NonNull Rect);
970     method @AnyThread @NonNull public SessionTextInput getTextInput();
971     method @AnyThread @NonNull public GeckoResult<String> getUserAgent();
972     method @NonNull @UiThread public WebExtension.SessionController getWebExtensionController();
973     method @AnyThread public void goBack();
974     method @AnyThread public void goBack(boolean);
975     method @AnyThread public void goForward();
976     method @AnyThread public void goForward(boolean);
977     method @AnyThread public void gotoHistoryIndex(int);
978     method @AnyThread @NonNull public GeckoResult<Boolean> hasCookieBannerRuleForBrowsingContextTree();
979     method @UiThread public boolean isOpen();
980     method @AnyThread @NonNull public GeckoResult<Boolean> isPdfJs();
981     method @AnyThread public void load(@NonNull GeckoSession.Loader);
982     method @AnyThread public void loadUri(@NonNull String);
983     method @UiThread public void open(@NonNull GeckoRuntime);
984     method @AnyThread public void printPageContent();
985     method @AnyThread public void purgeHistory();
986     method @UiThread public void releaseDisplay(@NonNull GeckoDisplay);
987     method @AnyThread public void reload();
988     method @AnyThread public void reload(int);
989     method @AnyThread @NonNull public GeckoResult<GeckoSession.ReviewAnalysis> requestAnalysis(@NonNull String);
990     method @AnyThread @NonNull public GeckoResult<List<GeckoSession.Recommendation>> requestRecommendations(@NonNull String);
991     method @AnyThread public void restoreState(@NonNull GeckoSession.SessionState);
992     method @AnyThread @NonNull public GeckoResult<InputStream> saveAsPdf();
993     method @AnyThread public void setActive(boolean);
994     method @UiThread public void setAutofillDelegate(@Nullable Autofill.Delegate);
995     method @AnyThread public void setContentBlockingDelegate(@Nullable ContentBlocking.Delegate);
996     method @UiThread public void setContentDelegate(@Nullable GeckoSession.ContentDelegate);
997     method @AnyThread public void setExperimentDelegate(@Nullable ExperimentDelegate);
998     method @AnyThread public void setFocused(boolean);
999     method @AnyThread public void setHistoryDelegate(@Nullable GeckoSession.HistoryDelegate);
1000     method @AnyThread public void setMediaDelegate(@Nullable GeckoSession.MediaDelegate);
1001     method @AnyThread public void setMediaSessionDelegate(@Nullable MediaSession.Delegate);
1002     method @UiThread public void setNavigationDelegate(@Nullable GeckoSession.NavigationDelegate);
1003     method @UiThread public void setPermissionDelegate(@Nullable GeckoSession.PermissionDelegate);
1004     method @AnyThread public void setPrintDelegate(@Nullable GeckoSession.PrintDelegate);
1005     method @AnyThread public void setPriorityHint(int);
1006     method @UiThread public void setProgressDelegate(@Nullable GeckoSession.ProgressDelegate);
1007     method @AnyThread public void setPromptDelegate(@Nullable GeckoSession.PromptDelegate);
1008     method @UiThread public void setScrollDelegate(@Nullable GeckoSession.ScrollDelegate);
1009     method @UiThread public void setSelectionActionDelegate(@Nullable GeckoSession.SelectionActionDelegate);
1010     method @AnyThread public void stop();
1011     method @UiThread protected void setShouldPinOnScreen(boolean);
1012     field public static final int FINDER_DISPLAY_DIM_PAGE = 2;
1013     field public static final int FINDER_DISPLAY_DRAW_LINK_OUTLINE = 4;
1014     field public static final int FINDER_DISPLAY_HIGHLIGHT_ALL = 1;
1015     field public static final int FINDER_FIND_BACKWARDS = 1;
1016     field public static final int FINDER_FIND_LINKS_ONLY = 8;
1017     field public static final int FINDER_FIND_MATCH_CASE = 2;
1018     field public static final int FINDER_FIND_WHOLE_WORD = 4;
1019     field public static final int HEADER_FILTER_CORS_SAFELISTED = 1;
1020     field public static final int HEADER_FILTER_UNRESTRICTED_UNSAFE = 2;
1021     field public static final int LOAD_FLAGS_ALLOW_POPUPS = 8;
1022     field public static final int LOAD_FLAGS_BYPASS_CACHE = 1;
1023     field public static final int LOAD_FLAGS_BYPASS_CLASSIFIER = 16;
1024     field public static final int LOAD_FLAGS_BYPASS_LOAD_URI_DELEGATE = 128;
1025     field public static final int LOAD_FLAGS_BYPASS_PROXY = 2;
1026     field public static final int LOAD_FLAGS_EXTERNAL = 4;
1027     field public static final int LOAD_FLAGS_FORCE_ALLOW_DATA_URI = 32;
1028     field public static final int LOAD_FLAGS_NONE = 0;
1029     field public static final int LOAD_FLAGS_REPLACE_HISTORY = 64;
1030     field public static final int PRIORITY_DEFAULT = 0;
1031     field public static final int PRIORITY_HIGH = 1;
1032     field @Nullable protected GeckoSession.Window mWindow;
1033   }
1035   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.ClipboardPermissionType {
1036   }
1038   public static interface GeckoSession.ContentDelegate {
1039     method @UiThread default public void onCloseRequest(@NonNull GeckoSession);
1040     method @UiThread default public void onContextMenu(@NonNull GeckoSession, int, int, @NonNull GeckoSession.ContentDelegate.ContextElement);
1041     method @AnyThread default public void onCookieBannerDetected(@NonNull GeckoSession);
1042     method @AnyThread default public void onCookieBannerHandled(@NonNull GeckoSession);
1043     method @UiThread default public void onCrash(@NonNull GeckoSession);
1044     method @UiThread default public void onExternalResponse(@NonNull GeckoSession, @NonNull WebResponse);
1045     method @UiThread default public void onFirstComposite(@NonNull GeckoSession);
1046     method @UiThread default public void onFirstContentfulPaint(@NonNull GeckoSession);
1047     method @UiThread default public void onFocusRequest(@NonNull GeckoSession);
1048     method @UiThread default public void onFullScreen(@NonNull GeckoSession, boolean);
1049     method @AnyThread @Deprecated @DeprecationSchedule(version=122,id="session-nimbus") @Nullable default public JSONObject onGetNimbusFeature(@NonNull GeckoSession, @NonNull String);
1050     method @UiThread default public void onKill(@NonNull GeckoSession);
1051     method @UiThread default public void onMetaViewportFitChange(@NonNull GeckoSession, @NonNull String);
1052     method @UiThread default public void onPaintStatusReset(@NonNull GeckoSession);
1053     method @UiThread default public void onPointerIconChange(@NonNull GeckoSession, @NonNull PointerIcon);
1054     method @UiThread default public void onPreviewImage(@NonNull GeckoSession, @NonNull String);
1055     method @UiThread default public void onProductUrl(@NonNull GeckoSession);
1056     method @UiThread default public void onShowDynamicToolbar(@NonNull GeckoSession);
1057     method @Nullable @UiThread default public GeckoResult<SlowScriptResponse> onSlowScript(@NonNull GeckoSession, @NonNull String);
1058     method @UiThread default public void onTitleChange(@NonNull GeckoSession, @Nullable String);
1059     method @UiThread default public void onWebAppManifest(@NonNull GeckoSession, @NonNull JSONObject);
1060   }
1062   public static class GeckoSession.ContentDelegate.ContextElement {
1063     ctor protected ContextElement(@Nullable String, @Nullable String, @Nullable String, @Nullable String, @NonNull String, @Nullable String, @Nullable String);
1064     ctor protected ContextElement(@Nullable String, @Nullable String, @Nullable String, @Nullable String, @NonNull String, @Nullable String);
1065     field public static final int TYPE_AUDIO = 3;
1066     field public static final int TYPE_IMAGE = 1;
1067     field public static final int TYPE_NONE = 0;
1068     field public static final int TYPE_VIDEO = 2;
1069     field @Nullable public final String altText;
1070     field @Nullable public final String baseUri;
1071     field @Nullable public final String linkUri;
1072     field @Nullable public final String srcUri;
1073     field @Nullable public final String textContent;
1074     field @Nullable public final String title;
1075     field public final int type;
1076   }
1078   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.ContentDelegate.ContextElement.Type {
1079   }
1081   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.FinderDisplayFlags {
1082   }
1084   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.FinderFindFlags {
1085   }
1087   @AnyThread public static class GeckoSession.FinderResult {
1088     ctor protected FinderResult();
1089     field @Nullable public final RectF clientRect;
1090     field public final int current;
1091     field public final int flags;
1092     field public final boolean found;
1093     field @Nullable public final String linkUri;
1094     field @NonNull public final String searchString;
1095     field public final int total;
1096     field public final boolean wrapped;
1097   }
1099   public static class GeckoSession.GeckoPrintException extends Exception {
1100     ctor protected GeckoPrintException();
1101     field public static final int ERROR_NO_ACTIVITY_CONTEXT = -5;
1102     field public static final int ERROR_NO_ACTIVITY_CONTEXT_DELEGATE = -4;
1103     field public static final int ERROR_NO_PRINT_DELEGATE = -6;
1104     field public static final int ERROR_PRINT_SETTINGS_SERVICE_NOT_AVAILABLE = -1;
1105     field public static final int ERROR_UNABLE_TO_CREATE_PRINT_SETTINGS = -2;
1106     field public static final int ERROR_UNABLE_TO_RETRIEVE_CANONICAL_BROWSING_CONTEXT = -3;
1107     field public final int code;
1108   }
1110   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.GeckoPrintException.Codes {
1111   }
1113   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.HeaderFilter {
1114   }
1116   public static interface GeckoSession.HistoryDelegate {
1117     method @Nullable @UiThread default public GeckoResult<boolean[]> getVisited(@NonNull GeckoSession, @NonNull String[]);
1118     method @UiThread default public void onHistoryStateChange(@NonNull GeckoSession, @NonNull GeckoSession.HistoryDelegate.HistoryList);
1119     method @Nullable @UiThread default public GeckoResult<Boolean> onVisited(@NonNull GeckoSession, @NonNull String, @Nullable String, int);
1120     field public static final int VISIT_REDIRECT_PERMANENT = 4;
1121     field public static final int VISIT_REDIRECT_SOURCE = 8;
1122     field public static final int VISIT_REDIRECT_SOURCE_PERMANENT = 16;
1123     field public static final int VISIT_REDIRECT_TEMPORARY = 2;
1124     field public static final int VISIT_TOP_LEVEL = 1;
1125     field public static final int VISIT_UNRECOVERABLE_ERROR = 32;
1126   }
1128   public static interface GeckoSession.HistoryDelegate.HistoryItem {
1129     method @AnyThread @NonNull default public String getTitle();
1130     method @AnyThread @NonNull default public String getUri();
1131   }
1133   public static interface GeckoSession.HistoryDelegate.HistoryList implements List<GeckoSession.HistoryDelegate.HistoryItem> {
1134     method @AnyThread default public int getCurrentIndex();
1135   }
1137   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.LoadFlags {
1138   }
1140   @AnyThread public static class GeckoSession.Loader {
1141     ctor public Loader();
1142     method @NonNull public GeckoSession.Loader additionalHeaders(@NonNull Map<String,String>);
1143     method @NonNull public GeckoSession.Loader data(@NonNull byte[], @Nullable String);
1144     method @NonNull public GeckoSession.Loader data(@NonNull String, @Nullable String);
1145     method @NonNull public GeckoSession.Loader flags(int);
1146     method @NonNull public GeckoSession.Loader headerFilter(int);
1147     method @NonNull public GeckoSession.Loader referrer(@NonNull GeckoSession);
1148     method @NonNull public GeckoSession.Loader referrer(@NonNull Uri);
1149     method @NonNull public GeckoSession.Loader referrer(@NonNull String);
1150     method @NonNull public GeckoSession.Loader uri(@NonNull String);
1151     method @NonNull public GeckoSession.Loader uri(@NonNull Uri);
1152   }
1154   public static interface GeckoSession.MediaDelegate {
1155     method @UiThread default public void onRecordingStatusChanged(@NonNull GeckoSession, @NonNull GeckoSession.MediaDelegate.RecordingDevice[]);
1156   }
1158   public static class GeckoSession.MediaDelegate.RecordingDevice {
1159     ctor protected RecordingDevice();
1160     field public final long status;
1161     field public final long type;
1162   }
1164   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.MediaDelegate.RecordingDevice.DeviceType {
1165   }
1167   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.MediaDelegate.RecordingDevice.RecordingStatus {
1168   }
1170   public static class GeckoSession.MediaDelegate.RecordingDevice.Status {
1171     ctor protected Status();
1172     field public static final long INACTIVE = 1L;
1173     field public static final long RECORDING = 0L;
1174   }
1176   public static class GeckoSession.MediaDelegate.RecordingDevice.Type {
1177     ctor protected Type();
1178     field public static final long CAMERA = 0L;
1179     field public static final long MICROPHONE = 1L;
1180   }
1182   public static interface GeckoSession.NavigationDelegate {
1183     method @UiThread default public void onCanGoBack(@NonNull GeckoSession, boolean);
1184     method @UiThread default public void onCanGoForward(@NonNull GeckoSession, boolean);
1185     method @Nullable @UiThread default public GeckoResult<String> onLoadError(@NonNull GeckoSession, @Nullable String, @NonNull WebRequestError);
1186     method @Nullable @UiThread default public GeckoResult<AllowOrDeny> onLoadRequest(@NonNull GeckoSession, @NonNull GeckoSession.NavigationDelegate.LoadRequest);
1187     method @UiThread default public void onLocationChange(@NonNull GeckoSession, @Nullable String, @NonNull List<GeckoSession.PermissionDelegate.ContentPermission>);
1188     method @Nullable @UiThread default public GeckoResult<GeckoSession> onNewSession(@NonNull GeckoSession, @NonNull String);
1189     method @Nullable @UiThread default public GeckoResult<AllowOrDeny> onSubframeLoadRequest(@NonNull GeckoSession, @NonNull GeckoSession.NavigationDelegate.LoadRequest);
1190     field public static final int LOAD_REQUEST_IS_REDIRECT = 8388608;
1191     field public static final int TARGET_WINDOW_CURRENT = 1;
1192     field public static final int TARGET_WINDOW_NEW = 2;
1193     field public static final int TARGET_WINDOW_NONE = 0;
1194   }
1196   public static class GeckoSession.NavigationDelegate.LoadRequest {
1197     ctor protected LoadRequest();
1198     field public final boolean hasUserGesture;
1199     field public final boolean isDirectNavigation;
1200     field public final boolean isRedirect;
1201     field public final int target;
1202     field @Nullable public final String triggerUri;
1203     field @NonNull public final String uri;
1204   }
1206   @AnyThread public static class GeckoSession.PdfSaveResult {
1207     ctor protected PdfSaveResult();
1208     field @NonNull public final byte[] bytes;
1209     field @NonNull public final String filename;
1210     field public final boolean isPrivate;
1211   }
1213   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.Permission {
1214   }
1216   public static interface GeckoSession.PermissionDelegate {
1217     method @UiThread default public void onAndroidPermissionsRequest(@NonNull GeckoSession, @Nullable String[], @NonNull GeckoSession.PermissionDelegate.Callback);
1218     method @Nullable @UiThread default public GeckoResult<Integer> onContentPermissionRequest(@NonNull GeckoSession, @NonNull GeckoSession.PermissionDelegate.ContentPermission);
1219     method @UiThread default public void onMediaPermissionRequest(@NonNull GeckoSession, @NonNull String, @Nullable GeckoSession.PermissionDelegate.MediaSource[], @Nullable GeckoSession.PermissionDelegate.MediaSource[], @NonNull GeckoSession.PermissionDelegate.MediaCallback);
1220     field public static final int PERMISSION_AUTOPLAY_AUDIBLE = 5;
1221     field public static final int PERMISSION_AUTOPLAY_INAUDIBLE = 4;
1222     field public static final int PERMISSION_DESKTOP_NOTIFICATION = 1;
1223     field public static final int PERMISSION_GEOLOCATION = 0;
1224     field public static final int PERMISSION_MEDIA_KEY_SYSTEM_ACCESS = 6;
1225     field public static final int PERMISSION_PERSISTENT_STORAGE = 2;
1226     field public static final int PERMISSION_STORAGE_ACCESS = 8;
1227     field public static final int PERMISSION_TRACKING = 7;
1228     field public static final int PERMISSION_XR = 3;
1229   }
1231   public static interface GeckoSession.PermissionDelegate.Callback {
1232     method @UiThread default public void grant();
1233     method @UiThread default public void reject();
1234   }
1236   public static class GeckoSession.PermissionDelegate.ContentPermission {
1237     ctor protected ContentPermission();
1238     method @AnyThread @Nullable public static GeckoSession.PermissionDelegate.ContentPermission fromJson(@NonNull JSONObject);
1239     method @AnyThread @NonNull public JSONObject toJson();
1240     field public static final int VALUE_ALLOW = 1;
1241     field public static final int VALUE_DENY = 2;
1242     field public static final int VALUE_PROMPT = 3;
1243     field @Nullable public final String contextId;
1244     field public final int permission;
1245     field public final boolean privateMode;
1246     field @Nullable public final String thirdPartyOrigin;
1247     field @NonNull public final String uri;
1248     field public final int value;
1249   }
1251   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PermissionDelegate.ContentPermission.Value {
1252   }
1254   public static interface GeckoSession.PermissionDelegate.MediaCallback {
1255     method @UiThread default public void grant(@Nullable String, @Nullable String);
1256     method @UiThread default public void grant(@Nullable GeckoSession.PermissionDelegate.MediaSource, @Nullable GeckoSession.PermissionDelegate.MediaSource);
1257     method @UiThread default public void reject();
1258   }
1260   public static class GeckoSession.PermissionDelegate.MediaSource {
1261     ctor protected MediaSource();
1262     field public static final int SOURCE_AUDIOCAPTURE = 3;
1263     field public static final int SOURCE_CAMERA = 0;
1264     field public static final int SOURCE_MICROPHONE = 2;
1265     field public static final int SOURCE_OTHER = 4;
1266     field public static final int SOURCE_SCREEN = 1;
1267     field public static final int TYPE_AUDIO = 1;
1268     field public static final int TYPE_VIDEO = 0;
1269     field @NonNull public final String id;
1270     field @Nullable public final String name;
1271     field public final int source;
1272     field public final int type;
1273   }
1275   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PermissionDelegate.MediaSource.Source {
1276   }
1278   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PermissionDelegate.MediaSource.Type {
1279   }
1281   @AnyThread public static interface GeckoSession.PrintDelegate {
1282     method default public void onPrint(@NonNull GeckoSession);
1283     method default public void onPrint(@NonNull InputStream);
1284     method @Nullable default public GeckoResult<Boolean> onPrintWithStatus(@NonNull InputStream);
1285   }
1287   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.Priority {
1288   }
1290   public static interface GeckoSession.ProgressDelegate {
1291     method @UiThread default public void onPageStart(@NonNull GeckoSession, @NonNull String);
1292     method @UiThread default public void onPageStop(@NonNull GeckoSession, boolean);
1293     method @UiThread default public void onProgressChange(@NonNull GeckoSession, int);
1294     method @UiThread default public void onSecurityChange(@NonNull GeckoSession, @NonNull GeckoSession.ProgressDelegate.SecurityInformation);
1295     method @UiThread default public void onSessionStateChange(@NonNull GeckoSession, @NonNull GeckoSession.SessionState);
1296   }
1298   public static class GeckoSession.ProgressDelegate.SecurityInformation {
1299     ctor protected SecurityInformation();
1300     field public static final int CONTENT_BLOCKED = 1;
1301     field public static final int CONTENT_LOADED = 2;
1302     field public static final int CONTENT_UNKNOWN = 0;
1303     field public static final int SECURITY_MODE_IDENTIFIED = 1;
1304     field public static final int SECURITY_MODE_UNKNOWN = 0;
1305     field public static final int SECURITY_MODE_VERIFIED = 2;
1306     field @Nullable public final X509Certificate certificate;
1307     field @NonNull public final String host;
1308     field public final boolean isException;
1309     field public final boolean isSecure;
1310     field public final int mixedModeActive;
1311     field public final int mixedModePassive;
1312     field @Nullable public final String origin;
1313     field public final int securityMode;
1314   }
1316   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.ProgressDelegate.SecurityInformation.ContentType {
1317   }
1319   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.ProgressDelegate.SecurityInformation.SecurityMode {
1320   }
1322   public static interface GeckoSession.PromptDelegate {
1323     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onAddressSave(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AutocompleteRequest<Autocomplete.AddressSaveOption>);
1324     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onAddressSelect(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AutocompleteRequest<Autocomplete.AddressSelectOption>);
1325     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onAlertPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AlertPrompt);
1326     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onAuthPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AuthPrompt);
1327     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onBeforeUnloadPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.BeforeUnloadPrompt);
1328     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onButtonPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.ButtonPrompt);
1329     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onChoicePrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.ChoicePrompt);
1330     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onColorPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.ColorPrompt);
1331     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onCreditCardSave(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AutocompleteRequest<Autocomplete.CreditCardSaveOption>);
1332     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onCreditCardSelect(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AutocompleteRequest<Autocomplete.CreditCardSelectOption>);
1333     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onDateTimePrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.DateTimePrompt);
1334     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onFilePrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.FilePrompt);
1335     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onLoginSave(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AutocompleteRequest<Autocomplete.LoginSaveOption>);
1336     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onLoginSelect(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.AutocompleteRequest<Autocomplete.LoginSelectOption>);
1337     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onPopupPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.PopupPrompt);
1338     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onRepostConfirmPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.RepostConfirmPrompt);
1339     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onSelectIdentityCredentialAccount(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt);
1340     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onSelectIdentityCredentialProvider(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.IdentityCredential.ProviderSelectorPrompt);
1341     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onSharePrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.SharePrompt);
1342     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onShowPrivacyPolicyIdentityCredential(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.IdentityCredential.PrivacyPolicyPrompt);
1343     method @Nullable @UiThread default public GeckoResult<GeckoSession.PromptDelegate.PromptResponse> onTextPrompt(@NonNull GeckoSession, @NonNull GeckoSession.PromptDelegate.TextPrompt);
1344   }
1346   public static class GeckoSession.PromptDelegate.AlertPrompt extends GeckoSession.PromptDelegate.BasePrompt {
1347     ctor protected AlertPrompt(@NonNull String, @Nullable String, @Nullable String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
1348     field @Nullable public final String message;
1349   }
1351   public static class GeckoSession.PromptDelegate.AuthPrompt extends GeckoSession.PromptDelegate.BasePrompt {
1352     ctor protected AuthPrompt(@NonNull String, @Nullable String, @Nullable String, @NonNull GeckoSession.PromptDelegate.AuthPrompt.AuthOptions, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
1353     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull String);
1354     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull String, @NonNull String);
1355     field @NonNull public final GeckoSession.PromptDelegate.AuthPrompt.AuthOptions authOptions;
1356     field @Nullable public final String message;
1357   }
1359   public static class GeckoSession.PromptDelegate.AuthPrompt.AuthOptions {
1360     ctor protected AuthOptions();
1361     field public final int flags;
1362     field public final int level;
1363     field @Nullable public final String password;
1364     field @Nullable public final String uri;
1365     field @Nullable public final String username;
1366   }
1368   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PromptDelegate.AuthPrompt.AuthOptions.AuthFlag {
1369   }
1371   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PromptDelegate.AuthPrompt.AuthOptions.AuthLevel {
1372   }
1374   public static class GeckoSession.PromptDelegate.AuthPrompt.AuthOptions.Flags {
1375     ctor protected Flags();
1376     field public static final int CROSS_ORIGIN_SUB_RESOURCE = 32;
1377     field public static final int HOST = 1;
1378     field public static final int ONLY_PASSWORD = 8;
1379     field public static final int PREVIOUS_FAILED = 16;
1380     field public static final int PROXY = 2;
1381   }
1383   public static class GeckoSession.PromptDelegate.AuthPrompt.AuthOptions.Level {
1384     ctor protected Level();
1385     field public static final int NONE = 0;
1386     field public static final int PW_ENCRYPTED = 1;
1387     field public static final int SECURE = 2;
1388   }
1390   public static class GeckoSession.PromptDelegate.AutocompleteRequest<T extends Autocomplete.Option<?>> extends GeckoSession.PromptDelegate.BasePrompt {
1391     ctor protected AutocompleteRequest(@NonNull String, @NonNull T[], GeckoSession.PromptDelegate.BasePrompt.Observer);
1392     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull Autocomplete.Option<?>);
1393     field @NonNull public final T[] options;
1394   }
1396   public static class GeckoSession.PromptDelegate.BasePrompt {
1397     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse dismiss();
1398     method @Nullable @UiThread public GeckoSession.PromptDelegate.PromptInstanceDelegate getDelegate();
1399     method @UiThread public boolean isComplete();
1400     method @UiThread public void setDelegate(@Nullable GeckoSession.PromptDelegate.PromptInstanceDelegate);
1401     method @NonNull @UiThread protected GeckoSession.PromptDelegate.PromptResponse confirm();
1402     field @Nullable public final String title;
1403   }
1405   protected static interface GeckoSession.PromptDelegate.BasePrompt.Observer {
1406     method @AnyThread default public void onPromptCompleted(@NonNull GeckoSession.PromptDelegate.BasePrompt);
1407   }
1409   public static class GeckoSession.PromptDelegate.BeforeUnloadPrompt extends GeckoSession.PromptDelegate.BasePrompt {
1410     ctor protected BeforeUnloadPrompt(@NonNull String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
1411     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@Nullable AllowOrDeny);
1412   }
1414   public static class GeckoSession.PromptDelegate.ButtonPrompt extends GeckoSession.PromptDelegate.BasePrompt {
1415     ctor protected ButtonPrompt(@NonNull String, @Nullable String, @Nullable String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
1416     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(int);
1417     field @Nullable public final String message;
1418   }
1420   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PromptDelegate.ButtonPrompt.ButtonType {
1421   }
1423   public static class GeckoSession.PromptDelegate.ButtonPrompt.Type {
1424     ctor protected Type();
1425     field public static final int NEGATIVE = 2;
1426     field public static final int POSITIVE = 0;
1427   }
1429   public static class GeckoSession.PromptDelegate.ChoicePrompt extends GeckoSession.PromptDelegate.BasePrompt {
1430     ctor protected ChoicePrompt(@NonNull String, @Nullable String, @Nullable String, int, @NonNull GeckoSession.PromptDelegate.ChoicePrompt.Choice[], @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
1431     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull String);
1432     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull String[]);
1433     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull GeckoSession.PromptDelegate.ChoicePrompt.Choice);
1434     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull GeckoSession.PromptDelegate.ChoicePrompt.Choice[]);
1435     field @NonNull public final GeckoSession.PromptDelegate.ChoicePrompt.Choice[] choices;
1436     field @Nullable public final String message;
1437     field public final int type;
1438   }
1440   public static class GeckoSession.PromptDelegate.ChoicePrompt.Choice {
1441     ctor protected Choice();
1442     field public final boolean disabled;
1443     field @Nullable public final String icon;
1444     field @NonNull public final String id;
1445     field @Nullable public final GeckoSession.PromptDelegate.ChoicePrompt.Choice[] items;
1446     field @NonNull public final String label;
1447     field public final boolean selected;
1448     field public final boolean separator;
1449   }
1451   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PromptDelegate.ChoicePrompt.ChoiceType {
1452   }
1454   public static class GeckoSession.PromptDelegate.ChoicePrompt.Type {
1455     ctor protected Type();
1456     field public static final int MENU = 1;
1457     field public static final int MULTIPLE = 3;
1458     field public static final int SINGLE = 2;
1459   }
1461   public static class GeckoSession.PromptDelegate.ColorPrompt extends GeckoSession.PromptDelegate.BasePrompt {
1462     ctor protected ColorPrompt(@NonNull String, @Nullable String, @Nullable String, @Nullable String[], @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
1463     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull String);
1464     field @Nullable public final String defaultValue;
1465     field @Nullable public final String[] predefinedValues;
1466   }
1468   public static class GeckoSession.PromptDelegate.DateTimePrompt extends GeckoSession.PromptDelegate.BasePrompt {
1469     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull String);
1470     field @Nullable public final String defaultValue;
1471     field @Nullable public final String maxValue;
1472     field @Nullable public final String minValue;
1473     field @Nullable public final String stepValue;
1474     field public final int type;
1475   }
1477   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PromptDelegate.DateTimePrompt.DatetimeType {
1478   }
1480   public static class GeckoSession.PromptDelegate.DateTimePrompt.Type {
1481     ctor protected Type();
1482     field public static final int DATE = 1;
1483     field public static final int DATETIME_LOCAL = 5;
1484     field public static final int MONTH = 2;
1485     field public static final int TIME = 4;
1486     field public static final int WEEK = 3;
1487   }
1489   public static class GeckoSession.PromptDelegate.FilePrompt extends GeckoSession.PromptDelegate.BasePrompt {
1490     ctor protected FilePrompt(@NonNull String, @Nullable String, int, int, @Nullable String[], @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
1491     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull Context, @NonNull Uri);
1492     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull Context, @NonNull Uri[]);
1493     field public final int capture;
1494     field @Nullable public final String[] mimeTypes;
1495     field public final int type;
1496   }
1498   public static class GeckoSession.PromptDelegate.FilePrompt.Capture {
1499     ctor protected Capture();
1500     field public static final int ANY = 1;
1501     field public static final int ENVIRONMENT = 3;
1502     field public static final int NONE = 0;
1503     field public static final int USER = 2;
1504   }
1506   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PromptDelegate.FilePrompt.CaptureType {
1507   }
1509   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PromptDelegate.FilePrompt.FileType {
1510   }
1512   public static class GeckoSession.PromptDelegate.FilePrompt.Type {
1513     ctor protected Type();
1514     field public static final int MULTIPLE = 2;
1515     field public static final int SINGLE = 1;
1516   }
1518   public static final class GeckoSession.PromptDelegate.IdentityCredential {
1519     ctor public IdentityCredential();
1520   }
1522   public static class GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt extends GeckoSession.PromptDelegate.BasePrompt {
1523     ctor public AccountSelectorPrompt(@NonNull String, @NonNull GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Account[], @NonNull GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Provider, GeckoSession.PromptDelegate.BasePrompt.Observer);
1524     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull int);
1525     field @NonNull public final GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Account[] accounts;
1526     field @NonNull public final GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Provider provider;
1527   }
1529   public static class GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Account {
1530     ctor public Account(int, @NonNull String, @NonNull String, @Nullable String);
1531     field @NonNull public final String email;
1532     field @Nullable public final String icon;
1533     field public final int id;
1534     field @NonNull public final String name;
1535   }
1537   public static class GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Provider {
1538     ctor public Provider(@NonNull String, @NonNull String, @Nullable String);
1539     field @NonNull public final String domain;
1540     field @Nullable public final String icon;
1541     field @NonNull public final String name;
1542   }
1544   public static class GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.ProviderAccounts {
1545     ctor public ProviderAccounts(int, @Nullable GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Provider, @NonNull GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Account[]);
1546     field @NonNull public final GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Account[] accounts;
1547     field public final int id;
1548     field @Nullable public final GeckoSession.PromptDelegate.IdentityCredential.AccountSelectorPrompt.Provider provider;
1549   }
1551   public static class GeckoSession.PromptDelegate.IdentityCredential.PrivacyPolicyPrompt extends GeckoSession.PromptDelegate.BasePrompt {
1552     ctor protected PrivacyPolicyPrompt(@NonNull String, @NonNull String, @NonNull String, @NonNull String, @NonNull String, @Nullable String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
1553     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(boolean);
1554     field @NonNull public final String host;
1555     field @Nullable public final String icon;
1556     field @NonNull public final String privacyPolicyUrl;
1557     field @NonNull public final String providerDomain;
1558     field @NonNull public final String termsOfServiceUrl;
1559   }
1561   public static class GeckoSession.PromptDelegate.IdentityCredential.ProviderSelectorPrompt extends GeckoSession.PromptDelegate.BasePrompt {
1562     ctor protected ProviderSelectorPrompt(@NonNull String, @NonNull GeckoSession.PromptDelegate.IdentityCredential.ProviderSelectorPrompt.Provider[], @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
1563     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(int);
1564     field @NonNull public final GeckoSession.PromptDelegate.IdentityCredential.ProviderSelectorPrompt.Provider[] providers;
1565   }
1567   public static class GeckoSession.PromptDelegate.IdentityCredential.ProviderSelectorPrompt.Provider {
1568     ctor public Provider(int, @NonNull String, @Nullable String, @NonNull String);
1569     field @NonNull public final String domain;
1570     field @Nullable public final String icon;
1571     field public final int id;
1572     field @NonNull public final String name;
1573   }
1575   public static class GeckoSession.PromptDelegate.PopupPrompt extends GeckoSession.PromptDelegate.BasePrompt {
1576     ctor protected PopupPrompt(@NonNull String, @Nullable String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
1577     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull AllowOrDeny);
1578     field @Nullable public final String targetUri;
1579   }
1581   public static interface GeckoSession.PromptDelegate.PromptInstanceDelegate {
1582     method @UiThread default public void onPromptDismiss(@NonNull GeckoSession.PromptDelegate.BasePrompt);
1583     method @UiThread default public void onPromptUpdate(@NonNull GeckoSession.PromptDelegate.BasePrompt);
1584   }
1586   public static class GeckoSession.PromptDelegate.PromptResponse {
1587   }
1589   public static class GeckoSession.PromptDelegate.RepostConfirmPrompt extends GeckoSession.PromptDelegate.BasePrompt {
1590     ctor protected RepostConfirmPrompt(@NonNull String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
1591     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@Nullable AllowOrDeny);
1592   }
1594   public static class GeckoSession.PromptDelegate.SharePrompt extends GeckoSession.PromptDelegate.BasePrompt {
1595     ctor protected SharePrompt(@NonNull String, @Nullable String, @Nullable String, @Nullable String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
1596     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(int);
1597     field @Nullable public final String text;
1598     field @Nullable public final String uri;
1599   }
1601   public static class GeckoSession.PromptDelegate.SharePrompt.Result {
1602     ctor protected Result();
1603     field public static final int ABORT = 2;
1604     field public static final int FAILURE = 1;
1605     field public static final int SUCCESS = 0;
1606   }
1608   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.PromptDelegate.SharePrompt.ShareResult {
1609   }
1611   public static class GeckoSession.PromptDelegate.TextPrompt extends GeckoSession.PromptDelegate.BasePrompt {
1612     ctor protected TextPrompt(@NonNull String, @Nullable String, @Nullable String, @Nullable String, @NonNull GeckoSession.PromptDelegate.BasePrompt.Observer);
1613     method @NonNull @UiThread public GeckoSession.PromptDelegate.PromptResponse confirm(@NonNull String);
1614     field @Nullable public final String defaultValue;
1615     field @Nullable public final String message;
1616   }
1618   @AnyThread public static class GeckoSession.Recommendation {
1619     ctor protected Recommendation();
1620     field @Nullable public final Double adjustedRating;
1621     field @Nullable public final String aid;
1622     field @Nullable public final String analysisUrl;
1623     field @Nullable public final String currency;
1624     field @Nullable public final String grade;
1625     field @Nullable public final String imageUrl;
1626     field @Nullable public final String name;
1627     field @Nullable public final String price;
1628     field @Nullable public final Boolean sponsored;
1629     field @Nullable public final String url;
1630   }
1632   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.RestartReason {
1633   }
1635   @AnyThread public static class GeckoSession.ReviewAnalysis {
1636     ctor protected ReviewAnalysis();
1637     field @NonNull public final Double adjustedRating;
1638     field @Nullable public final String analysisURL;
1639     field public final boolean deletedProduct;
1640     field public final boolean deletedProductReported;
1641     field @Nullable public final String grade;
1642     field @Nullable public final GeckoSession.ReviewAnalysis.Highlight highlights;
1643     field public final long lastAnalysisTime;
1644     field public final boolean needsAnalysis;
1645     field @Nullable public final String productId;
1646   }
1648   public class GeckoSession.ReviewAnalysis.Highlight {
1649     ctor protected Highlight();
1650     field @Nullable public final String[] appearance;
1651     field @Nullable public final String[] competitiveness;
1652     field @Nullable public final String[] price;
1653     field @Nullable public final String[] quality;
1654     field @Nullable public final String[] shipping;
1655   }
1657   public static interface GeckoSession.ScrollDelegate {
1658     method @UiThread default public void onScrollChanged(@NonNull GeckoSession, int, int);
1659   }
1661   public static interface GeckoSession.SelectionActionDelegate {
1662     method @UiThread default public void onDismissClipboardPermissionRequest(@NonNull GeckoSession);
1663     method @UiThread default public void onHideAction(@NonNull GeckoSession, int);
1664     method @UiThread default public void onShowActionRequest(@NonNull GeckoSession, @NonNull GeckoSession.SelectionActionDelegate.Selection);
1665     method @Nullable @UiThread default public GeckoResult<AllowOrDeny> onShowClipboardPermissionRequest(@NonNull GeckoSession, @NonNull GeckoSession.SelectionActionDelegate.ClipboardPermission);
1666     field public static final String ACTION_COLLAPSE_TO_END = "org.mozilla.geckoview.COLLAPSE_TO_END";
1667     field public static final String ACTION_COLLAPSE_TO_START = "org.mozilla.geckoview.COLLAPSE_TO_START";
1668     field public static final String ACTION_COPY = "org.mozilla.geckoview.COPY";
1669     field public static final String ACTION_CUT = "org.mozilla.geckoview.CUT";
1670     field public static final String ACTION_DELETE = "org.mozilla.geckoview.DELETE";
1671     field public static final String ACTION_HIDE = "org.mozilla.geckoview.HIDE";
1672     field public static final String ACTION_PASTE = "org.mozilla.geckoview.PASTE";
1673     field public static final String ACTION_PASTE_AS_PLAIN_TEXT = "org.mozilla.geckoview.PASTE_AS_PLAIN_TEXT";
1674     field public static final String ACTION_SELECT_ALL = "org.mozilla.geckoview.SELECT_ALL";
1675     field public static final String ACTION_UNSELECT = "org.mozilla.geckoview.UNSELECT";
1676     field public static final int FLAG_IS_COLLAPSED = 1;
1677     field public static final int FLAG_IS_EDITABLE = 2;
1678     field public static final int FLAG_IS_PASSWORD = 4;
1679     field public static final int HIDE_REASON_ACTIVE_SCROLL = 3;
1680     field public static final int HIDE_REASON_ACTIVE_SELECTION = 2;
1681     field public static final int HIDE_REASON_INVISIBLE_SELECTION = 1;
1682     field public static final int HIDE_REASON_NO_SELECTION = 0;
1683     field public static final int PERMISSION_CLIPBOARD_READ = 1;
1684   }
1686   public static class GeckoSession.SelectionActionDelegate.ClipboardPermission {
1687     ctor protected ClipboardPermission();
1688     field @Nullable public final Point screenPoint;
1689     field public final int type;
1690     field @NonNull public final String uri;
1691   }
1693   public static class GeckoSession.SelectionActionDelegate.Selection {
1694     ctor protected Selection();
1695     method @AnyThread public void collapseToEnd();
1696     method @AnyThread public void collapseToStart();
1697     method @AnyThread public void copy();
1698     method @AnyThread public void cut();
1699     method @AnyThread public void delete();
1700     method @AnyThread public void execute(@NonNull String);
1701     method @AnyThread public void hide();
1702     method @AnyThread public boolean isActionAvailable(@NonNull String);
1703     method @AnyThread public void paste();
1704     method @AnyThread public void pasteAsPlainText();
1705     method @AnyThread public void selectAll();
1706     method @AnyThread public void unselect();
1707     field @NonNull public final Collection<String> availableActions;
1708     field public final int flags;
1709     field @Nullable public final RectF screenRect;
1710     field @NonNull public final String text;
1711   }
1713   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.SelectionActionDelegateAction {
1714   }
1716   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.SelectionActionDelegateFlag {
1717   }
1719   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.SelectionActionDelegateHideReason {
1720   }
1722   @AnyThread public static class GeckoSession.SessionState extends AbstractSequentialList<GeckoSession.HistoryDelegate.HistoryItem> implements Parcelable GeckoSession.HistoryDelegate.HistoryList {
1723     ctor public SessionState(@NonNull GeckoSession.SessionState);
1724     method @Nullable public static GeckoSession.SessionState fromString(@Nullable String);
1725     method public void readFromParcel(@NonNull Parcel);
1726     field public static final Parcelable.Creator<GeckoSession.SessionState> CREATOR;
1727   }
1729   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.TargetWindow {
1730   }
1732   public static interface GeckoSession.TextInputDelegate {
1733     method @UiThread default public void hideSoftInput(@NonNull GeckoSession);
1734     method @UiThread default public void restartInput(@NonNull GeckoSession, int);
1735     method @UiThread default public void showSoftInput(@NonNull GeckoSession);
1736     method @UiThread default public void updateCursorAnchorInfo(@NonNull GeckoSession, @NonNull CursorAnchorInfo);
1737     method @UiThread default public void updateExtractedText(@NonNull GeckoSession, @NonNull ExtractedTextRequest, @NonNull ExtractedText);
1738     method @UiThread default public void updateSelection(@NonNull GeckoSession, int, int, int, int);
1739     field public static final int RESTART_REASON_BLUR = 1;
1740     field public static final int RESTART_REASON_CONTENT_CHANGE = 2;
1741     field public static final int RESTART_REASON_FOCUS = 0;
1742   }
1744   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSession.VisitFlags {
1745   }
1747   @AnyThread public static class GeckoSession.WebResponseInfo {
1748     ctor protected WebResponseInfo();
1749     field @Nullable public final long contentLength;
1750     field @Nullable public final String contentType;
1751     field @Nullable public final String filename;
1752     field @NonNull public final String uri;
1753   }
1755   @AnyThread public final class GeckoSessionSettings implements Parcelable {
1756     ctor public GeckoSessionSettings();
1757     ctor public GeckoSessionSettings(@NonNull GeckoSessionSettings);
1758     method public boolean getAllowJavascript();
1759     method @Nullable public String getChromeUri();
1760     method @Nullable public String getContextId();
1761     method public int getDisplayMode();
1762     method public boolean getFullAccessibilityTree();
1763     method public int getScreenId();
1764     method public boolean getSuspendMediaWhenInactive();
1765     method public boolean getUsePrivateMode();
1766     method public boolean getUseTrackingProtection();
1767     method public int getUserAgentMode();
1768     method @Nullable public String getUserAgentOverride();
1769     method public int getViewportMode();
1770     method public void readFromParcel(@NonNull Parcel);
1771     method public void setAllowJavascript(boolean);
1772     method public void setDisplayMode(int);
1773     method public void setFullAccessibilityTree(boolean);
1774     method public void setSuspendMediaWhenInactive(boolean);
1775     method public void setUseTrackingProtection(boolean);
1776     method public void setUserAgentMode(int);
1777     method public void setUserAgentOverride(@Nullable String);
1778     method public void setViewportMode(int);
1779     field public static final Parcelable.Creator<GeckoSessionSettings> CREATOR;
1780     field public static final int DISPLAY_MODE_BROWSER = 0;
1781     field public static final int DISPLAY_MODE_FULLSCREEN = 3;
1782     field public static final int DISPLAY_MODE_MINIMAL_UI = 1;
1783     field public static final int DISPLAY_MODE_STANDALONE = 2;
1784     field public static final int USER_AGENT_MODE_DESKTOP = 1;
1785     field public static final int USER_AGENT_MODE_MOBILE = 0;
1786     field public static final int USER_AGENT_MODE_VR = 2;
1787     field public static final int VIEWPORT_MODE_DESKTOP = 1;
1788     field public static final int VIEWPORT_MODE_MOBILE = 0;
1789   }
1791   @AnyThread public static final class GeckoSessionSettings.Builder {
1792     ctor public Builder();
1793     ctor public Builder(GeckoSessionSettings);
1794     method @NonNull public GeckoSessionSettings.Builder allowJavascript(boolean);
1795     method @NonNull public GeckoSessionSettings build();
1796     method @NonNull public GeckoSessionSettings.Builder chromeUri(@NonNull String);
1797     method @NonNull public GeckoSessionSettings.Builder contextId(@Nullable String);
1798     method @NonNull public GeckoSessionSettings.Builder displayMode(int);
1799     method @NonNull public GeckoSessionSettings.Builder fullAccessibilityTree(boolean);
1800     method @NonNull public GeckoSessionSettings.Builder screenId(int);
1801     method @NonNull public GeckoSessionSettings.Builder suspendMediaWhenInactive(boolean);
1802     method @NonNull public GeckoSessionSettings.Builder usePrivateMode(boolean);
1803     method @NonNull public GeckoSessionSettings.Builder useTrackingProtection(boolean);
1804     method @NonNull public GeckoSessionSettings.Builder userAgentMode(int);
1805     method @NonNull public GeckoSessionSettings.Builder userAgentOverride(@NonNull String);
1806     method @NonNull public GeckoSessionSettings.Builder viewportMode(int);
1807   }
1809   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSessionSettings.DisplayMode {
1810   }
1812   public static class GeckoSessionSettings.Key<T> {
1813   }
1815   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSessionSettings.UserAgentMode {
1816   }
1818   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoSessionSettings.ViewportMode {
1819   }
1821   public class GeckoVRManager {
1822     method @AnyThread public static synchronized void setExternalContext(long);
1823   }
1825   @UiThread public class GeckoView extends FrameLayout implements GeckoDisplay.NewSurfaceProvider {
1826     ctor public GeckoView(Context);
1827     ctor public GeckoView(Context, AttributeSet);
1828     method @NonNull @UiThread public GeckoResult<Bitmap> capturePixels();
1829     method public void coverUntilFirstPaint(int);
1830     method public void dispatchDraw(@Nullable Canvas);
1831     method @Nullable public GeckoView.ActivityContextDelegate getActivityContextDelegate();
1832     method public boolean getAutofillEnabled();
1833     method @NonNull public PanZoomController getPanZoomController();
1834     method @Nullable public GeckoSession.PrintDelegate getPrintDelegate();
1835     method public void getPrintDelegate(@Nullable GeckoSession.PrintDelegate);
1836     method @AnyThread @Nullable public GeckoSession getSession();
1837     method public void onAttachedToWindow();
1838     method public void onDetachedFromWindow();
1839     method @NonNull public GeckoResult<PanZoomController.InputResultDetail> onTouchEventForDetailResult(@NonNull MotionEvent);
1840     method @Nullable @UiThread public GeckoSession releaseSession();
1841     method public void setActivityContextDelegate(@Nullable GeckoView.ActivityContextDelegate);
1842     method public void setAutofillEnabled(boolean);
1843     method public void setDynamicToolbarMaxHeight(int);
1844     method @UiThread public void setSession(@NonNull GeckoSession);
1845     method public void setVerticalClipping(int);
1846     method public void setViewBackend(int);
1847     method public boolean shouldPinOnScreen();
1848     field public static final int BACKEND_SURFACE_VIEW = 1;
1849     field public static final int BACKEND_TEXTURE_VIEW = 2;
1850     field @NonNull protected final GeckoView.Display mDisplay;
1851     field @Nullable protected GeckoSession mSession;
1852   }
1854   @AnyThread public static interface GeckoView.ActivityContextDelegate {
1855     method @Nullable public Context getActivityContext();
1856   }
1858   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoView.ViewBackend {
1859   }
1861   public class GeckoViewPrintDocumentAdapter extends PrintDocumentAdapter {
1862     ctor public GeckoViewPrintDocumentAdapter(@NonNull InputStream, @NonNull Context);
1863     ctor public GeckoViewPrintDocumentAdapter(@NonNull InputStream, @NonNull Context, @Nullable GeckoResult<Boolean>);
1864     ctor public GeckoViewPrintDocumentAdapter(@NonNull File);
1865     method @AnyThread @Nullable public static File makeTempPdfFile(@NonNull InputStream, @NonNull Context);
1866   }
1868   @AnyThread public class GeckoWebExecutor {
1869     ctor public GeckoWebExecutor(@NonNull GeckoRuntime);
1870     method @NonNull public GeckoResult<WebResponse> fetch(@NonNull WebRequest);
1871     method @NonNull public GeckoResult<WebResponse> fetch(@NonNull WebRequest, int);
1872     method @NonNull public GeckoResult<InetAddress[]> resolve(@NonNull String);
1873     method public void speculativeConnect(@NonNull String);
1874     field public static final int FETCH_FLAGS_ANONYMOUS = 1;
1875     field public static final int FETCH_FLAGS_NONE = 0;
1876     field public static final int FETCH_FLAGS_NO_REDIRECTS = 2;
1877     field public static final int FETCH_FLAGS_PRIVATE = 8;
1878     field public static final int FETCH_FLAGS_STREAM_FAILURE_TEST = 1024;
1879   }
1881   @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoWebExecutor.FetchFlags {
1882   }
1884   @AnyThread public class Image {
1885     method @NonNull public GeckoResult<Bitmap> getBitmap(int);
1886   }
1888   public static class Image.ImageProcessingException extends RuntimeException {
1889     ctor public ImageProcessingException(String);
1890   }
1892   @UiThread public class MediaSession {
1893     ctor protected MediaSession(GeckoSession);
1894     method public boolean isActive();
1895     method public void muteAudio(boolean);
1896     method public void nextTrack();
1897     method public void pause();
1898     method public void play();
1899     method public void previousTrack();
1900     method public void seekBackward();
1901     method public void seekForward();
1902     method public void seekTo(double, boolean);
1903     method public void skipAd();
1904     method public void stop();
1905   }
1907   @UiThread public static interface MediaSession.Delegate {
1908     method default public void onActivated(@NonNull GeckoSession, @NonNull MediaSession);
1909     method default public void onDeactivated(@NonNull GeckoSession, @NonNull MediaSession);
1910     method default public void onFeatures(@NonNull GeckoSession, @NonNull MediaSession, long);
1911     method default public void onFullscreen(@NonNull GeckoSession, @NonNull MediaSession, boolean, @Nullable MediaSession.ElementMetadata);
1912     method default public void onMetadata(@NonNull GeckoSession, @NonNull MediaSession, @NonNull MediaSession.Metadata);
1913     method default public void onPause(@NonNull GeckoSession, @NonNull MediaSession);
1914     method default public void onPlay(@NonNull GeckoSession, @NonNull MediaSession);
1915     method default public void onPositionState(@NonNull GeckoSession, @NonNull MediaSession, @NonNull MediaSession.PositionState);
1916     method default public void onStop(@NonNull GeckoSession, @NonNull MediaSession);
1917   }
1919   public static class MediaSession.ElementMetadata {
1920     ctor public ElementMetadata(@Nullable String, double, long, long, int, int);
1921     field public final int audioTrackCount;
1922     field public final double duration;
1923     field public final long height;
1924     field @Nullable public final String source;
1925     field public final int videoTrackCount;
1926     field public final long width;
1927   }
1929   public static class MediaSession.Feature {
1930     ctor public Feature();
1931     field public static final long FOCUS = 512L;
1932     field public static final long NEXT_TRACK = 128L;
1933     field public static final long NONE = 0L;
1934     field public static final long PAUSE = 2L;
1935     field public static final long PLAY = 1L;
1936     field public static final long PREVIOUS_TRACK = 256L;
1937     field public static final long SEEK_BACKWARD = 32L;
1938     field public static final long SEEK_FORWARD = 16L;
1939     field public static final long SEEK_TO = 8L;
1940     field public static final long SKIP_AD = 64L;
1941     field public static final long STOP = 4L;
1942   }
1944   @Retention(value=RetentionPolicy.SOURCE) public static interface MediaSession.MSFeature {
1945   }
1947   public static class MediaSession.Metadata {
1948     ctor protected Metadata(@Nullable String, @Nullable String, @Nullable String, @Nullable Image);
1949     field @Nullable public final String album;
1950     field @Nullable public final String artist;
1951     field @Nullable public final Image artwork;
1952     field @Nullable public final String title;
1953   }
1955   public static class MediaSession.PositionState {
1956     ctor protected PositionState(double, double, double);
1957     field public final double duration;
1958     field public final double playbackRate;
1959     field public final double position;
1960   }
1962   public class OrientationController {
1963     method @Nullable @UiThread public OrientationController.OrientationDelegate getDelegate();
1964     method @UiThread public void setDelegate(@Nullable OrientationController.OrientationDelegate);
1965   }
1967   @UiThread public static interface OrientationController.OrientationDelegate {
1968     method @Nullable default public GeckoResult<AllowOrDeny> onOrientationLock(@NonNull int);
1969     method @Nullable default public void onOrientationUnlock();
1970   }
1972   @UiThread public final class OverscrollEdgeEffect {
1973     method public void draw(@NonNull Canvas);
1974     method @Nullable public Runnable getInvalidationCallback();
1975     method public void setInvalidationCallback(@Nullable Runnable);
1976     method public void setTheme(@NonNull Context);
1977   }
1979   @UiThread public class PanZoomController {
1980     ctor protected PanZoomController(GeckoSession);
1981     method public float getScrollFactor();
1982     method public void onMotionEvent(@NonNull MotionEvent);
1983     method public void onMouseEvent(@NonNull MotionEvent);
1984     method public void onTouchEvent(@NonNull MotionEvent);
1985     method @NonNull public GeckoResult<PanZoomController.InputResultDetail> onTouchEventForDetailResult(@NonNull MotionEvent);
1986     method @UiThread public void scrollBy(@NonNull ScreenLength, @NonNull ScreenLength);
1987     method @UiThread public void scrollBy(@NonNull ScreenLength, @NonNull ScreenLength, int);
1988     method @UiThread public void scrollTo(@NonNull ScreenLength, @NonNull ScreenLength);
1989     method @UiThread public void scrollTo(@NonNull ScreenLength, @NonNull ScreenLength, int);
1990     method @UiThread public void scrollToBottom();
1991     method @UiThread public void scrollToTop();
1992     method public void setIsLongpressEnabled(boolean);
1993     method public void setScrollFactor(float);
1994     field public static final int INPUT_RESULT_HANDLED = 1;
1995     field public static final int INPUT_RESULT_HANDLED_CONTENT = 2;
1996     field public static final int INPUT_RESULT_IGNORED = 3;
1997     field public static final int INPUT_RESULT_UNHANDLED = 0;
1998     field public static final int OVERSCROLL_FLAG_HORIZONTAL = 1;
1999     field public static final int OVERSCROLL_FLAG_NONE = 0;
2000     field public static final int OVERSCROLL_FLAG_VERTICAL = 2;
2001     field public static final int SCROLLABLE_FLAG_BOTTOM = 4;
2002     field public static final int SCROLLABLE_FLAG_LEFT = 8;
2003     field public static final int SCROLLABLE_FLAG_NONE = 0;
2004     field public static final int SCROLLABLE_FLAG_RIGHT = 2;
2005     field public static final int SCROLLABLE_FLAG_TOP = 1;
2006     field public static final int SCROLL_BEHAVIOR_AUTO = 1;
2007     field public static final int SCROLL_BEHAVIOR_SMOOTH = 0;
2008   }
2010   @Retention(value=RetentionPolicy.SOURCE) public static interface PanZoomController.InputResult {
2011   }
2013   public static class PanZoomController.InputResultDetail {
2014     ctor protected InputResultDetail(int, int, int);
2015     method @AnyThread public int handledResult();
2016     method @AnyThread public int overscrollDirections();
2017     method @AnyThread public int scrollableDirections();
2018   }
2020   @Retention(value=RetentionPolicy.SOURCE) public static interface PanZoomController.OverscrollDirections {
2021   }
2023   @Retention(value=RetentionPolicy.SOURCE) public static interface PanZoomController.ScrollBehaviorType {
2024   }
2026   @Retention(value=RetentionPolicy.SOURCE) public static interface PanZoomController.ScrollableDirections {
2027   }
2029   @UiThread public class ProfilerController {
2030     ctor public ProfilerController();
2031     method public void addMarker(@NonNull String, @Nullable Double, @Nullable Double, @Nullable String);
2032     method public void addMarker(@NonNull String, @Nullable Double, @Nullable String);
2033     method public void addMarker(@NonNull String, @Nullable Double);
2034     method public void addMarker(@NonNull String, @Nullable String);
2035     method public void addMarker(@NonNull String);
2036     method @Nullable public Double getProfilerTime();
2037     method public boolean isProfilerActive();
2038     method public void startProfiler(@NonNull String[], @NonNull String[]);
2039     method @NonNull public GeckoResult<byte[]> stopProfiler();
2040   }
2042   public abstract class RuntimeSettings implements Parcelable {
2043     ctor protected RuntimeSettings();
2044     ctor protected RuntimeSettings(@Nullable RuntimeSettings);
2045     method @AnyThread public void readFromParcel(@NonNull Parcel);
2046     method @AnyThread protected void updatePrefs(@NonNull RuntimeSettings);
2047   }
2049   public abstract static class RuntimeSettings.Builder<Settings extends RuntimeSettings> {
2050     ctor public Builder();
2051     method @AnyThread @NonNull public Settings build();
2052     method @AnyThread @NonNull protected Settings getSettings();
2053     method @AnyThread @NonNull protected abstract Settings newSettings(@Nullable Settings);
2054   }
2056   public final class RuntimeTelemetry {
2057     ctor protected RuntimeTelemetry();
2058   }
2060   public static interface RuntimeTelemetry.Delegate {
2061     method @AnyThread default public void onBooleanScalar(@NonNull RuntimeTelemetry.Metric<Boolean>);
2062     method @AnyThread default public void onHistogram(@NonNull RuntimeTelemetry.Histogram);
2063     method @AnyThread default public void onLongScalar(@NonNull RuntimeTelemetry.Metric<Long>);
2064     method @AnyThread default public void onStringScalar(@NonNull RuntimeTelemetry.Metric<String>);
2065   }
2067   public static class RuntimeTelemetry.Histogram extends RuntimeTelemetry.Metric<long[]> {
2068     ctor protected Histogram();
2069     field public final boolean isCategorical;
2070   }
2072   public static class RuntimeTelemetry.Metric<T> {
2073     ctor protected Metric();
2074     field @NonNull public final String name;
2075     field @NonNull public final T value;
2076   }
2078   public class ScreenLength {
2079     method @AnyThread @NonNull public static ScreenLength bottom();
2080     method @AnyThread @NonNull public static ScreenLength fromPixels(double);
2081     method @AnyThread @NonNull public static ScreenLength fromVisualViewportHeight(double);
2082     method @AnyThread @NonNull public static ScreenLength fromVisualViewportWidth(double);
2083     method @AnyThread public int getType();
2084     method @AnyThread public double getValue();
2085     method @AnyThread @NonNull public static ScreenLength top();
2086     method @AnyThread @NonNull public static ScreenLength zero();
2087     field public static final int DOCUMENT_HEIGHT = 4;
2088     field public static final int DOCUMENT_WIDTH = 3;
2089     field public static final int PIXEL = 0;
2090     field public static final int VISUAL_VIEWPORT_HEIGHT = 2;
2091     field public static final int VISUAL_VIEWPORT_WIDTH = 1;
2092   }
2094   @Retention(value=RetentionPolicy.SOURCE) public static interface ScreenLength.ScreenLengthType {
2095   }
2097   @UiThread public class SessionAccessibility {
2098     method @Nullable public View getView();
2099     method public boolean onMotionEvent(@NonNull MotionEvent);
2100     method @UiThread public void setView(@Nullable View);
2101   }
2103   @AnyThread public final class SessionFinder {
2104     method public void clear();
2105     method @NonNull public GeckoResult<GeckoSession.FinderResult> find(@Nullable String, int);
2106     method public int getDisplayFlags();
2107     method public void setDisplayFlags(int);
2108   }
2110   @AnyThread public final class SessionPdfFileSaver {
2111     method @Nullable public static GeckoResult<WebResponse> createResponse(@NonNull GeckoSession, @NonNull String, @NonNull String, @NonNull String, boolean, boolean);
2112     method @NonNull public GeckoResult<WebResponse> save();
2113   }
2115   public final class SessionTextInput {
2116     method @NonNull @UiThread public GeckoSession.TextInputDelegate getDelegate();
2117     method @AnyThread @NonNull public synchronized Handler getHandler(@NonNull Handler);
2118     method @Nullable @UiThread public View getView();
2119     method @AnyThread @Nullable public synchronized InputConnection onCreateInputConnection(@NonNull EditorInfo);
2120     method @UiThread public boolean onKeyDown(int, @NonNull KeyEvent);
2121     method @UiThread public boolean onKeyLongPress(int, @NonNull KeyEvent);
2122     method @UiThread public boolean onKeyMultiple(int, int, @NonNull KeyEvent);
2123     method @UiThread public boolean onKeyPreIme(int, @NonNull KeyEvent);
2124     method @UiThread public boolean onKeyUp(int, @NonNull KeyEvent);
2125     method @UiThread public void setDelegate(@Nullable GeckoSession.TextInputDelegate);
2126     method @UiThread public synchronized void setView(@Nullable View);
2127   }
2129   @AnyThread public final enum SlowScriptResponse {
2130     method public static SlowScriptResponse valueOf(String);
2131     method public static SlowScriptResponse[] values();
2132     enum_constant public static final SlowScriptResponse CONTINUE;
2133     enum_constant public static final SlowScriptResponse STOP;
2134   }
2136   public final class StorageController {
2137     ctor public StorageController();
2138     method @AnyThread @NonNull public GeckoResult<Void> clearData(long);
2139     method @AnyThread public void clearDataForSessionContext(@NonNull String);
2140     method @AnyThread @NonNull public GeckoResult<Void> clearDataFromBaseDomain(@NonNull String, long);
2141     method @AnyThread @NonNull public GeckoResult<Void> clearDataFromHost(@NonNull String, long);
2142     method @AnyThread @NonNull public GeckoResult<List<GeckoSession.PermissionDelegate.ContentPermission>> getAllPermissions();
2143     method @AnyThread @NonNull public GeckoResult<Integer> getCookieBannerModeForDomain(@NonNull String, boolean);
2144     method @AnyThread @NonNull public GeckoResult<List<GeckoSession.PermissionDelegate.ContentPermission>> getPermissions(@NonNull String);
2145     method @AnyThread @NonNull public GeckoResult<List<GeckoSession.PermissionDelegate.ContentPermission>> getPermissions(@NonNull String, boolean);
2146     method @AnyThread @NonNull public GeckoResult<List<GeckoSession.PermissionDelegate.ContentPermission>> getPermissions(@NonNull String, @Nullable String, boolean);
2147     method @AnyThread @NonNull public GeckoResult<Void> removeCookieBannerModeForDomain(@NonNull String, boolean);
2148     method @AnyThread @NonNull public GeckoResult<Void> setCookieBannerModeAndPersistInPrivateBrowsingForDomain(@NonNull String, int);
2149     method @AnyThread @NonNull public GeckoResult<Void> setCookieBannerModeForDomain(@NonNull String, int, boolean);
2150     method @AnyThread public void setPermission(@NonNull GeckoSession.PermissionDelegate.ContentPermission, int);
2151     method @AnyThread public void setPrivateBrowsingPermanentPermission(@NonNull GeckoSession.PermissionDelegate.ContentPermission, int);
2152   }
2154   public static class StorageController.ClearFlags {
2155     ctor public ClearFlags();
2156     field public static final long ALL = 512L;
2157     field public static final long ALL_CACHES = 6L;
2158     field public static final long AUTH_SESSIONS = 32L;
2159     field public static final long COOKIES = 1L;
2160     field public static final long DOM_STORAGES = 16L;
2161     field public static final long IMAGE_CACHE = 4L;
2162     field public static final long NETWORK_CACHE = 2L;
2163     field public static final long PERMISSIONS = 64L;
2164     field public static final long SITE_DATA = 471L;
2165     field public static final long SITE_SETTINGS = 192L;
2166   }
2168   @Retention(value=RetentionPolicy.SOURCE) public static interface StorageController.StorageControllerClearFlags {
2169   }
2171   public class WebExtension {
2172     method @Nullable @UiThread public WebExtension.BrowsingDataDelegate getBrowsingDataDelegate();
2173     method @Nullable @UiThread public WebExtension.DownloadDelegate getDownloadDelegate();
2174     method @Nullable @UiThread public WebExtension.TabDelegate getTabDelegate();
2175     method @AnyThread public void setActionDelegate(@Nullable WebExtension.ActionDelegate);
2176     method @UiThread public void setBrowsingDataDelegate(@Nullable WebExtension.BrowsingDataDelegate);
2177     method @UiThread public void setDownloadDelegate(@Nullable WebExtension.DownloadDelegate);
2178     method @UiThread public void setMessageDelegate(@Nullable WebExtension.MessageDelegate, @NonNull String);
2179     method @UiThread public void setTabDelegate(@Nullable WebExtension.TabDelegate);
2180     field public final long flags;
2181     field @NonNull public final String id;
2182     field public final boolean isBuiltIn;
2183     field @NonNull public final String location;
2184     field @NonNull public final WebExtension.MetaData metaData;
2185   }
2187   @AnyThread public static class WebExtension.Action {
2188     ctor protected Action();
2189     method @UiThread public void click();
2190     method @NonNull public WebExtension.Action withDefault(@NonNull WebExtension.Action);
2191     field @Nullable public final Integer badgeBackgroundColor;
2192     field @Nullable public final String badgeText;
2193     field @Nullable public final Integer badgeTextColor;
2194     field @Nullable public final Boolean enabled;
2195     field @Nullable public final Image icon;
2196     field @Nullable public final String title;
2197   }
2199   @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.Action.ActionType {
2200   }
2202   public static interface WebExtension.ActionDelegate {
2203     method @UiThread default public void onBrowserAction(@NonNull WebExtension, @Nullable GeckoSession, @NonNull WebExtension.Action);
2204     method @Nullable @UiThread default public GeckoResult<GeckoSession> onOpenPopup(@NonNull WebExtension, @NonNull WebExtension.Action);
2205     method @UiThread default public void onPageAction(@NonNull WebExtension, @Nullable GeckoSession, @NonNull WebExtension.Action);
2206     method @Nullable @UiThread default public GeckoResult<GeckoSession> onTogglePopup(@NonNull WebExtension, @NonNull WebExtension.Action);
2207   }
2209   @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.BlocklistState {
2210   }
2212   public static class WebExtension.BlocklistStateFlags {
2213     ctor public BlocklistStateFlags();
2214     field public static final int BLOCKED = 2;
2215     field public static final int NOT_BLOCKED = 0;
2216     field public static final int OUTDATED = 3;
2217     field public static final int SOFTBLOCKED = 1;
2218     field public static final int VULNERABLE_NO_UPDATE = 5;
2219     field public static final int VULNERABLE_UPDATE_AVAILABLE = 4;
2220   }
2222   @UiThread public static interface WebExtension.BrowsingDataDelegate {
2223     method @Nullable default public GeckoResult<Void> onClearDownloads(long);
2224     method @Nullable default public GeckoResult<Void> onClearFormData(long);
2225     method @Nullable default public GeckoResult<Void> onClearHistory(long);
2226     method @Nullable default public GeckoResult<Void> onClearPasswords(long);
2227     method @Nullable default public GeckoResult<WebExtension.BrowsingDataDelegate.Settings> onGetSettings();
2228   }
2230   @UiThread public static class WebExtension.BrowsingDataDelegate.Settings {
2231     ctor @UiThread public Settings(int, long, long);
2232     field public final long selectedTypes;
2233     field public final int sinceUnixTimestamp;
2234     field public final long toggleableTypes;
2235   }
2237   public static class WebExtension.BrowsingDataDelegate.Type {
2238     ctor protected Type();
2239     field public static final long CACHE = 1L;
2240     field public static final long COOKIES = 2L;
2241     field public static final long DOWNLOADS = 4L;
2242     field public static final long FORM_DATA = 8L;
2243     field public static final long HISTORY = 16L;
2244     field public static final long LOCAL_STORAGE = 32L;
2245     field public static final long PASSWORDS = 64L;
2246   }
2248   @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.BrowsingDataTypes {
2249   }
2251   @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.ContextFlags {
2252   }
2254   public static class WebExtension.CreateTabDetails {
2255     ctor protected CreateTabDetails();
2256     field @Nullable public final Boolean active;
2257     field @Nullable public final String cookieStoreId;
2258     field @Nullable public final Boolean discarded;
2259     field @Nullable public final Integer index;
2260     field @Nullable public final Boolean openInReaderMode;
2261     field @Nullable public final Boolean pinned;
2262     field @Nullable public final String url;
2263   }
2265   public static class WebExtension.DisabledFlags {
2266     ctor public DisabledFlags();
2267     field public static final int APP = 8;
2268     field public static final int BLOCKLIST = 4;
2269     field public static final int USER = 2;
2270   }
2272   public static class WebExtension.Download {
2273     ctor protected Download(int);
2274     method @Nullable @UiThread public GeckoResult<Void> update(@NonNull WebExtension.Download.Info);
2275     field public static final int INTERRUPT_REASON_CRASH = 24;
2276     field public static final int INTERRUPT_REASON_FILE_ACCESS_DENIED = 2;
2277     field public static final int INTERRUPT_REASON_FILE_BLOCKED = 8;
2278     field public static final int INTERRUPT_REASON_FILE_FAILED = 1;
2279     field public static final int INTERRUPT_REASON_FILE_NAME_TOO_LONG = 4;
2280     field public static final int INTERRUPT_REASON_FILE_NO_SPACE = 3;
2281     field public static final int INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED = 9;
2282     field public static final int INTERRUPT_REASON_FILE_TOO_LARGE = 5;
2283     field public static final int INTERRUPT_REASON_FILE_TOO_SHORT = 10;
2284     field public static final int INTERRUPT_REASON_FILE_TRANSIENT_ERROR = 7;
2285     field public static final int INTERRUPT_REASON_FILE_VIRUS_INFECTED = 6;
2286     field public static final int INTERRUPT_REASON_NETWORK_DISCONNECTED = 13;
2287     field public static final int INTERRUPT_REASON_NETWORK_FAILED = 11;
2288     field public static final int INTERRUPT_REASON_NETWORK_INVALID_REQUEST = 15;
2289     field public static final int INTERRUPT_REASON_NETWORK_SERVER_DOWN = 14;
2290     field public static final int INTERRUPT_REASON_NETWORK_TIMEOUT = 12;
2291     field public static final int INTERRUPT_REASON_NO_INTERRUPT = 0;
2292     field public static final int INTERRUPT_REASON_SERVER_BAD_CONTENT = 18;
2293     field public static final int INTERRUPT_REASON_SERVER_CERT_PROBLEM = 20;
2294     field public static final int INTERRUPT_REASON_SERVER_FAILED = 16;
2295     field public static final int INTERRUPT_REASON_SERVER_FORBIDDEN = 21;
2296     field public static final int INTERRUPT_REASON_SERVER_NO_RANGE = 17;
2297     field public static final int INTERRUPT_REASON_SERVER_UNAUTHORIZED = 19;
2298     field public static final int INTERRUPT_REASON_USER_CANCELED = 22;
2299     field public static final int INTERRUPT_REASON_USER_SHUTDOWN = 23;
2300     field public static final int STATE_COMPLETE = 2;
2301     field public static final int STATE_INTERRUPTED = 1;
2302     field public static final int STATE_IN_PROGRESS = 0;
2303     field public final int id;
2304   }
2306   @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.Download.DownloadInterruptReason {
2307   }
2309   @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.Download.DownloadState {
2310   }
2312   public static interface WebExtension.Download.Info {
2313     method @UiThread default public long bytesReceived();
2314     method @UiThread default public boolean canResume();
2315     method @Nullable @UiThread default public Long endTime();
2316     method @Nullable @UiThread default public Integer error();
2317     method @Nullable @UiThread default public Long estimatedEndTime();
2318     method @UiThread default public boolean fileExists();
2319     method @UiThread default public long fileSize();
2320     method @NonNull @UiThread default public String filename();
2321     method @NonNull @UiThread default public String mime();
2322     method @UiThread default public boolean paused();
2323     method @NonNull @UiThread default public String referrer();
2324     method @UiThread default public long startTime();
2325     method @UiThread default public int state();
2326     method @UiThread default public long totalBytes();
2327   }
2329   public static interface WebExtension.DownloadDelegate {
2330     method @AnyThread @Nullable default public GeckoResult<WebExtension.DownloadInitData> onDownload(@NonNull WebExtension, @NonNull WebExtension.DownloadRequest);
2331   }
2333   public static class WebExtension.DownloadInitData {
2334     ctor public DownloadInitData(WebExtension.Download, WebExtension.Download.Info);
2335     field @NonNull public final WebExtension.Download download;
2336     field @NonNull public final WebExtension.Download.Info initData;
2337   }
2339   public static class WebExtension.DownloadRequest {
2340     ctor protected DownloadRequest(WebExtension.DownloadRequest.Builder);
2341     field public static final int CONFLICT_ACTION_OVERWRITE = 1;
2342     field public static final int CONFLICT_ACTION_PROMPT = 2;
2343     field public static final int CONFLICT_ACTION_UNIQUIFY = 0;
2344     field public final boolean allowHttpErrors;
2345     field public final int conflictActionFlag;
2346     field public final int downloadFlags;
2347     field @Nullable public final String filename;
2348     field @NonNull public final WebRequest request;
2349     field public final boolean saveAs;
2350   }
2352   @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.DownloadRequest.ConflictActionFlags {
2353   }
2355   @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.EnabledFlags {
2356   }
2358   public static class WebExtension.Flags {
2359     ctor protected Flags();
2360     field public static final long ALLOW_CONTENT_MESSAGING = 1L;
2361     field public static final long NONE = 0L;
2362   }
2364   public static class WebExtension.InstallException extends Exception {
2365     ctor protected InstallException();
2366     field public final int code;
2367   }
2369   @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.InstallException.Codes {
2370   }
2372   public static class WebExtension.InstallException.ErrorCodes {
2373     ctor protected ErrorCodes();
2374     field public static final int ERROR_BLOCKLISTED = -10;
2375     field public static final int ERROR_CORRUPT_FILE = -3;
2376     field public static final int ERROR_FILE_ACCESS = -4;
2377     field public static final int ERROR_INCOMPATIBLE = -11;
2378     field public static final int ERROR_INCORRECT_HASH = -2;
2379     field public static final int ERROR_INCORRECT_ID = -7;
2380     field public static final int ERROR_INVALID_DOMAIN = -8;
2381     field public static final int ERROR_NETWORK_FAILURE = -1;
2382     field public static final int ERROR_POSTPONED = -101;
2383     field public static final int ERROR_SIGNEDSTATE_REQUIRED = -5;
2384     field public static final int ERROR_UNEXPECTED_ADDON_TYPE = -6;
2385     field public static final int ERROR_UNEXPECTED_ADDON_VERSION = -9;
2386     field public static final int ERROR_USER_CANCELED = -100;
2387   }
2389   @UiThread public static interface WebExtension.MessageDelegate {
2390     method @Nullable default public void onConnect(@NonNull WebExtension.Port);
2391     method @Nullable default public GeckoResult<Object> onMessage(@NonNull String, @NonNull Object, @NonNull WebExtension.MessageSender);
2392   }
2394   @UiThread public static class WebExtension.MessageSender {
2395     ctor protected MessageSender();
2396     method public boolean isTopLevel();
2397     field public static final int ENV_TYPE_CONTENT_SCRIPT = 2;
2398     field public static final int ENV_TYPE_EXTENSION = 1;
2399     field public final int environmentType;
2400     field @Nullable public final GeckoSession session;
2401     field @NonNull public final String url;
2402     field @NonNull public final WebExtension webExtension;
2403   }
2405   @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.MessageSender.EnvType {
2406   }
2408   public class WebExtension.MetaData {
2409     ctor protected MetaData();
2410     field public final boolean allowedInPrivateBrowsing;
2411     field @NonNull public final String baseUrl;
2412     field public final int blocklistState;
2413     field @Nullable public final String creatorName;
2414     field @Nullable public final String creatorUrl;
2415     field @Nullable public final String description;
2416     field public final int disabledFlags;
2417     field public final boolean enabled;
2418     field @Nullable public final String homepageUrl;
2419     field @NonNull public final Image icon;
2420     field public final boolean isRecommended;
2421     field @Nullable public final String name;
2422     field public final boolean openOptionsPageInTab;
2423     field @Nullable public final String optionsPageUrl;
2424     field @NonNull public final String[] origins;
2425     field @NonNull public final String[] permissions;
2426     field public final int signedState;
2427     field public final boolean temporary;
2428     field @NonNull public final String version;
2429   }
2431   @UiThread public static class WebExtension.Port {
2432     ctor protected Port();
2433     method public void disconnect();
2434     method public void postMessage(@NonNull JSONObject);
2435     method public void setDelegate(@Nullable WebExtension.PortDelegate);
2436     field @NonNull public final String name;
2437     field @NonNull public final WebExtension.MessageSender sender;
2438   }
2440   @UiThread public static interface WebExtension.PortDelegate {
2441     method @NonNull default public void onDisconnect(@NonNull WebExtension.Port);
2442     method default public void onPortMessage(@NonNull Object, @NonNull WebExtension.Port);
2443   }
2445   public static class WebExtension.SessionController {
2446     method @AnyThread @Nullable public WebExtension.ActionDelegate getActionDelegate(@NonNull WebExtension);
2447     method @AnyThread @Nullable public WebExtension.MessageDelegate getMessageDelegate(@NonNull WebExtension, @NonNull String);
2448     method @AnyThread @Nullable public WebExtension.SessionTabDelegate getTabDelegate(@NonNull WebExtension);
2449     method @AnyThread public void setActionDelegate(@NonNull WebExtension, @Nullable WebExtension.ActionDelegate);
2450     method @AnyThread public void setMessageDelegate(@NonNull WebExtension, @Nullable WebExtension.MessageDelegate, @NonNull String);
2451     method @AnyThread public void setTabDelegate(@NonNull WebExtension, @Nullable WebExtension.SessionTabDelegate);
2452   }
2454   public static interface WebExtension.SessionTabDelegate {
2455     method @NonNull @UiThread default public GeckoResult<AllowOrDeny> onCloseTab(@Nullable WebExtension, @NonNull GeckoSession);
2456     method @NonNull @UiThread default public GeckoResult<AllowOrDeny> onUpdateTab(@NonNull WebExtension, @NonNull GeckoSession, @NonNull WebExtension.UpdateTabDetails);
2457   }
2459   @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.SignedState {
2460   }
2462   public static class WebExtension.SignedStateFlags {
2463     ctor public SignedStateFlags();
2464     field public static final int MISSING = 0;
2465     field public static final int PRELIMINARY = 1;
2466     field public static final int PRIVILEGED = 4;
2467     field public static final int SIGNED = 2;
2468     field public static final int SYSTEM = 3;
2469     field public static final int UNKNOWN = -1;
2470   }
2472   public static interface WebExtension.TabDelegate {
2473     method @Nullable @UiThread default public GeckoResult<GeckoSession> onNewTab(@NonNull WebExtension, @NonNull WebExtension.CreateTabDetails);
2474     method @UiThread default public void onOpenOptionsPage(@NonNull WebExtension);
2475   }
2477   public static class WebExtension.UpdateTabDetails {
2478     ctor protected UpdateTabDetails();
2479     field @Nullable public final Boolean active;
2480     field @Nullable public final Boolean autoDiscardable;
2481     field @Nullable public final Boolean highlighted;
2482     field @Nullable public final Boolean muted;
2483     field @Nullable public final Boolean pinned;
2484     field @Nullable public final String url;
2485   }
2487   @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtension.WebExtensionFlags {
2488   }
2490   public class WebExtensionController {
2491     method @Nullable @UiThread public WebExtension.Download createDownload(int);
2492     method @AnyThread @NonNull public GeckoResult<WebExtension> disable(@NonNull WebExtension, int);
2493     method @AnyThread @NonNull public GeckoResult<WebExtension> enable(@NonNull WebExtension, int);
2494     method @AnyThread @NonNull public GeckoResult<WebExtension> ensureBuiltIn(@NonNull String, @Nullable String);
2495     method @Nullable @UiThread public WebExtensionController.PromptDelegate getPromptDelegate();
2496     method @AnyThread @NonNull public GeckoResult<WebExtension> install(@NonNull String);
2497     method @AnyThread @NonNull public GeckoResult<WebExtension> installBuiltIn(@NonNull String);
2498     method @AnyThread @NonNull public GeckoResult<List<WebExtension>> list();
2499     method @UiThread public void setAddonManagerDelegate(@Nullable WebExtensionController.AddonManagerDelegate);
2500     method @AnyThread @NonNull public GeckoResult<WebExtension> setAllowedInPrivateBrowsing(@NonNull WebExtension, boolean);
2501     method @UiThread public void setDebuggerDelegate(@NonNull WebExtensionController.DebuggerDelegate);
2502     method @UiThread public void setPromptDelegate(@Nullable WebExtensionController.PromptDelegate);
2503     method @AnyThread public void setTabActive(@NonNull GeckoSession, boolean);
2504     method @AnyThread @NonNull public GeckoResult<Void> uninstall(@NonNull WebExtension);
2505     method @AnyThread @NonNull public GeckoResult<WebExtension> update(@NonNull WebExtension);
2506   }
2508   public static interface WebExtensionController.AddonManagerDelegate {
2509     method @UiThread default public void onDisabled(@NonNull WebExtension);
2510     method @UiThread default public void onDisabling(@NonNull WebExtension);
2511     method @UiThread default public void onEnabled(@NonNull WebExtension);
2512     method @UiThread default public void onEnabling(@NonNull WebExtension);
2513     method @UiThread default public void onInstalled(@NonNull WebExtension);
2514     method @UiThread default public void onInstalling(@NonNull WebExtension);
2515     method @UiThread default public void onUninstalled(@NonNull WebExtension);
2516     method @UiThread default public void onUninstalling(@NonNull WebExtension);
2517   }
2519   public static interface WebExtensionController.DebuggerDelegate {
2520     method @UiThread default public void onExtensionListUpdated();
2521   }
2523   public static class WebExtensionController.EnableSource {
2524     ctor public EnableSource();
2525     field public static final int APP = 2;
2526     field public static final int USER = 1;
2527   }
2529   @Retention(value=RetentionPolicy.SOURCE) public static interface WebExtensionController.EnableSources {
2530   }
2532   @UiThread public static interface WebExtensionController.PromptDelegate {
2533     method @Nullable default public GeckoResult<AllowOrDeny> onInstallPrompt(@NonNull WebExtension);
2534     method @Nullable default public GeckoResult<AllowOrDeny> onOptionalPrompt(@NonNull WebExtension, @NonNull String[], @NonNull String[]);
2535     method @Nullable default public GeckoResult<AllowOrDeny> onUpdatePrompt(@NonNull WebExtension, @NonNull WebExtension, @NonNull String[], @NonNull String[]);
2536   }
2538   @AnyThread public abstract class WebMessage {
2539     ctor protected WebMessage(@NonNull WebMessage.Builder);
2540     field @NonNull public final Map<String,String> headers;
2541     field @NonNull public final String uri;
2542   }
2544   @AnyThread public abstract static class WebMessage.Builder {
2545     method @NonNull public WebMessage.Builder addHeader(@NonNull String, @NonNull String);
2546     method @NonNull public WebMessage.Builder header(@NonNull String, @NonNull String);
2547     method @NonNull public WebMessage.Builder uri(@NonNull String);
2548   }
2550   public class WebNotification implements Parcelable {
2551     method @UiThread public void click();
2552     method @UiThread public void dismiss();
2553     field public static final Parcelable.Creator<WebNotification> CREATOR;
2554     field @Nullable public final String imageUrl;
2555     field @Nullable public final String lang;
2556     field public final boolean privateBrowsing;
2557     field @NonNull public final boolean requireInteraction;
2558     field public final boolean silent;
2559     field @Nullable public final String source;
2560     field @NonNull public final String tag;
2561     field @Nullable public final String text;
2562     field @Nullable public final String textDirection;
2563     field @Nullable public final String title;
2564     field @NonNull public final int[] vibrate;
2565   }
2567   public interface WebNotificationDelegate {
2568     method @AnyThread default public void onCloseNotification(@NonNull WebNotification);
2569     method @AnyThread default public void onShowNotification(@NonNull WebNotification);
2570   }
2572   public class WebPushController {
2573     method @Nullable @UiThread public WebPushDelegate getDelegate();
2574     method @UiThread public void onPushEvent(@NonNull String);
2575     method @UiThread public void onPushEvent(@NonNull String, @Nullable byte[]);
2576     method @UiThread public void onSubscriptionChanged(@NonNull String);
2577     method @UiThread public void setDelegate(@Nullable WebPushDelegate);
2578   }
2580   public interface WebPushDelegate {
2581     method @Nullable @UiThread default public GeckoResult<WebPushSubscription> onGetSubscription(@NonNull String);
2582     method @Nullable @UiThread default public GeckoResult<WebPushSubscription> onSubscribe(@NonNull String, @Nullable byte[]);
2583     method @Nullable @UiThread default public GeckoResult<Void> onUnsubscribe(@NonNull String);
2584   }
2586   public class WebPushSubscription implements Parcelable {
2587     ctor public WebPushSubscription(@NonNull String, @NonNull String, @Nullable byte[], @NonNull byte[], @NonNull byte[]);
2588     field public static final Parcelable.Creator<WebPushSubscription> CREATOR;
2589     field @Nullable public final byte[] appServerKey;
2590     field @NonNull public final byte[] authSecret;
2591     field @NonNull public final byte[] browserPublicKey;
2592     field @NonNull public final String endpoint;
2593     field @NonNull public final String scope;
2594   }
2596   @AnyThread public class WebRequest extends WebMessage {
2597     ctor public WebRequest(@NonNull String);
2598     field public static final int CACHE_MODE_DEFAULT = 1;
2599     field public static final int CACHE_MODE_FORCE_CACHE = 5;
2600     field public static final int CACHE_MODE_NO_CACHE = 4;
2601     field public static final int CACHE_MODE_NO_STORE = 2;
2602     field public static final int CACHE_MODE_ONLY_IF_CACHED = 6;
2603     field public static final int CACHE_MODE_RELOAD = 3;
2604     field public final boolean beConservative;
2605     field @Nullable public final ByteBuffer body;
2606     field public final int cacheMode;
2607     field @NonNull public final String method;
2608     field @Nullable public final String referrer;
2609   }
2611   @AnyThread public static class WebRequest.Builder extends WebMessage.Builder {
2612     ctor public Builder(@NonNull String);
2613     method @NonNull public WebRequest.Builder beConservative(boolean);
2614     method @NonNull public WebRequest.Builder body(@Nullable ByteBuffer);
2615     method @NonNull public WebRequest.Builder body(@Nullable String);
2616     method @NonNull public WebRequest build();
2617     method @NonNull public WebRequest.Builder cacheMode(int);
2618     method @NonNull public WebRequest.Builder method(@NonNull String);
2619     method @NonNull public WebRequest.Builder referrer(@Nullable String);
2620   }
2622   @Retention(value=RetentionPolicy.SOURCE) public static interface WebRequest.CacheMode {
2623   }
2625   @AnyThread public class WebRequestError extends Exception {
2626     ctor public WebRequestError(int, int);
2627     ctor public WebRequestError(int, int, X509Certificate);
2628     field public static final int ERROR_BAD_HSTS_CERT = 179;
2629     field public static final int ERROR_CATEGORY_CONTENT = 4;
2630     field public static final int ERROR_CATEGORY_NETWORK = 3;
2631     field public static final int ERROR_CATEGORY_PROXY = 6;
2632     field public static final int ERROR_CATEGORY_SAFEBROWSING = 7;
2633     field public static final int ERROR_CATEGORY_SECURITY = 2;
2634     field public static final int ERROR_CATEGORY_UNKNOWN = 1;
2635     field public static final int ERROR_CATEGORY_URI = 5;
2636     field public static final int ERROR_CONNECTION_REFUSED = 67;
2637     field public static final int ERROR_CONTENT_CRASHED = 68;
2638     field public static final int ERROR_CORRUPTED_CONTENT = 52;
2639     field public static final int ERROR_DATA_URI_TOO_LONG = 117;
2640     field public static final int ERROR_FILE_ACCESS_DENIED = 101;
2641     field public static final int ERROR_FILE_NOT_FOUND = 85;
2642     field public static final int ERROR_HTTPS_ONLY = 163;
2643     field public static final int ERROR_INVALID_CONTENT_ENCODING = 84;
2644     field public static final int ERROR_MALFORMED_URI = 53;
2645     field public static final int ERROR_NET_INTERRUPT = 35;
2646     field public static final int ERROR_NET_RESET = 147;
2647     field public static final int ERROR_NET_TIMEOUT = 51;
2648     field public static final int ERROR_OFFLINE = 115;
2649     field public static final int ERROR_PORT_BLOCKED = 131;
2650     field public static final int ERROR_PROXY_CONNECTION_REFUSED = 38;
2651     field public static final int ERROR_REDIRECT_LOOP = 99;
2652     field public static final int ERROR_SAFEBROWSING_HARMFUL_URI = 71;
2653     field public static final int ERROR_SAFEBROWSING_MALWARE_URI = 39;
2654     field public static final int ERROR_SAFEBROWSING_PHISHING_URI = 87;
2655     field public static final int ERROR_SAFEBROWSING_UNWANTED_URI = 55;
2656     field public static final int ERROR_SECURITY_BAD_CERT = 50;
2657     field public static final int ERROR_SECURITY_SSL = 34;
2658     field public static final int ERROR_UNKNOWN = 17;
2659     field public static final int ERROR_UNKNOWN_HOST = 37;
2660     field public static final int ERROR_UNKNOWN_PROTOCOL = 69;
2661     field public static final int ERROR_UNKNOWN_PROXY_HOST = 54;
2662     field public static final int ERROR_UNKNOWN_SOCKET_TYPE = 83;
2663     field public static final int ERROR_UNSAFE_CONTENT_TYPE = 36;
2664     field public final int category;
2665     field @Nullable public final X509Certificate certificate;
2666     field public final int code;
2667   }
2669   @Retention(value=RetentionPolicy.SOURCE) public static interface WebRequestError.Error {
2670   }
2672   @Retention(value=RetentionPolicy.SOURCE) public static interface WebRequestError.ErrorCategory {
2673   }
2675   @AnyThread public class WebResponse extends WebMessage {
2676     ctor protected WebResponse(@NonNull WebResponse.Builder);
2677     method public void setReadTimeoutMillis(long);
2678     field public static final long DEFAULT_READ_TIMEOUT_MS = 30000L;
2679     field @Nullable public final InputStream body;
2680     field @Nullable public final X509Certificate certificate;
2681     field public final boolean isSecure;
2682     field public final boolean redirected;
2683     field @Nullable public final boolean requestExternalApp;
2684     field @Nullable public final boolean skipConfirmation;
2685     field public final int statusCode;
2686   }
2688   @AnyThread public static class WebResponse.Builder extends WebMessage.Builder {
2689     ctor public Builder(@NonNull String);
2690     method @NonNull public WebResponse.Builder body(@NonNull InputStream);
2691     method @NonNull public WebResponse build();
2692     method @NonNull public WebResponse.Builder certificate(@NonNull X509Certificate);
2693     method @NonNull public WebResponse.Builder isSecure(boolean);
2694     method @NonNull public WebResponse.Builder redirected(boolean);
2695     method @NonNull public WebResponse.Builder requestExternalApp(boolean);
2696     method @NonNull public WebResponse.Builder skipConfirmation(boolean);
2697     method @NonNull public WebResponse.Builder statusCode(int);
2698   }