tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

APZTestData.webidl (2952B)


      1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* This Source Code Form is subject to the terms of the Mozilla Public
      3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
      4 * You can obtain one at http://mozilla.org/MPL/2.0/.
      5 */
      6 
      7 /*
      8 * This file declares data structures used to communicate data logged by
      9 * various components for the purpose of APZ testing (see bug 961289 and
     10 * gfx/layers/apz/test/APZTestData.h) to JS test code.
     11 */
     12 
     13 // A single key-value pair in the data.
     14 dictionary ScrollFrameDataEntry {
     15  DOMString key;
     16  DOMString value;
     17 };
     18 
     19 // All the key-value pairs associated with a given scrollable frame.
     20 // The scrollable frame is identified by a scroll id.
     21 dictionary ScrollFrameData {
     22  unsigned long long scrollId;
     23  sequence<ScrollFrameDataEntry> entries;
     24 };
     25 
     26 // All the scrollable frames associated with a given paint or repaint request.
     27 // The paint or repaint request is identified by a sequence number.
     28 dictionary APZBucket {
     29  unsigned long sequenceNumber;
     30  sequence<ScrollFrameData> scrollFrames;
     31 };
     32 
     33 [Pref="apz.test.logging_enabled",
     34 Exposed=Window]
     35 namespace APZHitResultFlags {
     36  // These constants should be kept in sync with mozilla::gfx::CompositorHitTestInfo
     37  const unsigned short INVISIBLE = 0;
     38  const unsigned short VISIBLE = 0x0001;
     39  const unsigned short IRREGULAR_AREA = 0x0002;
     40  const unsigned short APZ_AWARE_LISTENERS = 0x0004;
     41  const unsigned short INACTIVE_SCROLLFRAME = 0x0008;
     42  const unsigned short PAN_X_DISABLED = 0x0010;
     43  const unsigned short PAN_Y_DISABLED = 0x0020;
     44  const unsigned short PINCH_ZOOM_DISABLED = 0x0040;
     45  const unsigned short DOUBLE_TAP_ZOOM_DISABLED = 0x0080;
     46  const unsigned short SCROLLBAR = 0x0100;
     47  const unsigned short SCROLLBAR_THUMB = 0x0200;
     48  const unsigned short SCROLLBAR_VERTICAL = 0x0400;
     49  const unsigned short REQUIRES_TARGET_CONFIRMATION = 0x0800;
     50 };
     51 
     52 dictionary APZHitResult {
     53  float screenX;
     54  float screenY;
     55  unsigned short hitResult; // combination of the APZHitResultFlags.* flags
     56  unsigned long long layersId;
     57  unsigned long long scrollId;
     58 };
     59 
     60 dictionary APZSampledResult {
     61  float scrollOffsetX;
     62  float scrollOffsetY;
     63  DOMHighResTimeStamp sampledTimeStamp;
     64  unsigned long long layersId;
     65  unsigned long long scrollId;
     66 };
     67 
     68 dictionary AdditionalDataEntry {
     69  DOMString key;
     70  DOMString value;
     71 };
     72 
     73 // All the paints and repaint requests. This is the top-level data structure.
     74 [GenerateConversionToJS]
     75 dictionary APZTestData {
     76  sequence<APZBucket> paints;
     77  sequence<APZBucket> repaintRequests;
     78  sequence<APZHitResult> hitResults;
     79  sequence<APZSampledResult> sampledResults;
     80  sequence<AdditionalDataEntry> additionalData;
     81 };
     82 
     83 // A frame uniformity measurement for every scrollable layer
     84 dictionary FrameUniformity {
     85  unsigned long layerAddress;
     86  float frameUniformity;
     87 };
     88 
     89 [GenerateConversionToJS]
     90 dictionary FrameUniformityResults {
     91  sequence<FrameUniformity> layerUniformities;
     92 };