Class LayerTree


  • public class LayerTree
    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
    [No Description Provided by Google]

    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
    • 9 Method(s), 9 declared static
    • 5 Field(s), 5 declared static, 4 declared final
    • Fields excused from final modifier (with explanation):
      Field 'counter' is not final. Reason: CONFIGURATION


    • Method Summary

       
      LayerTree Domain Commands
      Script Returns Modifier and Type Method
      Ret2<String[],
           ​String[]>
      static Script<> compositingReasons​(String layerId)
      Provides the reasons why the given layer was composited.
      NONE (void) static Script<> disable()
      Disables compositing tree inspection.
      NONE (void) static Script<> enable()
      Enables compositing tree inspection.
      String static Script<> loadSnapshot​(LayerTree.PictureTile[] tiles)
      Returns the snapshot identifier.
      String static Script<> makeSnapshot​(String layerId)
      Returns the layer snapshot identifier.
      Number[][] static Script<> profileSnapshot​(String snapshotId, Integer minRepeatCount, Number minDuration, DOM.Rect clipRect)
      [No Description Provided by Google]
      NONE (void) static Script<> releaseSnapshot​(String snapshotId)
      Releases layer snapshot captured by the back-end.
      String static Script<> replaySnapshot​(String snapshotId, Integer fromStep, Integer toStep, Number scale)
      Replays the layer snapshot and returns the resulting bitmap.
      JsonArray static Script<> snapshotCommandLog​(String snapshotId)
      Replays the layer snapshot and returns canvas log.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • compositingReasons

        🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​Ret2<java.lang.String[],​java.lang.String[]>> compositingReasons​
                    (java.lang.String layerId)
        
        Provides the reasons why the given layer was composited.
        Parameters:
        layerId - The id of the layer for which we want to get the reasons it was composited.
        Returns:
        An instance of Script<String, JsonObject, Ret2>

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

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

        The returned values are encapsulated in an instance of Ret2

        • Ret2.a: String[] (compositingReasons)
          A list of strings specifying reasons for the given layer to become composited.

        • Ret2.b: String[] (compositingReasonIds)
          A list of strings specifying reason IDs for the given layer to become composited.
      • disable

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​Ret0disable()
        Disables compositing tree inspection.
        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 compositing tree inspection.
        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.
      • loadSnapshot

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​java.lang.String> loadSnapshot​
                    (LayerTree.PictureTile[] tiles)
        
        Returns the snapshot identifier.
        Parameters:
        tiles - An array of tiles composing the snapshot.
        Returns:
        An instance of Script<String, JsonObject, String>

        This script may be executed, using Script.exec(), and afterwards, a Promise<JsonObject, String> will be returned.

        Finally, the Promise may be awaited, using Promise.await(), and the returned result of this Browser Function may may be retrieved.

        This Browser Function returns

        • String (snapshotId)
          The id of the snapshot.
      • makeSnapshot

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​java.lang.String> makeSnapshot​
                    (java.lang.String layerId)
        
        Returns the layer snapshot identifier.
        Parameters:
        layerId - The id of the layer.
        Returns:
        An instance of Script<String, JsonObject, String>

        This script may be executed, using Script.exec(), and afterwards, a Promise<JsonObject, String> will be returned.

        Finally, the Promise may be awaited, using Promise.await(), and the returned result of this Browser Function may may be retrieved.

        This Browser Function returns

        • String (snapshotId)
          The id of the layer snapshot.
      • profileSnapshot

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​java.lang.Number[][]> profileSnapshot​
                    (java.lang.String snapshotId,
                     java.lang.Integer minRepeatCount,
                     java.lang.Number minDuration,
                     DOM.Rect clipRect)
        
        [No Description Provided by Google]
        Parameters:
        snapshotId - The id of the layer snapshot.
        minRepeatCount - The maximum number of times to replay the snapshot (1, if not specified).
        OPTIONAL
        minDuration - The minimum duration (in seconds) to replay the snapshot.
        OPTIONAL
        clipRect - The clip rectangle to apply when replaying the snapshot.
        OPTIONAL
        Returns:
        An instance of Script<String, JsonObject, Number[][]>

        This script may be executed, using Script.exec(), and afterwards, a Promise<JsonObject, Number[][]> will be returned.

        Finally, the Promise may be awaited, using Promise.await(), and the returned result of this Browser Function may may be retrieved.

        This Browser Function returns

        • Number[][] (timings)
          The array of paint profiles, one per run.
      • releaseSnapshot

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​Ret0releaseSnapshot​
                    (java.lang.String snapshotId)
        
        Releases layer snapshot captured by the back-end.
        Parameters:
        snapshotId - The id of the layer snapshot.
        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.
      • replaySnapshot

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​java.lang.String> replaySnapshot​
                    (java.lang.String snapshotId,
                     java.lang.Integer fromStep,
                     java.lang.Integer toStep,
                     java.lang.Number scale)
        
        Replays the layer snapshot and returns the resulting bitmap.
        Parameters:
        snapshotId - The id of the layer snapshot.
        fromStep - The first step to replay from (replay from the very start if not specified).
        OPTIONAL
        toStep - The last step to replay to (replay till the end if not specified).
        OPTIONAL
        scale - The scale to apply while replaying (defaults to 1).
        OPTIONAL
        Returns:
        An instance of Script<String, JsonObject, String>

        This script may be executed, using Script.exec(), and afterwards, a Promise<JsonObject, String> will be returned.

        Finally, the Promise may be awaited, using Promise.await(), and the returned result of this Browser Function may may be retrieved.

        This Browser Function returns

        • String (dataURL)
          A data: URL for resulting image.
      • snapshotCommandLog

        🡅     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​JsonArraysnapshotCommandLog​
                    (java.lang.String snapshotId)
        
        Replays the layer snapshot and returns canvas log.
        Parameters:
        snapshotId - The id of the layer snapshot.
        Returns:
        An instance of Script<String, JsonObject, JsonArray>

        This script may be executed, using Script.exec(), and afterwards, a Promise<JsonObject, JsonArray> will be returned.

        Finally, the Promise may be awaited, using Promise.await(), and the returned result of this Browser Function may may be retrieved.

        This Browser Function returns

        • JsonArray (commandLog)
          The array of canvas function calls.