Verified Commit d53a33f4 authored by Matthew Finkel's avatar Matthew Finkel Committed by Pier Angelo Vendrame
Browse files

Bug 40125: Expose Security Level pref in GeckoView

parent 7fb2ab5e
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -726,6 +726,7 @@ package org.mozilla.geckoview {
    method @Nullable public GeckoRuntime getRuntime();
    method @Nullable public Rect getScreenSizeOverride();
    method @Nullable public RuntimeTelemetry.Delegate getTelemetryDelegate();
    method public int getTorSecurityLevel();
    method public boolean getUseMaxScreenDepth();
    method public boolean getWebFontsEnabled();
    method public boolean getWebManifestEnabled();
@@ -746,6 +747,7 @@ package org.mozilla.geckoview {
    method @NonNull public GeckoRuntimeSettings setLoginAutofillEnabled(boolean);
    method @NonNull public GeckoRuntimeSettings setPreferredColorScheme(int);
    method @NonNull public GeckoRuntimeSettings setRemoteDebuggingEnabled(boolean);
    method @NonNull public GeckoRuntimeSettings setTorSecurityLevel(int);
    method @NonNull public GeckoRuntimeSettings setWebFontsEnabled(boolean);
    method @NonNull public GeckoRuntimeSettings setWebManifestEnabled(boolean);
    field public static final int ALLOW_ALL = 0;
@@ -787,6 +789,7 @@ package org.mozilla.geckoview {
    method @NonNull public GeckoRuntimeSettings.Builder remoteDebuggingEnabled(boolean);
    method @NonNull public GeckoRuntimeSettings.Builder screenSizeOverride(int, int);
    method @NonNull public GeckoRuntimeSettings.Builder telemetryDelegate(@NonNull RuntimeTelemetry.Delegate);
    method @NonNull public GeckoRuntimeSettings.Builder torSecurityLevel(int);
    method @NonNull public GeckoRuntimeSettings.Builder useMaxScreenDepth(boolean);
    method @NonNull public GeckoRuntimeSettings.Builder webFontsEnabled(boolean);
    method @NonNull public GeckoRuntimeSettings.Builder webManifest(boolean);
+32 −0
Original line number Diff line number Diff line
@@ -470,6 +470,17 @@ public final class GeckoRuntimeSettings extends RuntimeSettings {
      getSettings().setAllowInsecureConnections(level);
      return this;
    }

    /**
     * Set security level.
     *
     * @param level A value determining the security level. Default is 0.
     * @return This Builder instance.
     */
    public @NonNull Builder torSecurityLevel(final int level) {
      getSettings().mTorSecurityLevel.set(level);
      return this;
    }
  }

  private GeckoRuntime mRuntime;
@@ -518,6 +529,7 @@ public final class GeckoRuntimeSettings extends RuntimeSettings {
  /* package */ final Pref<Boolean> mHttpsOnlyPrivateMode =
      new Pref<Boolean>("dom.security.https_only_mode_pbm", false);
  /* package */ final Pref<Integer> mProcessCount = new Pref<>("dom.ipc.processCount", 2);
  /* package */ final Pref<Integer> mTorSecurityLevel = new Pref<>("extensions.torbutton.security_slider", 4);

  /* package */ int mPreferredColorScheme = COLOR_SCHEME_SYSTEM;

@@ -1256,6 +1268,26 @@ public final class GeckoRuntimeSettings extends RuntimeSettings {
    return this;
  }

  /**
   * Gets the current security level.
   *
   * @return current security protection level
   */
  public int getTorSecurityLevel() {
    return mTorSecurityLevel.get();
  }

  /**
   * Sets the Tor Security Level.
   *
   * @param level security protection level
   * @return This GeckoRuntimeSettings instance.
   */
  public @NonNull GeckoRuntimeSettings setTorSecurityLevel(final int level) {
    mTorSecurityLevel.commit(level);
    return this;
  }

  @Override // Parcelable
  public void writeToParcel(final Parcel out, final int flags) {
    super.writeToParcel(out, flags);