Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(149)

Unified Diff: tools/playback_benchmark/playback.js

Issue 57373008: Remove tools/playback_benchmark. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/playback_benchmark/common.js ('k') | tools/playback_benchmark/playback_driver.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/playback_benchmark/playback.js
diff --git a/tools/playback_benchmark/playback.js b/tools/playback_benchmark/playback.js
deleted file mode 100644
index 49628512f0eab535738f4491476946499adc417a..0000000000000000000000000000000000000000
--- a/tools/playback_benchmark/playback.js
+++ /dev/null
@@ -1,258 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-/**
- * @fileoverview Playback agent.
- */
-
-var Benchmark = Benchmark || {};
-
-/**
- * Playback agent class.
- * @param {Object} data Test data.
- * @constructor
- */
-Benchmark.Agent = function(data) {
- this.timeline = data.timeline;
- this.timelinePosition = 0;
- this.steps = data.steps;
- this.stepsPosition = 0;
- this.randoms = data.randoms;
- this.randomsPosition = 0;
- this.ticks = data.ticks;
- this.ticksPosition = 0;
- this.delayedScriptElements = {};
- this.callStackDepth = 0;
- document.cookie = data.cookie;
- if (window.innerWidth != data.width || window.innerHeight != data.height) {
- Benchmark.die('Wrong window size: ' +
- window.innerWidth + 'x' + window.innerHeight +
- ' instead of ' + data.width + 'x' + data.height);
- }
- this.startTime = Benchmark.originals.Date.now();
-};
-
-/**
- * Returns current timeline event.
- * @return {Object} Event.
- */
-Benchmark.Agent.prototype.getCurrentEvent = function() {
- return this.timeline[this.timelinePosition];
-};
-
-/**
- * Returns next recorded event in timeline. If event is the last event in
- * timeline, posts test results to driver.
- * @param {Object} event Event that actually happened, should correspond to
- * the recorded one (used for debug only).
- * @return {Object} Recorded event from timeline.
- */
-Benchmark.Agent.prototype.getNextEvent = function(event) {
- var recordedEvent = this.getCurrentEvent();
- this.ensureEqual(event, recordedEvent);
- if (event.type == 'random' || event.type == 'ticks') {
- recordedEvent.count -= 1;
- if (recordedEvent.count == 0) {
- this.timelinePosition += 1;
- }
- } else {
- this.timelinePosition += 1;
- }
- if (this.timelinePosition == this.steps[this.stepsPosition][1]) {
- var score = Benchmark.originals.Date.now() - this.startTime;
- Benchmark.reportScore(score);
- }
- return recordedEvent;
-};
-
-/**
- * Checks if two events can be considered equal. Throws exception if events
- * differ.
- * @param {Object} event Event that actually happened.
- * @param {Object} recordedEvent Event taken from timeline.
- */
-Benchmark.Agent.prototype.ensureEqual = function(event, recordedEvent) {
- var equal = false;
- if (event.type == recordedEvent.type &&
- event.type in Benchmark.eventPropertiesMap) {
- equal = true;
- var properties = Benchmark.eventPropertiesMap[event.type];
- for (var i = 0; i < properties.length && equal; ++i)
- if (event[properties[i]] != recordedEvent[properties[i]])
- equal = false;
- }
- if (!equal) {
- Benchmark.die('unexpected event: ' + JSON.stringify(event) +
- ' instead of ' + JSON.stringify(recordedEvent));
- }
-};
-
-/**
- * Gets next event from timeline and returns its identifier.
- * @param {Object} event Object with event information.
- * @return {number} Event identifier.
- */
-Benchmark.Agent.prototype.createAsyncEvent = function(event) {
- return this.getNextEvent(event).id;
-};
-
-/**
- * Stores callback to be invoked according to timeline order.
- * @param {number} eventId 'Parent' event identifier.
- * @param {function} callback Callback.
- */
-Benchmark.Agent.prototype.fireAsyncEvent = function(eventId, callback) {
- var event = this.timeline[eventId];
- if (!event.callbackReference) return;
- this.timeline[event.callbackReference].callback = callback;
- this.fireSome();
-};
-
-/**
- * Ensures that things are happening according to recorded timeline.
- * @param {number} eventId Identifier of cancelled event.
- */
-Benchmark.Agent.prototype.cancelAsyncEvent = function(eventId) {
- this.getNextEvent({type: 'cancel', reference: eventId});
-};
-
-/**
- * Checks if script isn't going to be executed too early and delays script
- * execution if necessary.
- * @param {number} scriptId Unique script identifier.
- * @param {HTMLElement} doc Document element.
- * @param {boolean} inlined Indicates whether script is a text block in the page
- * or resides in a separate file.
- * @param {string} src Script url (if script is not inlined).
- */
-Benchmark.Agent.prototype.readyToExecuteScript = function(scriptId, doc,
- inlined, src) {
- var event = this.getCurrentEvent();
- if (event.type == 'willExecuteScript' && event.scriptId == scriptId) {
- this.timelinePosition += 1;
- return true;
- }
- var element;
- var elements = doc.getElementsByTagName('script');
- for (var i = 0, el; (el = elements[i]) && !element; ++i) {
- if (inlined) {
- if (el.src) continue;
- var text = el.textContent;
- if (scriptId == text.substring(2, text.indexOf("*/")))
- element = elements[i];
- } else {
- if (!el.src) continue;
- if (el.src.indexOf(src) != -1 || src.indexOf(el.src) != -1) {
- element = el;
- }
- }
- }
- if (!element) {
- Benchmark.die('script element not found', scriptId, src);
- }
- for (var el2 = element; el2; el2 = el2.parentElement) {
- if (el2.onload) {
- console.log('found', el2);
- }
- }
- this.delayedScriptElements[scriptId] = element;
- return false;
-};
-
-/**
- * Ensures that things are happening according to recorded timeline.
- * @param {Object} event Object with event information.
- */
-Benchmark.Agent.prototype.didExecuteScript = function(scriptId ) {
- this.getNextEvent({type: 'didExecuteScript', scriptId: scriptId});
- this.fireSome();
-};
-
-/**
- * Invokes async events' callbacks according to timeline order.
- */
-Benchmark.Agent.prototype.fireSome = function() {
- while (this.timelinePosition < this.timeline.length) {
- var event = this.getCurrentEvent();
- if (event.type == 'willFire') {
- if(!event.callback) break;
- this.timelinePosition += 1;
- this.callStackDepth += 1;
- event.callback();
- this.callStackDepth -= 1;
- this.getNextEvent({type: 'didFire', reference: event.reference});
- } else if (event.type == 'willExecuteScript') {
- if (event.scriptId in this.delayedScriptElements) {
- var element = this.delayedScriptElements[event.scriptId];
- var parent = element.parentElement;
- var cloneElement = element.cloneNode();
- delete this.delayedScriptElements[event.scriptId];
- parent.replaceChild(cloneElement, element);
- }
- break;
- } else if (this.callStackDepth > 0) {
- break;
- } else {
- Benchmark.die('unexpected event in fireSome:' + JSON.stringify(event));
- }
- }
-};
-
-/**
- * Returns recorded random.
- * @return {number} Recorded random.
- */
-Benchmark.Agent.prototype.random = function() {
- this.getNextEvent({type: 'random'});
- return this.randoms[this.randomsPosition++];
-};
-
-/**
- * Returns recorded ticks.
- * @return {number} Recorded ticks.
- */
-Benchmark.Agent.prototype.dateNow = function(event) {
- this.getNextEvent({type: 'ticks'});
- return this.ticks[this.ticksPosition++];
-};
-
-/**
- * Event type -> property list mapping used for matching events.
- * @const
- */
-Benchmark.eventPropertiesMap = {
- 'timeout': ['timeout'],
- 'request': ['url'],
- 'addEventListener': ['eventType'],
- 'script load': ['src'],
- 'willExecuteScript': ['scriptId'],
- 'didExecuteScript': ['scriptId'],
- 'willFire': ['reference'],
- 'didFire': ['reference'],
- 'cancel': ['reference'],
- 'random': [],
- 'ticks': []
-};
-
-/**
- * Agent used by native window functions wrappers.
- */
-Benchmark.agent = new Benchmark.Agent(Benchmark.data);
-
-/**
- * Playback flag.
- * @const
- */
-Benchmark.playback = true;
-
-Benchmark.reportScore = function(score) {
- Benchmark.score = score;
-};
-
-Benchmark.originals.addEventListenerToWindow.call(
- window, 'message', function(event) {
- if (Benchmark.score) {
- event.source.postMessage(Benchmark.score, event.origin);
- }
- }, false);
« no previous file with comments | « tools/playback_benchmark/common.js ('k') | tools/playback_benchmark/playback_driver.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698