All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.openqa.selenium.devtools.v88.browser.model.PermissionDescriptor Maven / Gradle / Ivy

package org.openqa.selenium.devtools.v88.browser.model;

import org.openqa.selenium.Beta;
import org.openqa.selenium.json.JsonInput;

/**
 * Definition of PermissionDescriptor defined in the Permissions API:
 * https://w3c.github.io/permissions/#dictdef-permissiondescriptor.
 */
@org.openqa.selenium.Beta()
public class PermissionDescriptor {

    private final java.lang.String name;

    private final java.util.Optional sysex;

    private final java.util.Optional userVisibleOnly;

    private final java.util.Optional allowWithoutSanitization;

    private final java.util.Optional panTiltZoom;

    public PermissionDescriptor(java.lang.String name, java.util.Optional sysex, java.util.Optional userVisibleOnly, java.util.Optional allowWithoutSanitization, java.util.Optional panTiltZoom) {
        this.name = java.util.Objects.requireNonNull(name, "name is required");
        this.sysex = sysex;
        this.userVisibleOnly = userVisibleOnly;
        this.allowWithoutSanitization = allowWithoutSanitization;
        this.panTiltZoom = panTiltZoom;
    }

    /**
     * Name of permission.
     * See https://cs.chromium.org/chromium/src/third_party/blink/renderer/modules/permissions/permission_descriptor.idl for valid permission names.
     */
    public java.lang.String getName() {
        return name;
    }

    /**
     * For "midi" permission, may also specify sysex control.
     */
    public java.util.Optional getSysex() {
        return sysex;
    }

    /**
     * For "push" permission, may specify userVisibleOnly.
     * Note that userVisibleOnly = true is the only currently supported type.
     */
    public java.util.Optional getUserVisibleOnly() {
        return userVisibleOnly;
    }

    /**
     * For "clipboard" permission, may specify allowWithoutSanitization.
     */
    public java.util.Optional getAllowWithoutSanitization() {
        return allowWithoutSanitization;
    }

    /**
     * For "camera" permission, may specify panTiltZoom.
     */
    public java.util.Optional getPanTiltZoom() {
        return panTiltZoom;
    }

    private static PermissionDescriptor fromJson(JsonInput input) {
        java.lang.String name = null;
        java.util.Optional sysex = java.util.Optional.empty();
        java.util.Optional userVisibleOnly = java.util.Optional.empty();
        java.util.Optional allowWithoutSanitization = java.util.Optional.empty();
        java.util.Optional panTiltZoom = java.util.Optional.empty();
        input.beginObject();
        while (input.hasNext()) {
            switch(input.nextName()) {
                case "name":
                    name = input.nextString();
                    break;
                case "sysex":
                    sysex = java.util.Optional.ofNullable(input.nextBoolean());
                    break;
                case "userVisibleOnly":
                    userVisibleOnly = java.util.Optional.ofNullable(input.nextBoolean());
                    break;
                case "allowWithoutSanitization":
                    allowWithoutSanitization = java.util.Optional.ofNullable(input.nextBoolean());
                    break;
                case "panTiltZoom":
                    panTiltZoom = java.util.Optional.ofNullable(input.nextBoolean());
                    break;
                default:
                    input.skipValue();
                    break;
            }
        }
        input.endObject();
        return new PermissionDescriptor(name, sysex, userVisibleOnly, allowWithoutSanitization, panTiltZoom);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy