browser/metro/base/tests/mochiperf/browser_deck_01.js

Wed, 31 Dec 2014 06:55:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:55:50 +0100
changeset 2
7e26c7da4463
permissions
-rw-r--r--

Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2

     1 /* Any copyright is dedicated to the Public Domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 "use strict";
     6 function test() {
     7   runTests();
     8 }
    10 gTests.push({
    11   desc: "deck offset",
    12   run: function run() {
    13     yield addTab("about:mozilla");
    14     yield hideContextUI();
    15     yield hideNavBar();
    16     yield waitForMs(3000);
    18     let shiftDataSet = new Array();
    19     let paintDataSet = new Array();
    20     let stopwatch = new StopWatch();
    21     let win = Browser.selectedTab.browser.contentWindow;
    22     let domUtils = win.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils);
    24     for (let idx = 0; idx < 10; idx++) {
    25       let recordingHandle = domUtils.startFrameTimeRecording();
    26       stopwatch.start();
    27       let promise = waitForEvent(window, "MozDeckOffsetChanged");
    28       ContentAreaObserver.shiftBrowserDeck(300);
    29       yield promise;
    30       promise = waitForEvent(window, "MozDeckOffsetChanged");
    31       ContentAreaObserver.shiftBrowserDeck(0);
    32       yield promise;
    33       stopwatch.stop();
    34       yield waitForMs(500);
    35       let intervals = domUtils.stopFrameTimeRecording(recordingHandle);
    36       shiftDataSet.push(stopwatch.time());
    37       paintDataSet.push(intervals.length);
    38     }
    40     PerfTest.declareTest("ecb5fbec-0b3d-490f-8d4a-13fa8963e54a",
    41                          "shift browser deck", "browser", "ux",
    42                          "Triggers multiple SKB deck shifting operations using an offset " +
    43                          "value of 300px. Measures total time in milliseconds for a up/down " +
    44                          "shift operation plus the total number of frames. Strips outliers.");
    45     let shiftAverage = PerfTest.computeAverage(shiftDataSet, { stripOutliers: true });
    46     let paintAverage = PerfTest.computeAverage(paintDataSet, { stripOutliers: true });
    47     PerfTest.declareNumericalResults([
    48       { value: shiftAverage, desc: "msec" },
    49       { value: paintAverage, desc: "frame count" },
    50     ]);
    51   }
    52 });

mercurial