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

Unified Diff: tools/playback_benchmark/playback_driver.py

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/playback.js ('k') | tools/playback_benchmark/proxy_handler.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/playback_benchmark/playback_driver.py
diff --git a/tools/playback_benchmark/playback_driver.py b/tools/playback_benchmark/playback_driver.py
deleted file mode 100644
index ef6c7b4e4ef2ca05de29c1bdec8986287fc90adb..0000000000000000000000000000000000000000
--- a/tools/playback_benchmark/playback_driver.py
+++ /dev/null
@@ -1,195 +0,0 @@
-# Copyright (c) 2011 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.
-"""Playback driver."""
-
-import cgi
-import simplejson as json
-import os
-import string
-import sys
-import threading
-import urlparse
-
-START_PAGE = """<html>
- <script type="text/javascript">
-var runCount = $run_count;
-var results = [];
-
-function run() {
- var wnd = window.open('?resource=start_page_popup', '',
- 'width=$width, height=$height');
- var timerId = setInterval(function() {
- wnd.postMessage('ping', '$target_origin');
- }, 300);
- var handleMessage = function(event) {
- clearInterval(timerId);
- wnd.close();
- document.writeln('<div>' + event.data + '</div>');
- results.push(event.data);
- runCount -= 1;
- window.removeEventListener('message', handleMessage);
- if (runCount > 0) {
- run();
- } else {
- var xmlHttpRequest = new XMLHttpRequest();
- xmlHttpRequest.open("POST", '/benchmark/', true);
- xmlHttpRequest.setRequestHeader("Content-type", "application/json");
- xmlHttpRequest.send(JSON.stringify({results: results}));
- }
- }
- window.addEventListener('message', handleMessage, false);
-}
-
-run();
- </script>
-</html>
-"""
-
-START_PAGE_POPUP = """<html>
- <script type="text/javascript">
-window.setTimeout(function() {
- console.log(window.innerWidth, window.innerHeight);
- if (window.innerWidth == $width && window.innerHeight == $height) {
- window.location = '$start_url';
- } else {
- window.resizeBy($width - window.innerWidth, $height - window.innerHeight);
- window.location = window.location;
- }
-}, 200);
- </script>
-</html>
-"""
-
-DATA_JS = 'Benchmark.data = $data;'
-
-
-def ReadFile(file_name, mode='r'):
- f = open(file_name, mode)
- data = f.read()
- f.close()
- return data
-
-
-def ReadJSON(file_name):
- f = open(file_name, 'r')
- data = json.load(f)
- f.close()
- return data
-
-
-class PlaybackRequestHandler(object):
- """This class is used to process HTTP requests during test playback.
-
- Attributes:
- test_dir: directory containing test files.
- test_callback: function to be called when the test is finished.
- script_dir: directory where javascript files are located.
- """
-
- def __init__(self, test_dir, test_callback=None, script_dir=os.getcwd()):
- self.test_dir = test_dir
- self.test_callback = test_callback
- self.script_dir = script_dir
-
- def ProcessRequest(self, handler):
- "Processes single HTTP request."
-
- parse_result = urlparse.urlparse(handler.path)
- if parse_result.path.endswith('/benchmark/'):
- query = cgi.parse_qs(parse_result.query)
- if 'run_test' in query:
- run_count = 1
- if 'run_count' in query:
- run_count = query['run_count'][0]
- self._StartTest(handler, self.test_dir, run_count)
- elif 'resource' in query:
- self._GetBenchmarkResource(query['resource'][0], handler)
- else:
- self._ProcessBenchmarkReport(handler.body, handler)
- else:
- self._GetApplicationResource(handler)
-
- def _StartTest(self, handler, test_dir, run_count):
- "Sends test start page to browser."
-
- cache_data = ReadJSON(os.path.join(test_dir, 'cache.json'))
-
- # Load cached responses.
- self.cache = {}
- responses_dir = os.path.join(test_dir, 'responses')
- for request in cache_data['requests']:
- response_file = os.path.join(responses_dir, request['response_file'])
- response = ReadFile(response_file, 'rb')
- key = (request['method'], request['path'])
- self.cache[key] = {'response': response, 'headers': request['headers']}
-
- # Load benchmark scripts.
- self.benchmark_resources = {}
- data = ReadFile(os.path.join(test_dir, 'data.json'))
- data = string.Template(DATA_JS).substitute(data=data)
- self.benchmark_resources['data.js'] = {'data': data,
- 'type': 'application/javascript'}
- for resource in ('common.js', 'playback.js'):
- resource_file = os.path.join(self.script_dir, resource)
- self.benchmark_resources[resource] = {'data': ReadFile(resource_file),
- 'type': 'application/javascript'}
-
- # Format start page.
- parse_result = urlparse.urlparse(cache_data['start_url'])
- target_origin = '%s://%s' % (parse_result.scheme, parse_result.netloc)
- start_page = string.Template(START_PAGE).substitute(
- run_count=run_count, target_origin=target_origin,
- width=cache_data['width'], height=cache_data['height'])
- self.benchmark_resources['start_page'] = {
- 'data': start_page,
- 'type': 'text/html; charset=UTF-8'
- }
-
- start_page_popup = string.Template(START_PAGE_POPUP).substitute(
- start_url=cache_data['start_url'],
- width=cache_data['width'], height=cache_data['height'])
- self.benchmark_resources['start_page_popup'] = {
- 'data': start_page_popup,
- 'type': 'text/html; charset=UTF-8'
- }
-
- self._GetBenchmarkResource('start_page', handler)
-
- def _GetBenchmarkResource(self, resource, handler):
- "Sends requested resource to browser."
-
- if resource in self.benchmark_resources:
- resource = self.benchmark_resources[resource]
- handler.send_response(200)
- handler.send_header('content-length', len(resource['data']))
- handler.send_header('content-type', resource['type'])
- handler.end_headers()
- handler.wfile.write(resource['data'])
- else:
- handler.send_response(404)
- handler.end_headers()
-
- def _ProcessBenchmarkReport(self, content, handler):
- "Reads benchmark score from report content and invokes callback."
-
- handler.send_response(204)
- handler.end_headers()
- content = json.loads(content)
- if 'results' in content:
- results = content['results']
- sys.stdout.write('Results: %s\n' % results)
- if self.test_callback: self.test_callback(results)
- elif 'error' in content:
- sys.stderr.write('Error: %s\n' % content['error'])
-
- def _GetApplicationResource(self, handler):
- "Searches for response in cache. If not found, responds with 204."
- key = (handler.command, handler.path)
- if key in self.cache:
- sys.stdout.write('%s %s -> found\n' % key)
- handler.wfile.write(self.cache[key]['response'])
- else:
- sys.stderr.write('%s %s -> not found\n' % key)
- handler.send_response(204, "not in cache")
- handler.end_headers()
« no previous file with comments | « tools/playback_benchmark/playback.js ('k') | tools/playback_benchmark/proxy_handler.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698