Class Audits


  • public class Audits
    extends java.lang.Object
    Class created by Automatic Code-Generator.
    This class was built using the Chrome Remote Dev-Tools A.P.I., which is specified by two JSON-RPC Files. These files were obtained from the Chrome Dev Tools Protocol Git Hub Page, which has a "Tip of Tree" (the latest) API-Specification Page Here: JSON-RPC Protocol Specification.

    JSON-Viewable Google-API:
    These files may be viewed here: browser_protocol.json and js_protocol.json.
    These files were converted into this Java-Browser (CDT) Library; they are a Java-Alternative to the Node.js implementation.

    HTML-Viewable API:
    In addition to this Class-Library, these files were also converted to a simple HTML Page, which may be browsed here: Browser API Web-Page

    Node.js RDP-API Implementation:
    You may read about the Node.js Chrome Remote Interface on the Node.js Package Manager Web-Site: NPM
    Audits domain allows investigation of page violations and possible improvements.

    This class is intended to be used with a Headless Browser

    These methods have been tested, to some degree, using Google Chrome. In order to use this class you must start a web-browser instance and make a connection to the browser using a Remote Debugging Port. The initializations may be accomplished using class BRDPC (Browser Remote Debug Protocol Connection).

    Google-Chrome was used during the development process of the classes in this particular package. Note that, lately, it has been asserted Microsoft has switched to using the Chrome-Engine for its Microsoft Edge Browser Internal Code-Base. Therefore, there may limited support / functionality when running the methods in this class with Microsoft-Edge. There is the possibility these will work with Opera & Safari.

    Check whether the your Web-Browser will allow itself to be driven by the Web-Socket RDP-Port 9223.


    Foreign Function API:
    Every one of the methods that reside in this class are designed to do nothing more than:

    1. Accept Parameters from the User, and "Marshall Them" into a Valid JSON-Request
    2. Transmit the Marshalled Request-JSON to a Headless Web-Browser over a Web-Socket RDP Connection
    3. Receive BOTH that Method's Results AND any Browser Event-Firings from the Web-Socket
    4. Parse JSON Method-Results and Browser-Event Firings, and Subsequently Convert them to Standard Java-Types
    5. Report these Method-Results and Browser-Events to the User via an User-Registered Event-Listener or a Promise Object


    Java-HTML Difference:
    Unlike the bulk of the Java HTML JAR Library, there is very little native Java-Code, and very little testing that may be done on any of the classes & methods in this package. The code inside these classes does nothing more than marshall-and-unmarshall Java-Types into Json-Requests (and vice-versa). The Java-Script & Browser modules inside of a Google-Chrome instance are, theoretically, handling these requests, and returning their results (or events) over the Web-Socket Connection.

    It has been asserted (by Google Chrome Developers) that some of these methods are only "partially working" or "experimental".



    Stateless Class:
    This class neither contains any program-state, nor can it be instantiated. The @StaticFunctional Annotation may also be called 'The Spaghetti Report'. Static-Functional classes are, essentially, C-Styled Files, without any constructors or non-static member fields. It is a concept very similar to the Java-Bean's @Stateless Annotation.
    • 1 Constructor(s), 1 declared private, zero-argument constructor
    • 4 Method(s), 4 declared static
    • 19 Field(s), 19 declared static, 18 declared final
    • Fields excused from final modifier (with explanation):
      Field 'counter' is not final. Reason: CONFIGURATION


    • Field Detail

      • SameSiteCookieExclusionReason

        🡇    
        public static final java.lang.String[] SameSiteCookieExclusionReason
        [No Description Provided by Google]
        Code:
        Exact Field Declaration Expression:
         public static final String[] SameSiteCookieExclusionReason =
             { 
                 "ExcludeSameSiteUnspecifiedTreatedAsLax", "ExcludeSameSiteNoneInsecure", 
                 "ExcludeSameSiteLax", "ExcludeSameSiteStrict", "ExcludeInvalidSameParty", 
                 "ExcludeSamePartyCrossPartyContext", 
             };
        
      • SameSiteCookieWarningReason

        🡅  🡇    
        public static final java.lang.String[] SameSiteCookieWarningReason
        [No Description Provided by Google]
        Code:
        Exact Field Declaration Expression:
         public static final String[] SameSiteCookieWarningReason =
             { 
                 "WarnSameSiteUnspecifiedCrossSiteContext", "WarnSameSiteNoneInsecure", 
                 "WarnSameSiteUnspecifiedLaxAllowUnsafe", "WarnSameSiteStrictLaxDowngradeStrict", 
                 "WarnSameSiteStrictCrossDowngradeStrict", "WarnSameSiteStrictCrossDowngradeLax", 
                 "WarnSameSiteLaxCrossDowngradeStrict", "WarnSameSiteLaxCrossDowngradeLax", 
             };
        
      • SameSiteCookieOperation

        🡅  🡇    
        public static final java.lang.String[] SameSiteCookieOperation
        [No Description Provided by Google]
        Code:
        Exact Field Declaration Expression:
         public static final String[] SameSiteCookieOperation =
             { "SetCookie", "ReadCookie", };
        
      • MixedContentResolutionStatus

        🡅  🡇    
        public static final java.lang.String[] MixedContentResolutionStatus
        [No Description Provided by Google]
        Code:
        Exact Field Declaration Expression:
         public static final String[] MixedContentResolutionStatus =
             { "MixedContentBlocked", "MixedContentAutomaticallyUpgraded", "MixedContentWarning", };
        
      • MixedContentResourceType

        🡅  🡇    
        public static final java.lang.String[] MixedContentResourceType
        [No Description Provided by Google]
        Code:
        Exact Field Declaration Expression:
         public static final String[] MixedContentResourceType =
             { 
                 "Audio", "Beacon", "CSPReport", "Download", "EventSource", "Favicon", "Font", "Form", 
                 "Frame", "Image", "Import", "Manifest", "Ping", "PluginData", "PluginResource", "Prefetch", 
                 "Resource", "Script", "ServiceWorker", "SharedWorker", "Stylesheet", "Track", "Video", 
                 "Worker", "XMLHttpRequest", "XSLT", 
             };
        
      • BlockedByResponseReason

        🡅  🡇    
        public static final java.lang.String[] BlockedByResponseReason
        Enum indicating the reason a response has been blocked. These reasons are refinements of the net error BLOCKED_BY_RESPONSE.
        Code:
        Exact Field Declaration Expression:
         public static final String[] BlockedByResponseReason =
             { 
                 "CoepFrameResourceNeedsCoepHeader", "CoopSandboxedIFrameCannotNavigateToCoopPage", 
                 "CorpNotSameOrigin", "CorpNotSameOriginAfterDefaultedToSameOriginByCoep", 
                 "CorpNotSameSite", 
             };
        
      • HeavyAdResolutionStatus

        🡅  🡇    
        public static final java.lang.String[] HeavyAdResolutionStatus
        [No Description Provided by Google]
        Code:
        Exact Field Declaration Expression:
         public static final String[] HeavyAdResolutionStatus =
             { "HeavyAdBlocked", "HeavyAdWarning", };
        
      • HeavyAdReason

        🡅  🡇    
        public static final java.lang.String[] HeavyAdReason
        [No Description Provided by Google]
        Code:
        Exact Field Declaration Expression:
         public static final String[] HeavyAdReason =
             { "NetworkTotalLimit", "CpuTotalLimit", "CpuPeakLimit", };
        
      • ContentSecurityPolicyViolationType

        🡅  🡇    
        public static final java.lang.String[] ContentSecurityPolicyViolationType
        [No Description Provided by Google]
        Code:
        Exact Field Declaration Expression:
         public static final String[] ContentSecurityPolicyViolationType =
             { 
                 "kInlineViolation", "kEvalViolation", "kURLViolation", "kTrustedTypesSinkViolation", 
                 "kTrustedTypesPolicyViolation", "kWasmEvalViolation", 
             };
        
      • SharedArrayBufferIssueType

        🡅  🡇    
        public static final java.lang.String[] SharedArrayBufferIssueType
        [No Description Provided by Google]
        Code:
        Exact Field Declaration Expression:
         public static final String[] SharedArrayBufferIssueType =
             { "TransferIssue", "CreationIssue", };
        
      • TwaQualityEnforcementViolationType

        🡅  🡇    
        public static final java.lang.String[] TwaQualityEnforcementViolationType
        [No Description Provided by Google]
        Code:
        Exact Field Declaration Expression:
         public static final String[] TwaQualityEnforcementViolationType =
             { "kHttpError", "kUnavailableOffline", "kDigitalAssetLinks", };
        
      • AttributionReportingIssueType

        🡅  🡇    
        public static final java.lang.String[] AttributionReportingIssueType
        [No Description Provided by Google]
        Code:
        Exact Field Declaration Expression:
         public static final String[] AttributionReportingIssueType =
             { 
                 "PermissionPolicyDisabled", "InvalidAttributionSourceEventId", "InvalidAttributionData", 
                 "AttributionSourceUntrustworthyOrigin", "AttributionUntrustworthyOrigin", 
                 "AttributionTriggerDataTooLarge", "AttributionEventSourceTriggerDataTooLarge", 
             };
        
      • GenericIssueErrorType

        🡅  🡇    
        public static final java.lang.String[] GenericIssueErrorType
        [No Description Provided by Google]
        Code:
        Exact Field Declaration Expression:
         public static final String[] GenericIssueErrorType =
             { "CrossOriginPortalPostMessageError", };
        
      • InspectorIssueCode

        🡅  🡇    
        public static final java.lang.String[] InspectorIssueCode
        A unique identifier for the type of issue. Each type may use one of the optional fields in InspectorIssueDetails to convey more specific information about the kind of issue.
        Code:
        Exact Field Declaration Expression:
         public static final String[] InspectorIssueCode =
             { 
                 "SameSiteCookieIssue", "MixedContentIssue", "BlockedByResponseIssue", "HeavyAdIssue", 
                 "ContentSecurityPolicyIssue", "SharedArrayBufferIssue", "TrustedWebActivityIssue", 
                 "LowTextContrastIssue", "CorsIssue", "AttributionReportingIssue", "QuirksModeIssue", 
                 "NavigatorUserAgentIssue", "WasmCrossOriginModuleSharingIssue", "GenericIssue", 
             };
        
    • Method Detail

      • getEncodedResponse

        🡅  🡇    
        public static Script<java.lang.String,​JsonObject,​Ret3<java.lang.String,​java.lang.Integer,​java.lang.Integer>> getEncodedResponse​
                    (java.lang.String requestId,
                     java.lang.String encoding,
                     java.lang.Number quality,
                     java.lang.Boolean sizeOnly)
        
        Returns the response body and size if it were re-encoded with the specified settings. Only applies to images.
        Parameters:
        requestId - Identifier of the network request to get content for.
        encoding - The encoding to use.
        Acceptable Values: ["webp", "jpeg", "png"]
        quality - The quality of the encoding (0-1). (defaults to 1)
        OPTIONAL
        sizeOnly - Whether to only return the size information (defaults to false).
        OPTIONAL
        Returns:
        An instance of Script<String, JsonObject, Ret3>

        This Script may be executed (using Script.exec()), and a Promise returned.

        When the Promise is awaited (using Promise.await()), the Ret3 will subsequently be returned from that call.

        The returned values are encapsulated in an instance of Ret3

        • Ret3.a: String (body)
          The encoded body as a base64 string. Omitted if sizeOnly is true. (Encoded as a base64 string when passed over JSON)

        • Ret3.b: Integer (originalSize)
          Size before re-encoding.

        • Ret3.c: Integer (encodedSize)
          Size after re-encoding.
      • disable

        🡅  🡇    
        public static Script<java.lang.String,​JsonObject,​Ret0disable()
        Disables issues domain, prevents further issues from being reported to the client.
        Returns:
        An instance of Script<String, JsonObject, Ret0>

        This Script instance must be executed before the browser receives the invocation-request.

        This Browser-Function does not have a return-value. You may choose to await the Promise<JsonObject, Ret0 > to ensure the Browser Function has run to completion.
      • enable

        🡅  🡇    
        public static Script<java.lang.String,​JsonObject,​Ret0enable()
        Enables issues domain, sends the issues collected so far to the client by means of the issueAdded event.
        Returns:
        An instance of Script<String, JsonObject, Ret0>

        This Script instance must be executed before the browser receives the invocation-request.

        This Browser-Function does not have a return-value. You may choose to await the Promise<JsonObject, Ret0 > to ensure the Browser Function has run to completion.
      • checkContrast

        🡅    
        public static Script<java.lang.String,​JsonObject,​Ret0checkContrast​
                    (java.lang.Boolean reportAAA)
        
        Runs the contrast check for the target page. Found issues are reported using Audits.issueAdded event.
        Parameters:
        reportAAA - Whether to report WCAG AAA level issues. Default is false.
        OPTIONAL
        Returns:
        An instance of Script<String, JsonObject, Ret0>

        This Script instance must be executed before the browser receives the invocation-request.

        This Browser-Function does not have a return-value. You may choose to await the Promise<JsonObject, Ret0 > to ensure the Browser Function has run to completion.