summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--media/tools/layout_tests/anno/anno.csv6
-rw-r--r--media/tools/layout_tests/bug.py60
-rw-r--r--media/tools/layout_tests/graph/graph.html53
-rw-r--r--media/tools/layout_tests/layouttest_analyzer.py120
-rw-r--r--media/tools/layout_tests/layouttest_analyzer_helpers.py437
-rw-r--r--media/tools/layout_tests/layouttest_analyzer_helpers_unittest.py102
-rwxr-xr-xmedia/tools/layout_tests/layouttests.py259
-rwxr-xr-xmedia/tools/layout_tests/layouttests_unittest.py49
-rw-r--r--media/tools/layout_tests/result/2011-08-19-111891
-rw-r--r--media/tools/layout_tests/result/2011-08-19-211883
-rw-r--r--media/tools/layout_tests/test_data/base1877
-rwxr-xr-xmedia/tools/layout_tests/test_data/graph.html.bak53
-rw-r--r--media/tools/layout_tests/test_data/less1869
-rw-r--r--media/tools/layout_tests/test_data/more1883
-rw-r--r--media/tools/layout_tests/test_data/more_te_info1891
-rw-r--r--media/tools/layout_tests/test_expectations_history.py105
-rw-r--r--media/tools/layout_tests/test_expectations_history_unittest.py60
-rw-r--r--media/tools/layout_tests/testname/media.csv24
-rw-r--r--media/tools/layout_tests/trend_graph.py78
-rw-r--r--media/tools/layout_tests/trend_graph_unittest.py35
20 files changed, 12735 insertions, 0 deletions
diff --git a/media/tools/layout_tests/anno/anno.csv b/media/tools/layout_tests/anno/anno.csv
new file mode 100644
index 0000000..3447857
--- /dev/null
+++ b/media/tools/layout_tests/anno/anno.csv
@@ -0,0 +1,6 @@
+BUGCR86714,Pinging anne@
+BUGCR74102,Should create new issue and update the test expectation file
+BUGWK55718,Should create new issue and update the test expectation file
+BUGCR59415,BLOCKED - Cannot repro the timeout
+BUGCR72223,depends on http://crbug.com/73609
+BUGCR75354,Rebaseline should be done by imasaki@ http://crbug.com/87144
diff --git a/media/tools/layout_tests/bug.py b/media/tools/layout_tests/bug.py
new file mode 100644
index 0000000..d198b29
--- /dev/null
+++ b/media/tools/layout_tests/bug.py
@@ -0,0 +1,60 @@
+#!/usr/bin/python
+# 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.
+
+import re
+
+
+class Bug:
+ """A class representing a bug.
+
+ TODO(imasaki): add more functionalities here if bug-tracker API is available.
+ For example, you can get the name of a bug owner.
+ """
+ CHROME_BUG_URL = 'http://crbug.com/'
+ WEBKIT_BUG_URL = 'http://webkit.org/b/'
+ # Type enum for the bug.
+ WEBKIT = 0
+ CHROMIUM = 1
+ OTHERS = 2
+
+ def __init__(self, bug_modifier):
+ """Initialize the object using raw bug text (such as BUGWK2322).
+
+ The bug modifier used in the test expectation file.
+
+ Args:
+ bug_modifier: a string representing a bug modifier. According to
+ http://trac.webkit.org/wiki/TestExpectations#Modifiers,
+ currently, BUGWK12345, BUGCR12345, BUGV8_12345, BUGDPRANKE are
+ possible.
+ """
+ self.bug_txt = bug_modifier
+ pattern_for_webkit_bug = r'BUGWK(\d+)'
+ match = re.search(pattern_for_webkit_bug, bug_modifier)
+ if match:
+ self.type = self.WEBKIT
+ self.url = self.WEBKIT_BUG_URL + match.group(1)
+ return
+ pattern_for_chrome_bug = r'BUGCR(\d+)'
+ match = re.search(pattern_for_chrome_bug, bug_modifier)
+ if match:
+ self.type = self.CHROMIUM
+ self.url = self.CHROME_BUG_URL + match.group(1)
+ return
+ pattern_for_other_bug = r'BUG(\S+)'
+ match = re.search(pattern_for_other_bug, bug_modifier)
+ if match:
+ self.type = self.OTHERS
+ self.url = 'mailto:%s@chromium.org' % match.group(1).lower()
+ return
+ self.url = ''
+
+ def __str__(self):
+ """Get a string representation of a bug object.
+
+ Returns:
+ a string for HTML link representation of a bug.
+ """
+ return '<a href="%s">%s</a>' % (self.url, self.bug_txt)
diff --git a/media/tools/layout_tests/graph/graph.html b/media/tools/layout_tests/graph/graph.html
new file mode 100644
index 0000000..a54aa4d
--- /dev/null
+++ b/media/tools/layout_tests/graph/graph.html
@@ -0,0 +1,53 @@
+<html>
+ <head>
+ <script type='text/javascript' src='https://www.google.com/jsapi'></script>
+ <script type='text/javascript'>
+ google.load('visualization', '1', {'packages': ['annotatedtimeline']});
+ google.setOnLoadCallback(drawChart);
+ function drawChart() {
+ var data = new google.visualization.DataTable();
+ data.addColumn('date', 'Date');
+ data.addColumn('number', '#Tests');
+ data.addColumn('string', 'title1');
+ data.addColumn('string', 'text1');
+ data.addColumn('number', '#Skipped tests');
+ data.addColumn('string', 'title2');
+ data.addColumn('string', 'text2');
+ data.addColumn('number', '#Non-skipped tests');
+ data.addColumn('string', 'title2');
+ data.addColumn('string', 'text2');
+ data.addRows([
+ // insert 1
+ ]);
+ var data2 = new google.visualization.DataTable();
+ data2.addColumn('date', 'Date');
+ data2.addColumn('number', 'Passing Rate ' +
+ '(100-(#Non-skipped tests)/' +
+ '((#Tests)-(#Skipped tests))*100)');
+ data2.addColumn('string', 'title1');
+ data2.addColumn('string', 'text1');
+ data2.addRows([
+ // insert 2
+ ]);
+ var div1 = document.getElementById('chart_div');
+ var chart = new google.visualization.AnnotatedTimeLine(div1);
+ chart.draw(data, {displayAnnotations: true, allowHtml: true});
+
+ var div2 = document.getElementById('chart_div2');
+ var chart2 = new google.visualization.AnnotatedTimeLine(div2);
+ chart2.draw(data2, {displayAnnotations: true,
+ allowHtml: true,
+ scaleType: 'maximized'});
+ }
+ </script>
+ <title>Media Layout Test Analyzer Result</title>
+ </head>
+
+ <body>
+ <h2>Current Statistics</h2>
+ <h3 id='numbers'>Numbers</h3>
+ <div id='chart_div' style='width: 1400px; height: 480px;'></div>
+ <h3>Test passing rate</h3>
+ <div id='chart_div2' style='width: 1400px; height: 480px;'></div>
+ </body>
+</html>
diff --git a/media/tools/layout_tests/layouttest_analyzer.py b/media/tools/layout_tests/layouttest_analyzer.py
new file mode 100644
index 0000000..4e6092f
--- /dev/null
+++ b/media/tools/layout_tests/layouttest_analyzer.py
@@ -0,0 +1,120 @@
+#!/usr/bin/python
+# 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.
+
+"""Main functions for the Layout Test Analyzer module."""
+
+import csv
+from datetime import datetime
+import optparse
+import os
+import pickle
+import time
+
+
+from layouttests import LayoutTests
+import layouttest_analyzer_helpers
+from test_expectations import TestExpectations
+from trend_graph import TrendGraph
+
+# Predefined result directory.
+RESULT_DIR = 'result'
+DEFAULT_ANNO_FILE = os.path.join('anno', 'anno.csv')
+DEFAULT_GRAPH_FILE = os.path.join('graph', 'graph.html')
+# Predefined result files for debug.
+CURRENT_RESULT_FILE_FOR_DEBUG = os.path.join(RESULT_DIR, '2011-08-19-21')
+PREV_TIME_FOR_DEBUG = '2011-08-19-11'
+
+
+def parse_option():
+ """Parse command-line options using OptionParser.
+
+ Returns:
+ an object containing all command-line option information.
+ """
+ option_parser = optparse.OptionParser()
+
+ option_parser.add_option('-r', '--receiver-email-address',
+ dest='receiver_email_address',
+ help=('receiver\'s email adddress (defaults to '
+ '%default'),
+ default='imasaki@chromium.org')
+ option_parser.add_option('-g', '--debug-mode', dest='debug',
+ help=('Debug mode is used when you want to debug '
+ 'the analyzer by using local file rather '
+ 'than getting data from SVN. This shortens '
+ 'the debugging time (off by default)'),
+ action='store_true', default=False)
+ option_parser.add_option('-t', '--trend-graph-location',
+ dest='trend_graph_location',
+ help=('trend graph location ',
+ '(defaults to %default)'),
+ default=DEFAULT_GRAPH_FILE)
+ option_parser.add_option('-a', '--bug-anno-file-location',
+ dest='bug_annotation_file_location',
+ help=('Location of the bug annotation file; '
+ 'file is expected to be in CSV format '
+ '(default to %default)'),
+ default=DEFAULT_ANNO_FILE)
+ return option_parser.parse_args()[0]
+
+
+def main():
+ """A main function for the analyzer."""
+ options = parse_option()
+ start_time = datetime.now()
+
+ # Do the main analysis.
+ if not options.debug:
+ layouttests = LayoutTests(csv_file_path=os.path.join('testname',
+ 'media.csv'))
+ analyzer_result_map = layouttest_analyzer_helpers.AnalyzerResultMap(
+ layouttests.JoinWithTestExpectation(TestExpectations()))
+ (prev_time, prev_analyzer_result_map) = (
+ layouttest_analyzer_helpers.FindLatestResult('result'))
+ else:
+ analyzer_result_map = layouttest_analyzer_helpers.AnalyzerResultMap.Load(
+ CURRENT_RESULT_FILE_FOR_DEBUG)
+ prev_time = PREV_TIME_FOR_DEBUG
+ prev_analyzer_result_map = (
+ layouttest_analyzer_helpers.AnalyzerResultMap.Load(
+ os.path.join(RESULT_DIR, prev_time)))
+
+ # Read bug annotations and generate an annotation map used for the status
+ # email.
+ anno_map = {}
+ file_object = open(options.bug_annotation_file_location)
+ data = csv.reader(file_object)
+ for row in data:
+ anno_map[row[0]] = row[1]
+ file_object.close()
+
+ layouttest_analyzer_helpers.SendStatusEmail(prev_time, analyzer_result_map,
+ prev_analyzer_result_map,
+ anno_map,
+ options.receiver_email_address)
+ if not options.debug:
+ # Save the current result.
+ date = start_time.strftime('%Y-%m-%d-%H')
+ file_path = os.path.join(RESULT_DIR, date)
+ analyzer_result_map.Save(file_path)
+
+ # Trend graph update (if specified in the command-line argument).
+ trend_graph = TrendGraph(options.trend_graph_location)
+ datetime_string = start_time.strftime('%Y,%m,%d,%H,%M,%S')
+ # TODO(imasaki): add correct title and text instead of 'undefined'.
+ data_map = (
+ {'whole': (str(len(analyzer_result_map.result_map['whole'].keys())),
+ 'undefined', 'undefined'),
+ 'skip': (str(len(analyzer_result_map.result_map['skip'].keys())),
+ 'undefined', 'undefined'),
+ 'nonskip': (str(len(analyzer_result_map.result_map['nonskip'].keys())),
+ 'undefined', 'undefined'),
+ 'passingrate': (str(analyzer_result_map.GetPassingRate()),
+ 'undefined', 'undefined')})
+ trend_graph.Update(datetime_string, data_map)
+
+
+if '__main__' == __name__:
+ main()
diff --git a/media/tools/layout_tests/layouttest_analyzer_helpers.py b/media/tools/layout_tests/layouttest_analyzer_helpers.py
new file mode 100644
index 0000000..f06e9fe
--- /dev/null
+++ b/media/tools/layout_tests/layouttest_analyzer_helpers.py
@@ -0,0 +1,437 @@
+#!/usr/bin/python
+# 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.
+
+"""Helper functions for the layout test analyzer."""
+
+import copy
+from datetime import datetime
+from email.mime.multipart import MIMEMultipart
+from email.mime.text import MIMEText
+import os
+import pickle
+import smtplib
+import socket
+import time
+import urllib
+
+from bug import Bug
+from test_expectations_history import TestExpectationsHistory
+
+
+class AnalyzerResultMap:
+ """A class to deal with joined result produed by the analyzer.
+
+ The join is done between layouttests and the test_expectations object
+ (based on the test expectation file). The instance variable |result_map|
+ contains the following keys: 'whole','skip','nonskip'. The value of 'whole'
+ contains information about all layouttests. The value of 'skip' contains
+ information about skipped layouttests where it has 'SKIP' in its entry in
+ the test expectation file. The value of 'nonskip' contains all information
+ about non skipped layout tests, which are in the test expectation file but
+ not skipped. The information is exactly same as the one parsed by the
+ analyzer.
+ """
+
+ def __init__(self, test_info_map):
+ """Initialize the AnalyzerResultMap based on test_info_map.
+
+ Test_info_map contains all layouttest information. The job here is to
+ classify them as 'whole', 'skip' or 'nonskip' based on that information.
+
+ Args:
+ test_info_map: the result map of |layouttests.JoinWithTestExpectation|.
+ The key of the map is test name such as 'media/media-foo.html'.
+ The value of the map is a map that contains the following keys:
+ 'desc'(description), 'te_info' (test expectation information),
+ which is a list of test expectation information map. The key of the
+ test expectation information map is test expectation keywords such
+ as "SKIP" and other keywords (for full list of keywords, please
+ refer to |test_expectaions.ALL_TE_KEYWORDS|).
+ """
+ self.result_map = {}
+ self.result_map['whole'] = {}
+ self.result_map['skip'] = {}
+ self.result_map['nonskip'] = {}
+ if test_info_map:
+ for (k, v) in test_info_map.iteritems():
+ self.result_map['whole'][k] = v
+ if 'te_info' in v:
+ if any([True for x in v['te_info'] if 'SKIP' in x]):
+ self.result_map['skip'][k] = v
+ else:
+ self.result_map['nonskip'][k] = v
+
+ @staticmethod
+ def GetDiffString(diff_map_element, type_str):
+ """Get difference string out of diff map element.
+
+ The difference string shows difference between two analyzer results
+ (for example, a result for now and a result for sometime in the past)
+ in HTML format (with colors). This is used for generating email messages.
+
+ Args:
+ diff_map_element: An element of the compared map generated by
+ |CompareResultMaps()|. The element has two lists of test cases. One
+ is for test names that are in the current result but NOT in the
+ previous result. The other is for test names that are in the previous
+ results but NOT in the current result. Please refer to comments in
+ |CompareResultMaps()| for details.
+ type_str: a string indicating the test group to which |diff_map_element|
+ belongs; used for color determination. Must be 'whole', 'skip', or
+ 'nonskip'.
+
+ Returns:
+ a string in HTML format (with colors) to show difference between two
+ analyzer results.
+ """
+ diff = len(diff_map_element[0]) - len(diff_map_element[1])
+ if diff == 0:
+ return 'No Change'
+ color = ''
+ if diff > 0 and type_str != 'whole':
+ color = 'red'
+ else:
+ color = 'green'
+ diff_sign = ''
+ if diff > 0:
+ diff_sign = '+'
+ str = '<font color="%s">%s%d</font>' % (color, diff_sign, diff)
+ str1 = ''
+ for (name, v) in diff_map_element[0]:
+ str1 += name + ','
+ str1 = str1[:-1]
+ str2 = ''
+ for (name, v) in diff_map_element[1]:
+ str2 += name + ','
+ str2 = str2[:-1]
+ if str1 or str2:
+ str += ':'
+ if str1:
+ str += '<font color="%s">%s</font> ' % (color, str1)
+ if str2:
+ str += '<font color="%s">%s</font>' % (color, str2)
+ return str
+
+ def GetPassingRate(self):
+ """Get passing rate.
+
+ Returns:
+ layout test passing rate of this result in percent.
+
+ Raises:
+ ValueEror when the number of tests in test group "whole" is equal or less
+ than that of "skip".
+ """
+ d = len(self.result_map['whole'].keys()) - (
+ len(self.result_map['skip'].keys()))
+ if d <= 0:
+ raise ValueError('The number of tests in test group "whole" is equal or '
+ 'less than that of "skip"')
+ return 100 - len(self.result_map['nonskip'].keys()) * 100 / d
+
+ def ConvertToString(self, prev_time, diff_map, bug_anno_map):
+ """Convert this result to HTML display for email.
+
+ Args:
+ prev_time: the previous time string that are compared against.
+ diff_map: the compared map generated by |CompareResultMaps()|.
+ bug_anno_map: a annotation map where keys are bug names and values are
+ annotations for the bug.
+
+ Returns:
+ a analyzer result string in HTML format.
+ """
+
+ str = ('<b>Statistics (Diff Compared to %s):</b><ul>'
+ '<li>The number of tests: %d (%s)</li>'
+ '<li>The number of failing skipped tests: %d (%s)</li>'
+ '<li>The number of failing non-skipped tests: %d (%s)</li>'
+ '<li>Passing rate: %d %%</li></ul>') % (
+ prev_time,
+ len(self.result_map['whole'].keys()),
+ AnalyzerResultMap.GetDiffString(diff_map['whole'], 'whole'),
+ len(self.result_map['skip'].keys()),
+ AnalyzerResultMap.GetDiffString(diff_map['skip'], 'skip'),
+ len(self.result_map['nonskip'].keys()),
+ AnalyzerResultMap.GetDiffString(diff_map['nonskip'], 'nonskip'),
+ self.GetPassingRate())
+ str += '<b>Current issues about failing non-skipped tests:</b>'
+ for (bug_txt, test_info_list) in (
+ self.GetListOfBugsForNonSkippedTests().iteritems()):
+ if not bug_txt in bug_anno_map:
+ bug_anno_map[bug_txt] = '<font color="red">Needs investigation!</font>'
+ str += '<ul>%s (%s)' % (Bug(bug_txt), bug_anno_map[bug_txt])
+ for test_info in test_info_list:
+ (test_name, te_info) = test_info
+ gpu_link = ''
+ if 'GPU' in te_info:
+ gpu_link = 'group=%40ToT%20GPU%20Mesa%20-%20chromium.org&'
+ dashboard_link = ('http://test-results.appspot.com/dashboards/'
+ 'flakiness_dashboard.html#%stests=%s') % (
+ gpu_link, test_name)
+ str += '<li><a href="%s">%s</a> (%s) </li>' % (
+ dashboard_link, test_name, ' '.join(te_info.keys()))
+ str += '</ul>\n'
+ return str
+
+ def CompareToOtherResultMap(self, other_result_map):
+ """Compare this result map with the other to see if there are any diff.
+
+ The comparison is done for layouttests which belong to 'whole', 'skip',
+ or 'nonskip'.
+
+ Args:
+ other_result_map: another result map to be compared against the result
+ map of the current object.
+
+ Returns:
+ a map that has 'whole', 'skip' and 'nonskip' as keys. The values of the
+ map are the result of |GetDiffBetweenMaps()|.
+ The element has two lists of test cases. One (with index 0) is for
+ test names that are in the current result but NOT in the previous
+ result. The other (with index 1) is for test names that are in the
+ previous results but NOT in the current result.
+ For example (test expectation information is omitted for
+ simplicity),
+ comp_result_map['whole'][0] = ['foo1.html']
+ comp_result_map['whole'][1] = ['foo2.html']
+ This means that current result has 'foo1.html' but NOT in the
+ previous result. This also means the previous result has 'foo2.html'
+ but it is NOT the current result.
+ """
+ comp_result_map = {}
+ for name in ['whole', 'skip', 'nonskip']:
+ if name == 'nonskip':
+ # Look into expectation to get diff only for non-skipped tests.
+ lookIntoTestExpectationInfo = True
+ else:
+ # Otherwise, only test names are compared to get diff.
+ lookIntoTestExpectationInfo = False
+ comp_result_map[name] = GetDiffBetweenMaps(
+ self.result_map[name], other_result_map.result_map[name],
+ lookIntoTestExpectationInfo)
+ return comp_result_map
+
+ @staticmethod
+ def Load(file_path):
+ """Load the object from |file_path| using pickle library.
+
+ Args:
+ file_path: the string path to the file from which to read the result.
+
+ Returns:
+ a AnalyzerResultMap object read from |file_path|.
+ """
+ file_object = open(file_path)
+ analyzer_result_map = pickle.load(file_object)
+ file_object.close()
+ return analyzer_result_map
+
+ def Save(self, file_path):
+ """Save the object to |file_path| using pickle library.
+
+ Args:
+ file_path: the string path to the file in which to store the result.
+ """
+ file_object = open(file_path, 'wb')
+ pickle.dump(self, file_object)
+ file_object.close()
+
+ def GetListOfBugsForNonSkippedTests(self):
+ """Get a list of bugs for non-skipped layout tests.
+
+ This is used for generating email content.
+
+ Returns:
+ a mapping from bug modifier text (e.g., BUGCR1111) to a test name and
+ main test information string which excludes comments and bugs. This
+ is used for grouping test names by bug.
+ """
+ bug_map = {}
+ for (name, v) in self.result_map['nonskip'].iteritems():
+ for te_info in v['te_info']:
+ main_te_info = {}
+ for k in te_info.keys():
+ if k != 'Comments' and k != 'Bugs':
+ main_te_info[k] = True
+ if 'Bugs' in te_info:
+ for bug in te_info['Bugs']:
+ if bug not in bug_map:
+ bug_map[bug] = []
+ bug_map[bug].append((name, main_te_info))
+ return bug_map
+
+
+def SendStatusEmail(prev_time, analyzer_result_map, prev_analyzer_result_map,
+ bug_anno_map, receiver_email_address):
+ """Send status email.
+
+ Args:
+ prev_time: the date string such as '2011-10-09-11'. This format has been
+ used in this analyzer.
+ analyzer_result_map: current analyzer result.
+ prev_analyzer_result_map: previous analyzer result, which is read from
+ a file.
+ bug_anno_map: bug annotation map where bug name and annotations are
+ stored.
+ receiver_email_address: receiver's email address.
+ """
+ diff_map = analyzer_result_map.CompareToOtherResultMap(
+ prev_analyzer_result_map)
+ str = analyzer_result_map.ConvertToString(prev_time, diff_map, bug_anno_map)
+ # Add diff info about skipped/non-skipped test.
+ prev_time = datetime.strptime(prev_time, '%Y-%m-%d-%H')
+ prev_time = time.mktime(prev_time.timetuple())
+ testname_map = {}
+ for type in ['skip', 'nonskip']:
+ for i in range(2):
+ for (k, _) in diff_map[type][i]:
+ testname_map[k] = True
+ now = time.time()
+
+ rev_infos = TestExpectationsHistory.GetDiffBetweenTimes(now, prev_time,
+ testname_map.keys())
+ if rev_infos:
+ str += '<br><b>Revision Information:</b>'
+ for rev_info in rev_infos:
+ (old_rev, new_rev, author, date, message, target_lines) = rev_info
+ link = urllib.unquote('http://trac.webkit.org/changeset?new=%d%40trunk'
+ '%2FLayoutTests%2Fplatform%2Fchromium%2F'
+ 'test_expectations.txt&old=%d%40trunk%2F'
+ 'LayoutTests%2Fplatform%2Fchromium%2F'
+ 'test_expectations.txt') % (new_rev, old_rev)
+ str += '<ul><a href="%s">%s->%s</a>\n' % (link, old_rev, new_rev)
+ str += '<li>%s</li>\n' % author
+ str += '<li>%s</li>\n<ul>' % date
+ for line in target_lines:
+ str += '<li>%s</li>\n' % line
+ str += '</ul></ul>'
+ localtime = time.asctime(time.localtime(time.time()))
+ # TODO(imasaki): remove my name from here.
+ SendEmail('imasaki@chromium.org', 'Kenji Imasaki',
+ [receiver_email_address], ['Layout Test Analyzer Result'],
+ 'Layout Test Analyzer Result : ' + localtime, str)
+
+
+def SendEmail(sender_email_address, sender_name, receivers_email_addresses,
+ receivers_names, subject, message):
+ """Send email using localhost's mail server.
+
+ Args:
+ sender_email_address: sender's email address.
+ sender_name: sender's name.
+ receivers_email_addresses: receiver's email addresses.
+ receivers_names: receiver's names.
+ subject: subject string.
+ message: email message.
+ """
+ whole_message = ''.join([
+ 'From: %s<%s>\n' % (sender_name, sender_email_address),
+ 'To: %s<%s>\n' % (receivers_names[0],
+ receivers_email_addresses[0]),
+ 'Subject: %s\n' % subject, message])
+
+ try:
+ html_top = """
+ <html>
+ <head></head>
+ <body>
+ """
+ html_bot = """
+ </body>
+ </html>
+ """
+ html = html_top + message + html_bot
+ msg = MIMEMultipart('alternative')
+ msg['Subject'] = subject
+ msg['From'] = sender_email_address
+ msg['To'] = receivers_email_addresses[0]
+ part1 = MIMEText(html, 'html')
+ smtpObj = smtplib.SMTP('localhost')
+ msg.attach(part1)
+ smtpObj.sendmail(sender_email_address, receivers_email_addresses,
+ msg.as_string())
+ print 'Successfully sent email'
+ except smtplib.SMTPException, e:
+ print 'Authentication failed:', e
+ print 'Error: unable to send email'
+ except (socket.gaierror, socket.error, socket.herror), e:
+ print e
+ print 'Error: unable to send email'
+
+
+def FindLatestTime(time_list):
+ """Find latest time from |time_list|.
+
+ The current status is compared to the status of the latest file in
+ |RESULT_DIR|.
+
+ Args:
+ time_list: a list of time string in the form of '2011-10-23-23'.
+
+ Returns:
+ a string representing latest time among the time_list or None if
+ |time_list| is empty.
+ """
+ if not time_list:
+ return None
+ latest_date = None
+ for t in time_list:
+ item_date = datetime.strptime(t, '%Y-%m-%d-%H')
+ if latest_date == None or latest_date < item_date:
+ latest_date = item_date
+ return latest_date.strftime('%Y-%m-%d-%H')
+
+
+def FindLatestResult(result_dir):
+ """Find the latest result in |result_dir| and read and return them.
+
+ This is used for comparison of analyzer result between current analyzer
+ and most known latest result.
+
+ Args:
+ result_dir: the result directory.
+
+ Returns:
+ a tuple of filename (latest_time) of the and the latest analyzer result.
+ """
+ dirList = os.listdir(result_dir)
+ file_name = FindLatestTime(dirList)
+ file_path = os.path.join(result_dir, file_name)
+ return (file_name, AnalyzerResultMap.Load(file_path))
+
+
+def GetDiffBetweenMaps(map1, map2, lookIntoTestExpectationInfo=False):
+ """Get difference between maps.
+
+ Args:
+ map1: analyzer result map to be compared.
+ map2: analyzer result map to be compared.
+ lookIntoTestExpectationInfo: a boolean to indicate whether to compare
+ test expectation information in addition to just the test case names.
+
+ Returns:
+ a tuple of |name1_list| and |name2_list|. |Name1_list| contains all test
+ name and the test expectation information in |map1| but not in |map2|.
+ |Name2_list| contains all test name and the test expectation
+ information in |map2| but not in |map1|.
+ """
+
+ def GetDiffBetweenMapsHelper(map1, map2, lookIntoTestExpectationInfo):
+ name_list = []
+ for (name, v1) in map1.iteritems():
+ if name in map2:
+ if lookIntoTestExpectationInfo and 'te_info' in v1:
+ list1 = v1['te_info']
+ list2 = map2[name]['te_info']
+ te_diff = [item for item in list1 if not item in list2]
+ if te_diff:
+ name_list.append((name, te_diff))
+ else:
+ name_list.append((name, v1))
+ return name_list
+
+ return (GetDiffBetweenMapsHelper(map1, map2, lookIntoTestExpectationInfo),
+ GetDiffBetweenMapsHelper(map2, map1, lookIntoTestExpectationInfo))
diff --git a/media/tools/layout_tests/layouttest_analyzer_helpers_unittest.py b/media/tools/layout_tests/layouttest_analyzer_helpers_unittest.py
new file mode 100644
index 0000000..3d29925
--- /dev/null
+++ b/media/tools/layout_tests/layouttest_analyzer_helpers_unittest.py
@@ -0,0 +1,102 @@
+#!/usr/bin/python
+# 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.
+
+import copy
+import os
+import pickle
+import unittest
+
+import layouttest_analyzer_helpers
+
+
+class TestLayoutTestAnalyzerHelpers(unittest.TestCase):
+
+ def testFindLatestTime(self):
+ time_list = ['2011-08-18-19', '2011-08-18-22', '2011-08-18-21',
+ '2012-01-11-21']
+ self.assertEquals(layouttest_analyzer_helpers.FindLatestTime(time_list),
+ '2012-01-11-21')
+
+ def GenerateTestDataWholeAndSkip(self):
+ """You should call this method if you want to generate test data."""
+ file_path = os.path.join('test_data', 'base')
+ analyzerResultMapBase = (
+ layouttest_analyzer_helpers.AnalyzerResultMap.Load(file_path))
+ # Remove this first part
+ m = analyzerResultMapBase.result_map['whole']
+ del m['media/video-source-type.html']
+ m = analyzerResultMapBase.result_map['skip']
+ del m['media/track/track-webvtt-tc004-magicheader.html']
+
+ file_path = os.path.join('test_data', 'less')
+ analyzerResultMapBase.Save(file_path)
+
+ file_path = os.path.join('test_data', 'base')
+ analyzerResultMapBase = AnalyzerResultMap.Load(file_path)
+
+ analyzerResultMapBase.result_map['whole']['add1.html'] = True
+ analyzerResultMapBase.result_map['skip']['add2.html'] = True
+
+ file_path = os.path.join('test_data', 'more')
+ analyzerResultMapBase.Save(file_path)
+
+ def GenerateTestDataNonSkip(self):
+ """You should call this method if you want to generate test data."""
+ file_path = os.path.join('test_data', 'base')
+ analyzerResultMapBase = AnalyzerResultMap.Load(file_path)
+ m = analyzerResultMapBase.result_map['nonskip']
+ ex = m['media/media-document-audio-repaint.html']
+ te_info_map1 = ex['te_info'][0]
+ te_info_map2 = copy.copy(te_info_map1)
+ te_info_map2['NEWADDED'] = True
+ ex['te_info'].append(te_info_map2)
+ m = analyzerResultMapBase.result_map['nonskip']
+
+ file_path = os.path.join('test_data', 'more_te_info')
+ analyzerResultMapBase.Save(file_path)
+
+ def testCompareResultMapsWholeAndSkip(self):
+ file_path = os.path.join('test_data', 'base')
+ analyzerResultMapBase = (
+ layouttest_analyzer_helpers.AnalyzerResultMap.Load(file_path))
+
+ file_path = os.path.join('test_data', 'less')
+ analyzerResultMapLess = (
+ layouttest_analyzer_helpers.AnalyzerResultMap.Load(file_path))
+
+ diff = analyzerResultMapBase.CompareToOtherResultMap(analyzerResultMapLess)
+ self.assertEquals(diff['skip'][0][0][0],
+ 'media/track/track-webvtt-tc004-magicheader.html')
+ self.assertEquals(diff['whole'][0][0][0],
+ 'media/video-source-type.html')
+ file_path = os.path.join('test_data', 'more')
+ analyzerResultMapMore = (
+ layouttest_analyzer_helpers.AnalyzerResultMap.Load(file_path))
+ diff = analyzerResultMapBase.CompareToOtherResultMap(analyzerResultMapMore)
+ self.assertEquals(diff['whole'][1][0][0], 'add1.html')
+ self.assertEquals(diff['skip'][1][0][0], 'add2.html')
+
+ def testCompareResultMapsNonSkip(self):
+ file_path = os.path.join('test_data', 'base')
+ analyzerResultMapBase = (
+ layouttest_analyzer_helpers.AnalyzerResultMap.Load(file_path))
+ file_path = os.path.join('test_data', 'more_te_info')
+ analyzerResultMapMoreTEInfo = (
+ layouttest_analyzer_helpers.AnalyzerResultMap.Load(file_path))
+ m = analyzerResultMapBase.CompareToOtherResultMap(
+ analyzerResultMapMoreTEInfo)
+ self.assertTrue('NEWADDED' in m['nonskip'][1][0][1][0])
+
+ def testGetListOfBugsForNonSkippedTests(self):
+ file_path = os.path.join('test_data', 'base')
+ analyzerResultMapBase = (
+ layouttest_analyzer_helpers.AnalyzerResultMap.Load(file_path))
+ self.assertEquals(
+ len(analyzerResultMapBase.GetListOfBugsForNonSkippedTests().keys()),
+ 10)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/media/tools/layout_tests/layouttests.py b/media/tools/layout_tests/layouttests.py
new file mode 100755
index 0000000..ab47906
--- /dev/null
+++ b/media/tools/layout_tests/layouttests.py
@@ -0,0 +1,259 @@
+#!/usr/bin/python
+# 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.
+
+"""Layout tests module that is necessary for tha layout analyzer.
+
+Layout tests are stored in Webkit SVN and LayoutTestCaseManager collects these
+layout test cases (including description).
+"""
+
+import copy
+import csv
+import locale
+import pysvn
+import re
+import sys
+import urllib2
+
+
+# Webkit SVN root location.
+DEFAULT_LAYOUTTEST_LOCATION = (
+ 'http://svn.webkit.org/repository/webkit/trunk/LayoutTests/')
+
+# When parsing the test HTML file and finding the test description,
+# this script tries to find the test description using sentences
+# starting with these keywords. This is adhoc but it is the only way
+# since there is no standard for writing test description.
+KEYWORDS_FOR_TEST_DESCRIPTION = ['This test', 'Tests that', 'Test ']
+
+# If cannot find the keywords, this script tries to find test case
+# description by the following tags.
+TAGS_FOR_TEST_DESCRIPTION = ['title', 'p', 'div']
+
+# If cannot find the tags, this script tries to find the test case
+# description in the sentence containing following words.
+KEYWORD_FOR_TEST_DESCRIPTION_FAIL_SAFE = ['PASSED ', 'PASS:']
+
+
+class LayoutTests(object):
+ """A class to store test names in layout tests.
+
+ The test names (including regular expression patterns) are read from a CSV
+ file and used for getting layout test names from Webkit SVN.
+ """
+
+ def __init__(self, layouttest_root_path=DEFAULT_LAYOUTTEST_LOCATION,
+ csv_file_path=None):
+ """Initialize LayoutTests using root and CSV file.
+
+ Args:
+ layouttest_root_path: A location string where Webkit layout tests are
+ stored.
+ csv_file_path: CSV file path. The file contains a list of test names
+ in CSV format. When this parameter is not specified, the names of
+ all layout tests are retrieved under the root directory.
+ """
+ filter_names = []
+ if csv_file_path:
+ filter_names = LayoutTests.GetLayoutTestNamesFromCSV(csv_file_path)
+ parent_location_list = LayoutTests.GetParentDirectoryList(filter_names)
+ if layouttest_root_path.startswith('http://'):
+ name_map = self.GetLayoutTestNamesFromSVN(parent_location_list,
+ layouttest_root_path)
+ else:
+ # TODO(imasaki): support other forms such as CSV for reading test names.
+ pass
+ self.name_map = copy.copy(name_map)
+ # Filter names.
+ for lt_name in name_map.keys():
+ match = False
+ for filter_name in filter_names:
+ if re.search(filter_name, lt_name):
+ match = True
+ break
+ if not match:
+ del self.name_map[lt_name]
+ # We get description only for the filtered names.
+ for lt_name in self.name_map.keys():
+ self.name_map[lt_name] = LayoutTests.GetTestDescriptionFromSVN(lt_name)
+
+ @staticmethod
+ def ExtractTestDescription(txt):
+ """Extract the description description from test code in HTML.
+
+ Currently, we have 4 rules described in the code below.
+ (This example falls into rule 1):
+ <p>
+ This tests the intrinsic size of a video element is the default
+ 300,150 before metadata is loaded, and 0,0 after
+ metadata is loaded for an audio-only file.
+ </p>
+ The strategy is very adhoc since the original test case files
+ (in HTML format) do not have standard way to store test description.
+
+ Args:
+ txt: A HTML text which may or may not contain test description.
+
+ Returns:
+ A string that contains test description. Returns 'UNKNOWN' if the
+ test description is not found.
+ """
+ # (1) Try to find test description that contains keywords such as
+ # 'test that' and surrounded by p tag.
+ # This is the most common case.
+ for keyword in KEYWORDS_FOR_TEST_DESCRIPTION:
+ # Try to find <p> and </p>.
+ pattern = r'<p>(.*' + keyword + '.*)</p>'
+ matches = re.search(pattern, txt)
+ if matches is not None:
+ return matches.group(1).strip()
+
+ # (2) Try to find it by using more generic keywords such as 'PASS' etc.
+ for keyword in KEYWORD_FOR_TEST_DESCRIPTION_FAIL_SAFE:
+ # Try to find new lines.
+ pattern = r'\n(.*' + keyword + '.*)\n'
+ matches = re.search(pattern, txt)
+ if matches is not None:
+ # Remove 'p' tag.
+ text = matches.group(1).strip()
+ return text.replace('<p>', '').replace('</p>', '')
+
+ # (3) Try to find it by using HTML tag such as title.
+ for tag in TAGS_FOR_TEST_DESCRIPTION:
+ pattern = r'<' + tag + '>(.*)</' + tag + '>'
+ matches = re.search(pattern, txt)
+ if matches is not None:
+ return matches.group(1).strip()
+
+ # (4) Try to find it by using test description and remove 'p' tag.
+ for keyword in KEYWORDS_FOR_TEST_DESCRIPTION:
+ # Try to find <p> and </p>.
+ pattern = r'\n(.*' + keyword + '.*)\n'
+ matches = re.search(pattern, txt)
+ if matches is not None:
+ # Remove 'p' tag.
+ text = matches.group(1).strip()
+ return text.replace('<p>', '').replace('</p>', '')
+
+ # (5) cannot find test description using existing rules.
+ return 'UNKNOWN'
+
+ @staticmethod
+ def GetLayoutTestNamesFromSVN(parent_location_list,
+ layouttest_root_path):
+ """Get LayoutTest names from Webkit SVN.
+
+ Args:
+ parent_location_list: a list of locations of parent directories. This is
+ used when getting layout tests using PySVN.list().
+ layouttest_root_path: the root path of the Webkit SVN directory.
+
+ Returns:
+ a map containing test names as keys for de-dupe.
+ """
+ client = pysvn.Client()
+ # Get directory structure in the Webkit SVN.
+ if parent_location_list is None:
+ # Try to get all the layout tests by enabling recursion option.
+ parent_location_list = ['/\S+\.html$']
+ recursion = True
+ else:
+ recursion = False
+ name_map = {}
+ for parent_location in parent_location_list:
+ if parent_location.endswith('/'):
+ file_list = client.list(layouttest_root_path + parent_location,
+ recurse=recursion)
+ for file_name in file_list:
+ if sys.stdout.isatty():
+ default_encoding = sys.stdout.encoding
+ else:
+ default_encoding = locale.getpreferredencoding()
+ file_name = file_name[0].repos_path.encode(default_encoding)
+ # Remove the word '/truck/LayoutTests'.
+ file_name = file_name.replace('/trunk/LayoutTests/', '')
+ if file_name.endswith('.html'):
+ name_map[file_name] = True
+ return name_map
+
+ @staticmethod
+ def GetLayoutTestNamesFromCSV(csv_file_path):
+ """Get layout test names from CSV file.
+
+ Args:
+ csv_file_path: the path for the CSV file containing test names (including
+ regular expression patterns). The CSV file content has one column and
+ each row contains a test name.
+ """
+ file_object = file(csv_file_path, 'r')
+ reader = csv.reader(file_object)
+ names = [row[0] for row in reader]
+ file_object.close()
+ return names
+
+ @staticmethod
+ def GetParentDirectoryList(names):
+ """Get parent directory list from test names.
+
+ Args:
+ names: a list of test names. The test names also have path information as
+ well (e.g., media/video-zoom.html).
+ """
+ pd_map = {}
+ for name in names:
+ p_dir = name[0:name.rfind('/') + 1]
+ pd_map[p_dir] = True
+ return list(pd_map.iterkeys())
+
+ def JoinWithTestExpectation(self, test_expectations):
+ """Join layout tests with the test expectation file using test name as key.
+
+ Args:
+ test_expectations: a test expectations object.
+
+ Returns:
+ test_info_map contains test name as key and another map as value. The
+ other map contains test description and the test expectation
+ information which contains keyword (e.g., 'GPU') as key (we do
+ not care about values). The map data structure is used since we
+ have to look up these keywords several times.
+ """
+ test_info_map = {}
+ for (lt_name, desc) in self.name_map.items():
+ test_info_map[lt_name] = {}
+ test_info_map[lt_name]['desc'] = desc
+ for (te_name, te_info) in (
+ test_expectations.all_test_expectation_info.items()):
+ if te_name == lt_name or (
+ te_name in lt_name and te_name.endswith('/')):
+ # Only keep the first match when found.
+ test_info_map[lt_name]['te_info'] = te_info
+ break
+ return test_info_map
+
+ @staticmethod
+ def GetTestDescriptionFromSVN(test_location,
+ root_path=DEFAULT_LAYOUTTEST_LOCATION):
+ """Get test description of a layout test from SVN.
+
+ Using urllib2.urlopen(), this method gets the entire HTML and extracts its
+ test description using |ExtractTestDescription()|.
+
+ Args:
+ test_location: the location of the layout test.
+ root_path: the root path of the Webkit SVN directory.
+
+ Returns:
+ A test description string.
+
+ Raises:
+ A URLError when the layout test is not available.
+ """
+ if test_location.endswith('.html'):
+ url = root_path + test_location
+ resp = urllib2.urlopen(url)
+ if resp.code == 200:
+ return LayoutTests.ExtractTestDescription(resp.read())
+ raise URLError('Fail to get layout test HTML file from %s.' % url)
diff --git a/media/tools/layout_tests/layouttests_unittest.py b/media/tools/layout_tests/layouttests_unittest.py
new file mode 100755
index 0000000..ccd1ec8
--- /dev/null
+++ b/media/tools/layout_tests/layouttests_unittest.py
@@ -0,0 +1,49 @@
+#!/usr/bin/python
+# 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.
+
+import os
+import unittest
+
+from layouttests import LayoutTests
+from test_expectations import TestExpectations
+
+
+class TestLayoutTests(unittest.TestCase):
+ """Unit tests for the LayoutTests class."""
+
+ def testJoinWithTestExpectation(self):
+ layouttests = LayoutTests(csv_file_path=os.path.join('testname',
+ 'media.csv'))
+ test_expectations = TestExpectations()
+ test_info_map = layouttests.JoinWithTestExpectation(test_expectations)
+ # TODO(imasaki): have better assertion below. Currently, the test
+ # expectation file is obtained dynamically so the strict assertion is
+ # impossible.
+ self.assertTrue(any(['media/' in k for k in test_info_map.keys()]),
+ msg=('Analyzer result should contain at least one '
+ 'media test cases since we only retrieved media '
+ 'related test'))
+
+ def testGetTestDescriptionsFromSVN(self):
+ desc1 = LayoutTests.GetTestDescriptionFromSVN(
+ 'media/video-play-empty-events.html')
+ self.assertEquals(desc1,
+ ('Test that play() from EMPTY network state triggers '
+ 'load() and async play event.'),
+ msg='Extracted test description is wrong')
+ desc2 = LayoutTests.GetTestDescriptionFromSVN('jquery/data.html')
+ self.assertEquals(desc2, 'UNKNOWN',
+ msg='Extracted test description is wrong')
+
+ def testGetParentDirectoryList(self):
+ testname_list = ['hoge1/hoge2/hoge3.html', 'hoge1/x.html',
+ 'hoge1/hoge2/hoge4.html']
+ expected_result = ['hoge1/', 'hoge1/hoge2/']
+ self.assertEquals(LayoutTests.GetParentDirectoryList(testname_list),
+ expected_result)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/media/tools/layout_tests/result/2011-08-19-11 b/media/tools/layout_tests/result/2011-08-19-11
new file mode 100644
index 0000000..e020b9e
--- /dev/null
+++ b/media/tools/layout_tests/result/2011-08-19-11
@@ -0,0 +1,1891 @@
+(ilayouttest_analyzer_helpers
+AnalyzerResultMap
+p0
+(dp1
+S'result_map'
+p2
+(dp3
+S'skip'
+p4
+(dp5
+S'media/track/track-webvtt-tc004-magicheader.html'
+p6
+(dp7
+S'desc'
+p8
+S'Tests that the magic file header "WEBVTT" leads to the file properly recognized as a WebVTT file.'
+p9
+sS'te_info'
+p10
+(lp11
+(dp12
+S'SKIP'
+p13
+I01
+sS'TIMEOUT'
+p14
+I01
+sS'Comments'
+p15
+S' Tests for WebVTT parser for <track>. Feature is not yet functional.'
+p16
+sS'Bugs'
+p17
+(lp18
+S'BUGWK43668'
+p19
+asassS'media/audio-delete-while-step-button-clicked.html'
+p20
+(dp21
+g8
+S"This tests that events don't continue to target a step button if the media element is deleted while mouse down on button."
+p22
+sg10
+(lp23
+(dp24
+S'FAIL'
+p25
+I01
+sg13
+I01
+sg17
+(lp26
+S'BUGCR25375'
+p27
+aS'BUGCR59399'
+p28
+asg15
+S" Failing because we sometimes emit additional timeupdate events. Test might be WONTFIX because we don't export a step button in the first place."
+p29
+sassS'media/restore-from-page-cache.html'
+p30
+(dp31
+g8
+S"Make sure we don't reload a &lt;video&gt; element when navigating back to an uncached page."
+p32
+sg10
+(lp33
+(dp34
+g13
+I01
+sS'WONTFIX'
+p35
+I01
+sg14
+I01
+sg15
+S' Page Cache - based tests. Chromium disables page cache because the WebKit page cache keeps previously loaded pages alive in memory to be able to quickly substitute them when user clicks History buttons. Chromium wants those to be separate navigations made via browser process to be able to make decision on which renderer process to use for each of them.'
+p36
+sg17
+(lp37
+S'BUGCR19635'
+p38
+asassS'media/context-menu-actions.html'
+p39
+(dp40
+g8
+S'Test the various actions available in the HTML5 media element context-menu.'
+p41
+sg10
+(lp42
+(dp43
+S'CRASH'
+p44
+I01
+sg13
+I01
+sg17
+(lp45
+S'BUGCR59665'
+p46
+aS'BUGWK45021'
+p47
+asg15
+S' BUGCR59415 : cannot repro the flakiness This test needs enhanced eventSender.contextMenu() return value. See https:bugs.webkit.org/show_bug.cgi?id=45021 for more info. UNIMPLEMENTED for chrome'
+p48
+sg14
+I01
+sS'PASS'
+p49
+I01
+sassS'media/track/track-webvtt-tc005-headercomment.html'
+p50
+(dp51
+g8
+S'Tests that the optional comment area under the "WEBVTT" file header is properly ignored. Also, default settings and styling are currently ignored (treated as faulty cues).'
+p52
+sg10
+g11
+ssS'http/tests/media/video-cross-site.html'
+p53
+(dp54
+g8
+S'media file redirects to another site'
+p55
+sg10
+(lp56
+(dp57
+g13
+I01
+sg15
+S' QuickTime reference movies not supported.'
+p58
+sg14
+I01
+sg49
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/audio-data-url.html'
+p59
+(dp60
+g8
+S'Test that audio element can use a data: url'
+p61
+sg10
+(lp62
+(dp63
+g13
+I01
+sg17
+(lp64
+S'BUGCR16779'
+p65
+asg15
+S" These tests are WONTFIX because they use codecs Chromium doesn't support."
+p66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/video-canvas-alpha.html'
+p67
+(dp68
+g8
+S'UNKNOWN'
+p69
+sg10
+(lp70
+(dp71
+g13
+I01
+sS'IMAGE'
+p72
+I01
+sg17
+(lp73
+S'BUGCR74979'
+p74
+asg15
+S" Accelerated 2d for mac isn't supported yet, so SKIP this test for now."
+p75
+sS'MAC'
+p76
+I01
+sS'GPU'
+p77
+I01
+sassS'media/video-can-play-type.html'
+p78
+(dp79
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method.'
+p80
+sg10
+(lp81
+(dp82
+g13
+I01
+sg17
+(lp83
+S'BUGCR16779'
+p84
+asg15
+g66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/media-captions.html'
+p85
+(dp86
+g8
+S'Test media element close caption API.'
+p87
+sg10
+(lp88
+(dp89
+g13
+I01
+sg14
+I01
+sg15
+S" We haven't implemented the WebKit captioning extension. UNIMPLEMENTED"
+p90
+sg17
+(lp91
+S'BUGCR28301'
+p92
+asassS'media/media-can-play-mpeg-audio.html'
+p93
+(dp94
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method with multiple mp3 MIME types.'
+p95
+sg10
+(lp96
+(dp97
+g13
+I01
+sg35
+I01
+sg17
+(lp98
+S'BUGCR16779'
+p99
+asg15
+g66
+sS'TEXT'
+p100
+I01
+sassS'media/track/track-webvtt-tc011-blanklines.html'
+p101
+(dp102
+g8
+S'Tests that cues are not affected by multiple newlines \\n, \\r, and \\r\\n and that cue not properly separated are treated as one big cue.'
+p103
+sg10
+g11
+ssS'media/track/track-webvtt-tc012-outoforder.html'
+p104
+(dp105
+g8
+S'Tests cues that are temporally out of order (we allow this).'
+p106
+sg10
+g11
+ssS'media/track/track-webvtt-tc008-timingsnohours.html'
+p107
+(dp108
+g8
+S'Tests cue timings that do not contain hours (they are optional), and tests various syntax errors in timings without hours.'
+p109
+sg10
+g11
+ssS'media/video-size-intrinsic-scale.html'
+p110
+(dp111
+g8
+S'&lt;video&gt; element intrinsic size test'
+p112
+sg10
+(lp113
+(dp114
+g13
+I01
+sg17
+(lp115
+S'BUGCR16779'
+p116
+asg15
+g66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/audio-mpeg4-supported.html'
+p117
+(dp118
+g8
+S'Test that the audio element supports M4A files.'
+p119
+sg10
+(lp120
+(dp121
+g13
+I01
+sg17
+(lp122
+S'BUGCR16779'
+p123
+asg15
+g66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/media-fullscreen-not-in-document.html'
+p124
+(dp125
+g8
+S'Test media element fullscreen API when an element is not in the DOM.'
+p126
+sg10
+(lp127
+(dp128
+g13
+I01
+sg14
+I01
+sg15
+S" We haven't implemented the WebKit fullscreen extension. UNIMPLEMENTED"
+p129
+sg17
+(lp130
+S'BUGCR16735'
+p131
+asassS'media/audio-mpeg-supported.html'
+p132
+(dp133
+g8
+S'Test that the audio element supports MPEG files.'
+p134
+sg10
+(lp135
+(dp136
+g13
+I01
+sg17
+(lp137
+S'BUGCR16779'
+p138
+asg15
+g66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/track/track-webvtt-tc003-newlines.html'
+p139
+(dp140
+g8
+S'Tests that line terminators \\r, \\n, or \\r\\n are properly parsed, even when there is no newline at eof.'
+p141
+sg10
+g11
+ssS'media/video-document-types.html'
+p142
+(dp143
+g8
+S"This tests that a standalone MPEG-4 file with 'sdsm' and 'odsm' tracks is opened in a MediaDocument."
+p144
+sg10
+(lp145
+(dp146
+g13
+I01
+sg17
+(lp147
+S'BUGCR16779'
+p148
+asg15
+g66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/track/track-webvtt-tc002-bom.html'
+p149
+(dp150
+g8
+S'Tests that the parser properly ignores a UTF-8 BOM character at the beginning of a file and all other cues are properly parsed.'
+p151
+sg10
+g11
+ssS'media/video-does-not-loop.html'
+p152
+(dp153
+g8
+S"Test to make sure QuickTime movie saved with 'loop' user data does not loop automatically."
+p154
+sg10
+(lp155
+(dp156
+g13
+I01
+sg35
+I01
+sg14
+I01
+sg15
+S" Doesn't apply to Chromium (QuickTime-specific behavior)"
+p157
+sassS'media/track/track-webvtt-tc000-empty.html'
+p158
+(dp159
+g8
+S'Tests that an empty file is not recognized as a WebVTT file.'
+p160
+sg10
+g11
+ssS'media/media-can-play-mpeg4-video.html'
+p161
+(dp162
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method with'
+p163
+sg10
+(lp164
+(dp165
+g13
+I01
+sg35
+I01
+sg17
+(lp166
+S'BUGWK45102'
+p167
+asg15
+g66
+sg100
+I01
+sassS'compositing/video/video-background-color.html'
+p168
+(dp169
+g8
+S'Video with background color'
+p170
+sg10
+(lp171
+(dp172
+g25
+I01
+sg13
+I01
+sg35
+I01
+sg17
+(lp173
+S'BUGWK55519'
+p174
+asg15
+S" Chromium's video codecs don't support alpha information encoded in the video data, so this test is not applicable."
+p175
+sassS'media/track/track-webvtt-tc010-notimings.html'
+p176
+(dp177
+g8
+S'Tests cue without timings are ignored.'
+p178
+sg10
+g11
+ssS'media/video-timeupdate-reverse-play.html'
+p179
+(dp180
+g8
+S"Tests that a 'timeupdate' event is fired when a movie plays<br> in reverse to time zero."
+p181
+sg10
+(lp182
+(dp183
+g13
+I01
+sg14
+I01
+sg15
+S" We haven't implemented reverse audio/video playback. UNIMPLEMENTED BUGCR33099 Implement reverse audio/video playback"
+p184
+sg17
+(lp185
+S'BUGCR33099'
+p186
+asassS'http/tests/media/video-buffered.html'
+p187
+(dp188
+g8
+g69
+sg10
+(lp189
+(dp190
+g13
+I01
+sg17
+(lp191
+S'BUGCR49165'
+p192
+asg15
+S' video.buffered multiple TimeRanges support.'
+p193
+sg49
+I01
+sassS'media/track/track-webvtt-tc001-utf8.html'
+p194
+(dp195
+g8
+S'Tests that UTF-8 encoded characters are recognized properly and that different encodings (iconv) are not recognized as WebVTT a file (we do allow it, it just looks ugly).'
+p196
+sg10
+g11
+ssS'media/track/track-webvtt-tc013-settings.html'
+p197
+(dp198
+g8
+S'Tests WebVTT settings.'
+p199
+sg10
+g11
+ssS'media/media-fullscreen-inline.html'
+p200
+(dp201
+g8
+S'Test media element fullscreen API when an element is in the DOM.'
+p202
+sg10
+(lp203
+(dp204
+g13
+I01
+sg14
+I01
+sg15
+g129
+sg17
+(lp205
+S'BUGCR16735'
+p206
+asassS'media/track/track-webvtt-tc007-cuenoid.html'
+p207
+(dp208
+g8
+S'Tests empty cue identifiers (they are optional), but makes sure "-->" found leads to discarded cue.'
+p209
+sg10
+g11
+ssS'media/track/track-webvtt-tc009-timingshour.html'
+p210
+(dp211
+g8
+S'Tests cue timings that contain hours (they are optional), and tests various syntax errors in timings with hours.'
+p212
+sg10
+g11
+ssS'media/track/track-webvtt-tc006-cueidentifiers.html'
+p213
+(dp214
+g8
+S'Tests that any text other than "-->" is recognized as optional cue identifier.'
+p215
+sg10
+g11
+ssS'media/video-element-other-namespace-crash.html'
+p216
+(dp217
+g8
+g69
+sg10
+(lp218
+(dp219
+g13
+I01
+sg35
+I01
+sg14
+I01
+sg15
+g66
+sg17
+(lp220
+S'BUGCR68289'
+p221
+asassS'media/video-reverse-play-duration.html'
+p222
+(dp223
+g8
+S'Tests that duration is not set to zero when playing in reverse to the origin.'
+p224
+sg10
+(lp225
+(dp226
+g13
+I01
+sg14
+I01
+sg15
+g184
+sg17
+(lp227
+S'BUGCR33099'
+p228
+asasssS'whole'
+p229
+(dp230
+S'media/video-source-type.html'
+p231
+(dp232
+g8
+S'&lt;source&gt; @type attribute'
+p233
+ssS'media/media-startTime.html'
+p234
+(dp235
+g8
+S"Test the, so far unused, 'startTime' attribute."
+p236
+ssS'media/video-src-set.html'
+p237
+(dp238
+g8
+S'Test that setting src attribute triggers load'
+p239
+ssg20
+g21
+sS'media/video-played-ranges-1.html'
+p240
+(dp241
+g8
+S"Test of the media element 'played' attribute, ranges part 1."
+p242
+ssS'media/video-layer-crash.html'
+p243
+(dp244
+g8
+S'Test dynamic removal of transformed and reflected video'
+p245
+ssS'http/tests/media/video-play-stall-seek.html'
+p246
+(dp247
+g8
+S'Test that playback can be resumed by seeking backwards after load stalls.'
+p248
+sg10
+(lp249
+(dp250
+g14
+I01
+sg15
+S' Timing out.'
+p251
+sg17
+(lp252
+S'BUGCR78376'
+p253
+asassg59
+g60
+sg78
+g79
+sg85
+g86
+sS'http/tests/media/video-referer.html'
+p254
+(dp255
+g8
+S'Tests that the media player will send the relevant referer when requesting the media file.<br/>'
+p256
+ssS'media/video-source-removed.html'
+p257
+(dp258
+g8
+S'consoleWrite("PASS: A crash did not occur when removing &lt;source&gt; elements.<br>");'
+p259
+ssS'media/unsupported-tracks.html'
+p260
+(dp261
+g8
+S'Test that QuickTime file with unsupported track types only generates an error.'
+p262
+ssg117
+g118
+sS'media/audio-no-installed-engines.html'
+p263
+(dp264
+g8
+S'PASSED -- crash using Audio with no installed engines bug 27479.'
+p265
+ssg124
+g125
+sS'media/video-dom-src.html'
+p266
+(dp267
+g8
+g69
+ssS'media/media-blocked-by-willsendrequest.html'
+p268
+(dp269
+g8
+S'consoleWrite("This test can only be run in DumpRenderTree!<br><br>");'
+p270
+ssS'media/video-error-does-not-exist.html'
+p271
+(dp272
+g8
+S'Test that the media element is in correct state after load fails.'
+p273
+ssS'media/video-play-pause-events.html'
+p274
+(dp275
+g8
+S'Test that calling play() and pause() triggers async play, timeupdate and pause events.'
+p276
+ssS'media/video-display-none-crash.html'
+p277
+(dp278
+g8
+S'Test that pause() after changing display to "none" doesn\'t cause a crash.'
+p279
+ssS'media/video-src-plus-source.html'
+p280
+(dp281
+g8
+S"Test that a &lt;source&gt; element is not used when a bogus 'src' attribute is present"
+p282
+ssS'media/video-source-none-supported.html'
+p283
+(dp284
+g8
+S'no usable &lt;source&gt; test'
+p285
+ssS'media/video-poster-blocked-by-willsendrequest.html'
+p286
+(dp287
+g8
+S'consoleWrite("<b>This test can only be run in DumpRenderTree!</b>");'
+p288
+ssg152
+g153
+sS'media/video-src.html'
+p289
+(dp290
+g8
+g69
+ssS'media/audio-controls-rendering.html'
+p291
+(dp292
+g8
+S'Test controls placement.'
+p293
+ssg168
+g169
+sS'media/video-source-inserted.html'
+p294
+(dp295
+g8
+S'networkState after inserting &lt;source&gt; test'
+p296
+ssS'media/media-can-play-octet-stream.html'
+p297
+(dp298
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method with "application/octet-stream".'
+p299
+ssS'media/constructors.html'
+p300
+(dp301
+g8
+S'Test that media constructors behave consistently.'
+p302
+ssS'media/video-source-media.html'
+p303
+(dp304
+g8
+g69
+ssg187
+g188
+sS'http/tests/security/local-video-source-from-remote.html'
+p305
+(dp306
+g8
+S'This test only behaves correctly in DRT'
+p307
+ssg194
+g195
+sS'media/video-source-type-params.html'
+p308
+(dp309
+g8
+g69
+ssS'fast/canvas/webgl/context-lost.html'
+p310
+(dp311
+g8
+S'debug("Test valid context");'
+p312
+ssS'media/media-can-play-wav-audio.html'
+p313
+(dp314
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method with multiple .wav MIME types.'
+p315
+ssS'media/video-source-error.html'
+p316
+(dp317
+g8
+S'&lt;video&gt; and &lt;source&gt; error test'
+p318
+sg10
+(lp319
+(dp320
+S'DEBUG'
+p321
+I01
+sg100
+I01
+sg17
+(lp322
+S'BUGWK66310'
+p323
+asg15
+S''
+p324
+sg49
+I01
+sassS'media/video-no-audio.html'
+p325
+(dp326
+g8
+S'Movie with no audio track. The volume button should not render.'
+p327
+ssS'media/svg-as-image-with-media-blocked.html'
+p328
+(dp329
+g8
+S'This test attempts to load foreignObject audio and video embedded in an SVG'
+p330
+ssg207
+g208
+sg107
+g108
+sS'media/video-click-dblckick-standalone.html'
+p331
+(dp332
+g8
+S'This tests that clicking on a standalone video will pause and double-clicking will play.'
+p333
+ssS'media/video-pause-immediately.html'
+p334
+(dp335
+g8
+S'Test that pausing the media element has an immediate effect on the clock.'
+p336
+ssS'fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html'
+p337
+(dp338
+g8
+g69
+ssg222
+g223
+sS'http/tests/security/local-video-src-from-remote.html'
+p339
+(dp340
+g8
+S'This test only works in DRT'
+p341
+ssg200
+g201
+sS'media/video-controls-in-media-document.html'
+p342
+(dp343
+g8
+g69
+ssS'media/remove-from-document-no-load.html'
+p344
+(dp345
+g8
+S'Test that removing a media element from the tree when no media has been loaded does not generate a loadstart event.'
+p346
+ssS'media/video-currentTime.html'
+p347
+(dp348
+g8
+g69
+ssS'media/video-frame-accurate-seek.html'
+p349
+(dp350
+g8
+S'Test that setting currentTime is frame-accurate. The three videos below should be showing frames 12, 13, and 14.'
+p351
+sg10
+(lp352
+(dp353
+g72
+I01
+sg17
+(lp354
+S'BUGCR72223'
+p355
+asg15
+g324
+sg49
+I01
+sassg30
+g31
+sg39
+g40
+sS'media/media-controls-clone-crash.html'
+p356
+(dp357
+g8
+S'Test passes if it does not crash.'
+p358
+ssg50
+g51
+sS'media/controls-css-overload.html'
+p359
+(dp360
+g8
+S"Testing that overloading some controls doesn't crash the browser"
+p361
+ssS'media/video-display-aspect-ratio.html'
+p362
+(dp363
+g8
+g69
+ssS'media/video-currentTime-set.html'
+p364
+(dp365
+g8
+S"Test that setting currentTime changes the time, and that 'ended' event is fired in a reasonable amount of time"
+p366
+ssS'media/media-blocked-by-beforeload.html'
+p367
+(dp368
+g8
+S'Test to ensure that a media file blocked by a beforeload handler generates an error'
+p369
+sg10
+(lp370
+(dp371
+g100
+I01
+sg17
+(lp372
+S'BUGWK66310'
+p373
+asg15
+g324
+sg49
+I01
+sassg104
+g105
+sS'media/video-controls-visible-audio-only.html'
+p374
+(dp375
+g8
+S'This test only runs in DRT!'
+p376
+ssS'http/tests/media/video-play-progress.html'
+p377
+(dp378
+g8
+S'Test that at least one progress event is fired after starting to load the video.'
+p379
+ssg110
+g111
+sS'media/video-source-moved.html'
+p380
+(dp381
+g8
+S'moving &lt;source&gt; element test'
+p382
+ssg101
+g102
+sS'media/video-src-none.html'
+p383
+(dp384
+g8
+g69
+ssS'media/video-controls-zoomed.html'
+p385
+(dp386
+g8
+S'This test only runs in DRT!'
+p387
+ssS'media/video-controls.html'
+p388
+(dp389
+g8
+S"Test 'controls' attribute"
+p390
+ssS'media/controls-without-preload.html'
+p391
+(dp392
+g8
+S'The controls should not depend on preload value.'
+p393
+ssS'media/video-played-collapse.html'
+p394
+(dp395
+g8
+S"Test of the media element 'played' attribute"
+p396
+ssS'compositing/self-painting-layers.html'
+p397
+(dp398
+g8
+S'Self painting layers'
+p399
+ssS'media/audio-controls-do-not-fade-out.html'
+p400
+(dp401
+g8
+S'This tests that audio controls do not fade out when the audio is playing.'
+p402
+ssS'media/media-document-audio-repaint.html'
+p403
+(dp404
+g8
+S'This tests that in a standalone media document with audio content, the media element repaints correctly'
+p405
+sg10
+(lp406
+(dp407
+g100
+I01
+sg72
+I01
+sg17
+(lp408
+S'BUGCR75354'
+p409
+aS'BUGWK55718'
+p410
+asg15
+S' This test needs completely new baselines.'
+p411
+sS'IMAGE+TEXT'
+p412
+I01
+sa(dp413
+S'NEWADDED'
+p414
+I01
+sg100
+I01
+sg72
+I01
+sg17
+g408
+sg15
+g411
+sg412
+I01
+sassS'compositing/geometry/video-opacity-overlay.html'
+p415
+(dp416
+g8
+S'Video overlay'
+p417
+ssS'media/video-source-error-no-candidate.html'
+p418
+(dp419
+g8
+S"Test that 'error' events are fired from &lt;source&gt; element when it can not be used."
+p420
+ssS'media/audio-constructor.html'
+p421
+(dp422
+g8
+S'Test that Audio() object loads the resource after src attribute is set and load() is called.'
+p423
+ssS'media/controls-styling.html'
+p424
+(dp425
+g8
+S'The look of the controls should not change.'
+p426
+ssS'media/video-buffered.html'
+p427
+(dp428
+g8
+g69
+ssS'media/event-attributes.html'
+p429
+(dp430
+g8
+g69
+ssg176
+g177
+sg179
+g180
+sS'http/tests/media/text-served-as-text.html'
+p431
+(dp432
+g8
+S"text file served as 'text/plain'"
+p433
+ssS'http/tests/media/video-cancel-load.html'
+p434
+(dp435
+g8
+S'Cancel loading a video file and access its properties afterwards.'
+p436
+ssS'media/unsupported-rtsp.html'
+p437
+(dp438
+g8
+S'Test that QuickTime file with RTSP URL generates a load error.'
+p439
+ssS'media/media-controls-clone.html'
+p440
+(dp441
+g8
+S'<video controls id=v></video><audio controls id=a></audio>'
+p442
+ssS'media/broken-video.html'
+p443
+(dp444
+g8
+S'Test that QuickTime file with broken content generates an error.'
+p445
+ssS'media/video-plays-past-end-of-test.html'
+p446
+(dp447
+g8
+g69
+ssS'http/tests/canvas/webgl/origin-clean-conformance.html'
+p448
+(dp449
+g8
+S'WebGL Origin Restrictions Conformance Tests'
+p450
+ssS'media/video-replaces-poster.html'
+p451
+(dp452
+g8
+S'Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=34966">https://bugs.webkit.org/show_bug.cgi?id=34966</a>. <br>'
+p453
+ssS'media/video-autoplay.html'
+p454
+(dp455
+g8
+g69
+ssS'media/video-set-rate-from-pause.html'
+p456
+(dp457
+g8
+S'Test that setting a non-zero rate causes an async timeupdate event.'
+p458
+ssS'media/video-src-remove.html'
+p459
+(dp460
+g8
+S"Test that removing valid 'src' attribute DOES NOT trigger load of &lt;source&gt; elements"
+p461
+ssS'media/csp-blocks-video.html'
+p462
+(dp463
+g8
+S"This test passes if it doesn't alert failure."
+p464
+ssS'media/controls-drag-timebar.html'
+p465
+(dp466
+g8
+S'Test that dragging the timebar thumb causes seeks.'
+p467
+ssS'media/audio-constructor-preload.html'
+p468
+(dp469
+g8
+S"Test that Audio() sets 'preload' attribute."
+p470
+ssS'media/video-src-invalid-poster.html'
+p471
+(dp472
+g8
+g69
+ssS'media/adopt-node-crash.html'
+p473
+(dp474
+g8
+S"Tests that we don't crash when moving a video element to a new document."
+p475
+ssS'media/video-playbackrate.html'
+p476
+(dp477
+g8
+S'test playbackRate and defaultPlaybackRate'
+p478
+ssS'media/video-muted.html'
+p479
+(dp480
+g8
+S"Test 'muted' attribute"
+p481
+ssS'media/video-src-change.html'
+p482
+(dp483
+g8
+S'1. Test that an invalid src attribute fires an error when the file fails to load.<br>'
+p484
+ssg216
+g217
+sS'media/video-play-pause-exception.html'
+p485
+(dp486
+g8
+S'Video has no src. Test that the playing event is not dispatched.'
+p487
+ssS'fast/dom/shadow/frameless-media-element-crash.html'
+p488
+(dp489
+g8
+g69
+ssS'media/audio-play-event.html'
+p490
+(dp491
+g8
+S"Test that a 'play' event listener is triggered when fired by a new audio element."
+p492
+ssS'media/before-load-member-access.html'
+p493
+(dp494
+g8
+S'Test that accessing member of a non loaded video works.'
+p495
+ssS'media/video-width-height.html'
+p496
+(dp497
+g8
+g69
+ssS'media/audio-repaint.html'
+p498
+(dp499
+g8
+S'This tests that in a html document with inline audio content, the media element repaints correctly'
+p500
+ssS'media/video-currentTime-delay.html'
+p501
+(dp502
+g8
+S'Test a delay in playing the movie results in a canPlay event.'
+p503
+ssS'media/video-aspect-ratio.html'
+p504
+(dp505
+g8
+S'Test video sizing. You should see one bigger image (paused video) and 7 small ones of 1/4 its size.'
+p506
+ssS'media/video-transformed.html'
+p507
+(dp508
+g8
+S'Test painting of transformed video'
+p509
+ssS'fast/dom/beforeload/remove-video-in-beforeload-listener.html'
+p510
+(dp511
+g8
+S'This page tests that you can correctly remove a video object in a beforeload listener without causing a crash.'
+p512
+ssS'media/invalid-media-url-crash.html'
+p513
+(dp514
+g8
+S'Tests that invalid media src url does not result in crash.'
+p515
+ssS'media/video-empty-source.html'
+p516
+(dp517
+g8
+S'Slider drawing with no source. The controls should render correctly.'
+p518
+ssg93
+g94
+sS'media/video-poster.html'
+p519
+(dp520
+g8
+S'Test &lt;video&gt; element with and without a poster.'
+p521
+ssS'media/media-document-audio-size.html'
+p522
+(dp523
+g8
+S'This tests that in a standalone media document with audio content, the media element has non-zero'
+p524
+ssg132
+g133
+sS'compositing/overflow/overflow-compositing-descendant.html'
+p525
+(dp526
+g8
+S'You should see a green box under the video. If you see red, the test failed.'
+p527
+ssS'media/video-dom-autoplay.html'
+p528
+(dp529
+g8
+g69
+ssS'media/media-ended.html'
+p530
+(dp531
+g8
+S'<b>Test ended by:</b>'
+p532
+ssS'media/video-no-autoplay.html'
+p533
+(dp534
+g8
+S'Test that play event does not fire when "src" set with no autoplay attribute.'
+p535
+ssS'media/video-zoom.html'
+p536
+(dp537
+g8
+S'150% zoom, with width and height attributes'
+p538
+sg10
+(lp539
+(dp540
+g44
+I01
+sg72
+I01
+sg17
+(lp541
+S'BUGCR86714'
+p542
+asg15
+g324
+sg76
+I01
+sg77
+I01
+sassS'media/video-append-source.html'
+p543
+(dp544
+g8
+g69
+ssg139
+g140
+sS'http/tests/media/pdf-served-as-pdf.html'
+p545
+(dp546
+g8
+S"PDF file served as 'application/pdf'"
+p547
+ssS'media/video-play-empty-events.html'
+p548
+(dp549
+g8
+S'Test that play() from EMPTY network state triggers load() and async play event.'
+p550
+ssg149
+g150
+sS'media/audio-only-video-intrinsic-size.html'
+p551
+(dp552
+g8
+S'This tests the intrinsic size of a video element is the default 300&#xd7;150 before metadata is'
+p553
+ssg142
+g143
+sS'media/audio-delete-while-slider-thumb-clicked.html'
+p554
+(dp555
+g8
+S"This tests that events don't continue to target a slider thumb if the media element is deleted while scrubbing."
+p556
+ssS'media/media-can-play-ogg.html'
+p557
+(dp558
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method for ogg media containers.'
+p559
+ssg6
+g7
+sg158
+g159
+sS'media/video-currentTime-set2.html'
+p560
+(dp561
+g8
+g69
+ssS'media/video-seekable.html'
+p562
+(dp563
+g8
+g69
+ssS'fast/dom/beforeload/video-before-load.html'
+p564
+(dp565
+g8
+g69
+ssS'media/video-played-reset.html'
+p566
+(dp567
+g8
+S"Test of the media element 'played' attribute"
+p568
+ssS'compositing/self-painting-layers2.html'
+p569
+(dp570
+g8
+S'This test should not assert in debug builds.'
+p571
+ssS'media/controls-right-click-on-timebar.html'
+p572
+(dp573
+g8
+S'Test that right clicking on the timebar does not cause a seek.'
+p574
+ssS'media/video-dom-preload.html'
+p575
+(dp576
+g8
+S'consoleWrite("++ Test default attribute value");'
+p577
+ssS'media/video-size.html'
+p578
+(dp579
+g8
+S"Test &lt;video&gt; element size with and without 'src' and 'poster' attributes."
+p580
+ssS'media/video-delay-load-event.html'
+p581
+(dp582
+g8
+S"Test the document's load event is delayed until a movie's meta data is available."
+p583
+sg10
+(lp584
+(dp585
+g100
+I01
+sg17
+(lp586
+S'BUGWK64003'
+p587
+asg15
+S' Started around WebKit r90233:r90242'
+p588
+sg76
+I01
+sg49
+I01
+sg321
+I01
+sassS'media/fallback.html'
+p589
+(dp590
+g8
+S'Test that fallback content is not rendered'
+p591
+ssS'fast/layers/video-layer.html'
+p592
+(dp593
+g8
+S'Video element gets layer'
+p594
+ssS'media/controls-strict.html'
+p595
+(dp596
+g8
+S'Drawing the controls in strict mode.'
+p597
+ssS'media/remove-from-document.html'
+p598
+(dp599
+g8
+S'Test that removing a media element from the tree pauses playback but does not unload the media.'
+p600
+ssS'http/tests/media/remove-while-loading.html'
+p601
+(dp602
+g8
+S'Test that removing a media element from the tree while loading does not crash.'
+p603
+ssS'media/video-controls-transformed.html'
+p604
+(dp605
+g8
+S'This test only runs in DRT!'
+p606
+ssS'compositing/video/video-poster.html'
+p607
+(dp608
+g8
+S'Video with poster'
+p609
+ssS'http/tests/media/media-can-load-when-hidden.html'
+p610
+(dp611
+g8
+S'Test HTMLMediaElement to be sure that the video is getting loaded even if the element'
+p612
+ssS'media/video-display-toggle.html'
+p613
+(dp614
+g8
+S"This tests that toggling the display property won't make the controls disappear.<br>"
+p615
+ssS'media/video-seek-no-src-exception.html'
+p616
+(dp617
+g8
+S"Test that seeking video with no 'src' attribute throws an INVALID_STATE_ERR exception."
+p618
+ssS'media/audio-constructor-src.html'
+p619
+(dp620
+g8
+S'Test that Audio("url") constructor loads the specified resource.'
+p621
+ssS'compositing/geometry/clipped-video-controller.html'
+p622
+(dp623
+g8
+S'Clipped Video'
+p624
+ssS'media/video-preload.html'
+p625
+(dp626
+g8
+S"Test to see if media loads automatically when 'preload' is specified."
+p627
+ssS'http/tests/media/video-load-twice.html'
+p628
+(dp629
+g8
+g69
+ssS'http/tests/security/local-video-poster-from-remote.html'
+p630
+(dp631
+g8
+S'This test requires the run-webkit httpd server (run-webkit-httpd)'
+p632
+ssS'media/video-seek-past-end-playing.html'
+p633
+(dp634
+g8
+S"Test that seeking video with 'loop' past it's end rewinds to the beginning and continues playback."
+p635
+ssS'media/video-source.html'
+p636
+(dp637
+g8
+g69
+ssS'http/tests/media/reload-after-dialog.html'
+p638
+(dp639
+g8
+S"Test this by loading a movie slowly and showing a dialog when a 'loadstart' event <br>"
+p640
+ssS'media/media-constants.html'
+p641
+(dp642
+g8
+S'Test HTMLMediaElement and MediaError constants.'
+p643
+ssS'media/video-volume.html'
+p644
+(dp645
+g8
+S"Test 'volume' attribute"
+p646
+ssS'media/video-src-source.html'
+p647
+(dp648
+g8
+g69
+ssS'http/tests/appcache/video.html'
+p649
+(dp650
+g8
+S'Test that &lt;video&gt; can be loaded from the application cache.'
+p651
+ssg53
+g54
+sg67
+g68
+sS'media/video-canvas-source.html'
+p652
+(dp653
+g8
+S'Drawing to canvas using video with source element does not taint canvas'
+p654
+ssS'media/video-controls-no-scripting.html'
+p655
+(dp656
+g8
+S'Tests that the built-in controls are always enabled when JavaScript is disabled.'
+p657
+ssS'media/video-poster-scale.html'
+p658
+(dp659
+g8
+S"'poster' aspect ratio test"
+p660
+ssS'media/video-seek-by-small-increment.html'
+p661
+(dp662
+g8
+S'Test seeking by very small increments.'
+p663
+ssS'media/video-controls-with-mutation-event-handler.html'
+p664
+(dp665
+g8
+S"This tests that we don't crash while creating a video element while a DOMSubtreeModified even handler is registered."
+p666
+ssS'media/video-zoom-controls.html'
+p667
+(dp668
+g8
+S'Zoomed video with controls.'
+p669
+ssS'media/video-loop.html'
+p670
+(dp671
+g8
+S'consoleWrite("<em>++ Test setting/removing the attribute.</em>");'
+p672
+sg10
+(lp673
+(dp674
+S'WIN'
+p675
+I01
+sg49
+I01
+sg17
+(lp676
+S'BUGCR59415'
+p677
+asg15
+S' BUGCR59415 : cannot repro the flakiness'
+p678
+sg14
+I01
+sg100
+I01
+sassS'http/tests/media/video-play-stall.html'
+p679
+(dp680
+g8
+S'Test that stalled, timeupdate and waiting events are sent when media load stalls in the middle.'
+p681
+sg10
+(lp682
+(dp683
+g100
+I01
+sg17
+(lp684
+S'BUGCR73609'
+p685
+asg15
+S' canplaythrough event is sent too early.'
+p686
+sassS'media/video-seeking.html'
+p687
+(dp688
+g8
+S'Test that seeking attribute is true immediately after a seek,'
+p689
+ssS'compositing/overflow/scroll-ancestor-update.html'
+p690
+(dp691
+g8
+S'The green box should obscure the red box, and move when you drag the scrollbar.'
+p692
+ssS'media/controls-after-reload.html'
+p693
+(dp694
+g8
+S'Making sure the controller looks ok after a second load().'
+p695
+ssg161
+g162
+sS'media/video-load-networkState.html'
+p696
+(dp697
+g8
+S'Test that setting src to an invalid url triggers load(), which sets networkState'
+p698
+ssS'http/tests/security/contentSecurityPolicy/media-src-allowed.html'
+p699
+(dp700
+g8
+g69
+ssS'compositing/reflections/load-video-in-reflection.html'
+p701
+(dp702
+g8
+S'You should see a reflected video below, rather than the red video background.'
+p703
+ssS'compositing/geometry/video-fixed-scrolling.html'
+p704
+(dp705
+g8
+S'Video overlay'
+p706
+ssS'media/video-controls-rendering.html'
+p707
+(dp708
+g8
+S'Test controls placement.'
+p709
+sg10
+(lp710
+(dp711
+g72
+I01
+sS'LINUX'
+p712
+I01
+sg17
+(lp713
+S'BUGCR74102'
+p714
+asg15
+S" 2 pixel stretching when rendering some videos with the GPU (Now it's flaky)"
+p715
+sg49
+I01
+sg77
+I01
+sa(dp716
+g44
+I01
+sg72
+I01
+sg17
+(lp717
+S'BUGCR86714'
+p718
+asg15
+g324
+sg76
+I01
+sg77
+I01
+sassS'http/tests/media/video-served-as-text.html'
+p719
+(dp720
+g8
+S"media file served as 'text/plain'"
+p721
+ssS'media/video-pause-empty-events.html'
+p722
+(dp723
+g8
+S'Test that pause() from EMPTY network state triggers load()'
+p724
+ssS'media/video-poster-delayed.html'
+p725
+(dp726
+g8
+S'Delayed load of poster should not overwrite intrinsic size of video'
+p727
+ssS'media/media-load-event.html'
+p728
+(dp729
+g8
+S'Test that media file is not reloaded when an element is inserted into the DOM.'
+p730
+ssS'http/tests/media/video-error-abort.html'
+p731
+(dp732
+g8
+S"'abort' event test"
+p733
+ssS'media/video-volume-slider.html'
+p734
+(dp735
+g8
+S'Test rendering of volume slider of video tag'
+p736
+ssS'media/video-seek-past-end-paused.html'
+p737
+(dp738
+g8
+S"Test that seeking paused video past it's duration time sets currentTime to duration and leaves video paused."
+p739
+ssS'http/tests/media/video-cookie.html'
+p740
+(dp741
+g8
+S'Tests that the media player will send the relevant cookies when requesting the media file.<br/>'
+p742
+ssS'media/remove-from-document-before-load.html'
+p743
+(dp744
+g8
+S'<body onload="document.body.innerHTML=\'PASS: A crash did not occur when the media element was removed before loading.\';'
+p745
+ssg210
+g211
+sS'media/video-duration-known-after-eos.html'
+p746
+(dp747
+g8
+S'Tests that duration is known after playback ended.'
+p748
+ssg213
+g214
+sS'http/tests/media/video-play-stall-before-meta-data.html'
+p749
+(dp750
+g8
+S'Test that stalling very early, while loading meta-data, stops delaying the load event.'
+p751
+ssS'media/video-timeupdate-during-playback.html'
+p752
+(dp753
+g8
+S"Test 'timeupdate' events are posted while playing but not while paused."
+p754
+ssS'media/video-single-valid-source.html'
+p755
+(dp756
+g8
+S'Test that a single valid &lt;source&gt; element loads correctly'
+p757
+ssS'media/video-src-invalid-remove.html'
+p758
+(dp759
+g8
+S"Test that removing 'src' attribute does NOT trigger load of &lt;source&gt; elements"
+p760
+ssS'http/tests/security/contentSecurityPolicy/media-src-blocked.html'
+p761
+(dp762
+g8
+S"This test passes if it doesn't alert failure."
+p763
+ssg197
+g198
+sS'media/video-load-readyState.html'
+p764
+(dp765
+g8
+g69
+sssS'nonskip'
+p766
+(dp767
+g403
+g404
+sg349
+g350
+sg679
+g680
+sg246
+g247
+sg536
+g537
+sg670
+g671
+sg707
+g708
+sg581
+g582
+sg367
+g368
+sg316
+g317
+sssb. \ No newline at end of file
diff --git a/media/tools/layout_tests/result/2011-08-19-21 b/media/tools/layout_tests/result/2011-08-19-21
new file mode 100644
index 0000000..9c33ce2
--- /dev/null
+++ b/media/tools/layout_tests/result/2011-08-19-21
@@ -0,0 +1,1883 @@
+(ilayouttest_analyzer_helpers
+AnalyzerResultMap
+p0
+(dp1
+S'result_map'
+p2
+(dp3
+S'skip'
+p4
+(dp5
+S'media/video-does-not-loop.html'
+p6
+(dp7
+S'te_info'
+p8
+(lp9
+(dp10
+S'SKIP'
+p11
+I01
+sS'WONTFIX'
+p12
+I01
+sS'Comments'
+p13
+S" Doesn't apply to Chromium (QuickTime-specific behavior)"
+p14
+sS'TIMEOUT'
+p15
+I01
+sasS'desc'
+p16
+S"Test to make sure QuickTime movie saved with 'loop' user data does not loop automatically."
+p17
+ssS'media/audio-delete-while-step-button-clicked.html'
+p18
+(dp19
+g8
+(lp20
+(dp21
+S'FAIL'
+p22
+I01
+sg11
+I01
+sS'Bugs'
+p23
+(lp24
+S'BUGCR25375'
+p25
+aS'BUGCR59399'
+p26
+asg13
+S" Failing because we sometimes emit additional timeupdate events. Test might be WONTFIX because we don't export a step button in the first place."
+p27
+sasg16
+S"This tests that events don't continue to target a step button if the media element is deleted while mouse down on button."
+p28
+ssS'media/restore-from-page-cache.html'
+p29
+(dp30
+g8
+(lp31
+(dp32
+g11
+I01
+sg12
+I01
+sg13
+S' Page Cache - based tests. Chromium disables page cache because the WebKit page cache keeps previously loaded pages alive in memory to be able to quickly substitute them when user clicks History buttons. Chromium wants those to be separate navigations made via browser process to be able to make decision on which renderer process to use for each of them.'
+p33
+sg15
+I01
+sg23
+(lp34
+S'BUGCR19635'
+p35
+asasg16
+S"Make sure we don't reload a &lt;video&gt; element when navigating back to an uncached page."
+p36
+ssS'media/context-menu-actions.html'
+p37
+(dp38
+g8
+(lp39
+(dp40
+S'CRASH'
+p41
+I01
+sg11
+I01
+sg23
+(lp42
+S'BUGCR59665'
+p43
+aS'BUGWK45021'
+p44
+asg13
+S' BUGCR59415 : cannot repro the flakiness This test needs enhanced eventSender.contextMenu() return value. See https:bugs.webkit.org/show_bug.cgi?id=45021 for more info. UNIMPLEMENTED for chrome'
+p45
+sg15
+I01
+sS'PASS'
+p46
+I01
+sasg16
+S'Test the various actions available in the HTML5 media element context-menu.'
+p47
+ssS'media/track/track-webvtt-tc005-headercomment.html'
+p48
+(dp49
+g8
+(lp50
+(dp51
+g11
+I01
+sg13
+S' Tests for WebVTT parser for <track>. Feature is not yet functional.'
+p52
+sg15
+I01
+sg23
+(lp53
+S'BUGWK43668'
+p54
+asasg16
+S'Tests that the optional comment area under the "WEBVTT" file header is properly ignored. Also, default settings and styling are currently ignored (treated as faulty cues).'
+p55
+ssS'http/tests/media/video-cross-site.html'
+p56
+(dp57
+g8
+(lp58
+(dp59
+g11
+I01
+sg13
+S' QuickTime reference movies not supported.'
+p60
+sg15
+I01
+sg46
+I01
+sg22
+I01
+sg12
+I01
+sasg16
+S'media file redirects to another site'
+p61
+ssS'media/audio-data-url.html'
+p62
+(dp63
+g8
+(lp64
+(dp65
+g11
+I01
+sg23
+(lp66
+S'BUGCR16779'
+p67
+asg13
+S" These tests are WONTFIX because they use codecs Chromium doesn't support."
+p68
+sg15
+I01
+sg22
+I01
+sg12
+I01
+sasg16
+S'Test that audio element can use a data: url'
+p69
+ssS'media/video-canvas-alpha.html'
+p70
+(dp71
+g8
+(lp72
+(dp73
+g11
+I01
+sS'IMAGE'
+p74
+I01
+sg23
+(lp75
+S'BUGCR74979'
+p76
+asg13
+S" Accelerated 2d for mac isn't supported yet, so SKIP this test for now."
+p77
+sS'MAC'
+p78
+I01
+sS'GPU'
+p79
+I01
+sasg16
+S'UNKNOWN'
+p80
+ssS'media/video-can-play-type.html'
+p81
+(dp82
+g8
+(lp83
+(dp84
+g11
+I01
+sg23
+(lp85
+S'BUGCR16779'
+p86
+asg13
+g68
+sg15
+I01
+sg22
+I01
+sg12
+I01
+sasg16
+S'Test HTMLMediaElement <em>canPlayType()</em> method.'
+p87
+ssS'media/media-captions.html'
+p88
+(dp89
+g8
+(lp90
+(dp91
+g11
+I01
+sg13
+S" We haven't implemented the WebKit captioning extension. UNIMPLEMENTED"
+p92
+sg15
+I01
+sg23
+(lp93
+S'BUGCR28301'
+p94
+asasg16
+S'Test media element close caption API.'
+p95
+ssS'media/video-size-intrinsic-scale.html'
+p96
+(dp97
+g8
+(lp98
+(dp99
+g11
+I01
+sg23
+(lp100
+S'BUGCR16779'
+p101
+asg13
+g68
+sg15
+I01
+sg22
+I01
+sg12
+I01
+sasg16
+S'&lt;video&gt; element intrinsic size test'
+p102
+ssS'media/track/track-webvtt-tc011-blanklines.html'
+p103
+(dp104
+g8
+g50
+sg16
+S'Tests that cues are not affected by multiple newlines \\n, \\r, and \\r\\n and that cue not properly separated are treated as one big cue.'
+p105
+ssS'media/track/track-webvtt-tc012-outoforder.html'
+p106
+(dp107
+g8
+g50
+sg16
+S'Tests cues that are temporally out of order (we allow this).'
+p108
+ssS'media/track/track-webvtt-tc006-cueidentifiers.html'
+p109
+(dp110
+g8
+g50
+sg16
+S'Tests that any text other than "-->" is recognized as optional cue identifier.'
+p111
+ssS'media/media-can-play-mpeg-audio.html'
+p112
+(dp113
+g8
+(lp114
+(dp115
+g11
+I01
+sg12
+I01
+sg23
+(lp116
+S'BUGCR16779'
+p117
+asg13
+g68
+sS'TEXT'
+p118
+I01
+sasg16
+S'Test HTMLMediaElement <em>canPlayType()</em> method with multiple mp3 MIME types.'
+p119
+ssS'media/audio-mpeg4-supported.html'
+p120
+(dp121
+g8
+(lp122
+(dp123
+g11
+I01
+sg23
+(lp124
+S'BUGCR16779'
+p125
+asg13
+g68
+sg15
+I01
+sg22
+I01
+sg12
+I01
+sasg16
+S'Test that the audio element supports M4A files.'
+p126
+ssS'media/track/track-webvtt-tc004-magicheader.html'
+p127
+(dp128
+g8
+g50
+sg16
+S'Tests that the magic file header "WEBVTT" leads to the file properly recognized as a WebVTT file.'
+p129
+ssS'media/media-fullscreen-not-in-document.html'
+p130
+(dp131
+g8
+(lp132
+(dp133
+g11
+I01
+sg13
+S" We haven't implemented the WebKit fullscreen extension. UNIMPLEMENTED"
+p134
+sg15
+I01
+sg23
+(lp135
+S'BUGCR16735'
+p136
+asasg16
+S'Test media element fullscreen API when an element is not in the DOM.'
+p137
+ssS'media/audio-mpeg-supported.html'
+p138
+(dp139
+g8
+(lp140
+(dp141
+g11
+I01
+sg23
+(lp142
+S'BUGCR16779'
+p143
+asg13
+g68
+sg15
+I01
+sg22
+I01
+sg12
+I01
+sasg16
+S'Test that the audio element supports MPEG files.'
+p144
+ssS'media/track/track-webvtt-tc003-newlines.html'
+p145
+(dp146
+g8
+g50
+sg16
+S'Tests that line terminators \\r, \\n, or \\r\\n are properly parsed, even when there is no newline at eof.'
+p147
+ssS'media/video-document-types.html'
+p148
+(dp149
+g8
+(lp150
+(dp151
+g11
+I01
+sg23
+(lp152
+S'BUGCR16779'
+p153
+asg13
+g68
+sg15
+I01
+sg22
+I01
+sg12
+I01
+sasg16
+S"This tests that a standalone MPEG-4 file with 'sdsm' and 'odsm' tracks is opened in a MediaDocument."
+p154
+ssS'media/track/track-webvtt-tc002-bom.html'
+p155
+(dp156
+g8
+g50
+sg16
+S'Tests that the parser properly ignores a UTF-8 BOM character at the beginning of a file and all other cues are properly parsed.'
+p157
+ssS'media/media-fullscreen-inline.html'
+p158
+(dp159
+g8
+(lp160
+(dp161
+g11
+I01
+sg13
+g134
+sg15
+I01
+sg23
+(lp162
+S'BUGCR16735'
+p163
+asasg16
+S'Test media element fullscreen API when an element is in the DOM.'
+p164
+ssS'media/track/track-webvtt-tc000-empty.html'
+p165
+(dp166
+g8
+g50
+sg16
+S'Tests that an empty file is not recognized as a WebVTT file.'
+p167
+ssS'media/media-can-play-mpeg4-video.html'
+p168
+(dp169
+g8
+(lp170
+(dp171
+g11
+I01
+sg12
+I01
+sg23
+(lp172
+S'BUGWK45102'
+p173
+asg13
+g68
+sg118
+I01
+sasg16
+S'Test HTMLMediaElement <em>canPlayType()</em> method with'
+p174
+ssS'compositing/video/video-background-color.html'
+p175
+(dp176
+g8
+(lp177
+(dp178
+g22
+I01
+sg11
+I01
+sg12
+I01
+sg23
+(lp179
+S'BUGWK55519'
+p180
+asg13
+S" Chromium's video codecs don't support alpha information encoded in the video data, so this test is not applicable."
+p181
+sasg16
+S'Video with background color'
+p182
+ssS'media/track/track-webvtt-tc010-notimings.html'
+p183
+(dp184
+g8
+g50
+sg16
+S'Tests cue without timings are ignored.'
+p185
+ssS'media/video-timeupdate-reverse-play.html'
+p186
+(dp187
+g8
+(lp188
+(dp189
+g11
+I01
+sg13
+S" We haven't implemented reverse audio/video playback. UNIMPLEMENTED BUGCR33099 Implement reverse audio/video playback"
+p190
+sg15
+I01
+sg23
+(lp191
+S'BUGCR33099'
+p192
+asasg16
+S"Tests that a 'timeupdate' event is fired when a movie plays<br> in reverse to time zero."
+p193
+ssS'http/tests/media/video-buffered.html'
+p194
+(dp195
+g8
+(lp196
+(dp197
+g11
+I01
+sg23
+(lp198
+S'BUGCR49165'
+p199
+asg13
+S' video.buffered multiple TimeRanges support.'
+p200
+sg46
+I01
+sasg16
+g80
+ssS'media/track/track-webvtt-tc001-utf8.html'
+p201
+(dp202
+g8
+g50
+sg16
+S'Tests that UTF-8 encoded characters are recognized properly and that different encodings (iconv) are not recognized as WebVTT a file (we do allow it, it just looks ugly).'
+p203
+ssS'media/track/track-webvtt-tc013-settings.html'
+p204
+(dp205
+g8
+g50
+sg16
+S'Tests WebVTT settings.'
+p206
+ssS'media/track/track-webvtt-tc007-cuenoid.html'
+p207
+(dp208
+g8
+g50
+sg16
+S'Tests empty cue identifiers (they are optional), but makes sure "-->" found leads to discarded cue.'
+p209
+ssS'media/track/track-webvtt-tc009-timingshour.html'
+p210
+(dp211
+g8
+g50
+sg16
+S'Tests cue timings that contain hours (they are optional), and tests various syntax errors in timings with hours.'
+p212
+ssS'media/track/track-webvtt-tc008-timingsnohours.html'
+p213
+(dp214
+g8
+g50
+sg16
+S'Tests cue timings that do not contain hours (they are optional), and tests various syntax errors in timings without hours.'
+p215
+ssS'media/video-element-other-namespace-crash.html'
+p216
+(dp217
+g8
+(lp218
+(dp219
+g11
+I01
+sg12
+I01
+sg13
+g68
+sg15
+I01
+sg23
+(lp220
+S'BUGCR68289'
+p221
+asasg16
+g80
+ssS'media/video-reverse-play-duration.html'
+p222
+(dp223
+g8
+(lp224
+(dp225
+g11
+I01
+sg13
+g190
+sg15
+I01
+sg23
+(lp226
+S'BUGCR33099'
+p227
+asasg16
+S'Tests that duration is not set to zero when playing in reverse to the origin.'
+p228
+sssS'whole'
+p229
+(dp230
+S'media/video-source-type.html'
+p231
+(dp232
+g16
+S'&lt;source&gt; @type attribute'
+p233
+ssS'media/media-startTime.html'
+p234
+(dp235
+g16
+S"Test the, so far unused, 'startTime' attribute."
+p236
+ssS'media/video-src-set.html'
+p237
+(dp238
+g16
+S'Test that setting src attribute triggers load'
+p239
+ssg18
+g19
+sS'media/video-played-ranges-1.html'
+p240
+(dp241
+g16
+S"Test of the media element 'played' attribute, ranges part 1."
+p242
+ssS'http/tests/media/video-play-stall-seek.html'
+p243
+(dp244
+g8
+(lp245
+(dp246
+g13
+S' Timing out.'
+p247
+sg15
+I01
+sg23
+(lp248
+S'BUGCR78376'
+p249
+asasg16
+S'Test that playback can be resumed by seeking backwards after load stalls.'
+p250
+ssg62
+g63
+sg81
+g82
+sg88
+g89
+sS'media/controls-after-reload.html'
+p251
+(dp252
+g16
+S'Making sure the controller looks ok after a second load().'
+p253
+ssS'http/tests/media/video-referer.html'
+p254
+(dp255
+g16
+S'Tests that the media player will send the relevant referer when requesting the media file.<br/>'
+p256
+ssS'media/video-source-removed.html'
+p257
+(dp258
+g16
+S'consoleWrite("PASS: A crash did not occur when removing &lt;source&gt; elements.<br>");'
+p259
+ssS'media/unsupported-tracks.html'
+p260
+(dp261
+g16
+S'Test that QuickTime file with unsupported track types only generates an error.'
+p262
+ssg120
+g121
+sS'media/audio-no-installed-engines.html'
+p263
+(dp264
+g16
+S'PASSED -- crash using Audio with no installed engines bug 27479.'
+p265
+ssg130
+g131
+sS'media/video-width-height.html'
+p266
+(dp267
+g16
+g80
+ssS'media/media-blocked-by-willsendrequest.html'
+p268
+(dp269
+g16
+S'consoleWrite("This test can only be run in DumpRenderTree!<br><br>");'
+p270
+ssS'media/video-error-does-not-exist.html'
+p271
+(dp272
+g16
+S'Test that the media element is in correct state after load fails.'
+p273
+ssS'media/video-play-pause-events.html'
+p274
+(dp275
+g16
+S'Test that calling play() and pause() triggers async play, timeupdate and pause events.'
+p276
+ssS'media/video-display-none-crash.html'
+p277
+(dp278
+g16
+S'Test that pause() after changing display to "none" doesn\'t cause a crash.'
+p279
+ssS'media/video-src-plus-source.html'
+p280
+(dp281
+g16
+S"Test that a &lt;source&gt; element is not used when a bogus 'src' attribute is present"
+p282
+ssS'media/video-source-none-supported.html'
+p283
+(dp284
+g16
+S'no usable &lt;source&gt; test'
+p285
+ssS'media/video-poster-blocked-by-willsendrequest.html'
+p286
+(dp287
+g16
+S'consoleWrite("<b>This test can only be run in DumpRenderTree!</b>");'
+p288
+ssg6
+g7
+sS'media/video-src.html'
+p289
+(dp290
+g16
+g80
+ssg175
+g176
+sS'media/video-src-invalid-poster.html'
+p291
+(dp292
+g16
+g80
+ssS'media/video-source-inserted.html'
+p293
+(dp294
+g16
+S'networkState after inserting &lt;source&gt; test'
+p295
+ssS'media/media-can-play-octet-stream.html'
+p296
+(dp297
+g16
+S'Test HTMLMediaElement <em>canPlayType()</em> method with "application/octet-stream".'
+p298
+ssS'media/constructors.html'
+p299
+(dp300
+g16
+S'Test that media constructors behave consistently.'
+p301
+ssS'media/video-source-media.html'
+p302
+(dp303
+g16
+g80
+ssg194
+g195
+sS'media/video-aspect-ratio.html'
+p304
+(dp305
+g16
+S'Test video sizing. You should see one bigger image (paused video) and 7 small ones of 1/4 its size.'
+p306
+ssg201
+g202
+sS'media/video-source-type-params.html'
+p307
+(dp308
+g16
+g80
+ssS'fast/canvas/webgl/context-lost.html'
+p309
+(dp310
+g16
+S'debug("Test valid context");'
+p311
+ssS'media/media-can-play-wav-audio.html'
+p312
+(dp313
+g16
+S'Test HTMLMediaElement <em>canPlayType()</em> method with multiple .wav MIME types.'
+p314
+ssS'media/video-source-error.html'
+p315
+(dp316
+g8
+(lp317
+(dp318
+S'DEBUG'
+p319
+I01
+sg118
+I01
+sg23
+(lp320
+S'BUGWK66310'
+p321
+asg13
+S''
+p322
+sg46
+I01
+sasg16
+S'&lt;video&gt; and &lt;source&gt; error test'
+p323
+ssS'media/video-no-audio.html'
+p324
+(dp325
+g16
+S'Movie with no audio track. The volume button should not render.'
+p326
+ssS'media/svg-as-image-with-media-blocked.html'
+p327
+(dp328
+g16
+S'This test attempts to load foreignObject audio and video embedded in an SVG'
+p329
+ssS'media/video-transformed.html'
+p330
+(dp331
+g16
+S'Test painting of transformed video'
+p332
+ssg207
+g208
+sg213
+g214
+sS'media/video-click-dblckick-standalone.html'
+p333
+(dp334
+g16
+S'This tests that clicking on a standalone video will pause and double-clicking will play.'
+p335
+ssS'media/video-pause-immediately.html'
+p336
+(dp337
+g16
+S'Test that pausing the media element has an immediate effect on the clock.'
+p338
+ssS'fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html'
+p339
+(dp340
+g16
+g80
+ssg222
+g223
+sS'http/tests/security/local-video-src-from-remote.html'
+p341
+(dp342
+g16
+S'This test only works in DRT'
+p343
+ssS'media/media-document-audio-repaint.html'
+p344
+(dp345
+g8
+(lp346
+(dp347
+g118
+I01
+sg74
+I01
+sg23
+(lp348
+S'BUGCR75354'
+p349
+aS'BUGWK55718'
+p350
+asg13
+S' This test needs completely new baselines.'
+p351
+sS'IMAGE+TEXT'
+p352
+I01
+sasg16
+S'This tests that in a standalone media document with audio content, the media element repaints correctly'
+p353
+ssS'media/video-controls-in-media-document.html'
+p354
+(dp355
+g16
+g80
+ssS'media/remove-from-document-no-load.html'
+p356
+(dp357
+g16
+S'Test that removing a media element from the tree when no media has been loaded does not generate a loadstart event.'
+p358
+ssS'media/video-currentTime.html'
+p359
+(dp360
+g16
+g80
+ssS'media/video-frame-accurate-seek.html'
+p361
+(dp362
+g8
+(lp363
+(dp364
+g74
+I01
+sg23
+(lp365
+S'BUGCR72223'
+p366
+asg13
+g322
+sg46
+I01
+sasg16
+S'Test that setting currentTime is frame-accurate. The three videos below should be showing frames 12, 13, and 14.'
+p367
+ssg29
+g30
+sg37
+g38
+sS'media/video-load-networkState.html'
+p368
+(dp369
+g16
+S'Test that setting src to an invalid url triggers load(), which sets networkState'
+p370
+ssg48
+g49
+sS'media/controls-css-overload.html'
+p371
+(dp372
+g16
+S"Testing that overloading some controls doesn't crash the browser"
+p373
+ssS'media/video-display-aspect-ratio.html'
+p374
+(dp375
+g16
+g80
+ssS'media/video-currentTime-set.html'
+p376
+(dp377
+g16
+S"Test that setting currentTime changes the time, and that 'ended' event is fired in a reasonable amount of time"
+p378
+ssS'media/media-blocked-by-beforeload.html'
+p379
+(dp380
+g8
+(lp381
+(dp382
+g118
+I01
+sg23
+(lp383
+S'BUGWK66310'
+p384
+asg13
+g322
+sg46
+I01
+sasg16
+S'Test to ensure that a media file blocked by a beforeload handler generates an error'
+p385
+ssg106
+g107
+sS'media/video-controls-visible-audio-only.html'
+p386
+(dp387
+g16
+S'This test only runs in DRT!'
+p388
+ssS'http/tests/media/video-play-progress.html'
+p389
+(dp390
+g16
+S'Test that at least one progress event is fired after starting to load the video.'
+p391
+ssg112
+g113
+sS'media/video-source-moved.html'
+p392
+(dp393
+g16
+S'moving &lt;source&gt; element test'
+p394
+ssS'http/tests/security/local-video-source-from-remote.html'
+p395
+(dp396
+g16
+S'This test only behaves correctly in DRT'
+p397
+ssS'media/video-src-none.html'
+p398
+(dp399
+g16
+g80
+ssS'media/video-controls-zoomed.html'
+p400
+(dp401
+g16
+S'This test only runs in DRT!'
+p402
+ssS'media/video-controls.html'
+p403
+(dp404
+g16
+S"Test 'controls' attribute"
+p405
+ssS'media/controls-without-preload.html'
+p406
+(dp407
+g16
+S'The controls should not depend on preload value.'
+p408
+ssS'media/video-played-collapse.html'
+p409
+(dp410
+g16
+S"Test of the media element 'played' attribute"
+p411
+ssS'compositing/self-painting-layers.html'
+p412
+(dp413
+g16
+S'Self painting layers'
+p414
+ssS'media/audio-controls-do-not-fade-out.html'
+p415
+(dp416
+g16
+S'This tests that audio controls do not fade out when the audio is playing.'
+p417
+ssg158
+g159
+sS'compositing/geometry/video-opacity-overlay.html'
+p418
+(dp419
+g16
+S'Video overlay'
+p420
+ssS'media/video-source-error-no-candidate.html'
+p421
+(dp422
+g16
+S"Test that 'error' events are fired from &lt;source&gt; element when it can not be used."
+p423
+ssS'media/audio-constructor.html'
+p424
+(dp425
+g16
+S'Test that Audio() object loads the resource after src attribute is set and load() is called.'
+p426
+ssS'media/controls-styling.html'
+p427
+(dp428
+g16
+S'The look of the controls should not change.'
+p429
+ssS'media/event-attributes.html'
+p430
+(dp431
+g16
+g80
+ssg183
+g184
+sg186
+g187
+sS'http/tests/media/text-served-as-text.html'
+p432
+(dp433
+g16
+S"text file served as 'text/plain'"
+p434
+ssS'http/tests/media/video-cancel-load.html'
+p435
+(dp436
+g16
+S'Cancel loading a video file and access its properties afterwards.'
+p437
+ssS'media/unsupported-rtsp.html'
+p438
+(dp439
+g16
+S'Test that QuickTime file with RTSP URL generates a load error.'
+p440
+ssS'media/media-controls-clone.html'
+p441
+(dp442
+g16
+S'<video controls id=v></video><audio controls id=a></audio>'
+p443
+ssS'media/broken-video.html'
+p444
+(dp445
+g16
+S'Test that QuickTime file with broken content generates an error.'
+p446
+ssS'media/video-plays-past-end-of-test.html'
+p447
+(dp448
+g16
+g80
+ssS'http/tests/canvas/webgl/origin-clean-conformance.html'
+p449
+(dp450
+g16
+S'WebGL Origin Restrictions Conformance Tests'
+p451
+ssS'media/video-replaces-poster.html'
+p452
+(dp453
+g16
+S'Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=34966">https://bugs.webkit.org/show_bug.cgi?id=34966</a>. <br>'
+p454
+ssS'media/video-autoplay.html'
+p455
+(dp456
+g16
+g80
+ssS'media/video-set-rate-from-pause.html'
+p457
+(dp458
+g16
+S'Test that setting a non-zero rate causes an async timeupdate event.'
+p459
+ssS'media/video-src-remove.html'
+p460
+(dp461
+g16
+S"Test that removing valid 'src' attribute DOES NOT trigger load of &lt;source&gt; elements"
+p462
+ssS'media/csp-blocks-video.html'
+p463
+(dp464
+g16
+S"This test passes if it doesn't alert failure."
+p465
+ssS'media/controls-drag-timebar.html'
+p466
+(dp467
+g16
+S'Test that dragging the timebar thumb causes seeks.'
+p468
+ssS'media/audio-constructor-preload.html'
+p469
+(dp470
+g16
+S"Test that Audio() sets 'preload' attribute."
+p471
+ssS'media/video-poster-delayed.html'
+p472
+(dp473
+g16
+S'Delayed load of poster should not overwrite intrinsic size of video'
+p474
+ssS'media/adopt-node-crash.html'
+p475
+(dp476
+g16
+S"Tests that we don't crash when moving a video element to a new document."
+p477
+ssS'media/video-playbackrate.html'
+p478
+(dp479
+g16
+S'test playbackRate and defaultPlaybackRate'
+p480
+ssS'media/video-muted.html'
+p481
+(dp482
+g16
+S"Test 'muted' attribute"
+p483
+ssS'media/video-src-change.html'
+p484
+(dp485
+g16
+S'1. Test that an invalid src attribute fires an error when the file fails to load.<br>'
+p486
+ssS'compositing/overflow/overflow-compositing-descendant.html'
+p487
+(dp488
+g16
+S'You should see a green box under the video. If you see red, the test failed.'
+p489
+ssg216
+g217
+sS'media/video-play-pause-exception.html'
+p490
+(dp491
+g16
+S'Video has no src. Test that the playing event is not dispatched.'
+p492
+ssS'fast/dom/shadow/frameless-media-element-crash.html'
+p493
+(dp494
+g16
+g80
+ssS'media/audio-play-event.html'
+p495
+(dp496
+g16
+S"Test that a 'play' event listener is triggered when fired by a new audio element."
+p497
+ssS'media/before-load-member-access.html'
+p498
+(dp499
+g16
+S'Test that accessing member of a non loaded video works.'
+p500
+ssS'media/video-dom-src.html'
+p501
+(dp502
+g16
+g80
+ssS'media/audio-repaint.html'
+p503
+(dp504
+g16
+S'This tests that in a html document with inline audio content, the media element repaints correctly'
+p505
+ssS'media/audio-controls-rendering.html'
+p506
+(dp507
+g16
+S'Test controls placement.'
+p508
+ssg204
+g205
+sS'fast/dom/beforeload/remove-video-in-beforeload-listener.html'
+p509
+(dp510
+g16
+S'This page tests that you can correctly remove a video object in a beforeload listener without causing a crash.'
+p511
+ssS'media/invalid-media-url-crash.html'
+p512
+(dp513
+g16
+S'Tests that invalid media src url does not result in crash.'
+p514
+ssS'media/video-empty-source.html'
+p515
+(dp516
+g16
+S'Slider drawing with no source. The controls should render correctly.'
+p517
+ssg96
+g97
+sS'media/video-poster.html'
+p518
+(dp519
+g16
+S'Test &lt;video&gt; element with and without a poster.'
+p520
+ssS'media/media-document-audio-size.html'
+p521
+(dp522
+g16
+S'This tests that in a standalone media document with audio content, the media element has non-zero'
+p523
+ssS'media/video-zoom.html'
+p524
+(dp525
+g8
+(lp526
+(dp527
+g41
+I01
+sg74
+I01
+sg23
+(lp528
+S'BUGCR86714'
+p529
+asg13
+g322
+sg78
+I01
+sg79
+I01
+sasg16
+S'150% zoom, with width and height attributes'
+p530
+ssg103
+g104
+sS'http/tests/appcache/video.html'
+p531
+(dp532
+g16
+S'Test that &lt;video&gt; can be loaded from the application cache.'
+p533
+ssS'media/video-dom-autoplay.html'
+p534
+(dp535
+g16
+g80
+ssS'media/media-ended.html'
+p536
+(dp537
+g16
+S'<b>Test ended by:</b>'
+p538
+ssS'media/video-no-autoplay.html'
+p539
+(dp540
+g16
+S'Test that play event does not fire when "src" set with no autoplay attribute.'
+p541
+ssg138
+g139
+sS'media/video-append-source.html'
+p542
+(dp543
+g16
+g80
+ssg145
+g146
+sS'http/tests/media/pdf-served-as-pdf.html'
+p544
+(dp545
+g16
+S"PDF file served as 'application/pdf'"
+p546
+ssS'media/video-play-empty-events.html'
+p547
+(dp548
+g16
+S'Test that play() from EMPTY network state triggers load() and async play event.'
+p549
+ssg155
+g156
+sS'media/audio-only-video-intrinsic-size.html'
+p550
+(dp551
+g16
+S'This tests the intrinsic size of a video element is the default 300&#xd7;150 before metadata is'
+p552
+ssg148
+g149
+sS'media/audio-delete-while-slider-thumb-clicked.html'
+p553
+(dp554
+g16
+S"This tests that events don't continue to target a slider thumb if the media element is deleted while scrubbing."
+p555
+ssS'media/media-can-play-ogg.html'
+p556
+(dp557
+g16
+S'Test HTMLMediaElement <em>canPlayType()</em> method for ogg media containers.'
+p558
+ssg127
+g128
+sg165
+g166
+sS'media/video-currentTime-set2.html'
+p559
+(dp560
+g16
+g80
+ssS'media/video-seekable.html'
+p561
+(dp562
+g16
+g80
+ssS'fast/dom/beforeload/video-before-load.html'
+p563
+(dp564
+g16
+g80
+ssS'media/video-played-reset.html'
+p565
+(dp566
+g16
+S"Test of the media element 'played' attribute"
+p567
+ssS'compositing/self-painting-layers2.html'
+p568
+(dp569
+g16
+S'This test should not assert in debug builds.'
+p570
+ssS'media/controls-right-click-on-timebar.html'
+p571
+(dp572
+g16
+S'Test that right clicking on the timebar does not cause a seek.'
+p573
+ssS'media/video-dom-preload.html'
+p574
+(dp575
+g16
+S'consoleWrite("++ Test default attribute value");'
+p576
+ssS'media/video-size.html'
+p577
+(dp578
+g16
+S"Test &lt;video&gt; element size with and without 'src' and 'poster' attributes."
+p579
+ssS'media/video-load-preload-none.html'
+p580
+(dp581
+g16
+S'Test that an explicit load() to a media element whose preload is set to "none" still loads the video.'
+p582
+ssS'media/video-delay-load-event.html'
+p583
+(dp584
+g8
+(lp585
+(dp586
+g118
+I01
+sg23
+(lp587
+S'BUGWK64003'
+p588
+asg13
+S' Started around WebKit r90233:r90242'
+p589
+sg78
+I01
+sg46
+I01
+sg319
+I01
+sasg16
+S"Test the document's load event is delayed until a movie's meta data is available."
+p590
+ssS'media/fallback.html'
+p591
+(dp592
+g16
+S'Test that fallback content is not rendered'
+p593
+ssS'media/video-layer-crash.html'
+p594
+(dp595
+g16
+S'Test dynamic removal of transformed and reflected video'
+p596
+ssS'fast/layers/video-layer.html'
+p597
+(dp598
+g16
+S'Video element gets layer'
+p599
+ssS'media/controls-strict.html'
+p600
+(dp601
+g16
+S'Drawing the controls in strict mode.'
+p602
+ssS'media/remove-from-document.html'
+p603
+(dp604
+g16
+S'Test that removing a media element from the tree pauses playback but does not unload the media.'
+p605
+ssS'http/tests/media/remove-while-loading.html'
+p606
+(dp607
+g16
+S'Test that removing a media element from the tree while loading does not crash.'
+p608
+ssS'media/video-controls-transformed.html'
+p609
+(dp610
+g16
+S'This test only runs in DRT!'
+p611
+ssS'compositing/video/video-poster.html'
+p612
+(dp613
+g16
+S'Video with poster'
+p614
+ssS'media/video-display-toggle.html'
+p615
+(dp616
+g16
+S"This tests that toggling the display property won't make the controls disappear.<br>"
+p617
+ssS'media/video-seek-no-src-exception.html'
+p618
+(dp619
+g16
+S"Test that seeking video with no 'src' attribute throws an INVALID_STATE_ERR exception."
+p620
+ssS'media/audio-constructor-src.html'
+p621
+(dp622
+g16
+S'Test that Audio("url") constructor loads the specified resource.'
+p623
+ssS'compositing/geometry/clipped-video-controller.html'
+p624
+(dp625
+g16
+S'Clipped Video'
+p626
+ssS'media/video-preload.html'
+p627
+(dp628
+g16
+S"Test to see if media loads automatically when 'preload' is specified."
+p629
+ssS'http/tests/media/video-load-twice.html'
+p630
+(dp631
+g16
+g80
+ssS'http/tests/media/video-cookie.html'
+p632
+(dp633
+g16
+S'Tests that the media player will send the relevant cookies when requesting the media file.<br/>'
+p634
+ssS'media/video-source.html'
+p635
+(dp636
+g16
+g80
+ssS'media/video-seek-past-end-playing.html'
+p637
+(dp638
+g16
+S"Test that seeking video with 'loop' past it's end rewinds to the beginning and continues playback."
+p639
+ssS'media/video-currentTime-delay.html'
+p640
+(dp641
+g16
+S'Test a delay in playing the movie results in a canPlay event.'
+p642
+ssS'http/tests/media/reload-after-dialog.html'
+p643
+(dp644
+g16
+S"Test this by loading a movie slowly and showing a dialog when a 'loadstart' event <br>"
+p645
+ssS'media/media-constants.html'
+p646
+(dp647
+g16
+S'Test HTMLMediaElement and MediaError constants.'
+p648
+ssS'media/video-volume.html'
+p649
+(dp650
+g16
+S"Test 'volume' attribute"
+p651
+ssS'media/video-src-source.html'
+p652
+(dp653
+g16
+g80
+ssS'media/video-buffered.html'
+p654
+(dp655
+g16
+g80
+ssg56
+g57
+sg70
+g71
+sS'media/video-canvas-source.html'
+p656
+(dp657
+g16
+S'Drawing to canvas using video with source element does not taint canvas'
+p658
+ssS'media/video-controls-no-scripting.html'
+p659
+(dp660
+g16
+S'Tests that the built-in controls are always enabled when JavaScript is disabled.'
+p661
+ssS'media/video-poster-scale.html'
+p662
+(dp663
+g16
+S"'poster' aspect ratio test"
+p664
+ssS'media/video-seek-by-small-increment.html'
+p665
+(dp666
+g16
+S'Test seeking by very small increments.'
+p667
+ssS'media/video-controls-with-mutation-event-handler.html'
+p668
+(dp669
+g16
+S"This tests that we don't crash while creating a video element while a DOMSubtreeModified even handler is registered."
+p670
+ssS'media/video-zoom-controls.html'
+p671
+(dp672
+g16
+S'Zoomed video with controls.'
+p673
+ssS'media/video-loop.html'
+p674
+(dp675
+g8
+(lp676
+(dp677
+S'WIN'
+p678
+I01
+sg46
+I01
+sg23
+(lp679
+S'BUGCR59415'
+p680
+asg13
+S' BUGCR59415 : cannot repro the flakiness'
+p681
+sg15
+I01
+sg118
+I01
+sasg16
+S'consoleWrite("<em>++ Test setting/removing the attribute.</em>");'
+p682
+ssS'http/tests/media/video-play-stall.html'
+p683
+(dp684
+g8
+(lp685
+(dp686
+g118
+I01
+sg23
+(lp687
+S'BUGCR73609'
+p688
+asg13
+S' canplaythrough event is sent too early.'
+p689
+sasg16
+S'Test that stalled, timeupdate and waiting events are sent when media load stalls in the middle.'
+p690
+ssS'media/video-seeking.html'
+p691
+(dp692
+g16
+S'Test that seeking attribute is true immediately after a seek,'
+p693
+ssS'compositing/overflow/scroll-ancestor-update.html'
+p694
+(dp695
+g16
+S'The green box should obscure the red box, and move when you drag the scrollbar.'
+p696
+ssS'http/tests/media/media-can-load-when-hidden.html'
+p697
+(dp698
+g16
+S'Test HTMLMediaElement to be sure that the video is getting loaded even if the element'
+p699
+ssg168
+g169
+sS'media/media-controls-clone-crash.html'
+p700
+(dp701
+g16
+S'Test passes if it does not crash.'
+p702
+ssS'http/tests/security/contentSecurityPolicy/media-src-allowed.html'
+p703
+(dp704
+g16
+g80
+ssS'compositing/reflections/load-video-in-reflection.html'
+p705
+(dp706
+g16
+S'You should see a reflected video below, rather than the red video background.'
+p707
+ssS'compositing/geometry/video-fixed-scrolling.html'
+p708
+(dp709
+g16
+S'Video overlay'
+p710
+ssS'media/video-controls-rendering.html'
+p711
+(dp712
+g8
+(lp713
+(dp714
+g74
+I01
+sS'LINUX'
+p715
+I01
+sg23
+(lp716
+S'BUGCR74102'
+p717
+asg13
+S" 2 pixel stretching when rendering some videos with the GPU (Now it's flaky)"
+p718
+sg46
+I01
+sg79
+I01
+sa(dp719
+g41
+I01
+sg74
+I01
+sg23
+(lp720
+S'BUGCR86714'
+p721
+asg13
+g322
+sg78
+I01
+sg79
+I01
+sasg16
+S'Test controls placement.'
+p722
+ssS'http/tests/media/video-served-as-text.html'
+p723
+(dp724
+g16
+S"media file served as 'text/plain'"
+p725
+ssS'media/video-pause-empty-events.html'
+p726
+(dp727
+g16
+S'Test that pause() from EMPTY network state triggers load()'
+p728
+ssS'media/media-load-event.html'
+p729
+(dp730
+g16
+S'Test that media file is not reloaded when an element is inserted into the DOM.'
+p731
+ssS'http/tests/media/video-error-abort.html'
+p732
+(dp733
+g16
+S"'abort' event test"
+p734
+ssS'media/video-volume-slider.html'
+p735
+(dp736
+g16
+S'Test rendering of volume slider of video tag'
+p737
+ssS'media/video-seek-past-end-paused.html'
+p738
+(dp739
+g16
+S"Test that seeking paused video past it's duration time sets currentTime to duration and leaves video paused."
+p740
+ssS'http/tests/security/local-video-poster-from-remote.html'
+p741
+(dp742
+g16
+S'This test requires the run-webkit httpd server (run-webkit-httpd)'
+p743
+ssS'media/remove-from-document-before-load.html'
+p744
+(dp745
+g16
+S'<body onload="document.body.innerHTML=\'PASS: A crash did not occur when the media element was removed before loading.\';'
+p746
+ssg210
+g211
+sS'media/video-duration-known-after-eos.html'
+p747
+(dp748
+g16
+S'Tests that duration is known after playback ended.'
+p749
+ssg109
+g110
+sS'http/tests/media/video-play-stall-before-meta-data.html'
+p750
+(dp751
+g16
+S'Test that stalling very early, while loading meta-data, stops delaying the load event.'
+p752
+ssS'media/video-timeupdate-during-playback.html'
+p753
+(dp754
+g16
+S"Test 'timeupdate' events are posted while playing but not while paused."
+p755
+ssS'media/video-single-valid-source.html'
+p756
+(dp757
+g16
+S'Test that a single valid &lt;source&gt; element loads correctly'
+p758
+ssS'media/video-src-invalid-remove.html'
+p759
+(dp760
+g16
+S"Test that removing 'src' attribute does NOT trigger load of &lt;source&gt; elements"
+p761
+ssS'http/tests/security/contentSecurityPolicy/media-src-blocked.html'
+p762
+(dp763
+g16
+S"This test passes if it doesn't alert failure."
+p764
+ssS'media/video-load-readyState.html'
+p765
+(dp766
+g16
+g80
+sssS'nonskip'
+p767
+(dp768
+g344
+g345
+sg361
+g362
+sg711
+g712
+sg243
+g244
+sg524
+g525
+sg674
+g675
+sg683
+g684
+sg583
+g584
+sg379
+g380
+sg315
+g316
+sssb. \ No newline at end of file
diff --git a/media/tools/layout_tests/test_data/base b/media/tools/layout_tests/test_data/base
new file mode 100644
index 0000000..59795ca
--- /dev/null
+++ b/media/tools/layout_tests/test_data/base
@@ -0,0 +1,1877 @@
+(ilayouttest_analyzer_helpers
+AnalyzerResultMap
+p0
+(dp1
+S'result_map'
+p2
+(dp3
+S'skip'
+p4
+(dp5
+S'media/video-does-not-loop.html'
+p6
+(dp7
+S'te_info'
+p8
+(lp9
+(dp10
+S'SKIP'
+p11
+I01
+sS'WONTFIX'
+p12
+I01
+sS'Comments'
+p13
+S" Doesn't apply to Chromium (QuickTime-specific behavior)"
+p14
+sS'TIMEOUT'
+p15
+I01
+sasS'desc'
+p16
+S"Test to make sure QuickTime movie saved with 'loop' user data does not loop automatically."
+p17
+ssS'media/audio-delete-while-step-button-clicked.html'
+p18
+(dp19
+g8
+(lp20
+(dp21
+S'FAIL'
+p22
+I01
+sg11
+I01
+sS'Bugs'
+p23
+(lp24
+S'BUGCR25375'
+p25
+aS'BUGCR59399'
+p26
+asg13
+S" Failing because we sometimes emit additional timeupdate events. Test might be WONTFIX because we don't export a step button in the first place."
+p27
+sasg16
+S"This tests that events don't continue to target a step button if the media element is deleted while mouse down on button."
+p28
+ssS'media/restore-from-page-cache.html'
+p29
+(dp30
+g8
+(lp31
+(dp32
+g11
+I01
+sg12
+I01
+sg13
+S' Page Cache - based tests. Chromium disables page cache because the WebKit page cache keeps previously loaded pages alive in memory to be able to quickly substitute them when user clicks History buttons. Chromium wants those to be separate navigations made via browser process to be able to make decision on which renderer process to use for each of them.'
+p33
+sg15
+I01
+sg23
+(lp34
+S'BUGCR19635'
+p35
+asasg16
+S"Make sure we don't reload a &lt;video&gt; element when navigating back to an uncached page."
+p36
+ssS'media/context-menu-actions.html'
+p37
+(dp38
+g8
+(lp39
+(dp40
+S'CRASH'
+p41
+I01
+sg11
+I01
+sg23
+(lp42
+S'BUGCR59665'
+p43
+aS'BUGWK45021'
+p44
+asg13
+S' BUGCR59415 : cannot repro the flakiness This test needs enhanced eventSender.contextMenu() return value. See https:bugs.webkit.org/show_bug.cgi?id=45021 for more info. UNIMPLEMENTED for chrome'
+p45
+sg15
+I01
+sS'PASS'
+p46
+I01
+sasg16
+S'Test the various actions available in the HTML5 media element context-menu.'
+p47
+ssS'media/track/track-webvtt-tc005-headercomment.html'
+p48
+(dp49
+g8
+(lp50
+(dp51
+g11
+I01
+sg13
+S' Tests for WebVTT parser for <track>. Feature is not yet functional.'
+p52
+sg15
+I01
+sg23
+(lp53
+S'BUGWK43668'
+p54
+asasg16
+S'Tests that the optional comment area under the "WEBVTT" file header is properly ignored. Also, default settings and styling are currently ignored (treated as faulty cues).'
+p55
+ssS'http/tests/media/video-cross-site.html'
+p56
+(dp57
+g8
+(lp58
+(dp59
+g11
+I01
+sg13
+S' QuickTime reference movies not supported.'
+p60
+sg15
+I01
+sg46
+I01
+sg22
+I01
+sg12
+I01
+sasg16
+S'media file redirects to another site'
+p61
+ssS'media/audio-data-url.html'
+p62
+(dp63
+g8
+(lp64
+(dp65
+g11
+I01
+sg23
+(lp66
+S'BUGCR16779'
+p67
+asg13
+S" These tests are WONTFIX because they use codecs Chromium doesn't support."
+p68
+sg15
+I01
+sg22
+I01
+sg12
+I01
+sasg16
+S'Test that audio element can use a data: url'
+p69
+ssS'media/video-canvas-alpha.html'
+p70
+(dp71
+g8
+(lp72
+(dp73
+g11
+I01
+sS'IMAGE'
+p74
+I01
+sg23
+(lp75
+S'BUGCR74979'
+p76
+asg13
+S" Accelerated 2d for mac isn't supported yet, so SKIP this test for now."
+p77
+sS'MAC'
+p78
+I01
+sS'GPU'
+p79
+I01
+sasg16
+S'UNKNOWN'
+p80
+ssS'media/video-can-play-type.html'
+p81
+(dp82
+g8
+(lp83
+(dp84
+g11
+I01
+sg23
+(lp85
+S'BUGCR16779'
+p86
+asg13
+g68
+sg15
+I01
+sg22
+I01
+sg12
+I01
+sasg16
+S'Test HTMLMediaElement <em>canPlayType()</em> method.'
+p87
+ssS'media/media-captions.html'
+p88
+(dp89
+g8
+(lp90
+(dp91
+g11
+I01
+sg13
+S" We haven't implemented the WebKit captioning extension. UNIMPLEMENTED"
+p92
+sg15
+I01
+sg23
+(lp93
+S'BUGCR28301'
+p94
+asasg16
+S'Test media element close caption API.'
+p95
+ssS'media/video-size-intrinsic-scale.html'
+p96
+(dp97
+g8
+(lp98
+(dp99
+g11
+I01
+sg23
+(lp100
+S'BUGCR16779'
+p101
+asg13
+g68
+sg15
+I01
+sg22
+I01
+sg12
+I01
+sasg16
+S'&lt;video&gt; element intrinsic size test'
+p102
+ssS'media/track/track-webvtt-tc011-blanklines.html'
+p103
+(dp104
+g8
+g50
+sg16
+S'Tests that cues are not affected by multiple newlines \\n, \\r, and \\r\\n and that cue not properly separated are treated as one big cue.'
+p105
+ssS'media/track/track-webvtt-tc012-outoforder.html'
+p106
+(dp107
+g8
+g50
+sg16
+S'Tests cues that are temporally out of order (we allow this).'
+p108
+ssS'media/track/track-webvtt-tc006-cueidentifiers.html'
+p109
+(dp110
+g8
+g50
+sg16
+S'Tests that any text other than "-->" is recognized as optional cue identifier.'
+p111
+ssS'media/media-can-play-mpeg-audio.html'
+p112
+(dp113
+g8
+(lp114
+(dp115
+g11
+I01
+sg12
+I01
+sg23
+(lp116
+S'BUGCR16779'
+p117
+asg13
+g68
+sS'TEXT'
+p118
+I01
+sasg16
+S'Test HTMLMediaElement <em>canPlayType()</em> method with multiple mp3 MIME types.'
+p119
+ssS'media/audio-mpeg4-supported.html'
+p120
+(dp121
+g8
+(lp122
+(dp123
+g11
+I01
+sg23
+(lp124
+S'BUGCR16779'
+p125
+asg13
+g68
+sg15
+I01
+sg22
+I01
+sg12
+I01
+sasg16
+S'Test that the audio element supports M4A files.'
+p126
+ssS'media/track/track-webvtt-tc004-magicheader.html'
+p127
+(dp128
+g8
+g50
+sg16
+S'Tests that the magic file header "WEBVTT" leads to the file properly recognized as a WebVTT file.'
+p129
+ssS'media/media-fullscreen-not-in-document.html'
+p130
+(dp131
+g8
+(lp132
+(dp133
+g11
+I01
+sg13
+S" We haven't implemented the WebKit fullscreen extension. UNIMPLEMENTED"
+p134
+sg15
+I01
+sg23
+(lp135
+S'BUGCR16735'
+p136
+asasg16
+S'Test media element fullscreen API when an element is not in the DOM.'
+p137
+ssS'media/audio-mpeg-supported.html'
+p138
+(dp139
+g8
+(lp140
+(dp141
+g11
+I01
+sg23
+(lp142
+S'BUGCR16779'
+p143
+asg13
+g68
+sg15
+I01
+sg22
+I01
+sg12
+I01
+sasg16
+S'Test that the audio element supports MPEG files.'
+p144
+ssS'media/track/track-webvtt-tc003-newlines.html'
+p145
+(dp146
+g8
+g50
+sg16
+S'Tests that line terminators \\r, \\n, or \\r\\n are properly parsed, even when there is no newline at eof.'
+p147
+ssS'media/video-document-types.html'
+p148
+(dp149
+g8
+(lp150
+(dp151
+g11
+I01
+sg23
+(lp152
+S'BUGCR16779'
+p153
+asg13
+g68
+sg15
+I01
+sg22
+I01
+sg12
+I01
+sasg16
+S"This tests that a standalone MPEG-4 file with 'sdsm' and 'odsm' tracks is opened in a MediaDocument."
+p154
+ssS'media/track/track-webvtt-tc002-bom.html'
+p155
+(dp156
+g8
+g50
+sg16
+S'Tests that the parser properly ignores a UTF-8 BOM character at the beginning of a file and all other cues are properly parsed.'
+p157
+ssS'media/media-fullscreen-inline.html'
+p158
+(dp159
+g8
+(lp160
+(dp161
+g11
+I01
+sg13
+g134
+sg15
+I01
+sg23
+(lp162
+S'BUGCR16735'
+p163
+asasg16
+S'Test media element fullscreen API when an element is in the DOM.'
+p164
+ssS'media/track/track-webvtt-tc000-empty.html'
+p165
+(dp166
+g8
+g50
+sg16
+S'Tests that an empty file is not recognized as a WebVTT file.'
+p167
+ssS'media/media-can-play-mpeg4-video.html'
+p168
+(dp169
+g8
+(lp170
+(dp171
+g11
+I01
+sg12
+I01
+sg23
+(lp172
+S'BUGWK45102'
+p173
+asg13
+g68
+sg118
+I01
+sasg16
+S'Test HTMLMediaElement <em>canPlayType()</em> method with'
+p174
+ssS'compositing/video/video-background-color.html'
+p175
+(dp176
+g8
+(lp177
+(dp178
+g22
+I01
+sg11
+I01
+sg12
+I01
+sg23
+(lp179
+S'BUGWK55519'
+p180
+asg13
+S" Chromium's video codecs don't support alpha information encoded in the video data, so this test is not applicable."
+p181
+sasg16
+S'Video with background color'
+p182
+ssS'media/track/track-webvtt-tc010-notimings.html'
+p183
+(dp184
+g8
+g50
+sg16
+S'Tests cue without timings are ignored.'
+p185
+ssS'media/video-timeupdate-reverse-play.html'
+p186
+(dp187
+g8
+(lp188
+(dp189
+g11
+I01
+sg13
+S" We haven't implemented reverse audio/video playback. UNIMPLEMENTED BUGCR33099 Implement reverse audio/video playback"
+p190
+sg15
+I01
+sg23
+(lp191
+S'BUGCR33099'
+p192
+asasg16
+S"Tests that a 'timeupdate' event is fired when a movie plays<br> in reverse to time zero."
+p193
+ssS'http/tests/media/video-buffered.html'
+p194
+(dp195
+g8
+(lp196
+(dp197
+g11
+I01
+sg23
+(lp198
+S'BUGCR49165'
+p199
+asg13
+S' video.buffered multiple TimeRanges support.'
+p200
+sg46
+I01
+sasg16
+g80
+ssS'media/track/track-webvtt-tc001-utf8.html'
+p201
+(dp202
+g8
+g50
+sg16
+S'Tests that UTF-8 encoded characters are recognized properly and that different encodings (iconv) are not recognized as WebVTT a file (we do allow it, it just looks ugly).'
+p203
+ssS'media/track/track-webvtt-tc013-settings.html'
+p204
+(dp205
+g8
+g50
+sg16
+S'Tests WebVTT settings.'
+p206
+ssS'media/track/track-webvtt-tc007-cuenoid.html'
+p207
+(dp208
+g8
+g50
+sg16
+S'Tests empty cue identifiers (they are optional), but makes sure "-->" found leads to discarded cue.'
+p209
+ssS'media/track/track-webvtt-tc009-timingshour.html'
+p210
+(dp211
+g8
+g50
+sg16
+S'Tests cue timings that contain hours (they are optional), and tests various syntax errors in timings with hours.'
+p212
+ssS'media/track/track-webvtt-tc008-timingsnohours.html'
+p213
+(dp214
+g8
+g50
+sg16
+S'Tests cue timings that do not contain hours (they are optional), and tests various syntax errors in timings without hours.'
+p215
+ssS'media/video-element-other-namespace-crash.html'
+p216
+(dp217
+g8
+(lp218
+(dp219
+g11
+I01
+sg12
+I01
+sg13
+g68
+sg15
+I01
+sg23
+(lp220
+S'BUGCR68289'
+p221
+asasg16
+g80
+ssS'media/video-reverse-play-duration.html'
+p222
+(dp223
+g8
+(lp224
+(dp225
+g11
+I01
+sg13
+g190
+sg15
+I01
+sg23
+(lp226
+S'BUGCR33099'
+p227
+asasg16
+S'Tests that duration is not set to zero when playing in reverse to the origin.'
+p228
+sssS'whole'
+p229
+(dp230
+S'media/video-source-type.html'
+p231
+(dp232
+g16
+S'&lt;source&gt; @type attribute'
+p233
+ssS'media/media-startTime.html'
+p234
+(dp235
+g16
+S"Test the, so far unused, 'startTime' attribute."
+p236
+ssS'media/video-src-set.html'
+p237
+(dp238
+g16
+S'Test that setting src attribute triggers load'
+p239
+ssg18
+g19
+sS'media/video-played-ranges-1.html'
+p240
+(dp241
+g16
+S"Test of the media element 'played' attribute, ranges part 1."
+p242
+ssS'http/tests/media/video-play-stall-seek.html'
+p243
+(dp244
+g8
+(lp245
+(dp246
+g13
+S' Timing out.'
+p247
+sg15
+I01
+sg23
+(lp248
+S'BUGCR78376'
+p249
+asasg16
+S'Test that playback can be resumed by seeking backwards after load stalls.'
+p250
+ssg62
+g63
+sg81
+g82
+sg88
+g89
+sS'media/controls-after-reload.html'
+p251
+(dp252
+g16
+S'Making sure the controller looks ok after a second load().'
+p253
+ssS'http/tests/media/video-referer.html'
+p254
+(dp255
+g16
+S'Tests that the media player will send the relevant referer when requesting the media file.<br/>'
+p256
+ssS'media/video-source-removed.html'
+p257
+(dp258
+g16
+S'consoleWrite("PASS: A crash did not occur when removing &lt;source&gt; elements.<br>");'
+p259
+ssS'media/unsupported-tracks.html'
+p260
+(dp261
+g16
+S'Test that QuickTime file with unsupported track types only generates an error.'
+p262
+ssg120
+g121
+sS'media/audio-no-installed-engines.html'
+p263
+(dp264
+g16
+S'PASSED -- crash using Audio with no installed engines bug 27479.'
+p265
+ssg130
+g131
+sS'media/video-width-height.html'
+p266
+(dp267
+g16
+g80
+ssS'media/media-blocked-by-willsendrequest.html'
+p268
+(dp269
+g16
+S'consoleWrite("This test can only be run in DumpRenderTree!<br><br>");'
+p270
+ssS'media/video-error-does-not-exist.html'
+p271
+(dp272
+g16
+S'Test that the media element is in correct state after load fails.'
+p273
+ssS'media/video-play-pause-events.html'
+p274
+(dp275
+g16
+S'Test that calling play() and pause() triggers async play, timeupdate and pause events.'
+p276
+ssS'media/video-display-none-crash.html'
+p277
+(dp278
+g16
+S'Test that pause() after changing display to "none" doesn\'t cause a crash.'
+p279
+ssS'media/video-src-plus-source.html'
+p280
+(dp281
+g16
+S"Test that a &lt;source&gt; element is not used when a bogus 'src' attribute is present"
+p282
+ssS'media/video-source-none-supported.html'
+p283
+(dp284
+g16
+S'no usable &lt;source&gt; test'
+p285
+ssS'media/video-poster-blocked-by-willsendrequest.html'
+p286
+(dp287
+g16
+S'consoleWrite("<b>This test can only be run in DumpRenderTree!</b>");'
+p288
+ssg6
+g7
+sS'media/video-src.html'
+p289
+(dp290
+g16
+g80
+ssg175
+g176
+sS'media/video-src-invalid-poster.html'
+p291
+(dp292
+g16
+g80
+ssS'media/video-source-inserted.html'
+p293
+(dp294
+g16
+S'networkState after inserting &lt;source&gt; test'
+p295
+ssS'media/media-can-play-octet-stream.html'
+p296
+(dp297
+g16
+S'Test HTMLMediaElement <em>canPlayType()</em> method with "application/octet-stream".'
+p298
+ssS'media/constructors.html'
+p299
+(dp300
+g16
+S'Test that media constructors behave consistently.'
+p301
+ssS'media/video-source-media.html'
+p302
+(dp303
+g16
+g80
+ssg194
+g195
+sS'media/video-aspect-ratio.html'
+p304
+(dp305
+g16
+S'Test video sizing. You should see one bigger image (paused video) and 7 small ones of 1/4 its size.'
+p306
+ssg201
+g202
+sS'media/video-source-type-params.html'
+p307
+(dp308
+g16
+g80
+ssS'fast/canvas/webgl/context-lost.html'
+p309
+(dp310
+g16
+S'debug("Test valid context");'
+p311
+ssS'media/media-can-play-wav-audio.html'
+p312
+(dp313
+g16
+S'Test HTMLMediaElement <em>canPlayType()</em> method with multiple .wav MIME types.'
+p314
+ssS'media/video-source-error.html'
+p315
+(dp316
+g8
+(lp317
+(dp318
+S'DEBUG'
+p319
+I01
+sg118
+I01
+sg23
+(lp320
+S'BUGWK66310'
+p321
+asg13
+S''
+p322
+sg46
+I01
+sasg16
+S'&lt;video&gt; and &lt;source&gt; error test'
+p323
+ssS'media/video-no-audio.html'
+p324
+(dp325
+g16
+S'Movie with no audio track. The volume button should not render.'
+p326
+ssS'media/svg-as-image-with-media-blocked.html'
+p327
+(dp328
+g16
+S'This test attempts to load foreignObject audio and video embedded in an SVG'
+p329
+ssS'media/video-transformed.html'
+p330
+(dp331
+g16
+S'Test painting of transformed video'
+p332
+ssg207
+g208
+sg213
+g214
+sS'media/video-click-dblckick-standalone.html'
+p333
+(dp334
+g16
+S'This tests that clicking on a standalone video will pause and double-clicking will play.'
+p335
+ssS'media/video-pause-immediately.html'
+p336
+(dp337
+g16
+S'Test that pausing the media element has an immediate effect on the clock.'
+p338
+ssS'fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html'
+p339
+(dp340
+g16
+g80
+ssg222
+g223
+sS'http/tests/security/local-video-src-from-remote.html'
+p341
+(dp342
+g16
+S'This test only works in DRT'
+p343
+ssS'media/media-document-audio-repaint.html'
+p344
+(dp345
+g8
+(lp346
+(dp347
+g118
+I01
+sg74
+I01
+sg23
+(lp348
+S'BUGCR75354'
+p349
+aS'BUGWK55718'
+p350
+asg13
+S' This test needs completely new baselines.'
+p351
+sS'IMAGE+TEXT'
+p352
+I01
+sasg16
+S'This tests that in a standalone media document with audio content, the media element repaints correctly'
+p353
+ssS'media/video-controls-in-media-document.html'
+p354
+(dp355
+g16
+g80
+ssS'media/remove-from-document-no-load.html'
+p356
+(dp357
+g16
+S'Test that removing a media element from the tree when no media has been loaded does not generate a loadstart event.'
+p358
+ssS'media/video-currentTime.html'
+p359
+(dp360
+g16
+g80
+ssS'media/video-frame-accurate-seek.html'
+p361
+(dp362
+g8
+(lp363
+(dp364
+g74
+I01
+sg23
+(lp365
+S'BUGCR72223'
+p366
+asg13
+g322
+sg46
+I01
+sasg16
+S'Test that setting currentTime is frame-accurate. The three videos below should be showing frames 12, 13, and 14.'
+p367
+ssg29
+g30
+sg37
+g38
+sS'media/video-load-networkState.html'
+p368
+(dp369
+g16
+S'Test that setting src to an invalid url triggers load(), which sets networkState'
+p370
+ssg48
+g49
+sS'media/controls-css-overload.html'
+p371
+(dp372
+g16
+S"Testing that overloading some controls doesn't crash the browser"
+p373
+ssS'media/video-display-aspect-ratio.html'
+p374
+(dp375
+g16
+g80
+ssS'media/video-currentTime-set.html'
+p376
+(dp377
+g16
+S"Test that setting currentTime changes the time, and that 'ended' event is fired in a reasonable amount of time"
+p378
+ssS'media/media-blocked-by-beforeload.html'
+p379
+(dp380
+g8
+(lp381
+(dp382
+g118
+I01
+sg23
+(lp383
+S'BUGWK66310'
+p384
+asg13
+g322
+sg46
+I01
+sasg16
+S'Test to ensure that a media file blocked by a beforeload handler generates an error'
+p385
+ssg106
+g107
+sS'media/video-controls-visible-audio-only.html'
+p386
+(dp387
+g16
+S'This test only runs in DRT!'
+p388
+ssS'http/tests/media/video-play-progress.html'
+p389
+(dp390
+g16
+S'Test that at least one progress event is fired after starting to load the video.'
+p391
+ssg112
+g113
+sS'media/video-source-moved.html'
+p392
+(dp393
+g16
+S'moving &lt;source&gt; element test'
+p394
+ssS'http/tests/security/local-video-source-from-remote.html'
+p395
+(dp396
+g16
+S'This test only behaves correctly in DRT'
+p397
+ssS'media/video-src-none.html'
+p398
+(dp399
+g16
+g80
+ssS'media/video-controls-zoomed.html'
+p400
+(dp401
+g16
+S'This test only runs in DRT!'
+p402
+ssS'media/video-controls.html'
+p403
+(dp404
+g16
+S"Test 'controls' attribute"
+p405
+ssS'media/controls-without-preload.html'
+p406
+(dp407
+g16
+S'The controls should not depend on preload value.'
+p408
+ssS'media/video-played-collapse.html'
+p409
+(dp410
+g16
+S"Test of the media element 'played' attribute"
+p411
+ssS'compositing/self-painting-layers.html'
+p412
+(dp413
+g16
+S'Self painting layers'
+p414
+ssS'media/audio-controls-do-not-fade-out.html'
+p415
+(dp416
+g16
+S'This tests that audio controls do not fade out when the audio is playing.'
+p417
+ssg158
+g159
+sS'compositing/geometry/video-opacity-overlay.html'
+p418
+(dp419
+g16
+S'Video overlay'
+p420
+ssS'media/video-source-error-no-candidate.html'
+p421
+(dp422
+g16
+S"Test that 'error' events are fired from &lt;source&gt; element when it can not be used."
+p423
+ssS'media/audio-constructor.html'
+p424
+(dp425
+g16
+S'Test that Audio() object loads the resource after src attribute is set and load() is called.'
+p426
+ssS'media/controls-styling.html'
+p427
+(dp428
+g16
+S'The look of the controls should not change.'
+p429
+ssS'media/event-attributes.html'
+p430
+(dp431
+g16
+g80
+ssg183
+g184
+sg186
+g187
+sS'http/tests/media/text-served-as-text.html'
+p432
+(dp433
+g16
+S"text file served as 'text/plain'"
+p434
+ssS'http/tests/media/video-cancel-load.html'
+p435
+(dp436
+g16
+S'Cancel loading a video file and access its properties afterwards.'
+p437
+ssS'media/unsupported-rtsp.html'
+p438
+(dp439
+g16
+S'Test that QuickTime file with RTSP URL generates a load error.'
+p440
+ssS'media/media-controls-clone.html'
+p441
+(dp442
+g16
+S'<video controls id=v></video><audio controls id=a></audio>'
+p443
+ssS'media/broken-video.html'
+p444
+(dp445
+g16
+S'Test that QuickTime file with broken content generates an error.'
+p446
+ssS'media/video-plays-past-end-of-test.html'
+p447
+(dp448
+g16
+g80
+ssS'http/tests/canvas/webgl/origin-clean-conformance.html'
+p449
+(dp450
+g16
+S'WebGL Origin Restrictions Conformance Tests'
+p451
+ssS'media/video-replaces-poster.html'
+p452
+(dp453
+g16
+S'Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=34966">https://bugs.webkit.org/show_bug.cgi?id=34966</a>. <br>'
+p454
+ssS'media/video-autoplay.html'
+p455
+(dp456
+g16
+g80
+ssS'media/video-set-rate-from-pause.html'
+p457
+(dp458
+g16
+S'Test that setting a non-zero rate causes an async timeupdate event.'
+p459
+ssS'media/video-src-remove.html'
+p460
+(dp461
+g16
+S"Test that removing valid 'src' attribute DOES NOT trigger load of &lt;source&gt; elements"
+p462
+ssS'media/csp-blocks-video.html'
+p463
+(dp464
+g16
+S"This test passes if it doesn't alert failure."
+p465
+ssS'media/controls-drag-timebar.html'
+p466
+(dp467
+g16
+S'Test that dragging the timebar thumb causes seeks.'
+p468
+ssS'media/audio-constructor-preload.html'
+p469
+(dp470
+g16
+S"Test that Audio() sets 'preload' attribute."
+p471
+ssS'media/video-poster-delayed.html'
+p472
+(dp473
+g16
+S'Delayed load of poster should not overwrite intrinsic size of video'
+p474
+ssS'media/adopt-node-crash.html'
+p475
+(dp476
+g16
+S"Tests that we don't crash when moving a video element to a new document."
+p477
+ssS'media/video-playbackrate.html'
+p478
+(dp479
+g16
+S'test playbackRate and defaultPlaybackRate'
+p480
+ssS'media/video-muted.html'
+p481
+(dp482
+g16
+S"Test 'muted' attribute"
+p483
+ssS'media/video-src-change.html'
+p484
+(dp485
+g16
+S'1. Test that an invalid src attribute fires an error when the file fails to load.<br>'
+p486
+ssS'compositing/overflow/overflow-compositing-descendant.html'
+p487
+(dp488
+g16
+S'You should see a green box under the video. If you see red, the test failed.'
+p489
+ssg216
+g217
+sS'media/video-play-pause-exception.html'
+p490
+(dp491
+g16
+S'Video has no src. Test that the playing event is not dispatched.'
+p492
+ssS'fast/dom/shadow/frameless-media-element-crash.html'
+p493
+(dp494
+g16
+g80
+ssS'media/audio-play-event.html'
+p495
+(dp496
+g16
+S"Test that a 'play' event listener is triggered when fired by a new audio element."
+p497
+ssS'media/before-load-member-access.html'
+p498
+(dp499
+g16
+S'Test that accessing member of a non loaded video works.'
+p500
+ssS'media/video-dom-src.html'
+p501
+(dp502
+g16
+g80
+ssS'media/audio-repaint.html'
+p503
+(dp504
+g16
+S'This tests that in a html document with inline audio content, the media element repaints correctly'
+p505
+ssS'media/audio-controls-rendering.html'
+p506
+(dp507
+g16
+S'Test controls placement.'
+p508
+ssg204
+g205
+sS'fast/dom/beforeload/remove-video-in-beforeload-listener.html'
+p509
+(dp510
+g16
+S'This page tests that you can correctly remove a video object in a beforeload listener without causing a crash.'
+p511
+ssS'media/invalid-media-url-crash.html'
+p512
+(dp513
+g16
+S'Tests that invalid media src url does not result in crash.'
+p514
+ssS'media/video-empty-source.html'
+p515
+(dp516
+g16
+S'Slider drawing with no source. The controls should render correctly.'
+p517
+ssg96
+g97
+sS'media/video-poster.html'
+p518
+(dp519
+g16
+S'Test &lt;video&gt; element with and without a poster.'
+p520
+ssS'media/media-document-audio-size.html'
+p521
+(dp522
+g16
+S'This tests that in a standalone media document with audio content, the media element has non-zero'
+p523
+ssS'media/video-zoom.html'
+p524
+(dp525
+g8
+(lp526
+(dp527
+g41
+I01
+sg74
+I01
+sg23
+(lp528
+S'BUGCR86714'
+p529
+asg13
+g322
+sg78
+I01
+sg79
+I01
+sasg16
+S'150% zoom, with width and height attributes'
+p530
+ssg103
+g104
+sS'http/tests/appcache/video.html'
+p531
+(dp532
+g16
+S'Test that &lt;video&gt; can be loaded from the application cache.'
+p533
+ssS'media/video-dom-autoplay.html'
+p534
+(dp535
+g16
+g80
+ssS'media/media-ended.html'
+p536
+(dp537
+g16
+S'<b>Test ended by:</b>'
+p538
+ssS'media/video-no-autoplay.html'
+p539
+(dp540
+g16
+S'Test that play event does not fire when "src" set with no autoplay attribute.'
+p541
+ssg138
+g139
+sS'media/video-append-source.html'
+p542
+(dp543
+g16
+g80
+ssg145
+g146
+sS'http/tests/media/pdf-served-as-pdf.html'
+p544
+(dp545
+g16
+S"PDF file served as 'application/pdf'"
+p546
+ssS'media/video-play-empty-events.html'
+p547
+(dp548
+g16
+S'Test that play() from EMPTY network state triggers load() and async play event.'
+p549
+ssg155
+g156
+sS'media/audio-only-video-intrinsic-size.html'
+p550
+(dp551
+g16
+S'This tests the intrinsic size of a video element is the default 300&#xd7;150 before metadata is'
+p552
+ssg148
+g149
+sS'media/audio-delete-while-slider-thumb-clicked.html'
+p553
+(dp554
+g16
+S"This tests that events don't continue to target a slider thumb if the media element is deleted while scrubbing."
+p555
+ssS'media/media-can-play-ogg.html'
+p556
+(dp557
+g16
+S'Test HTMLMediaElement <em>canPlayType()</em> method for ogg media containers.'
+p558
+ssg127
+g128
+sg165
+g166
+sS'media/video-currentTime-set2.html'
+p559
+(dp560
+g16
+g80
+ssS'media/video-seekable.html'
+p561
+(dp562
+g16
+g80
+ssS'fast/dom/beforeload/video-before-load.html'
+p563
+(dp564
+g16
+g80
+ssS'media/video-played-reset.html'
+p565
+(dp566
+g16
+S"Test of the media element 'played' attribute"
+p567
+ssS'compositing/self-painting-layers2.html'
+p568
+(dp569
+g16
+S'This test should not assert in debug builds.'
+p570
+ssS'media/controls-right-click-on-timebar.html'
+p571
+(dp572
+g16
+S'Test that right clicking on the timebar does not cause a seek.'
+p573
+ssS'media/video-dom-preload.html'
+p574
+(dp575
+g16
+S'consoleWrite("++ Test default attribute value");'
+p576
+ssS'media/video-size.html'
+p577
+(dp578
+g16
+S"Test &lt;video&gt; element size with and without 'src' and 'poster' attributes."
+p579
+ssS'media/video-delay-load-event.html'
+p580
+(dp581
+g8
+(lp582
+(dp583
+g118
+I01
+sg23
+(lp584
+S'BUGWK64003'
+p585
+asg13
+S' Started around WebKit r90233:r90242'
+p586
+sg78
+I01
+sg46
+I01
+sg319
+I01
+sasg16
+S"Test the document's load event is delayed until a movie's meta data is available."
+p587
+ssS'media/fallback.html'
+p588
+(dp589
+g16
+S'Test that fallback content is not rendered'
+p590
+ssS'media/video-layer-crash.html'
+p591
+(dp592
+g16
+S'Test dynamic removal of transformed and reflected video'
+p593
+ssS'fast/layers/video-layer.html'
+p594
+(dp595
+g16
+S'Video element gets layer'
+p596
+ssS'media/controls-strict.html'
+p597
+(dp598
+g16
+S'Drawing the controls in strict mode.'
+p599
+ssS'media/remove-from-document.html'
+p600
+(dp601
+g16
+S'Test that removing a media element from the tree pauses playback but does not unload the media.'
+p602
+ssS'http/tests/media/remove-while-loading.html'
+p603
+(dp604
+g16
+S'Test that removing a media element from the tree while loading does not crash.'
+p605
+ssS'media/video-controls-transformed.html'
+p606
+(dp607
+g16
+S'This test only runs in DRT!'
+p608
+ssS'compositing/video/video-poster.html'
+p609
+(dp610
+g16
+S'Video with poster'
+p611
+ssS'media/video-display-toggle.html'
+p612
+(dp613
+g16
+S"This tests that toggling the display property won't make the controls disappear.<br>"
+p614
+ssS'media/video-seek-no-src-exception.html'
+p615
+(dp616
+g16
+S"Test that seeking video with no 'src' attribute throws an INVALID_STATE_ERR exception."
+p617
+ssS'media/audio-constructor-src.html'
+p618
+(dp619
+g16
+S'Test that Audio("url") constructor loads the specified resource.'
+p620
+ssS'compositing/geometry/clipped-video-controller.html'
+p621
+(dp622
+g16
+S'Clipped Video'
+p623
+ssS'media/video-preload.html'
+p624
+(dp625
+g16
+S"Test to see if media loads automatically when 'preload' is specified."
+p626
+ssS'http/tests/media/video-load-twice.html'
+p627
+(dp628
+g16
+g80
+ssS'http/tests/media/video-cookie.html'
+p629
+(dp630
+g16
+S'Tests that the media player will send the relevant cookies when requesting the media file.<br/>'
+p631
+ssS'media/video-source.html'
+p632
+(dp633
+g16
+g80
+ssS'media/video-seek-past-end-playing.html'
+p634
+(dp635
+g16
+S"Test that seeking video with 'loop' past it's end rewinds to the beginning and continues playback."
+p636
+ssS'media/video-currentTime-delay.html'
+p637
+(dp638
+g16
+S'Test a delay in playing the movie results in a canPlay event.'
+p639
+ssS'http/tests/media/reload-after-dialog.html'
+p640
+(dp641
+g16
+S"Test this by loading a movie slowly and showing a dialog when a 'loadstart' event <br>"
+p642
+ssS'media/media-constants.html'
+p643
+(dp644
+g16
+S'Test HTMLMediaElement and MediaError constants.'
+p645
+ssS'media/video-volume.html'
+p646
+(dp647
+g16
+S"Test 'volume' attribute"
+p648
+ssS'media/video-src-source.html'
+p649
+(dp650
+g16
+g80
+ssS'media/video-buffered.html'
+p651
+(dp652
+g16
+g80
+ssg56
+g57
+sg70
+g71
+sS'media/video-canvas-source.html'
+p653
+(dp654
+g16
+S'Drawing to canvas using video with source element does not taint canvas'
+p655
+ssS'media/video-controls-no-scripting.html'
+p656
+(dp657
+g16
+S'Tests that the built-in controls are always enabled when JavaScript is disabled.'
+p658
+ssS'media/video-poster-scale.html'
+p659
+(dp660
+g16
+S"'poster' aspect ratio test"
+p661
+ssS'media/video-seek-by-small-increment.html'
+p662
+(dp663
+g16
+S'Test seeking by very small increments.'
+p664
+ssS'media/video-controls-with-mutation-event-handler.html'
+p665
+(dp666
+g16
+S"This tests that we don't crash while creating a video element while a DOMSubtreeModified even handler is registered."
+p667
+ssS'media/video-zoom-controls.html'
+p668
+(dp669
+g16
+S'Zoomed video with controls.'
+p670
+ssS'media/video-loop.html'
+p671
+(dp672
+g8
+(lp673
+(dp674
+S'WIN'
+p675
+I01
+sg46
+I01
+sg23
+(lp676
+S'BUGCR59415'
+p677
+asg13
+S' BUGCR59415 : cannot repro the flakiness'
+p678
+sg15
+I01
+sg118
+I01
+sasg16
+S'consoleWrite("<em>++ Test setting/removing the attribute.</em>");'
+p679
+ssS'http/tests/media/video-play-stall.html'
+p680
+(dp681
+g8
+(lp682
+(dp683
+g118
+I01
+sg23
+(lp684
+S'BUGCR73609'
+p685
+asg13
+S' canplaythrough event is sent too early.'
+p686
+sasg16
+S'Test that stalled, timeupdate and waiting events are sent when media load stalls in the middle.'
+p687
+ssS'media/video-seeking.html'
+p688
+(dp689
+g16
+S'Test that seeking attribute is true immediately after a seek,'
+p690
+ssS'compositing/overflow/scroll-ancestor-update.html'
+p691
+(dp692
+g16
+S'The green box should obscure the red box, and move when you drag the scrollbar.'
+p693
+ssS'http/tests/media/media-can-load-when-hidden.html'
+p694
+(dp695
+g16
+S'Test HTMLMediaElement to be sure that the video is getting loaded even if the element'
+p696
+ssg168
+g169
+sS'media/media-controls-clone-crash.html'
+p697
+(dp698
+g16
+S'Test passes if it does not crash.'
+p699
+ssS'http/tests/security/contentSecurityPolicy/media-src-allowed.html'
+p700
+(dp701
+g16
+g80
+ssS'compositing/reflections/load-video-in-reflection.html'
+p702
+(dp703
+g16
+S'You should see a reflected video below, rather than the red video background.'
+p704
+ssS'compositing/geometry/video-fixed-scrolling.html'
+p705
+(dp706
+g16
+S'Video overlay'
+p707
+ssS'media/video-controls-rendering.html'
+p708
+(dp709
+g8
+(lp710
+(dp711
+g74
+I01
+sS'LINUX'
+p712
+I01
+sg23
+(lp713
+S'BUGCR74102'
+p714
+asg13
+S" 2 pixel stretching when rendering some videos with the GPU (Now it's flaky)"
+p715
+sg46
+I01
+sg79
+I01
+sa(dp716
+g41
+I01
+sg74
+I01
+sg23
+(lp717
+S'BUGCR86714'
+p718
+asg13
+g322
+sg78
+I01
+sg79
+I01
+sasg16
+S'Test controls placement.'
+p719
+ssS'http/tests/media/video-served-as-text.html'
+p720
+(dp721
+g16
+S"media file served as 'text/plain'"
+p722
+ssS'media/video-pause-empty-events.html'
+p723
+(dp724
+g16
+S'Test that pause() from EMPTY network state triggers load()'
+p725
+ssS'media/media-load-event.html'
+p726
+(dp727
+g16
+S'Test that media file is not reloaded when an element is inserted into the DOM.'
+p728
+ssS'http/tests/media/video-error-abort.html'
+p729
+(dp730
+g16
+S"'abort' event test"
+p731
+ssS'media/video-volume-slider.html'
+p732
+(dp733
+g16
+S'Test rendering of volume slider of video tag'
+p734
+ssS'media/video-seek-past-end-paused.html'
+p735
+(dp736
+g16
+S"Test that seeking paused video past it's duration time sets currentTime to duration and leaves video paused."
+p737
+ssS'http/tests/security/local-video-poster-from-remote.html'
+p738
+(dp739
+g16
+S'This test requires the run-webkit httpd server (run-webkit-httpd)'
+p740
+ssS'media/remove-from-document-before-load.html'
+p741
+(dp742
+g16
+S'<body onload="document.body.innerHTML=\'PASS: A crash did not occur when the media element was removed before loading.\';'
+p743
+ssg210
+g211
+sS'media/video-duration-known-after-eos.html'
+p744
+(dp745
+g16
+S'Tests that duration is known after playback ended.'
+p746
+ssg109
+g110
+sS'http/tests/media/video-play-stall-before-meta-data.html'
+p747
+(dp748
+g16
+S'Test that stalling very early, while loading meta-data, stops delaying the load event.'
+p749
+ssS'media/video-timeupdate-during-playback.html'
+p750
+(dp751
+g16
+S"Test 'timeupdate' events are posted while playing but not while paused."
+p752
+ssS'media/video-single-valid-source.html'
+p753
+(dp754
+g16
+S'Test that a single valid &lt;source&gt; element loads correctly'
+p755
+ssS'media/video-src-invalid-remove.html'
+p756
+(dp757
+g16
+S"Test that removing 'src' attribute does NOT trigger load of &lt;source&gt; elements"
+p758
+ssS'http/tests/security/contentSecurityPolicy/media-src-blocked.html'
+p759
+(dp760
+g16
+S"This test passes if it doesn't alert failure."
+p761
+ssS'media/video-load-readyState.html'
+p762
+(dp763
+g16
+g80
+sssS'nonskip'
+p764
+(dp765
+g344
+g345
+sg361
+g362
+sg708
+g709
+sg243
+g244
+sg524
+g525
+sg671
+g672
+sg680
+g681
+sg580
+g581
+sg379
+g380
+sg315
+g316
+sssb. \ No newline at end of file
diff --git a/media/tools/layout_tests/test_data/graph.html.bak b/media/tools/layout_tests/test_data/graph.html.bak
new file mode 100755
index 0000000..a54aa4d
--- /dev/null
+++ b/media/tools/layout_tests/test_data/graph.html.bak
@@ -0,0 +1,53 @@
+<html>
+ <head>
+ <script type='text/javascript' src='https://www.google.com/jsapi'></script>
+ <script type='text/javascript'>
+ google.load('visualization', '1', {'packages': ['annotatedtimeline']});
+ google.setOnLoadCallback(drawChart);
+ function drawChart() {
+ var data = new google.visualization.DataTable();
+ data.addColumn('date', 'Date');
+ data.addColumn('number', '#Tests');
+ data.addColumn('string', 'title1');
+ data.addColumn('string', 'text1');
+ data.addColumn('number', '#Skipped tests');
+ data.addColumn('string', 'title2');
+ data.addColumn('string', 'text2');
+ data.addColumn('number', '#Non-skipped tests');
+ data.addColumn('string', 'title2');
+ data.addColumn('string', 'text2');
+ data.addRows([
+ // insert 1
+ ]);
+ var data2 = new google.visualization.DataTable();
+ data2.addColumn('date', 'Date');
+ data2.addColumn('number', 'Passing Rate ' +
+ '(100-(#Non-skipped tests)/' +
+ '((#Tests)-(#Skipped tests))*100)');
+ data2.addColumn('string', 'title1');
+ data2.addColumn('string', 'text1');
+ data2.addRows([
+ // insert 2
+ ]);
+ var div1 = document.getElementById('chart_div');
+ var chart = new google.visualization.AnnotatedTimeLine(div1);
+ chart.draw(data, {displayAnnotations: true, allowHtml: true});
+
+ var div2 = document.getElementById('chart_div2');
+ var chart2 = new google.visualization.AnnotatedTimeLine(div2);
+ chart2.draw(data2, {displayAnnotations: true,
+ allowHtml: true,
+ scaleType: 'maximized'});
+ }
+ </script>
+ <title>Media Layout Test Analyzer Result</title>
+ </head>
+
+ <body>
+ <h2>Current Statistics</h2>
+ <h3 id='numbers'>Numbers</h3>
+ <div id='chart_div' style='width: 1400px; height: 480px;'></div>
+ <h3>Test passing rate</h3>
+ <div id='chart_div2' style='width: 1400px; height: 480px;'></div>
+ </body>
+</html>
diff --git a/media/tools/layout_tests/test_data/less b/media/tools/layout_tests/test_data/less
new file mode 100644
index 0000000..526112c
--- /dev/null
+++ b/media/tools/layout_tests/test_data/less
@@ -0,0 +1,1869 @@
+(ilayouttest_analyzer_helpers
+AnalyzerResultMap
+p0
+(dp1
+S'result_map'
+p2
+(dp3
+S'skip'
+p4
+(dp5
+S'media/audio-delete-while-step-button-clicked.html'
+p6
+(dp7
+S'desc'
+p8
+S"This tests that events don't continue to target a step button if the media element is deleted while mouse down on button."
+p9
+sS'te_info'
+p10
+(lp11
+(dp12
+S'FAIL'
+p13
+I01
+sS'SKIP'
+p14
+I01
+sS'Bugs'
+p15
+(lp16
+S'BUGCR25375'
+p17
+aS'BUGCR59399'
+p18
+asS'Comments'
+p19
+S" Failing because we sometimes emit additional timeupdate events. Test might be WONTFIX because we don't export a step button in the first place."
+p20
+sassS'media/restore-from-page-cache.html'
+p21
+(dp22
+g8
+S"Make sure we don't reload a &lt;video&gt; element when navigating back to an uncached page."
+p23
+sg10
+(lp24
+(dp25
+g14
+I01
+sS'WONTFIX'
+p26
+I01
+sS'TIMEOUT'
+p27
+I01
+sg19
+S' Page Cache - based tests. Chromium disables page cache because the WebKit page cache keeps previously loaded pages alive in memory to be able to quickly substitute them when user clicks History buttons. Chromium wants those to be separate navigations made via browser process to be able to make decision on which renderer process to use for each of them.'
+p28
+sg15
+(lp29
+S'BUGCR19635'
+p30
+asassS'media/context-menu-actions.html'
+p31
+(dp32
+g8
+S'Test the various actions available in the HTML5 media element context-menu.'
+p33
+sg10
+(lp34
+(dp35
+S'CRASH'
+p36
+I01
+sg14
+I01
+sg15
+(lp37
+S'BUGCR59665'
+p38
+aS'BUGWK45021'
+p39
+asg19
+S' BUGCR59415 : cannot repro the flakiness This test needs enhanced eventSender.contextMenu() return value. See https:bugs.webkit.org/show_bug.cgi?id=45021 for more info. UNIMPLEMENTED for chrome'
+p40
+sg27
+I01
+sS'PASS'
+p41
+I01
+sassS'media/track/track-webvtt-tc005-headercomment.html'
+p42
+(dp43
+g8
+S'Tests that the optional comment area under the "WEBVTT" file header is properly ignored. Also, default settings and styling are currently ignored (treated as faulty cues).'
+p44
+sg10
+(lp45
+(dp46
+g14
+I01
+sg27
+I01
+sg19
+S' Tests for WebVTT parser for <track>. Feature is not yet functional.'
+p47
+sg15
+(lp48
+S'BUGWK43668'
+p49
+asassS'http/tests/media/video-cross-site.html'
+p50
+(dp51
+g8
+S'media file redirects to another site'
+p52
+sg10
+(lp53
+(dp54
+g14
+I01
+sg19
+S' QuickTime reference movies not supported.'
+p55
+sg27
+I01
+sg41
+I01
+sg13
+I01
+sg26
+I01
+sassS'media/audio-data-url.html'
+p56
+(dp57
+g8
+S'Test that audio element can use a data: url'
+p58
+sg10
+(lp59
+(dp60
+g14
+I01
+sg15
+(lp61
+S'BUGCR16779'
+p62
+asg19
+S" These tests are WONTFIX because they use codecs Chromium doesn't support."
+p63
+sg27
+I01
+sg13
+I01
+sg26
+I01
+sassS'media/video-canvas-alpha.html'
+p64
+(dp65
+g8
+S'UNKNOWN'
+p66
+sg10
+(lp67
+(dp68
+g14
+I01
+sS'IMAGE'
+p69
+I01
+sg15
+(lp70
+S'BUGCR74979'
+p71
+asg19
+S" Accelerated 2d for mac isn't supported yet, so SKIP this test for now."
+p72
+sS'MAC'
+p73
+I01
+sS'GPU'
+p74
+I01
+sassS'media/video-can-play-type.html'
+p75
+(dp76
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method.'
+p77
+sg10
+(lp78
+(dp79
+g14
+I01
+sg15
+(lp80
+S'BUGCR16779'
+p81
+asg19
+g63
+sg27
+I01
+sg13
+I01
+sg26
+I01
+sassS'media/media-captions.html'
+p82
+(dp83
+g8
+S'Test media element close caption API.'
+p84
+sg10
+(lp85
+(dp86
+g14
+I01
+sg27
+I01
+sg19
+S" We haven't implemented the WebKit captioning extension. UNIMPLEMENTED"
+p87
+sg15
+(lp88
+S'BUGCR28301'
+p89
+asassS'media/media-can-play-mpeg-audio.html'
+p90
+(dp91
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method with multiple mp3 MIME types.'
+p92
+sg10
+(lp93
+(dp94
+g14
+I01
+sg26
+I01
+sg15
+(lp95
+S'BUGCR16779'
+p96
+asg19
+g63
+sS'TEXT'
+p97
+I01
+sassS'media/track/track-webvtt-tc011-blanklines.html'
+p98
+(dp99
+g8
+S'Tests that cues are not affected by multiple newlines \\n, \\r, and \\r\\n and that cue not properly separated are treated as one big cue.'
+p100
+sg10
+g45
+ssS'media/track/track-webvtt-tc012-outoforder.html'
+p101
+(dp102
+g8
+S'Tests cues that are temporally out of order (we allow this).'
+p103
+sg10
+g45
+ssS'media/track/track-webvtt-tc008-timingsnohours.html'
+p104
+(dp105
+g8
+S'Tests cue timings that do not contain hours (they are optional), and tests various syntax errors in timings without hours.'
+p106
+sg10
+g45
+ssS'media/video-size-intrinsic-scale.html'
+p107
+(dp108
+g8
+S'&lt;video&gt; element intrinsic size test'
+p109
+sg10
+(lp110
+(dp111
+g14
+I01
+sg15
+(lp112
+S'BUGCR16779'
+p113
+asg19
+g63
+sg27
+I01
+sg13
+I01
+sg26
+I01
+sassS'media/audio-mpeg4-supported.html'
+p114
+(dp115
+g8
+S'Test that the audio element supports M4A files.'
+p116
+sg10
+(lp117
+(dp118
+g14
+I01
+sg15
+(lp119
+S'BUGCR16779'
+p120
+asg19
+g63
+sg27
+I01
+sg13
+I01
+sg26
+I01
+sassS'media/media-fullscreen-not-in-document.html'
+p121
+(dp122
+g8
+S'Test media element fullscreen API when an element is not in the DOM.'
+p123
+sg10
+(lp124
+(dp125
+g14
+I01
+sg27
+I01
+sg19
+S" We haven't implemented the WebKit fullscreen extension. UNIMPLEMENTED"
+p126
+sg15
+(lp127
+S'BUGCR16735'
+p128
+asassS'media/audio-mpeg-supported.html'
+p129
+(dp130
+g8
+S'Test that the audio element supports MPEG files.'
+p131
+sg10
+(lp132
+(dp133
+g14
+I01
+sg15
+(lp134
+S'BUGCR16779'
+p135
+asg19
+g63
+sg27
+I01
+sg13
+I01
+sg26
+I01
+sassS'media/track/track-webvtt-tc003-newlines.html'
+p136
+(dp137
+g8
+S'Tests that line terminators \\r, \\n, or \\r\\n are properly parsed, even when there is no newline at eof.'
+p138
+sg10
+g45
+ssS'media/video-document-types.html'
+p139
+(dp140
+g8
+S"This tests that a standalone MPEG-4 file with 'sdsm' and 'odsm' tracks is opened in a MediaDocument."
+p141
+sg10
+(lp142
+(dp143
+g14
+I01
+sg15
+(lp144
+S'BUGCR16779'
+p145
+asg19
+g63
+sg27
+I01
+sg13
+I01
+sg26
+I01
+sassS'media/track/track-webvtt-tc002-bom.html'
+p146
+(dp147
+g8
+S'Tests that the parser properly ignores a UTF-8 BOM character at the beginning of a file and all other cues are properly parsed.'
+p148
+sg10
+g45
+ssS'media/video-does-not-loop.html'
+p149
+(dp150
+g8
+S"Test to make sure QuickTime movie saved with 'loop' user data does not loop automatically."
+p151
+sg10
+(lp152
+(dp153
+g14
+I01
+sg26
+I01
+sg27
+I01
+sg19
+S" Doesn't apply to Chromium (QuickTime-specific behavior)"
+p154
+sassS'media/track/track-webvtt-tc000-empty.html'
+p155
+(dp156
+g8
+S'Tests that an empty file is not recognized as a WebVTT file.'
+p157
+sg10
+g45
+ssS'media/media-can-play-mpeg4-video.html'
+p158
+(dp159
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method with'
+p160
+sg10
+(lp161
+(dp162
+g14
+I01
+sg26
+I01
+sg15
+(lp163
+S'BUGWK45102'
+p164
+asg19
+g63
+sg97
+I01
+sassS'compositing/video/video-background-color.html'
+p165
+(dp166
+g8
+S'Video with background color'
+p167
+sg10
+(lp168
+(dp169
+g13
+I01
+sg14
+I01
+sg26
+I01
+sg15
+(lp170
+S'BUGWK55519'
+p171
+asg19
+S" Chromium's video codecs don't support alpha information encoded in the video data, so this test is not applicable."
+p172
+sassS'media/track/track-webvtt-tc010-notimings.html'
+p173
+(dp174
+g8
+S'Tests cue without timings are ignored.'
+p175
+sg10
+g45
+ssS'media/video-timeupdate-reverse-play.html'
+p176
+(dp177
+g8
+S"Tests that a 'timeupdate' event is fired when a movie plays<br> in reverse to time zero."
+p178
+sg10
+(lp179
+(dp180
+g14
+I01
+sg27
+I01
+sg19
+S" We haven't implemented reverse audio/video playback. UNIMPLEMENTED BUGCR33099 Implement reverse audio/video playback"
+p181
+sg15
+(lp182
+S'BUGCR33099'
+p183
+asassS'http/tests/media/video-buffered.html'
+p184
+(dp185
+g8
+g66
+sg10
+(lp186
+(dp187
+g14
+I01
+sg15
+(lp188
+S'BUGCR49165'
+p189
+asg19
+S' video.buffered multiple TimeRanges support.'
+p190
+sg41
+I01
+sassS'media/track/track-webvtt-tc001-utf8.html'
+p191
+(dp192
+g8
+S'Tests that UTF-8 encoded characters are recognized properly and that different encodings (iconv) are not recognized as WebVTT a file (we do allow it, it just looks ugly).'
+p193
+sg10
+g45
+ssS'media/track/track-webvtt-tc013-settings.html'
+p194
+(dp195
+g8
+S'Tests WebVTT settings.'
+p196
+sg10
+g45
+ssS'media/media-fullscreen-inline.html'
+p197
+(dp198
+g8
+S'Test media element fullscreen API when an element is in the DOM.'
+p199
+sg10
+(lp200
+(dp201
+g14
+I01
+sg27
+I01
+sg19
+g126
+sg15
+(lp202
+S'BUGCR16735'
+p203
+asassS'media/track/track-webvtt-tc007-cuenoid.html'
+p204
+(dp205
+g8
+S'Tests empty cue identifiers (they are optional), but makes sure "-->" found leads to discarded cue.'
+p206
+sg10
+g45
+ssS'media/track/track-webvtt-tc009-timingshour.html'
+p207
+(dp208
+g8
+S'Tests cue timings that contain hours (they are optional), and tests various syntax errors in timings with hours.'
+p209
+sg10
+g45
+ssS'media/track/track-webvtt-tc006-cueidentifiers.html'
+p210
+(dp211
+g8
+S'Tests that any text other than "-->" is recognized as optional cue identifier.'
+p212
+sg10
+g45
+ssS'media/video-element-other-namespace-crash.html'
+p213
+(dp214
+g8
+g66
+sg10
+(lp215
+(dp216
+g14
+I01
+sg26
+I01
+sg27
+I01
+sg19
+g63
+sg15
+(lp217
+S'BUGCR68289'
+p218
+asassS'media/video-reverse-play-duration.html'
+p219
+(dp220
+g8
+S'Tests that duration is not set to zero when playing in reverse to the origin.'
+p221
+sg10
+(lp222
+(dp223
+g14
+I01
+sg27
+I01
+sg19
+g181
+sg15
+(lp224
+S'BUGCR33099'
+p225
+asasssS'whole'
+p226
+(dp227
+S'media/media-startTime.html'
+p228
+(dp229
+g8
+S"Test the, so far unused, 'startTime' attribute."
+p230
+ssS'media/video-src-set.html'
+p231
+(dp232
+g8
+S'Test that setting src attribute triggers load'
+p233
+ssg6
+g7
+sS'media/video-played-ranges-1.html'
+p234
+(dp235
+g8
+S"Test of the media element 'played' attribute, ranges part 1."
+p236
+ssS'media/video-layer-crash.html'
+p237
+(dp238
+g8
+S'Test dynamic removal of transformed and reflected video'
+p239
+ssS'http/tests/media/video-play-stall-seek.html'
+p240
+(dp241
+g8
+S'Test that playback can be resumed by seeking backwards after load stalls.'
+p242
+sg10
+(lp243
+(dp244
+g27
+I01
+sg19
+S' Timing out.'
+p245
+sg15
+(lp246
+S'BUGCR78376'
+p247
+asassg56
+g57
+sg75
+g76
+sg82
+g83
+sS'http/tests/media/video-referer.html'
+p248
+(dp249
+g8
+S'Tests that the media player will send the relevant referer when requesting the media file.<br/>'
+p250
+ssS'media/video-source-removed.html'
+p251
+(dp252
+g8
+S'consoleWrite("PASS: A crash did not occur when removing &lt;source&gt; elements.<br>");'
+p253
+ssS'media/unsupported-tracks.html'
+p254
+(dp255
+g8
+S'Test that QuickTime file with unsupported track types only generates an error.'
+p256
+ssg114
+g115
+sS'media/audio-no-installed-engines.html'
+p257
+(dp258
+g8
+S'PASSED -- crash using Audio with no installed engines bug 27479.'
+p259
+ssg121
+g122
+sS'media/video-dom-src.html'
+p260
+(dp261
+g8
+g66
+ssS'media/media-blocked-by-willsendrequest.html'
+p262
+(dp263
+g8
+S'consoleWrite("This test can only be run in DumpRenderTree!<br><br>");'
+p264
+ssS'media/video-error-does-not-exist.html'
+p265
+(dp266
+g8
+S'Test that the media element is in correct state after load fails.'
+p267
+ssS'media/video-play-pause-events.html'
+p268
+(dp269
+g8
+S'Test that calling play() and pause() triggers async play, timeupdate and pause events.'
+p270
+ssS'media/video-display-none-crash.html'
+p271
+(dp272
+g8
+S'Test that pause() after changing display to "none" doesn\'t cause a crash.'
+p273
+ssS'media/video-src-plus-source.html'
+p274
+(dp275
+g8
+S"Test that a &lt;source&gt; element is not used when a bogus 'src' attribute is present"
+p276
+ssS'media/video-source-none-supported.html'
+p277
+(dp278
+g8
+S'no usable &lt;source&gt; test'
+p279
+ssS'media/video-poster-blocked-by-willsendrequest.html'
+p280
+(dp281
+g8
+S'consoleWrite("<b>This test can only be run in DumpRenderTree!</b>");'
+p282
+ssg149
+g150
+sS'media/video-src.html'
+p283
+(dp284
+g8
+g66
+ssS'media/audio-controls-rendering.html'
+p285
+(dp286
+g8
+S'Test controls placement.'
+p287
+ssg165
+g166
+sS'media/video-source-inserted.html'
+p288
+(dp289
+g8
+S'networkState after inserting &lt;source&gt; test'
+p290
+ssS'media/media-can-play-octet-stream.html'
+p291
+(dp292
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method with "application/octet-stream".'
+p293
+ssS'media/constructors.html'
+p294
+(dp295
+g8
+S'Test that media constructors behave consistently.'
+p296
+ssS'media/video-source-media.html'
+p297
+(dp298
+g8
+g66
+ssg184
+g185
+sS'http/tests/security/local-video-source-from-remote.html'
+p299
+(dp300
+g8
+S'This test only behaves correctly in DRT'
+p301
+ssg191
+g192
+sS'media/video-source-type-params.html'
+p302
+(dp303
+g8
+g66
+ssS'fast/canvas/webgl/context-lost.html'
+p304
+(dp305
+g8
+S'debug("Test valid context");'
+p306
+ssS'media/media-can-play-wav-audio.html'
+p307
+(dp308
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method with multiple .wav MIME types.'
+p309
+ssS'media/video-source-error.html'
+p310
+(dp311
+g8
+S'&lt;video&gt; and &lt;source&gt; error test'
+p312
+sg10
+(lp313
+(dp314
+S'DEBUG'
+p315
+I01
+sg97
+I01
+sg15
+(lp316
+S'BUGWK66310'
+p317
+asg19
+S''
+p318
+sg41
+I01
+sassS'media/video-no-audio.html'
+p319
+(dp320
+g8
+S'Movie with no audio track. The volume button should not render.'
+p321
+ssS'media/svg-as-image-with-media-blocked.html'
+p322
+(dp323
+g8
+S'This test attempts to load foreignObject audio and video embedded in an SVG'
+p324
+ssg204
+g205
+sg104
+g105
+sS'media/video-click-dblckick-standalone.html'
+p325
+(dp326
+g8
+S'This tests that clicking on a standalone video will pause and double-clicking will play.'
+p327
+ssS'media/video-pause-immediately.html'
+p328
+(dp329
+g8
+S'Test that pausing the media element has an immediate effect on the clock.'
+p330
+ssS'fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html'
+p331
+(dp332
+g8
+g66
+ssg219
+g220
+sS'http/tests/security/local-video-src-from-remote.html'
+p333
+(dp334
+g8
+S'This test only works in DRT'
+p335
+ssg197
+g198
+sS'media/video-controls-in-media-document.html'
+p336
+(dp337
+g8
+g66
+ssS'media/remove-from-document-no-load.html'
+p338
+(dp339
+g8
+S'Test that removing a media element from the tree when no media has been loaded does not generate a loadstart event.'
+p340
+ssS'media/video-currentTime.html'
+p341
+(dp342
+g8
+g66
+ssS'media/video-frame-accurate-seek.html'
+p343
+(dp344
+g8
+S'Test that setting currentTime is frame-accurate. The three videos below should be showing frames 12, 13, and 14.'
+p345
+sg10
+(lp346
+(dp347
+g69
+I01
+sg15
+(lp348
+S'BUGCR72223'
+p349
+asg19
+g318
+sg41
+I01
+sassg21
+g22
+sg31
+g32
+sS'media/media-controls-clone-crash.html'
+p350
+(dp351
+g8
+S'Test passes if it does not crash.'
+p352
+ssg42
+g43
+sS'media/controls-css-overload.html'
+p353
+(dp354
+g8
+S"Testing that overloading some controls doesn't crash the browser"
+p355
+ssS'media/video-display-aspect-ratio.html'
+p356
+(dp357
+g8
+g66
+ssS'media/video-currentTime-set.html'
+p358
+(dp359
+g8
+S"Test that setting currentTime changes the time, and that 'ended' event is fired in a reasonable amount of time"
+p360
+ssS'media/media-blocked-by-beforeload.html'
+p361
+(dp362
+g8
+S'Test to ensure that a media file blocked by a beforeload handler generates an error'
+p363
+sg10
+(lp364
+(dp365
+g97
+I01
+sg15
+(lp366
+S'BUGWK66310'
+p367
+asg19
+g318
+sg41
+I01
+sassg101
+g102
+sS'media/video-controls-visible-audio-only.html'
+p368
+(dp369
+g8
+S'This test only runs in DRT!'
+p370
+ssS'http/tests/media/video-play-progress.html'
+p371
+(dp372
+g8
+S'Test that at least one progress event is fired after starting to load the video.'
+p373
+ssg107
+g108
+sS'media/video-source-moved.html'
+p374
+(dp375
+g8
+S'moving &lt;source&gt; element test'
+p376
+ssg98
+g99
+sS'media/video-src-none.html'
+p377
+(dp378
+g8
+g66
+ssS'media/video-controls-zoomed.html'
+p379
+(dp380
+g8
+S'This test only runs in DRT!'
+p381
+ssS'media/video-controls.html'
+p382
+(dp383
+g8
+S"Test 'controls' attribute"
+p384
+ssS'media/controls-without-preload.html'
+p385
+(dp386
+g8
+S'The controls should not depend on preload value.'
+p387
+ssS'media/video-played-collapse.html'
+p388
+(dp389
+g8
+S"Test of the media element 'played' attribute"
+p390
+ssS'compositing/self-painting-layers.html'
+p391
+(dp392
+g8
+S'Self painting layers'
+p393
+ssS'media/audio-controls-do-not-fade-out.html'
+p394
+(dp395
+g8
+S'This tests that audio controls do not fade out when the audio is playing.'
+p396
+ssS'media/media-document-audio-repaint.html'
+p397
+(dp398
+g8
+S'This tests that in a standalone media document with audio content, the media element repaints correctly'
+p399
+sg10
+(lp400
+(dp401
+g97
+I01
+sg69
+I01
+sg15
+(lp402
+S'BUGCR75354'
+p403
+aS'BUGWK55718'
+p404
+asg19
+S' This test needs completely new baselines.'
+p405
+sS'IMAGE+TEXT'
+p406
+I01
+sassS'compositing/geometry/video-opacity-overlay.html'
+p407
+(dp408
+g8
+S'Video overlay'
+p409
+ssS'media/video-source-error-no-candidate.html'
+p410
+(dp411
+g8
+S"Test that 'error' events are fired from &lt;source&gt; element when it can not be used."
+p412
+ssS'media/audio-constructor.html'
+p413
+(dp414
+g8
+S'Test that Audio() object loads the resource after src attribute is set and load() is called.'
+p415
+ssS'media/controls-styling.html'
+p416
+(dp417
+g8
+S'The look of the controls should not change.'
+p418
+ssS'media/video-buffered.html'
+p419
+(dp420
+g8
+g66
+ssS'media/event-attributes.html'
+p421
+(dp422
+g8
+g66
+ssg173
+g174
+sg176
+g177
+sS'http/tests/media/text-served-as-text.html'
+p423
+(dp424
+g8
+S"text file served as 'text/plain'"
+p425
+ssS'http/tests/media/video-cancel-load.html'
+p426
+(dp427
+g8
+S'Cancel loading a video file and access its properties afterwards.'
+p428
+ssS'media/unsupported-rtsp.html'
+p429
+(dp430
+g8
+S'Test that QuickTime file with RTSP URL generates a load error.'
+p431
+ssS'media/media-controls-clone.html'
+p432
+(dp433
+g8
+S'<video controls id=v></video><audio controls id=a></audio>'
+p434
+ssS'media/broken-video.html'
+p435
+(dp436
+g8
+S'Test that QuickTime file with broken content generates an error.'
+p437
+ssS'media/video-plays-past-end-of-test.html'
+p438
+(dp439
+g8
+g66
+ssS'http/tests/canvas/webgl/origin-clean-conformance.html'
+p440
+(dp441
+g8
+S'WebGL Origin Restrictions Conformance Tests'
+p442
+ssS'media/video-replaces-poster.html'
+p443
+(dp444
+g8
+S'Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=34966">https://bugs.webkit.org/show_bug.cgi?id=34966</a>. <br>'
+p445
+ssS'media/video-autoplay.html'
+p446
+(dp447
+g8
+g66
+ssS'media/video-set-rate-from-pause.html'
+p448
+(dp449
+g8
+S'Test that setting a non-zero rate causes an async timeupdate event.'
+p450
+ssS'media/video-src-remove.html'
+p451
+(dp452
+g8
+S"Test that removing valid 'src' attribute DOES NOT trigger load of &lt;source&gt; elements"
+p453
+ssS'media/csp-blocks-video.html'
+p454
+(dp455
+g8
+S"This test passes if it doesn't alert failure."
+p456
+ssS'media/controls-drag-timebar.html'
+p457
+(dp458
+g8
+S'Test that dragging the timebar thumb causes seeks.'
+p459
+ssS'media/audio-constructor-preload.html'
+p460
+(dp461
+g8
+S"Test that Audio() sets 'preload' attribute."
+p462
+ssS'media/video-src-invalid-poster.html'
+p463
+(dp464
+g8
+g66
+ssS'media/adopt-node-crash.html'
+p465
+(dp466
+g8
+S"Tests that we don't crash when moving a video element to a new document."
+p467
+ssS'media/video-playbackrate.html'
+p468
+(dp469
+g8
+S'test playbackRate and defaultPlaybackRate'
+p470
+ssS'media/video-muted.html'
+p471
+(dp472
+g8
+S"Test 'muted' attribute"
+p473
+ssS'media/video-src-change.html'
+p474
+(dp475
+g8
+S'1. Test that an invalid src attribute fires an error when the file fails to load.<br>'
+p476
+ssg213
+g214
+sS'media/video-play-pause-exception.html'
+p477
+(dp478
+g8
+S'Video has no src. Test that the playing event is not dispatched.'
+p479
+ssS'fast/dom/shadow/frameless-media-element-crash.html'
+p480
+(dp481
+g8
+g66
+ssS'media/audio-play-event.html'
+p482
+(dp483
+g8
+S"Test that a 'play' event listener is triggered when fired by a new audio element."
+p484
+ssS'media/before-load-member-access.html'
+p485
+(dp486
+g8
+S'Test that accessing member of a non loaded video works.'
+p487
+ssS'media/video-width-height.html'
+p488
+(dp489
+g8
+g66
+ssS'media/audio-repaint.html'
+p490
+(dp491
+g8
+S'This tests that in a html document with inline audio content, the media element repaints correctly'
+p492
+ssS'media/video-currentTime-delay.html'
+p493
+(dp494
+g8
+S'Test a delay in playing the movie results in a canPlay event.'
+p495
+ssS'media/video-aspect-ratio.html'
+p496
+(dp497
+g8
+S'Test video sizing. You should see one bigger image (paused video) and 7 small ones of 1/4 its size.'
+p498
+ssS'media/video-transformed.html'
+p499
+(dp500
+g8
+S'Test painting of transformed video'
+p501
+ssS'fast/dom/beforeload/remove-video-in-beforeload-listener.html'
+p502
+(dp503
+g8
+S'This page tests that you can correctly remove a video object in a beforeload listener without causing a crash.'
+p504
+ssS'media/invalid-media-url-crash.html'
+p505
+(dp506
+g8
+S'Tests that invalid media src url does not result in crash.'
+p507
+ssS'media/video-empty-source.html'
+p508
+(dp509
+g8
+S'Slider drawing with no source. The controls should render correctly.'
+p510
+ssg90
+g91
+sS'media/video-poster.html'
+p511
+(dp512
+g8
+S'Test &lt;video&gt; element with and without a poster.'
+p513
+ssS'media/media-document-audio-size.html'
+p514
+(dp515
+g8
+S'This tests that in a standalone media document with audio content, the media element has non-zero'
+p516
+ssg129
+g130
+sS'compositing/overflow/overflow-compositing-descendant.html'
+p517
+(dp518
+g8
+S'You should see a green box under the video. If you see red, the test failed.'
+p519
+ssS'media/video-dom-autoplay.html'
+p520
+(dp521
+g8
+g66
+ssS'media/media-ended.html'
+p522
+(dp523
+g8
+S'<b>Test ended by:</b>'
+p524
+ssS'media/video-no-autoplay.html'
+p525
+(dp526
+g8
+S'Test that play event does not fire when "src" set with no autoplay attribute.'
+p527
+ssS'media/video-zoom.html'
+p528
+(dp529
+g8
+S'150% zoom, with width and height attributes'
+p530
+sg10
+(lp531
+(dp532
+g36
+I01
+sg69
+I01
+sg15
+(lp533
+S'BUGCR86714'
+p534
+asg19
+g318
+sg73
+I01
+sg74
+I01
+sassS'media/video-append-source.html'
+p535
+(dp536
+g8
+g66
+ssg136
+g137
+sS'http/tests/media/pdf-served-as-pdf.html'
+p537
+(dp538
+g8
+S"PDF file served as 'application/pdf'"
+p539
+ssS'media/video-play-empty-events.html'
+p540
+(dp541
+g8
+S'Test that play() from EMPTY network state triggers load() and async play event.'
+p542
+ssg146
+g147
+sS'media/audio-only-video-intrinsic-size.html'
+p543
+(dp544
+g8
+S'This tests the intrinsic size of a video element is the default 300&#xd7;150 before metadata is'
+p545
+ssg139
+g140
+sS'media/audio-delete-while-slider-thumb-clicked.html'
+p546
+(dp547
+g8
+S"This tests that events don't continue to target a slider thumb if the media element is deleted while scrubbing."
+p548
+ssS'media/media-can-play-ogg.html'
+p549
+(dp550
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method for ogg media containers.'
+p551
+ssS'media/track/track-webvtt-tc004-magicheader.html'
+p552
+(dp553
+g8
+S'Tests that the magic file header "WEBVTT" leads to the file properly recognized as a WebVTT file.'
+p554
+sg10
+g45
+ssg155
+g156
+sS'media/video-currentTime-set2.html'
+p555
+(dp556
+g8
+g66
+ssS'media/video-seekable.html'
+p557
+(dp558
+g8
+g66
+ssS'fast/dom/beforeload/video-before-load.html'
+p559
+(dp560
+g8
+g66
+ssS'media/video-played-reset.html'
+p561
+(dp562
+g8
+S"Test of the media element 'played' attribute"
+p563
+ssS'compositing/self-painting-layers2.html'
+p564
+(dp565
+g8
+S'This test should not assert in debug builds.'
+p566
+ssS'media/controls-right-click-on-timebar.html'
+p567
+(dp568
+g8
+S'Test that right clicking on the timebar does not cause a seek.'
+p569
+ssS'media/video-dom-preload.html'
+p570
+(dp571
+g8
+S'consoleWrite("++ Test default attribute value");'
+p572
+ssS'media/video-size.html'
+p573
+(dp574
+g8
+S"Test &lt;video&gt; element size with and without 'src' and 'poster' attributes."
+p575
+ssS'media/video-delay-load-event.html'
+p576
+(dp577
+g8
+S"Test the document's load event is delayed until a movie's meta data is available."
+p578
+sg10
+(lp579
+(dp580
+g97
+I01
+sg15
+(lp581
+S'BUGWK64003'
+p582
+asg19
+S' Started around WebKit r90233:r90242'
+p583
+sg73
+I01
+sg41
+I01
+sg315
+I01
+sassS'media/fallback.html'
+p584
+(dp585
+g8
+S'Test that fallback content is not rendered'
+p586
+ssS'fast/layers/video-layer.html'
+p587
+(dp588
+g8
+S'Video element gets layer'
+p589
+ssS'media/controls-strict.html'
+p590
+(dp591
+g8
+S'Drawing the controls in strict mode.'
+p592
+ssS'media/remove-from-document.html'
+p593
+(dp594
+g8
+S'Test that removing a media element from the tree pauses playback but does not unload the media.'
+p595
+ssS'http/tests/media/remove-while-loading.html'
+p596
+(dp597
+g8
+S'Test that removing a media element from the tree while loading does not crash.'
+p598
+ssS'media/video-controls-transformed.html'
+p599
+(dp600
+g8
+S'This test only runs in DRT!'
+p601
+ssS'compositing/video/video-poster.html'
+p602
+(dp603
+g8
+S'Video with poster'
+p604
+ssS'http/tests/media/media-can-load-when-hidden.html'
+p605
+(dp606
+g8
+S'Test HTMLMediaElement to be sure that the video is getting loaded even if the element'
+p607
+ssS'media/video-display-toggle.html'
+p608
+(dp609
+g8
+S"This tests that toggling the display property won't make the controls disappear.<br>"
+p610
+ssS'media/video-seek-no-src-exception.html'
+p611
+(dp612
+g8
+S"Test that seeking video with no 'src' attribute throws an INVALID_STATE_ERR exception."
+p613
+ssS'media/audio-constructor-src.html'
+p614
+(dp615
+g8
+S'Test that Audio("url") constructor loads the specified resource.'
+p616
+ssS'compositing/geometry/clipped-video-controller.html'
+p617
+(dp618
+g8
+S'Clipped Video'
+p619
+ssS'media/video-preload.html'
+p620
+(dp621
+g8
+S"Test to see if media loads automatically when 'preload' is specified."
+p622
+ssS'http/tests/media/video-load-twice.html'
+p623
+(dp624
+g8
+g66
+ssS'http/tests/security/local-video-poster-from-remote.html'
+p625
+(dp626
+g8
+S'This test requires the run-webkit httpd server (run-webkit-httpd)'
+p627
+ssS'media/video-seek-past-end-playing.html'
+p628
+(dp629
+g8
+S"Test that seeking video with 'loop' past it's end rewinds to the beginning and continues playback."
+p630
+ssS'media/video-source.html'
+p631
+(dp632
+g8
+g66
+ssS'http/tests/media/reload-after-dialog.html'
+p633
+(dp634
+g8
+S"Test this by loading a movie slowly and showing a dialog when a 'loadstart' event <br>"
+p635
+ssS'media/media-constants.html'
+p636
+(dp637
+g8
+S'Test HTMLMediaElement and MediaError constants.'
+p638
+ssS'media/video-volume.html'
+p639
+(dp640
+g8
+S"Test 'volume' attribute"
+p641
+ssS'media/video-src-source.html'
+p642
+(dp643
+g8
+g66
+ssS'http/tests/appcache/video.html'
+p644
+(dp645
+g8
+S'Test that &lt;video&gt; can be loaded from the application cache.'
+p646
+ssg50
+g51
+sg64
+g65
+sS'media/video-canvas-source.html'
+p647
+(dp648
+g8
+S'Drawing to canvas using video with source element does not taint canvas'
+p649
+ssS'media/video-controls-no-scripting.html'
+p650
+(dp651
+g8
+S'Tests that the built-in controls are always enabled when JavaScript is disabled.'
+p652
+ssS'media/video-poster-scale.html'
+p653
+(dp654
+g8
+S"'poster' aspect ratio test"
+p655
+ssS'media/video-seek-by-small-increment.html'
+p656
+(dp657
+g8
+S'Test seeking by very small increments.'
+p658
+ssS'media/video-controls-with-mutation-event-handler.html'
+p659
+(dp660
+g8
+S"This tests that we don't crash while creating a video element while a DOMSubtreeModified even handler is registered."
+p661
+ssS'media/video-zoom-controls.html'
+p662
+(dp663
+g8
+S'Zoomed video with controls.'
+p664
+ssS'media/video-loop.html'
+p665
+(dp666
+g8
+S'consoleWrite("<em>++ Test setting/removing the attribute.</em>");'
+p667
+sg10
+(lp668
+(dp669
+S'WIN'
+p670
+I01
+sg41
+I01
+sg15
+(lp671
+S'BUGCR59415'
+p672
+asg19
+S' BUGCR59415 : cannot repro the flakiness'
+p673
+sg27
+I01
+sg97
+I01
+sassS'http/tests/media/video-play-stall.html'
+p674
+(dp675
+g8
+S'Test that stalled, timeupdate and waiting events are sent when media load stalls in the middle.'
+p676
+sg10
+(lp677
+(dp678
+g97
+I01
+sg15
+(lp679
+S'BUGCR73609'
+p680
+asg19
+S' canplaythrough event is sent too early.'
+p681
+sassS'media/video-seeking.html'
+p682
+(dp683
+g8
+S'Test that seeking attribute is true immediately after a seek,'
+p684
+ssS'compositing/overflow/scroll-ancestor-update.html'
+p685
+(dp686
+g8
+S'The green box should obscure the red box, and move when you drag the scrollbar.'
+p687
+ssS'media/controls-after-reload.html'
+p688
+(dp689
+g8
+S'Making sure the controller looks ok after a second load().'
+p690
+ssg158
+g159
+sS'media/video-load-networkState.html'
+p691
+(dp692
+g8
+S'Test that setting src to an invalid url triggers load(), which sets networkState'
+p693
+ssS'http/tests/security/contentSecurityPolicy/media-src-allowed.html'
+p694
+(dp695
+g8
+g66
+ssS'compositing/reflections/load-video-in-reflection.html'
+p696
+(dp697
+g8
+S'You should see a reflected video below, rather than the red video background.'
+p698
+ssS'compositing/geometry/video-fixed-scrolling.html'
+p699
+(dp700
+g8
+S'Video overlay'
+p701
+ssS'media/video-controls-rendering.html'
+p702
+(dp703
+g8
+S'Test controls placement.'
+p704
+sg10
+(lp705
+(dp706
+g69
+I01
+sS'LINUX'
+p707
+I01
+sg15
+(lp708
+S'BUGCR74102'
+p709
+asg19
+S" 2 pixel stretching when rendering some videos with the GPU (Now it's flaky)"
+p710
+sg41
+I01
+sg74
+I01
+sa(dp711
+g36
+I01
+sg69
+I01
+sg15
+(lp712
+S'BUGCR86714'
+p713
+asg19
+g318
+sg73
+I01
+sg74
+I01
+sassS'http/tests/media/video-served-as-text.html'
+p714
+(dp715
+g8
+S"media file served as 'text/plain'"
+p716
+ssS'media/video-pause-empty-events.html'
+p717
+(dp718
+g8
+S'Test that pause() from EMPTY network state triggers load()'
+p719
+ssS'media/video-poster-delayed.html'
+p720
+(dp721
+g8
+S'Delayed load of poster should not overwrite intrinsic size of video'
+p722
+ssS'media/media-load-event.html'
+p723
+(dp724
+g8
+S'Test that media file is not reloaded when an element is inserted into the DOM.'
+p725
+ssS'http/tests/media/video-error-abort.html'
+p726
+(dp727
+g8
+S"'abort' event test"
+p728
+ssS'media/video-volume-slider.html'
+p729
+(dp730
+g8
+S'Test rendering of volume slider of video tag'
+p731
+ssS'media/video-seek-past-end-paused.html'
+p732
+(dp733
+g8
+S"Test that seeking paused video past it's duration time sets currentTime to duration and leaves video paused."
+p734
+ssS'http/tests/media/video-cookie.html'
+p735
+(dp736
+g8
+S'Tests that the media player will send the relevant cookies when requesting the media file.<br/>'
+p737
+ssS'media/remove-from-document-before-load.html'
+p738
+(dp739
+g8
+S'<body onload="document.body.innerHTML=\'PASS: A crash did not occur when the media element was removed before loading.\';'
+p740
+ssg207
+g208
+sS'media/video-duration-known-after-eos.html'
+p741
+(dp742
+g8
+S'Tests that duration is known after playback ended.'
+p743
+ssg210
+g211
+sS'http/tests/media/video-play-stall-before-meta-data.html'
+p744
+(dp745
+g8
+S'Test that stalling very early, while loading meta-data, stops delaying the load event.'
+p746
+ssS'media/video-timeupdate-during-playback.html'
+p747
+(dp748
+g8
+S"Test 'timeupdate' events are posted while playing but not while paused."
+p749
+ssS'media/video-single-valid-source.html'
+p750
+(dp751
+g8
+S'Test that a single valid &lt;source&gt; element loads correctly'
+p752
+ssS'media/video-src-invalid-remove.html'
+p753
+(dp754
+g8
+S"Test that removing 'src' attribute does NOT trigger load of &lt;source&gt; elements"
+p755
+ssS'http/tests/security/contentSecurityPolicy/media-src-blocked.html'
+p756
+(dp757
+g8
+S"This test passes if it doesn't alert failure."
+p758
+ssg194
+g195
+sS'media/video-load-readyState.html'
+p759
+(dp760
+g8
+g66
+sssS'nonskip'
+p761
+(dp762
+g397
+g398
+sg343
+g344
+sg674
+g675
+sg240
+g241
+sg528
+g529
+sg665
+g666
+sg702
+g703
+sg576
+g577
+sg361
+g362
+sg310
+g311
+sssb. \ No newline at end of file
diff --git a/media/tools/layout_tests/test_data/more b/media/tools/layout_tests/test_data/more
new file mode 100644
index 0000000..736dfb4
--- /dev/null
+++ b/media/tools/layout_tests/test_data/more
@@ -0,0 +1,1883 @@
+(ilayouttest_analyzer_helpers
+AnalyzerResultMap
+p0
+(dp1
+S'result_map'
+p2
+(dp3
+S'skip'
+p4
+(dp5
+S'media/track/track-webvtt-tc004-magicheader.html'
+p6
+(dp7
+S'desc'
+p8
+S'Tests that the magic file header "WEBVTT" leads to the file properly recognized as a WebVTT file.'
+p9
+sS'te_info'
+p10
+(lp11
+(dp12
+S'SKIP'
+p13
+I01
+sS'TIMEOUT'
+p14
+I01
+sS'Comments'
+p15
+S' Tests for WebVTT parser for <track>. Feature is not yet functional.'
+p16
+sS'Bugs'
+p17
+(lp18
+S'BUGWK43668'
+p19
+asassS'media/audio-delete-while-step-button-clicked.html'
+p20
+(dp21
+g8
+S"This tests that events don't continue to target a step button if the media element is deleted while mouse down on button."
+p22
+sg10
+(lp23
+(dp24
+S'FAIL'
+p25
+I01
+sg13
+I01
+sg17
+(lp26
+S'BUGCR25375'
+p27
+aS'BUGCR59399'
+p28
+asg15
+S" Failing because we sometimes emit additional timeupdate events. Test might be WONTFIX because we don't export a step button in the first place."
+p29
+sassS'media/restore-from-page-cache.html'
+p30
+(dp31
+g8
+S"Make sure we don't reload a &lt;video&gt; element when navigating back to an uncached page."
+p32
+sg10
+(lp33
+(dp34
+g13
+I01
+sS'WONTFIX'
+p35
+I01
+sg14
+I01
+sg15
+S' Page Cache - based tests. Chromium disables page cache because the WebKit page cache keeps previously loaded pages alive in memory to be able to quickly substitute them when user clicks History buttons. Chromium wants those to be separate navigations made via browser process to be able to make decision on which renderer process to use for each of them.'
+p36
+sg17
+(lp37
+S'BUGCR19635'
+p38
+asassS'media/context-menu-actions.html'
+p39
+(dp40
+g8
+S'Test the various actions available in the HTML5 media element context-menu.'
+p41
+sg10
+(lp42
+(dp43
+S'CRASH'
+p44
+I01
+sg13
+I01
+sg17
+(lp45
+S'BUGCR59665'
+p46
+aS'BUGWK45021'
+p47
+asg15
+S' BUGCR59415 : cannot repro the flakiness This test needs enhanced eventSender.contextMenu() return value. See https:bugs.webkit.org/show_bug.cgi?id=45021 for more info. UNIMPLEMENTED for chrome'
+p48
+sg14
+I01
+sS'PASS'
+p49
+I01
+sassS'media/track/track-webvtt-tc005-headercomment.html'
+p50
+(dp51
+g8
+S'Tests that the optional comment area under the "WEBVTT" file header is properly ignored. Also, default settings and styling are currently ignored (treated as faulty cues).'
+p52
+sg10
+g11
+ssS'http/tests/media/video-cross-site.html'
+p53
+(dp54
+g8
+S'media file redirects to another site'
+p55
+sg10
+(lp56
+(dp57
+g13
+I01
+sg15
+S' QuickTime reference movies not supported.'
+p58
+sg14
+I01
+sg49
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/audio-data-url.html'
+p59
+(dp60
+g8
+S'Test that audio element can use a data: url'
+p61
+sg10
+(lp62
+(dp63
+g13
+I01
+sg17
+(lp64
+S'BUGCR16779'
+p65
+asg15
+S" These tests are WONTFIX because they use codecs Chromium doesn't support."
+p66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/video-canvas-alpha.html'
+p67
+(dp68
+g8
+S'UNKNOWN'
+p69
+sg10
+(lp70
+(dp71
+g13
+I01
+sS'IMAGE'
+p72
+I01
+sg17
+(lp73
+S'BUGCR74979'
+p74
+asg15
+S" Accelerated 2d for mac isn't supported yet, so SKIP this test for now."
+p75
+sS'MAC'
+p76
+I01
+sS'GPU'
+p77
+I01
+sassS'add2.html'
+p78
+I01
+sS'media/video-can-play-type.html'
+p79
+(dp80
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method.'
+p81
+sg10
+(lp82
+(dp83
+g13
+I01
+sg17
+(lp84
+S'BUGCR16779'
+p85
+asg15
+g66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/media-captions.html'
+p86
+(dp87
+g8
+S'Test media element close caption API.'
+p88
+sg10
+(lp89
+(dp90
+g13
+I01
+sg14
+I01
+sg15
+S" We haven't implemented the WebKit captioning extension. UNIMPLEMENTED"
+p91
+sg17
+(lp92
+S'BUGCR28301'
+p93
+asassS'media/media-can-play-mpeg-audio.html'
+p94
+(dp95
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method with multiple mp3 MIME types.'
+p96
+sg10
+(lp97
+(dp98
+g13
+I01
+sg35
+I01
+sg17
+(lp99
+S'BUGCR16779'
+p100
+asg15
+g66
+sS'TEXT'
+p101
+I01
+sassS'media/track/track-webvtt-tc011-blanklines.html'
+p102
+(dp103
+g8
+S'Tests that cues are not affected by multiple newlines \\n, \\r, and \\r\\n and that cue not properly separated are treated as one big cue.'
+p104
+sg10
+g11
+ssS'media/track/track-webvtt-tc012-outoforder.html'
+p105
+(dp106
+g8
+S'Tests cues that are temporally out of order (we allow this).'
+p107
+sg10
+g11
+ssS'media/track/track-webvtt-tc008-timingsnohours.html'
+p108
+(dp109
+g8
+S'Tests cue timings that do not contain hours (they are optional), and tests various syntax errors in timings without hours.'
+p110
+sg10
+g11
+ssS'media/video-size-intrinsic-scale.html'
+p111
+(dp112
+g8
+S'&lt;video&gt; element intrinsic size test'
+p113
+sg10
+(lp114
+(dp115
+g13
+I01
+sg17
+(lp116
+S'BUGCR16779'
+p117
+asg15
+g66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/audio-mpeg4-supported.html'
+p118
+(dp119
+g8
+S'Test that the audio element supports M4A files.'
+p120
+sg10
+(lp121
+(dp122
+g13
+I01
+sg17
+(lp123
+S'BUGCR16779'
+p124
+asg15
+g66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/media-fullscreen-not-in-document.html'
+p125
+(dp126
+g8
+S'Test media element fullscreen API when an element is not in the DOM.'
+p127
+sg10
+(lp128
+(dp129
+g13
+I01
+sg14
+I01
+sg15
+S" We haven't implemented the WebKit fullscreen extension. UNIMPLEMENTED"
+p130
+sg17
+(lp131
+S'BUGCR16735'
+p132
+asassS'media/audio-mpeg-supported.html'
+p133
+(dp134
+g8
+S'Test that the audio element supports MPEG files.'
+p135
+sg10
+(lp136
+(dp137
+g13
+I01
+sg17
+(lp138
+S'BUGCR16779'
+p139
+asg15
+g66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/track/track-webvtt-tc003-newlines.html'
+p140
+(dp141
+g8
+S'Tests that line terminators \\r, \\n, or \\r\\n are properly parsed, even when there is no newline at eof.'
+p142
+sg10
+g11
+ssS'media/video-document-types.html'
+p143
+(dp144
+g8
+S"This tests that a standalone MPEG-4 file with 'sdsm' and 'odsm' tracks is opened in a MediaDocument."
+p145
+sg10
+(lp146
+(dp147
+g13
+I01
+sg17
+(lp148
+S'BUGCR16779'
+p149
+asg15
+g66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/track/track-webvtt-tc002-bom.html'
+p150
+(dp151
+g8
+S'Tests that the parser properly ignores a UTF-8 BOM character at the beginning of a file and all other cues are properly parsed.'
+p152
+sg10
+g11
+ssS'media/video-does-not-loop.html'
+p153
+(dp154
+g8
+S"Test to make sure QuickTime movie saved with 'loop' user data does not loop automatically."
+p155
+sg10
+(lp156
+(dp157
+g13
+I01
+sg35
+I01
+sg14
+I01
+sg15
+S" Doesn't apply to Chromium (QuickTime-specific behavior)"
+p158
+sassS'media/track/track-webvtt-tc000-empty.html'
+p159
+(dp160
+g8
+S'Tests that an empty file is not recognized as a WebVTT file.'
+p161
+sg10
+g11
+ssS'media/media-can-play-mpeg4-video.html'
+p162
+(dp163
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method with'
+p164
+sg10
+(lp165
+(dp166
+g13
+I01
+sg35
+I01
+sg17
+(lp167
+S'BUGWK45102'
+p168
+asg15
+g66
+sg101
+I01
+sassS'compositing/video/video-background-color.html'
+p169
+(dp170
+g8
+S'Video with background color'
+p171
+sg10
+(lp172
+(dp173
+g25
+I01
+sg13
+I01
+sg35
+I01
+sg17
+(lp174
+S'BUGWK55519'
+p175
+asg15
+S" Chromium's video codecs don't support alpha information encoded in the video data, so this test is not applicable."
+p176
+sassS'media/track/track-webvtt-tc010-notimings.html'
+p177
+(dp178
+g8
+S'Tests cue without timings are ignored.'
+p179
+sg10
+g11
+ssS'media/video-timeupdate-reverse-play.html'
+p180
+(dp181
+g8
+S"Tests that a 'timeupdate' event is fired when a movie plays<br> in reverse to time zero."
+p182
+sg10
+(lp183
+(dp184
+g13
+I01
+sg14
+I01
+sg15
+S" We haven't implemented reverse audio/video playback. UNIMPLEMENTED BUGCR33099 Implement reverse audio/video playback"
+p185
+sg17
+(lp186
+S'BUGCR33099'
+p187
+asassS'http/tests/media/video-buffered.html'
+p188
+(dp189
+g8
+g69
+sg10
+(lp190
+(dp191
+g13
+I01
+sg17
+(lp192
+S'BUGCR49165'
+p193
+asg15
+S' video.buffered multiple TimeRanges support.'
+p194
+sg49
+I01
+sassS'media/track/track-webvtt-tc001-utf8.html'
+p195
+(dp196
+g8
+S'Tests that UTF-8 encoded characters are recognized properly and that different encodings (iconv) are not recognized as WebVTT a file (we do allow it, it just looks ugly).'
+p197
+sg10
+g11
+ssS'media/track/track-webvtt-tc013-settings.html'
+p198
+(dp199
+g8
+S'Tests WebVTT settings.'
+p200
+sg10
+g11
+ssS'media/media-fullscreen-inline.html'
+p201
+(dp202
+g8
+S'Test media element fullscreen API when an element is in the DOM.'
+p203
+sg10
+(lp204
+(dp205
+g13
+I01
+sg14
+I01
+sg15
+g130
+sg17
+(lp206
+S'BUGCR16735'
+p207
+asassS'media/track/track-webvtt-tc007-cuenoid.html'
+p208
+(dp209
+g8
+S'Tests empty cue identifiers (they are optional), but makes sure "-->" found leads to discarded cue.'
+p210
+sg10
+g11
+ssS'media/track/track-webvtt-tc009-timingshour.html'
+p211
+(dp212
+g8
+S'Tests cue timings that contain hours (they are optional), and tests various syntax errors in timings with hours.'
+p213
+sg10
+g11
+ssS'media/track/track-webvtt-tc006-cueidentifiers.html'
+p214
+(dp215
+g8
+S'Tests that any text other than "-->" is recognized as optional cue identifier.'
+p216
+sg10
+g11
+ssS'media/video-element-other-namespace-crash.html'
+p217
+(dp218
+g8
+g69
+sg10
+(lp219
+(dp220
+g13
+I01
+sg35
+I01
+sg14
+I01
+sg15
+g66
+sg17
+(lp221
+S'BUGCR68289'
+p222
+asassS'media/video-reverse-play-duration.html'
+p223
+(dp224
+g8
+S'Tests that duration is not set to zero when playing in reverse to the origin.'
+p225
+sg10
+(lp226
+(dp227
+g13
+I01
+sg14
+I01
+sg15
+g185
+sg17
+(lp228
+S'BUGCR33099'
+p229
+asasssS'whole'
+p230
+(dp231
+S'media/video-source-type.html'
+p232
+(dp233
+g8
+S'&lt;source&gt; @type attribute'
+p234
+ssS'media/media-startTime.html'
+p235
+(dp236
+g8
+S"Test the, so far unused, 'startTime' attribute."
+p237
+ssS'media/video-src-set.html'
+p238
+(dp239
+g8
+S'Test that setting src attribute triggers load'
+p240
+ssg20
+g21
+sS'media/video-played-ranges-1.html'
+p241
+(dp242
+g8
+S"Test of the media element 'played' attribute, ranges part 1."
+p243
+ssS'media/video-layer-crash.html'
+p244
+(dp245
+g8
+S'Test dynamic removal of transformed and reflected video'
+p246
+ssS'http/tests/media/video-play-stall-seek.html'
+p247
+(dp248
+g8
+S'Test that playback can be resumed by seeking backwards after load stalls.'
+p249
+sg10
+(lp250
+(dp251
+g14
+I01
+sg15
+S' Timing out.'
+p252
+sg17
+(lp253
+S'BUGCR78376'
+p254
+asassg59
+g60
+sg79
+g80
+sg86
+g87
+sS'http/tests/media/video-referer.html'
+p255
+(dp256
+g8
+S'Tests that the media player will send the relevant referer when requesting the media file.<br/>'
+p257
+ssS'media/video-source-removed.html'
+p258
+(dp259
+g8
+S'consoleWrite("PASS: A crash did not occur when removing &lt;source&gt; elements.<br>");'
+p260
+ssS'media/unsupported-tracks.html'
+p261
+(dp262
+g8
+S'Test that QuickTime file with unsupported track types only generates an error.'
+p263
+ssg118
+g119
+sS'media/audio-no-installed-engines.html'
+p264
+(dp265
+g8
+S'PASSED -- crash using Audio with no installed engines bug 27479.'
+p266
+ssg125
+g126
+sS'media/video-dom-src.html'
+p267
+(dp268
+g8
+g69
+ssS'media/media-blocked-by-willsendrequest.html'
+p269
+(dp270
+g8
+S'consoleWrite("This test can only be run in DumpRenderTree!<br><br>");'
+p271
+ssS'media/video-error-does-not-exist.html'
+p272
+(dp273
+g8
+S'Test that the media element is in correct state after load fails.'
+p274
+ssS'media/video-play-pause-events.html'
+p275
+(dp276
+g8
+S'Test that calling play() and pause() triggers async play, timeupdate and pause events.'
+p277
+ssS'media/video-display-none-crash.html'
+p278
+(dp279
+g8
+S'Test that pause() after changing display to "none" doesn\'t cause a crash.'
+p280
+ssS'media/video-src-plus-source.html'
+p281
+(dp282
+g8
+S"Test that a &lt;source&gt; element is not used when a bogus 'src' attribute is present"
+p283
+ssS'media/video-source-none-supported.html'
+p284
+(dp285
+g8
+S'no usable &lt;source&gt; test'
+p286
+ssS'media/video-poster-blocked-by-willsendrequest.html'
+p287
+(dp288
+g8
+S'consoleWrite("<b>This test can only be run in DumpRenderTree!</b>");'
+p289
+ssg153
+g154
+sS'media/video-src.html'
+p290
+(dp291
+g8
+g69
+ssS'media/audio-controls-rendering.html'
+p292
+(dp293
+g8
+S'Test controls placement.'
+p294
+ssg169
+g170
+sS'media/video-source-inserted.html'
+p295
+(dp296
+g8
+S'networkState after inserting &lt;source&gt; test'
+p297
+ssS'media/media-can-play-octet-stream.html'
+p298
+(dp299
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method with "application/octet-stream".'
+p300
+ssS'media/constructors.html'
+p301
+(dp302
+g8
+S'Test that media constructors behave consistently.'
+p303
+ssS'media/video-source-media.html'
+p304
+(dp305
+g8
+g69
+ssg188
+g189
+sS'http/tests/security/local-video-source-from-remote.html'
+p306
+(dp307
+g8
+S'This test only behaves correctly in DRT'
+p308
+ssg195
+g196
+sS'media/video-source-type-params.html'
+p309
+(dp310
+g8
+g69
+ssS'fast/canvas/webgl/context-lost.html'
+p311
+(dp312
+g8
+S'debug("Test valid context");'
+p313
+ssS'media/media-can-play-wav-audio.html'
+p314
+(dp315
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method with multiple .wav MIME types.'
+p316
+ssS'media/video-source-error.html'
+p317
+(dp318
+g8
+S'&lt;video&gt; and &lt;source&gt; error test'
+p319
+sg10
+(lp320
+(dp321
+S'DEBUG'
+p322
+I01
+sg101
+I01
+sg17
+(lp323
+S'BUGWK66310'
+p324
+asg15
+S''
+p325
+sg49
+I01
+sassS'media/video-no-audio.html'
+p326
+(dp327
+g8
+S'Movie with no audio track. The volume button should not render.'
+p328
+ssS'media/svg-as-image-with-media-blocked.html'
+p329
+(dp330
+g8
+S'This test attempts to load foreignObject audio and video embedded in an SVG'
+p331
+ssg208
+g209
+sg108
+g109
+sS'media/video-click-dblckick-standalone.html'
+p332
+(dp333
+g8
+S'This tests that clicking on a standalone video will pause and double-clicking will play.'
+p334
+ssS'media/video-pause-immediately.html'
+p335
+(dp336
+g8
+S'Test that pausing the media element has an immediate effect on the clock.'
+p337
+ssS'fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html'
+p338
+(dp339
+g8
+g69
+ssg223
+g224
+sS'http/tests/security/local-video-src-from-remote.html'
+p340
+(dp341
+g8
+S'This test only works in DRT'
+p342
+ssg201
+g202
+sS'media/video-controls-in-media-document.html'
+p343
+(dp344
+g8
+g69
+ssS'media/remove-from-document-no-load.html'
+p345
+(dp346
+g8
+S'Test that removing a media element from the tree when no media has been loaded does not generate a loadstart event.'
+p347
+ssS'media/video-currentTime.html'
+p348
+(dp349
+g8
+g69
+ssS'media/video-frame-accurate-seek.html'
+p350
+(dp351
+g8
+S'Test that setting currentTime is frame-accurate. The three videos below should be showing frames 12, 13, and 14.'
+p352
+sg10
+(lp353
+(dp354
+g72
+I01
+sg17
+(lp355
+S'BUGCR72223'
+p356
+asg15
+g325
+sg49
+I01
+sassg30
+g31
+sg39
+g40
+sS'media/media-controls-clone-crash.html'
+p357
+(dp358
+g8
+S'Test passes if it does not crash.'
+p359
+ssg50
+g51
+sS'media/controls-css-overload.html'
+p360
+(dp361
+g8
+S"Testing that overloading some controls doesn't crash the browser"
+p362
+ssS'media/video-display-aspect-ratio.html'
+p363
+(dp364
+g8
+g69
+ssS'media/video-currentTime-set.html'
+p365
+(dp366
+g8
+S"Test that setting currentTime changes the time, and that 'ended' event is fired in a reasonable amount of time"
+p367
+ssS'media/media-blocked-by-beforeload.html'
+p368
+(dp369
+g8
+S'Test to ensure that a media file blocked by a beforeload handler generates an error'
+p370
+sg10
+(lp371
+(dp372
+g101
+I01
+sg17
+(lp373
+S'BUGWK66310'
+p374
+asg15
+g325
+sg49
+I01
+sassg105
+g106
+sS'media/video-controls-visible-audio-only.html'
+p375
+(dp376
+g8
+S'This test only runs in DRT!'
+p377
+ssS'http/tests/media/video-play-progress.html'
+p378
+(dp379
+g8
+S'Test that at least one progress event is fired after starting to load the video.'
+p380
+ssg111
+g112
+sS'media/video-source-moved.html'
+p381
+(dp382
+g8
+S'moving &lt;source&gt; element test'
+p383
+ssg102
+g103
+sS'media/video-src-none.html'
+p384
+(dp385
+g8
+g69
+ssS'media/video-controls-zoomed.html'
+p386
+(dp387
+g8
+S'This test only runs in DRT!'
+p388
+ssS'media/video-controls.html'
+p389
+(dp390
+g8
+S"Test 'controls' attribute"
+p391
+ssS'media/controls-without-preload.html'
+p392
+(dp393
+g8
+S'The controls should not depend on preload value.'
+p394
+ssS'media/video-played-collapse.html'
+p395
+(dp396
+g8
+S"Test of the media element 'played' attribute"
+p397
+ssS'compositing/self-painting-layers.html'
+p398
+(dp399
+g8
+S'Self painting layers'
+p400
+ssS'media/audio-controls-do-not-fade-out.html'
+p401
+(dp402
+g8
+S'This tests that audio controls do not fade out when the audio is playing.'
+p403
+ssS'media/media-document-audio-repaint.html'
+p404
+(dp405
+g8
+S'This tests that in a standalone media document with audio content, the media element repaints correctly'
+p406
+sg10
+(lp407
+(dp408
+g101
+I01
+sg72
+I01
+sg17
+(lp409
+S'BUGCR75354'
+p410
+aS'BUGWK55718'
+p411
+asg15
+S' This test needs completely new baselines.'
+p412
+sS'IMAGE+TEXT'
+p413
+I01
+sassS'compositing/geometry/video-opacity-overlay.html'
+p414
+(dp415
+g8
+S'Video overlay'
+p416
+ssS'media/video-source-error-no-candidate.html'
+p417
+(dp418
+g8
+S"Test that 'error' events are fired from &lt;source&gt; element when it can not be used."
+p419
+ssS'media/audio-constructor.html'
+p420
+(dp421
+g8
+S'Test that Audio() object loads the resource after src attribute is set and load() is called.'
+p422
+ssS'media/controls-styling.html'
+p423
+(dp424
+g8
+S'The look of the controls should not change.'
+p425
+ssS'media/video-buffered.html'
+p426
+(dp427
+g8
+g69
+ssS'media/event-attributes.html'
+p428
+(dp429
+g8
+g69
+ssg177
+g178
+sg180
+g181
+sS'http/tests/media/text-served-as-text.html'
+p430
+(dp431
+g8
+S"text file served as 'text/plain'"
+p432
+ssS'http/tests/media/video-cancel-load.html'
+p433
+(dp434
+g8
+S'Cancel loading a video file and access its properties afterwards.'
+p435
+ssS'media/unsupported-rtsp.html'
+p436
+(dp437
+g8
+S'Test that QuickTime file with RTSP URL generates a load error.'
+p438
+ssS'media/media-controls-clone.html'
+p439
+(dp440
+g8
+S'<video controls id=v></video><audio controls id=a></audio>'
+p441
+ssS'media/broken-video.html'
+p442
+(dp443
+g8
+S'Test that QuickTime file with broken content generates an error.'
+p444
+ssS'media/video-plays-past-end-of-test.html'
+p445
+(dp446
+g8
+g69
+ssS'http/tests/canvas/webgl/origin-clean-conformance.html'
+p447
+(dp448
+g8
+S'WebGL Origin Restrictions Conformance Tests'
+p449
+ssS'media/video-replaces-poster.html'
+p450
+(dp451
+g8
+S'Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=34966">https://bugs.webkit.org/show_bug.cgi?id=34966</a>. <br>'
+p452
+ssS'media/video-autoplay.html'
+p453
+(dp454
+g8
+g69
+ssS'media/video-set-rate-from-pause.html'
+p455
+(dp456
+g8
+S'Test that setting a non-zero rate causes an async timeupdate event.'
+p457
+ssS'media/video-src-remove.html'
+p458
+(dp459
+g8
+S"Test that removing valid 'src' attribute DOES NOT trigger load of &lt;source&gt; elements"
+p460
+ssS'media/csp-blocks-video.html'
+p461
+(dp462
+g8
+S"This test passes if it doesn't alert failure."
+p463
+ssS'media/controls-drag-timebar.html'
+p464
+(dp465
+g8
+S'Test that dragging the timebar thumb causes seeks.'
+p466
+ssS'media/audio-constructor-preload.html'
+p467
+(dp468
+g8
+S"Test that Audio() sets 'preload' attribute."
+p469
+ssS'media/video-src-invalid-poster.html'
+p470
+(dp471
+g8
+g69
+ssS'media/adopt-node-crash.html'
+p472
+(dp473
+g8
+S"Tests that we don't crash when moving a video element to a new document."
+p474
+ssS'media/video-playbackrate.html'
+p475
+(dp476
+g8
+S'test playbackRate and defaultPlaybackRate'
+p477
+ssS'media/video-muted.html'
+p478
+(dp479
+g8
+S"Test 'muted' attribute"
+p480
+ssS'media/video-src-change.html'
+p481
+(dp482
+g8
+S'1. Test that an invalid src attribute fires an error when the file fails to load.<br>'
+p483
+ssg217
+g218
+sS'media/video-play-pause-exception.html'
+p484
+(dp485
+g8
+S'Video has no src. Test that the playing event is not dispatched.'
+p486
+ssS'fast/dom/shadow/frameless-media-element-crash.html'
+p487
+(dp488
+g8
+g69
+ssS'media/audio-play-event.html'
+p489
+(dp490
+g8
+S"Test that a 'play' event listener is triggered when fired by a new audio element."
+p491
+ssS'media/before-load-member-access.html'
+p492
+(dp493
+g8
+S'Test that accessing member of a non loaded video works.'
+p494
+ssS'media/video-width-height.html'
+p495
+(dp496
+g8
+g69
+ssS'media/audio-repaint.html'
+p497
+(dp498
+g8
+S'This tests that in a html document with inline audio content, the media element repaints correctly'
+p499
+ssS'media/video-currentTime-delay.html'
+p500
+(dp501
+g8
+S'Test a delay in playing the movie results in a canPlay event.'
+p502
+ssS'media/video-aspect-ratio.html'
+p503
+(dp504
+g8
+S'Test video sizing. You should see one bigger image (paused video) and 7 small ones of 1/4 its size.'
+p505
+ssS'media/video-transformed.html'
+p506
+(dp507
+g8
+S'Test painting of transformed video'
+p508
+ssS'fast/dom/beforeload/remove-video-in-beforeload-listener.html'
+p509
+(dp510
+g8
+S'This page tests that you can correctly remove a video object in a beforeload listener without causing a crash.'
+p511
+ssS'media/invalid-media-url-crash.html'
+p512
+(dp513
+g8
+S'Tests that invalid media src url does not result in crash.'
+p514
+ssS'media/video-empty-source.html'
+p515
+(dp516
+g8
+S'Slider drawing with no source. The controls should render correctly.'
+p517
+ssg94
+g95
+sS'media/video-poster.html'
+p518
+(dp519
+g8
+S'Test &lt;video&gt; element with and without a poster.'
+p520
+ssS'media/media-document-audio-size.html'
+p521
+(dp522
+g8
+S'This tests that in a standalone media document with audio content, the media element has non-zero'
+p523
+ssg133
+g134
+sS'add1.html'
+p524
+I01
+sS'compositing/overflow/overflow-compositing-descendant.html'
+p525
+(dp526
+g8
+S'You should see a green box under the video. If you see red, the test failed.'
+p527
+ssS'media/video-dom-autoplay.html'
+p528
+(dp529
+g8
+g69
+ssS'media/media-ended.html'
+p530
+(dp531
+g8
+S'<b>Test ended by:</b>'
+p532
+ssS'media/video-no-autoplay.html'
+p533
+(dp534
+g8
+S'Test that play event does not fire when "src" set with no autoplay attribute.'
+p535
+ssS'media/video-zoom.html'
+p536
+(dp537
+g8
+S'150% zoom, with width and height attributes'
+p538
+sg10
+(lp539
+(dp540
+g44
+I01
+sg72
+I01
+sg17
+(lp541
+S'BUGCR86714'
+p542
+asg15
+g325
+sg76
+I01
+sg77
+I01
+sassS'media/video-append-source.html'
+p543
+(dp544
+g8
+g69
+ssg140
+g141
+sS'http/tests/media/pdf-served-as-pdf.html'
+p545
+(dp546
+g8
+S"PDF file served as 'application/pdf'"
+p547
+ssS'media/video-play-empty-events.html'
+p548
+(dp549
+g8
+S'Test that play() from EMPTY network state triggers load() and async play event.'
+p550
+ssg150
+g151
+sS'media/audio-only-video-intrinsic-size.html'
+p551
+(dp552
+g8
+S'This tests the intrinsic size of a video element is the default 300&#xd7;150 before metadata is'
+p553
+ssg143
+g144
+sS'media/audio-delete-while-slider-thumb-clicked.html'
+p554
+(dp555
+g8
+S"This tests that events don't continue to target a slider thumb if the media element is deleted while scrubbing."
+p556
+ssS'media/media-can-play-ogg.html'
+p557
+(dp558
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method for ogg media containers.'
+p559
+ssg6
+g7
+sg159
+g160
+sS'media/video-currentTime-set2.html'
+p560
+(dp561
+g8
+g69
+ssS'media/video-seekable.html'
+p562
+(dp563
+g8
+g69
+ssS'fast/dom/beforeload/video-before-load.html'
+p564
+(dp565
+g8
+g69
+ssS'media/video-played-reset.html'
+p566
+(dp567
+g8
+S"Test of the media element 'played' attribute"
+p568
+ssS'compositing/self-painting-layers2.html'
+p569
+(dp570
+g8
+S'This test should not assert in debug builds.'
+p571
+ssS'media/controls-right-click-on-timebar.html'
+p572
+(dp573
+g8
+S'Test that right clicking on the timebar does not cause a seek.'
+p574
+ssS'media/video-dom-preload.html'
+p575
+(dp576
+g8
+S'consoleWrite("++ Test default attribute value");'
+p577
+ssS'media/video-size.html'
+p578
+(dp579
+g8
+S"Test &lt;video&gt; element size with and without 'src' and 'poster' attributes."
+p580
+ssS'media/video-delay-load-event.html'
+p581
+(dp582
+g8
+S"Test the document's load event is delayed until a movie's meta data is available."
+p583
+sg10
+(lp584
+(dp585
+g101
+I01
+sg17
+(lp586
+S'BUGWK64003'
+p587
+asg15
+S' Started around WebKit r90233:r90242'
+p588
+sg76
+I01
+sg49
+I01
+sg322
+I01
+sassS'media/fallback.html'
+p589
+(dp590
+g8
+S'Test that fallback content is not rendered'
+p591
+ssS'fast/layers/video-layer.html'
+p592
+(dp593
+g8
+S'Video element gets layer'
+p594
+ssS'media/controls-strict.html'
+p595
+(dp596
+g8
+S'Drawing the controls in strict mode.'
+p597
+ssS'media/remove-from-document.html'
+p598
+(dp599
+g8
+S'Test that removing a media element from the tree pauses playback but does not unload the media.'
+p600
+ssS'http/tests/media/remove-while-loading.html'
+p601
+(dp602
+g8
+S'Test that removing a media element from the tree while loading does not crash.'
+p603
+ssS'media/video-controls-transformed.html'
+p604
+(dp605
+g8
+S'This test only runs in DRT!'
+p606
+ssS'compositing/video/video-poster.html'
+p607
+(dp608
+g8
+S'Video with poster'
+p609
+ssS'http/tests/media/media-can-load-when-hidden.html'
+p610
+(dp611
+g8
+S'Test HTMLMediaElement to be sure that the video is getting loaded even if the element'
+p612
+ssS'media/video-display-toggle.html'
+p613
+(dp614
+g8
+S"This tests that toggling the display property won't make the controls disappear.<br>"
+p615
+ssS'media/video-seek-no-src-exception.html'
+p616
+(dp617
+g8
+S"Test that seeking video with no 'src' attribute throws an INVALID_STATE_ERR exception."
+p618
+ssS'media/audio-constructor-src.html'
+p619
+(dp620
+g8
+S'Test that Audio("url") constructor loads the specified resource.'
+p621
+ssS'compositing/geometry/clipped-video-controller.html'
+p622
+(dp623
+g8
+S'Clipped Video'
+p624
+ssS'media/video-preload.html'
+p625
+(dp626
+g8
+S"Test to see if media loads automatically when 'preload' is specified."
+p627
+ssS'http/tests/media/video-load-twice.html'
+p628
+(dp629
+g8
+g69
+ssS'http/tests/security/local-video-poster-from-remote.html'
+p630
+(dp631
+g8
+S'This test requires the run-webkit httpd server (run-webkit-httpd)'
+p632
+ssS'media/video-seek-past-end-playing.html'
+p633
+(dp634
+g8
+S"Test that seeking video with 'loop' past it's end rewinds to the beginning and continues playback."
+p635
+ssS'media/video-source.html'
+p636
+(dp637
+g8
+g69
+ssS'http/tests/media/reload-after-dialog.html'
+p638
+(dp639
+g8
+S"Test this by loading a movie slowly and showing a dialog when a 'loadstart' event <br>"
+p640
+ssS'media/media-constants.html'
+p641
+(dp642
+g8
+S'Test HTMLMediaElement and MediaError constants.'
+p643
+ssS'media/video-volume.html'
+p644
+(dp645
+g8
+S"Test 'volume' attribute"
+p646
+ssS'media/video-src-source.html'
+p647
+(dp648
+g8
+g69
+ssS'http/tests/appcache/video.html'
+p649
+(dp650
+g8
+S'Test that &lt;video&gt; can be loaded from the application cache.'
+p651
+ssg53
+g54
+sg67
+g68
+sS'media/video-canvas-source.html'
+p652
+(dp653
+g8
+S'Drawing to canvas using video with source element does not taint canvas'
+p654
+ssS'media/video-controls-no-scripting.html'
+p655
+(dp656
+g8
+S'Tests that the built-in controls are always enabled when JavaScript is disabled.'
+p657
+ssS'media/video-poster-scale.html'
+p658
+(dp659
+g8
+S"'poster' aspect ratio test"
+p660
+ssS'media/video-seek-by-small-increment.html'
+p661
+(dp662
+g8
+S'Test seeking by very small increments.'
+p663
+ssS'media/video-controls-with-mutation-event-handler.html'
+p664
+(dp665
+g8
+S"This tests that we don't crash while creating a video element while a DOMSubtreeModified even handler is registered."
+p666
+ssS'media/video-zoom-controls.html'
+p667
+(dp668
+g8
+S'Zoomed video with controls.'
+p669
+ssS'media/video-loop.html'
+p670
+(dp671
+g8
+S'consoleWrite("<em>++ Test setting/removing the attribute.</em>");'
+p672
+sg10
+(lp673
+(dp674
+S'WIN'
+p675
+I01
+sg49
+I01
+sg17
+(lp676
+S'BUGCR59415'
+p677
+asg15
+S' BUGCR59415 : cannot repro the flakiness'
+p678
+sg14
+I01
+sg101
+I01
+sassS'http/tests/media/video-play-stall.html'
+p679
+(dp680
+g8
+S'Test that stalled, timeupdate and waiting events are sent when media load stalls in the middle.'
+p681
+sg10
+(lp682
+(dp683
+g101
+I01
+sg17
+(lp684
+S'BUGCR73609'
+p685
+asg15
+S' canplaythrough event is sent too early.'
+p686
+sassS'media/video-seeking.html'
+p687
+(dp688
+g8
+S'Test that seeking attribute is true immediately after a seek,'
+p689
+ssS'compositing/overflow/scroll-ancestor-update.html'
+p690
+(dp691
+g8
+S'The green box should obscure the red box, and move when you drag the scrollbar.'
+p692
+ssS'media/controls-after-reload.html'
+p693
+(dp694
+g8
+S'Making sure the controller looks ok after a second load().'
+p695
+ssg162
+g163
+sS'media/video-load-networkState.html'
+p696
+(dp697
+g8
+S'Test that setting src to an invalid url triggers load(), which sets networkState'
+p698
+ssS'http/tests/security/contentSecurityPolicy/media-src-allowed.html'
+p699
+(dp700
+g8
+g69
+ssS'compositing/reflections/load-video-in-reflection.html'
+p701
+(dp702
+g8
+S'You should see a reflected video below, rather than the red video background.'
+p703
+ssS'compositing/geometry/video-fixed-scrolling.html'
+p704
+(dp705
+g8
+S'Video overlay'
+p706
+ssS'media/video-controls-rendering.html'
+p707
+(dp708
+g8
+S'Test controls placement.'
+p709
+sg10
+(lp710
+(dp711
+g72
+I01
+sS'LINUX'
+p712
+I01
+sg17
+(lp713
+S'BUGCR74102'
+p714
+asg15
+S" 2 pixel stretching when rendering some videos with the GPU (Now it's flaky)"
+p715
+sg49
+I01
+sg77
+I01
+sa(dp716
+g44
+I01
+sg72
+I01
+sg17
+(lp717
+S'BUGCR86714'
+p718
+asg15
+g325
+sg76
+I01
+sg77
+I01
+sassS'http/tests/media/video-served-as-text.html'
+p719
+(dp720
+g8
+S"media file served as 'text/plain'"
+p721
+ssS'media/video-pause-empty-events.html'
+p722
+(dp723
+g8
+S'Test that pause() from EMPTY network state triggers load()'
+p724
+ssS'media/video-poster-delayed.html'
+p725
+(dp726
+g8
+S'Delayed load of poster should not overwrite intrinsic size of video'
+p727
+ssS'media/media-load-event.html'
+p728
+(dp729
+g8
+S'Test that media file is not reloaded when an element is inserted into the DOM.'
+p730
+ssS'http/tests/media/video-error-abort.html'
+p731
+(dp732
+g8
+S"'abort' event test"
+p733
+ssS'media/video-volume-slider.html'
+p734
+(dp735
+g8
+S'Test rendering of volume slider of video tag'
+p736
+ssS'media/video-seek-past-end-paused.html'
+p737
+(dp738
+g8
+S"Test that seeking paused video past it's duration time sets currentTime to duration and leaves video paused."
+p739
+ssS'http/tests/media/video-cookie.html'
+p740
+(dp741
+g8
+S'Tests that the media player will send the relevant cookies when requesting the media file.<br/>'
+p742
+ssS'media/remove-from-document-before-load.html'
+p743
+(dp744
+g8
+S'<body onload="document.body.innerHTML=\'PASS: A crash did not occur when the media element was removed before loading.\';'
+p745
+ssg211
+g212
+sS'media/video-duration-known-after-eos.html'
+p746
+(dp747
+g8
+S'Tests that duration is known after playback ended.'
+p748
+ssg214
+g215
+sS'http/tests/media/video-play-stall-before-meta-data.html'
+p749
+(dp750
+g8
+S'Test that stalling very early, while loading meta-data, stops delaying the load event.'
+p751
+ssS'media/video-timeupdate-during-playback.html'
+p752
+(dp753
+g8
+S"Test 'timeupdate' events are posted while playing but not while paused."
+p754
+ssS'media/video-single-valid-source.html'
+p755
+(dp756
+g8
+S'Test that a single valid &lt;source&gt; element loads correctly'
+p757
+ssS'media/video-src-invalid-remove.html'
+p758
+(dp759
+g8
+S"Test that removing 'src' attribute does NOT trigger load of &lt;source&gt; elements"
+p760
+ssS'http/tests/security/contentSecurityPolicy/media-src-blocked.html'
+p761
+(dp762
+g8
+S"This test passes if it doesn't alert failure."
+p763
+ssg198
+g199
+sS'media/video-load-readyState.html'
+p764
+(dp765
+g8
+g69
+sssS'nonskip'
+p766
+(dp767
+g404
+g405
+sg350
+g351
+sg679
+g680
+sg247
+g248
+sg536
+g537
+sg670
+g671
+sg707
+g708
+sg581
+g582
+sg368
+g369
+sg317
+g318
+sssb. \ No newline at end of file
diff --git a/media/tools/layout_tests/test_data/more_te_info b/media/tools/layout_tests/test_data/more_te_info
new file mode 100644
index 0000000..e020b9e
--- /dev/null
+++ b/media/tools/layout_tests/test_data/more_te_info
@@ -0,0 +1,1891 @@
+(ilayouttest_analyzer_helpers
+AnalyzerResultMap
+p0
+(dp1
+S'result_map'
+p2
+(dp3
+S'skip'
+p4
+(dp5
+S'media/track/track-webvtt-tc004-magicheader.html'
+p6
+(dp7
+S'desc'
+p8
+S'Tests that the magic file header "WEBVTT" leads to the file properly recognized as a WebVTT file.'
+p9
+sS'te_info'
+p10
+(lp11
+(dp12
+S'SKIP'
+p13
+I01
+sS'TIMEOUT'
+p14
+I01
+sS'Comments'
+p15
+S' Tests for WebVTT parser for <track>. Feature is not yet functional.'
+p16
+sS'Bugs'
+p17
+(lp18
+S'BUGWK43668'
+p19
+asassS'media/audio-delete-while-step-button-clicked.html'
+p20
+(dp21
+g8
+S"This tests that events don't continue to target a step button if the media element is deleted while mouse down on button."
+p22
+sg10
+(lp23
+(dp24
+S'FAIL'
+p25
+I01
+sg13
+I01
+sg17
+(lp26
+S'BUGCR25375'
+p27
+aS'BUGCR59399'
+p28
+asg15
+S" Failing because we sometimes emit additional timeupdate events. Test might be WONTFIX because we don't export a step button in the first place."
+p29
+sassS'media/restore-from-page-cache.html'
+p30
+(dp31
+g8
+S"Make sure we don't reload a &lt;video&gt; element when navigating back to an uncached page."
+p32
+sg10
+(lp33
+(dp34
+g13
+I01
+sS'WONTFIX'
+p35
+I01
+sg14
+I01
+sg15
+S' Page Cache - based tests. Chromium disables page cache because the WebKit page cache keeps previously loaded pages alive in memory to be able to quickly substitute them when user clicks History buttons. Chromium wants those to be separate navigations made via browser process to be able to make decision on which renderer process to use for each of them.'
+p36
+sg17
+(lp37
+S'BUGCR19635'
+p38
+asassS'media/context-menu-actions.html'
+p39
+(dp40
+g8
+S'Test the various actions available in the HTML5 media element context-menu.'
+p41
+sg10
+(lp42
+(dp43
+S'CRASH'
+p44
+I01
+sg13
+I01
+sg17
+(lp45
+S'BUGCR59665'
+p46
+aS'BUGWK45021'
+p47
+asg15
+S' BUGCR59415 : cannot repro the flakiness This test needs enhanced eventSender.contextMenu() return value. See https:bugs.webkit.org/show_bug.cgi?id=45021 for more info. UNIMPLEMENTED for chrome'
+p48
+sg14
+I01
+sS'PASS'
+p49
+I01
+sassS'media/track/track-webvtt-tc005-headercomment.html'
+p50
+(dp51
+g8
+S'Tests that the optional comment area under the "WEBVTT" file header is properly ignored. Also, default settings and styling are currently ignored (treated as faulty cues).'
+p52
+sg10
+g11
+ssS'http/tests/media/video-cross-site.html'
+p53
+(dp54
+g8
+S'media file redirects to another site'
+p55
+sg10
+(lp56
+(dp57
+g13
+I01
+sg15
+S' QuickTime reference movies not supported.'
+p58
+sg14
+I01
+sg49
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/audio-data-url.html'
+p59
+(dp60
+g8
+S'Test that audio element can use a data: url'
+p61
+sg10
+(lp62
+(dp63
+g13
+I01
+sg17
+(lp64
+S'BUGCR16779'
+p65
+asg15
+S" These tests are WONTFIX because they use codecs Chromium doesn't support."
+p66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/video-canvas-alpha.html'
+p67
+(dp68
+g8
+S'UNKNOWN'
+p69
+sg10
+(lp70
+(dp71
+g13
+I01
+sS'IMAGE'
+p72
+I01
+sg17
+(lp73
+S'BUGCR74979'
+p74
+asg15
+S" Accelerated 2d for mac isn't supported yet, so SKIP this test for now."
+p75
+sS'MAC'
+p76
+I01
+sS'GPU'
+p77
+I01
+sassS'media/video-can-play-type.html'
+p78
+(dp79
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method.'
+p80
+sg10
+(lp81
+(dp82
+g13
+I01
+sg17
+(lp83
+S'BUGCR16779'
+p84
+asg15
+g66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/media-captions.html'
+p85
+(dp86
+g8
+S'Test media element close caption API.'
+p87
+sg10
+(lp88
+(dp89
+g13
+I01
+sg14
+I01
+sg15
+S" We haven't implemented the WebKit captioning extension. UNIMPLEMENTED"
+p90
+sg17
+(lp91
+S'BUGCR28301'
+p92
+asassS'media/media-can-play-mpeg-audio.html'
+p93
+(dp94
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method with multiple mp3 MIME types.'
+p95
+sg10
+(lp96
+(dp97
+g13
+I01
+sg35
+I01
+sg17
+(lp98
+S'BUGCR16779'
+p99
+asg15
+g66
+sS'TEXT'
+p100
+I01
+sassS'media/track/track-webvtt-tc011-blanklines.html'
+p101
+(dp102
+g8
+S'Tests that cues are not affected by multiple newlines \\n, \\r, and \\r\\n and that cue not properly separated are treated as one big cue.'
+p103
+sg10
+g11
+ssS'media/track/track-webvtt-tc012-outoforder.html'
+p104
+(dp105
+g8
+S'Tests cues that are temporally out of order (we allow this).'
+p106
+sg10
+g11
+ssS'media/track/track-webvtt-tc008-timingsnohours.html'
+p107
+(dp108
+g8
+S'Tests cue timings that do not contain hours (they are optional), and tests various syntax errors in timings without hours.'
+p109
+sg10
+g11
+ssS'media/video-size-intrinsic-scale.html'
+p110
+(dp111
+g8
+S'&lt;video&gt; element intrinsic size test'
+p112
+sg10
+(lp113
+(dp114
+g13
+I01
+sg17
+(lp115
+S'BUGCR16779'
+p116
+asg15
+g66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/audio-mpeg4-supported.html'
+p117
+(dp118
+g8
+S'Test that the audio element supports M4A files.'
+p119
+sg10
+(lp120
+(dp121
+g13
+I01
+sg17
+(lp122
+S'BUGCR16779'
+p123
+asg15
+g66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/media-fullscreen-not-in-document.html'
+p124
+(dp125
+g8
+S'Test media element fullscreen API when an element is not in the DOM.'
+p126
+sg10
+(lp127
+(dp128
+g13
+I01
+sg14
+I01
+sg15
+S" We haven't implemented the WebKit fullscreen extension. UNIMPLEMENTED"
+p129
+sg17
+(lp130
+S'BUGCR16735'
+p131
+asassS'media/audio-mpeg-supported.html'
+p132
+(dp133
+g8
+S'Test that the audio element supports MPEG files.'
+p134
+sg10
+(lp135
+(dp136
+g13
+I01
+sg17
+(lp137
+S'BUGCR16779'
+p138
+asg15
+g66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/track/track-webvtt-tc003-newlines.html'
+p139
+(dp140
+g8
+S'Tests that line terminators \\r, \\n, or \\r\\n are properly parsed, even when there is no newline at eof.'
+p141
+sg10
+g11
+ssS'media/video-document-types.html'
+p142
+(dp143
+g8
+S"This tests that a standalone MPEG-4 file with 'sdsm' and 'odsm' tracks is opened in a MediaDocument."
+p144
+sg10
+(lp145
+(dp146
+g13
+I01
+sg17
+(lp147
+S'BUGCR16779'
+p148
+asg15
+g66
+sg14
+I01
+sg25
+I01
+sg35
+I01
+sassS'media/track/track-webvtt-tc002-bom.html'
+p149
+(dp150
+g8
+S'Tests that the parser properly ignores a UTF-8 BOM character at the beginning of a file and all other cues are properly parsed.'
+p151
+sg10
+g11
+ssS'media/video-does-not-loop.html'
+p152
+(dp153
+g8
+S"Test to make sure QuickTime movie saved with 'loop' user data does not loop automatically."
+p154
+sg10
+(lp155
+(dp156
+g13
+I01
+sg35
+I01
+sg14
+I01
+sg15
+S" Doesn't apply to Chromium (QuickTime-specific behavior)"
+p157
+sassS'media/track/track-webvtt-tc000-empty.html'
+p158
+(dp159
+g8
+S'Tests that an empty file is not recognized as a WebVTT file.'
+p160
+sg10
+g11
+ssS'media/media-can-play-mpeg4-video.html'
+p161
+(dp162
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method with'
+p163
+sg10
+(lp164
+(dp165
+g13
+I01
+sg35
+I01
+sg17
+(lp166
+S'BUGWK45102'
+p167
+asg15
+g66
+sg100
+I01
+sassS'compositing/video/video-background-color.html'
+p168
+(dp169
+g8
+S'Video with background color'
+p170
+sg10
+(lp171
+(dp172
+g25
+I01
+sg13
+I01
+sg35
+I01
+sg17
+(lp173
+S'BUGWK55519'
+p174
+asg15
+S" Chromium's video codecs don't support alpha information encoded in the video data, so this test is not applicable."
+p175
+sassS'media/track/track-webvtt-tc010-notimings.html'
+p176
+(dp177
+g8
+S'Tests cue without timings are ignored.'
+p178
+sg10
+g11
+ssS'media/video-timeupdate-reverse-play.html'
+p179
+(dp180
+g8
+S"Tests that a 'timeupdate' event is fired when a movie plays<br> in reverse to time zero."
+p181
+sg10
+(lp182
+(dp183
+g13
+I01
+sg14
+I01
+sg15
+S" We haven't implemented reverse audio/video playback. UNIMPLEMENTED BUGCR33099 Implement reverse audio/video playback"
+p184
+sg17
+(lp185
+S'BUGCR33099'
+p186
+asassS'http/tests/media/video-buffered.html'
+p187
+(dp188
+g8
+g69
+sg10
+(lp189
+(dp190
+g13
+I01
+sg17
+(lp191
+S'BUGCR49165'
+p192
+asg15
+S' video.buffered multiple TimeRanges support.'
+p193
+sg49
+I01
+sassS'media/track/track-webvtt-tc001-utf8.html'
+p194
+(dp195
+g8
+S'Tests that UTF-8 encoded characters are recognized properly and that different encodings (iconv) are not recognized as WebVTT a file (we do allow it, it just looks ugly).'
+p196
+sg10
+g11
+ssS'media/track/track-webvtt-tc013-settings.html'
+p197
+(dp198
+g8
+S'Tests WebVTT settings.'
+p199
+sg10
+g11
+ssS'media/media-fullscreen-inline.html'
+p200
+(dp201
+g8
+S'Test media element fullscreen API when an element is in the DOM.'
+p202
+sg10
+(lp203
+(dp204
+g13
+I01
+sg14
+I01
+sg15
+g129
+sg17
+(lp205
+S'BUGCR16735'
+p206
+asassS'media/track/track-webvtt-tc007-cuenoid.html'
+p207
+(dp208
+g8
+S'Tests empty cue identifiers (they are optional), but makes sure "-->" found leads to discarded cue.'
+p209
+sg10
+g11
+ssS'media/track/track-webvtt-tc009-timingshour.html'
+p210
+(dp211
+g8
+S'Tests cue timings that contain hours (they are optional), and tests various syntax errors in timings with hours.'
+p212
+sg10
+g11
+ssS'media/track/track-webvtt-tc006-cueidentifiers.html'
+p213
+(dp214
+g8
+S'Tests that any text other than "-->" is recognized as optional cue identifier.'
+p215
+sg10
+g11
+ssS'media/video-element-other-namespace-crash.html'
+p216
+(dp217
+g8
+g69
+sg10
+(lp218
+(dp219
+g13
+I01
+sg35
+I01
+sg14
+I01
+sg15
+g66
+sg17
+(lp220
+S'BUGCR68289'
+p221
+asassS'media/video-reverse-play-duration.html'
+p222
+(dp223
+g8
+S'Tests that duration is not set to zero when playing in reverse to the origin.'
+p224
+sg10
+(lp225
+(dp226
+g13
+I01
+sg14
+I01
+sg15
+g184
+sg17
+(lp227
+S'BUGCR33099'
+p228
+asasssS'whole'
+p229
+(dp230
+S'media/video-source-type.html'
+p231
+(dp232
+g8
+S'&lt;source&gt; @type attribute'
+p233
+ssS'media/media-startTime.html'
+p234
+(dp235
+g8
+S"Test the, so far unused, 'startTime' attribute."
+p236
+ssS'media/video-src-set.html'
+p237
+(dp238
+g8
+S'Test that setting src attribute triggers load'
+p239
+ssg20
+g21
+sS'media/video-played-ranges-1.html'
+p240
+(dp241
+g8
+S"Test of the media element 'played' attribute, ranges part 1."
+p242
+ssS'media/video-layer-crash.html'
+p243
+(dp244
+g8
+S'Test dynamic removal of transformed and reflected video'
+p245
+ssS'http/tests/media/video-play-stall-seek.html'
+p246
+(dp247
+g8
+S'Test that playback can be resumed by seeking backwards after load stalls.'
+p248
+sg10
+(lp249
+(dp250
+g14
+I01
+sg15
+S' Timing out.'
+p251
+sg17
+(lp252
+S'BUGCR78376'
+p253
+asassg59
+g60
+sg78
+g79
+sg85
+g86
+sS'http/tests/media/video-referer.html'
+p254
+(dp255
+g8
+S'Tests that the media player will send the relevant referer when requesting the media file.<br/>'
+p256
+ssS'media/video-source-removed.html'
+p257
+(dp258
+g8
+S'consoleWrite("PASS: A crash did not occur when removing &lt;source&gt; elements.<br>");'
+p259
+ssS'media/unsupported-tracks.html'
+p260
+(dp261
+g8
+S'Test that QuickTime file with unsupported track types only generates an error.'
+p262
+ssg117
+g118
+sS'media/audio-no-installed-engines.html'
+p263
+(dp264
+g8
+S'PASSED -- crash using Audio with no installed engines bug 27479.'
+p265
+ssg124
+g125
+sS'media/video-dom-src.html'
+p266
+(dp267
+g8
+g69
+ssS'media/media-blocked-by-willsendrequest.html'
+p268
+(dp269
+g8
+S'consoleWrite("This test can only be run in DumpRenderTree!<br><br>");'
+p270
+ssS'media/video-error-does-not-exist.html'
+p271
+(dp272
+g8
+S'Test that the media element is in correct state after load fails.'
+p273
+ssS'media/video-play-pause-events.html'
+p274
+(dp275
+g8
+S'Test that calling play() and pause() triggers async play, timeupdate and pause events.'
+p276
+ssS'media/video-display-none-crash.html'
+p277
+(dp278
+g8
+S'Test that pause() after changing display to "none" doesn\'t cause a crash.'
+p279
+ssS'media/video-src-plus-source.html'
+p280
+(dp281
+g8
+S"Test that a &lt;source&gt; element is not used when a bogus 'src' attribute is present"
+p282
+ssS'media/video-source-none-supported.html'
+p283
+(dp284
+g8
+S'no usable &lt;source&gt; test'
+p285
+ssS'media/video-poster-blocked-by-willsendrequest.html'
+p286
+(dp287
+g8
+S'consoleWrite("<b>This test can only be run in DumpRenderTree!</b>");'
+p288
+ssg152
+g153
+sS'media/video-src.html'
+p289
+(dp290
+g8
+g69
+ssS'media/audio-controls-rendering.html'
+p291
+(dp292
+g8
+S'Test controls placement.'
+p293
+ssg168
+g169
+sS'media/video-source-inserted.html'
+p294
+(dp295
+g8
+S'networkState after inserting &lt;source&gt; test'
+p296
+ssS'media/media-can-play-octet-stream.html'
+p297
+(dp298
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method with "application/octet-stream".'
+p299
+ssS'media/constructors.html'
+p300
+(dp301
+g8
+S'Test that media constructors behave consistently.'
+p302
+ssS'media/video-source-media.html'
+p303
+(dp304
+g8
+g69
+ssg187
+g188
+sS'http/tests/security/local-video-source-from-remote.html'
+p305
+(dp306
+g8
+S'This test only behaves correctly in DRT'
+p307
+ssg194
+g195
+sS'media/video-source-type-params.html'
+p308
+(dp309
+g8
+g69
+ssS'fast/canvas/webgl/context-lost.html'
+p310
+(dp311
+g8
+S'debug("Test valid context");'
+p312
+ssS'media/media-can-play-wav-audio.html'
+p313
+(dp314
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method with multiple .wav MIME types.'
+p315
+ssS'media/video-source-error.html'
+p316
+(dp317
+g8
+S'&lt;video&gt; and &lt;source&gt; error test'
+p318
+sg10
+(lp319
+(dp320
+S'DEBUG'
+p321
+I01
+sg100
+I01
+sg17
+(lp322
+S'BUGWK66310'
+p323
+asg15
+S''
+p324
+sg49
+I01
+sassS'media/video-no-audio.html'
+p325
+(dp326
+g8
+S'Movie with no audio track. The volume button should not render.'
+p327
+ssS'media/svg-as-image-with-media-blocked.html'
+p328
+(dp329
+g8
+S'This test attempts to load foreignObject audio and video embedded in an SVG'
+p330
+ssg207
+g208
+sg107
+g108
+sS'media/video-click-dblckick-standalone.html'
+p331
+(dp332
+g8
+S'This tests that clicking on a standalone video will pause and double-clicking will play.'
+p333
+ssS'media/video-pause-immediately.html'
+p334
+(dp335
+g8
+S'Test that pausing the media element has an immediate effect on the clock.'
+p336
+ssS'fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html'
+p337
+(dp338
+g8
+g69
+ssg222
+g223
+sS'http/tests/security/local-video-src-from-remote.html'
+p339
+(dp340
+g8
+S'This test only works in DRT'
+p341
+ssg200
+g201
+sS'media/video-controls-in-media-document.html'
+p342
+(dp343
+g8
+g69
+ssS'media/remove-from-document-no-load.html'
+p344
+(dp345
+g8
+S'Test that removing a media element from the tree when no media has been loaded does not generate a loadstart event.'
+p346
+ssS'media/video-currentTime.html'
+p347
+(dp348
+g8
+g69
+ssS'media/video-frame-accurate-seek.html'
+p349
+(dp350
+g8
+S'Test that setting currentTime is frame-accurate. The three videos below should be showing frames 12, 13, and 14.'
+p351
+sg10
+(lp352
+(dp353
+g72
+I01
+sg17
+(lp354
+S'BUGCR72223'
+p355
+asg15
+g324
+sg49
+I01
+sassg30
+g31
+sg39
+g40
+sS'media/media-controls-clone-crash.html'
+p356
+(dp357
+g8
+S'Test passes if it does not crash.'
+p358
+ssg50
+g51
+sS'media/controls-css-overload.html'
+p359
+(dp360
+g8
+S"Testing that overloading some controls doesn't crash the browser"
+p361
+ssS'media/video-display-aspect-ratio.html'
+p362
+(dp363
+g8
+g69
+ssS'media/video-currentTime-set.html'
+p364
+(dp365
+g8
+S"Test that setting currentTime changes the time, and that 'ended' event is fired in a reasonable amount of time"
+p366
+ssS'media/media-blocked-by-beforeload.html'
+p367
+(dp368
+g8
+S'Test to ensure that a media file blocked by a beforeload handler generates an error'
+p369
+sg10
+(lp370
+(dp371
+g100
+I01
+sg17
+(lp372
+S'BUGWK66310'
+p373
+asg15
+g324
+sg49
+I01
+sassg104
+g105
+sS'media/video-controls-visible-audio-only.html'
+p374
+(dp375
+g8
+S'This test only runs in DRT!'
+p376
+ssS'http/tests/media/video-play-progress.html'
+p377
+(dp378
+g8
+S'Test that at least one progress event is fired after starting to load the video.'
+p379
+ssg110
+g111
+sS'media/video-source-moved.html'
+p380
+(dp381
+g8
+S'moving &lt;source&gt; element test'
+p382
+ssg101
+g102
+sS'media/video-src-none.html'
+p383
+(dp384
+g8
+g69
+ssS'media/video-controls-zoomed.html'
+p385
+(dp386
+g8
+S'This test only runs in DRT!'
+p387
+ssS'media/video-controls.html'
+p388
+(dp389
+g8
+S"Test 'controls' attribute"
+p390
+ssS'media/controls-without-preload.html'
+p391
+(dp392
+g8
+S'The controls should not depend on preload value.'
+p393
+ssS'media/video-played-collapse.html'
+p394
+(dp395
+g8
+S"Test of the media element 'played' attribute"
+p396
+ssS'compositing/self-painting-layers.html'
+p397
+(dp398
+g8
+S'Self painting layers'
+p399
+ssS'media/audio-controls-do-not-fade-out.html'
+p400
+(dp401
+g8
+S'This tests that audio controls do not fade out when the audio is playing.'
+p402
+ssS'media/media-document-audio-repaint.html'
+p403
+(dp404
+g8
+S'This tests that in a standalone media document with audio content, the media element repaints correctly'
+p405
+sg10
+(lp406
+(dp407
+g100
+I01
+sg72
+I01
+sg17
+(lp408
+S'BUGCR75354'
+p409
+aS'BUGWK55718'
+p410
+asg15
+S' This test needs completely new baselines.'
+p411
+sS'IMAGE+TEXT'
+p412
+I01
+sa(dp413
+S'NEWADDED'
+p414
+I01
+sg100
+I01
+sg72
+I01
+sg17
+g408
+sg15
+g411
+sg412
+I01
+sassS'compositing/geometry/video-opacity-overlay.html'
+p415
+(dp416
+g8
+S'Video overlay'
+p417
+ssS'media/video-source-error-no-candidate.html'
+p418
+(dp419
+g8
+S"Test that 'error' events are fired from &lt;source&gt; element when it can not be used."
+p420
+ssS'media/audio-constructor.html'
+p421
+(dp422
+g8
+S'Test that Audio() object loads the resource after src attribute is set and load() is called.'
+p423
+ssS'media/controls-styling.html'
+p424
+(dp425
+g8
+S'The look of the controls should not change.'
+p426
+ssS'media/video-buffered.html'
+p427
+(dp428
+g8
+g69
+ssS'media/event-attributes.html'
+p429
+(dp430
+g8
+g69
+ssg176
+g177
+sg179
+g180
+sS'http/tests/media/text-served-as-text.html'
+p431
+(dp432
+g8
+S"text file served as 'text/plain'"
+p433
+ssS'http/tests/media/video-cancel-load.html'
+p434
+(dp435
+g8
+S'Cancel loading a video file and access its properties afterwards.'
+p436
+ssS'media/unsupported-rtsp.html'
+p437
+(dp438
+g8
+S'Test that QuickTime file with RTSP URL generates a load error.'
+p439
+ssS'media/media-controls-clone.html'
+p440
+(dp441
+g8
+S'<video controls id=v></video><audio controls id=a></audio>'
+p442
+ssS'media/broken-video.html'
+p443
+(dp444
+g8
+S'Test that QuickTime file with broken content generates an error.'
+p445
+ssS'media/video-plays-past-end-of-test.html'
+p446
+(dp447
+g8
+g69
+ssS'http/tests/canvas/webgl/origin-clean-conformance.html'
+p448
+(dp449
+g8
+S'WebGL Origin Restrictions Conformance Tests'
+p450
+ssS'media/video-replaces-poster.html'
+p451
+(dp452
+g8
+S'Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=34966">https://bugs.webkit.org/show_bug.cgi?id=34966</a>. <br>'
+p453
+ssS'media/video-autoplay.html'
+p454
+(dp455
+g8
+g69
+ssS'media/video-set-rate-from-pause.html'
+p456
+(dp457
+g8
+S'Test that setting a non-zero rate causes an async timeupdate event.'
+p458
+ssS'media/video-src-remove.html'
+p459
+(dp460
+g8
+S"Test that removing valid 'src' attribute DOES NOT trigger load of &lt;source&gt; elements"
+p461
+ssS'media/csp-blocks-video.html'
+p462
+(dp463
+g8
+S"This test passes if it doesn't alert failure."
+p464
+ssS'media/controls-drag-timebar.html'
+p465
+(dp466
+g8
+S'Test that dragging the timebar thumb causes seeks.'
+p467
+ssS'media/audio-constructor-preload.html'
+p468
+(dp469
+g8
+S"Test that Audio() sets 'preload' attribute."
+p470
+ssS'media/video-src-invalid-poster.html'
+p471
+(dp472
+g8
+g69
+ssS'media/adopt-node-crash.html'
+p473
+(dp474
+g8
+S"Tests that we don't crash when moving a video element to a new document."
+p475
+ssS'media/video-playbackrate.html'
+p476
+(dp477
+g8
+S'test playbackRate and defaultPlaybackRate'
+p478
+ssS'media/video-muted.html'
+p479
+(dp480
+g8
+S"Test 'muted' attribute"
+p481
+ssS'media/video-src-change.html'
+p482
+(dp483
+g8
+S'1. Test that an invalid src attribute fires an error when the file fails to load.<br>'
+p484
+ssg216
+g217
+sS'media/video-play-pause-exception.html'
+p485
+(dp486
+g8
+S'Video has no src. Test that the playing event is not dispatched.'
+p487
+ssS'fast/dom/shadow/frameless-media-element-crash.html'
+p488
+(dp489
+g8
+g69
+ssS'media/audio-play-event.html'
+p490
+(dp491
+g8
+S"Test that a 'play' event listener is triggered when fired by a new audio element."
+p492
+ssS'media/before-load-member-access.html'
+p493
+(dp494
+g8
+S'Test that accessing member of a non loaded video works.'
+p495
+ssS'media/video-width-height.html'
+p496
+(dp497
+g8
+g69
+ssS'media/audio-repaint.html'
+p498
+(dp499
+g8
+S'This tests that in a html document with inline audio content, the media element repaints correctly'
+p500
+ssS'media/video-currentTime-delay.html'
+p501
+(dp502
+g8
+S'Test a delay in playing the movie results in a canPlay event.'
+p503
+ssS'media/video-aspect-ratio.html'
+p504
+(dp505
+g8
+S'Test video sizing. You should see one bigger image (paused video) and 7 small ones of 1/4 its size.'
+p506
+ssS'media/video-transformed.html'
+p507
+(dp508
+g8
+S'Test painting of transformed video'
+p509
+ssS'fast/dom/beforeload/remove-video-in-beforeload-listener.html'
+p510
+(dp511
+g8
+S'This page tests that you can correctly remove a video object in a beforeload listener without causing a crash.'
+p512
+ssS'media/invalid-media-url-crash.html'
+p513
+(dp514
+g8
+S'Tests that invalid media src url does not result in crash.'
+p515
+ssS'media/video-empty-source.html'
+p516
+(dp517
+g8
+S'Slider drawing with no source. The controls should render correctly.'
+p518
+ssg93
+g94
+sS'media/video-poster.html'
+p519
+(dp520
+g8
+S'Test &lt;video&gt; element with and without a poster.'
+p521
+ssS'media/media-document-audio-size.html'
+p522
+(dp523
+g8
+S'This tests that in a standalone media document with audio content, the media element has non-zero'
+p524
+ssg132
+g133
+sS'compositing/overflow/overflow-compositing-descendant.html'
+p525
+(dp526
+g8
+S'You should see a green box under the video. If you see red, the test failed.'
+p527
+ssS'media/video-dom-autoplay.html'
+p528
+(dp529
+g8
+g69
+ssS'media/media-ended.html'
+p530
+(dp531
+g8
+S'<b>Test ended by:</b>'
+p532
+ssS'media/video-no-autoplay.html'
+p533
+(dp534
+g8
+S'Test that play event does not fire when "src" set with no autoplay attribute.'
+p535
+ssS'media/video-zoom.html'
+p536
+(dp537
+g8
+S'150% zoom, with width and height attributes'
+p538
+sg10
+(lp539
+(dp540
+g44
+I01
+sg72
+I01
+sg17
+(lp541
+S'BUGCR86714'
+p542
+asg15
+g324
+sg76
+I01
+sg77
+I01
+sassS'media/video-append-source.html'
+p543
+(dp544
+g8
+g69
+ssg139
+g140
+sS'http/tests/media/pdf-served-as-pdf.html'
+p545
+(dp546
+g8
+S"PDF file served as 'application/pdf'"
+p547
+ssS'media/video-play-empty-events.html'
+p548
+(dp549
+g8
+S'Test that play() from EMPTY network state triggers load() and async play event.'
+p550
+ssg149
+g150
+sS'media/audio-only-video-intrinsic-size.html'
+p551
+(dp552
+g8
+S'This tests the intrinsic size of a video element is the default 300&#xd7;150 before metadata is'
+p553
+ssg142
+g143
+sS'media/audio-delete-while-slider-thumb-clicked.html'
+p554
+(dp555
+g8
+S"This tests that events don't continue to target a slider thumb if the media element is deleted while scrubbing."
+p556
+ssS'media/media-can-play-ogg.html'
+p557
+(dp558
+g8
+S'Test HTMLMediaElement <em>canPlayType()</em> method for ogg media containers.'
+p559
+ssg6
+g7
+sg158
+g159
+sS'media/video-currentTime-set2.html'
+p560
+(dp561
+g8
+g69
+ssS'media/video-seekable.html'
+p562
+(dp563
+g8
+g69
+ssS'fast/dom/beforeload/video-before-load.html'
+p564
+(dp565
+g8
+g69
+ssS'media/video-played-reset.html'
+p566
+(dp567
+g8
+S"Test of the media element 'played' attribute"
+p568
+ssS'compositing/self-painting-layers2.html'
+p569
+(dp570
+g8
+S'This test should not assert in debug builds.'
+p571
+ssS'media/controls-right-click-on-timebar.html'
+p572
+(dp573
+g8
+S'Test that right clicking on the timebar does not cause a seek.'
+p574
+ssS'media/video-dom-preload.html'
+p575
+(dp576
+g8
+S'consoleWrite("++ Test default attribute value");'
+p577
+ssS'media/video-size.html'
+p578
+(dp579
+g8
+S"Test &lt;video&gt; element size with and without 'src' and 'poster' attributes."
+p580
+ssS'media/video-delay-load-event.html'
+p581
+(dp582
+g8
+S"Test the document's load event is delayed until a movie's meta data is available."
+p583
+sg10
+(lp584
+(dp585
+g100
+I01
+sg17
+(lp586
+S'BUGWK64003'
+p587
+asg15
+S' Started around WebKit r90233:r90242'
+p588
+sg76
+I01
+sg49
+I01
+sg321
+I01
+sassS'media/fallback.html'
+p589
+(dp590
+g8
+S'Test that fallback content is not rendered'
+p591
+ssS'fast/layers/video-layer.html'
+p592
+(dp593
+g8
+S'Video element gets layer'
+p594
+ssS'media/controls-strict.html'
+p595
+(dp596
+g8
+S'Drawing the controls in strict mode.'
+p597
+ssS'media/remove-from-document.html'
+p598
+(dp599
+g8
+S'Test that removing a media element from the tree pauses playback but does not unload the media.'
+p600
+ssS'http/tests/media/remove-while-loading.html'
+p601
+(dp602
+g8
+S'Test that removing a media element from the tree while loading does not crash.'
+p603
+ssS'media/video-controls-transformed.html'
+p604
+(dp605
+g8
+S'This test only runs in DRT!'
+p606
+ssS'compositing/video/video-poster.html'
+p607
+(dp608
+g8
+S'Video with poster'
+p609
+ssS'http/tests/media/media-can-load-when-hidden.html'
+p610
+(dp611
+g8
+S'Test HTMLMediaElement to be sure that the video is getting loaded even if the element'
+p612
+ssS'media/video-display-toggle.html'
+p613
+(dp614
+g8
+S"This tests that toggling the display property won't make the controls disappear.<br>"
+p615
+ssS'media/video-seek-no-src-exception.html'
+p616
+(dp617
+g8
+S"Test that seeking video with no 'src' attribute throws an INVALID_STATE_ERR exception."
+p618
+ssS'media/audio-constructor-src.html'
+p619
+(dp620
+g8
+S'Test that Audio("url") constructor loads the specified resource.'
+p621
+ssS'compositing/geometry/clipped-video-controller.html'
+p622
+(dp623
+g8
+S'Clipped Video'
+p624
+ssS'media/video-preload.html'
+p625
+(dp626
+g8
+S"Test to see if media loads automatically when 'preload' is specified."
+p627
+ssS'http/tests/media/video-load-twice.html'
+p628
+(dp629
+g8
+g69
+ssS'http/tests/security/local-video-poster-from-remote.html'
+p630
+(dp631
+g8
+S'This test requires the run-webkit httpd server (run-webkit-httpd)'
+p632
+ssS'media/video-seek-past-end-playing.html'
+p633
+(dp634
+g8
+S"Test that seeking video with 'loop' past it's end rewinds to the beginning and continues playback."
+p635
+ssS'media/video-source.html'
+p636
+(dp637
+g8
+g69
+ssS'http/tests/media/reload-after-dialog.html'
+p638
+(dp639
+g8
+S"Test this by loading a movie slowly and showing a dialog when a 'loadstart' event <br>"
+p640
+ssS'media/media-constants.html'
+p641
+(dp642
+g8
+S'Test HTMLMediaElement and MediaError constants.'
+p643
+ssS'media/video-volume.html'
+p644
+(dp645
+g8
+S"Test 'volume' attribute"
+p646
+ssS'media/video-src-source.html'
+p647
+(dp648
+g8
+g69
+ssS'http/tests/appcache/video.html'
+p649
+(dp650
+g8
+S'Test that &lt;video&gt; can be loaded from the application cache.'
+p651
+ssg53
+g54
+sg67
+g68
+sS'media/video-canvas-source.html'
+p652
+(dp653
+g8
+S'Drawing to canvas using video with source element does not taint canvas'
+p654
+ssS'media/video-controls-no-scripting.html'
+p655
+(dp656
+g8
+S'Tests that the built-in controls are always enabled when JavaScript is disabled.'
+p657
+ssS'media/video-poster-scale.html'
+p658
+(dp659
+g8
+S"'poster' aspect ratio test"
+p660
+ssS'media/video-seek-by-small-increment.html'
+p661
+(dp662
+g8
+S'Test seeking by very small increments.'
+p663
+ssS'media/video-controls-with-mutation-event-handler.html'
+p664
+(dp665
+g8
+S"This tests that we don't crash while creating a video element while a DOMSubtreeModified even handler is registered."
+p666
+ssS'media/video-zoom-controls.html'
+p667
+(dp668
+g8
+S'Zoomed video with controls.'
+p669
+ssS'media/video-loop.html'
+p670
+(dp671
+g8
+S'consoleWrite("<em>++ Test setting/removing the attribute.</em>");'
+p672
+sg10
+(lp673
+(dp674
+S'WIN'
+p675
+I01
+sg49
+I01
+sg17
+(lp676
+S'BUGCR59415'
+p677
+asg15
+S' BUGCR59415 : cannot repro the flakiness'
+p678
+sg14
+I01
+sg100
+I01
+sassS'http/tests/media/video-play-stall.html'
+p679
+(dp680
+g8
+S'Test that stalled, timeupdate and waiting events are sent when media load stalls in the middle.'
+p681
+sg10
+(lp682
+(dp683
+g100
+I01
+sg17
+(lp684
+S'BUGCR73609'
+p685
+asg15
+S' canplaythrough event is sent too early.'
+p686
+sassS'media/video-seeking.html'
+p687
+(dp688
+g8
+S'Test that seeking attribute is true immediately after a seek,'
+p689
+ssS'compositing/overflow/scroll-ancestor-update.html'
+p690
+(dp691
+g8
+S'The green box should obscure the red box, and move when you drag the scrollbar.'
+p692
+ssS'media/controls-after-reload.html'
+p693
+(dp694
+g8
+S'Making sure the controller looks ok after a second load().'
+p695
+ssg161
+g162
+sS'media/video-load-networkState.html'
+p696
+(dp697
+g8
+S'Test that setting src to an invalid url triggers load(), which sets networkState'
+p698
+ssS'http/tests/security/contentSecurityPolicy/media-src-allowed.html'
+p699
+(dp700
+g8
+g69
+ssS'compositing/reflections/load-video-in-reflection.html'
+p701
+(dp702
+g8
+S'You should see a reflected video below, rather than the red video background.'
+p703
+ssS'compositing/geometry/video-fixed-scrolling.html'
+p704
+(dp705
+g8
+S'Video overlay'
+p706
+ssS'media/video-controls-rendering.html'
+p707
+(dp708
+g8
+S'Test controls placement.'
+p709
+sg10
+(lp710
+(dp711
+g72
+I01
+sS'LINUX'
+p712
+I01
+sg17
+(lp713
+S'BUGCR74102'
+p714
+asg15
+S" 2 pixel stretching when rendering some videos with the GPU (Now it's flaky)"
+p715
+sg49
+I01
+sg77
+I01
+sa(dp716
+g44
+I01
+sg72
+I01
+sg17
+(lp717
+S'BUGCR86714'
+p718
+asg15
+g324
+sg76
+I01
+sg77
+I01
+sassS'http/tests/media/video-served-as-text.html'
+p719
+(dp720
+g8
+S"media file served as 'text/plain'"
+p721
+ssS'media/video-pause-empty-events.html'
+p722
+(dp723
+g8
+S'Test that pause() from EMPTY network state triggers load()'
+p724
+ssS'media/video-poster-delayed.html'
+p725
+(dp726
+g8
+S'Delayed load of poster should not overwrite intrinsic size of video'
+p727
+ssS'media/media-load-event.html'
+p728
+(dp729
+g8
+S'Test that media file is not reloaded when an element is inserted into the DOM.'
+p730
+ssS'http/tests/media/video-error-abort.html'
+p731
+(dp732
+g8
+S"'abort' event test"
+p733
+ssS'media/video-volume-slider.html'
+p734
+(dp735
+g8
+S'Test rendering of volume slider of video tag'
+p736
+ssS'media/video-seek-past-end-paused.html'
+p737
+(dp738
+g8
+S"Test that seeking paused video past it's duration time sets currentTime to duration and leaves video paused."
+p739
+ssS'http/tests/media/video-cookie.html'
+p740
+(dp741
+g8
+S'Tests that the media player will send the relevant cookies when requesting the media file.<br/>'
+p742
+ssS'media/remove-from-document-before-load.html'
+p743
+(dp744
+g8
+S'<body onload="document.body.innerHTML=\'PASS: A crash did not occur when the media element was removed before loading.\';'
+p745
+ssg210
+g211
+sS'media/video-duration-known-after-eos.html'
+p746
+(dp747
+g8
+S'Tests that duration is known after playback ended.'
+p748
+ssg213
+g214
+sS'http/tests/media/video-play-stall-before-meta-data.html'
+p749
+(dp750
+g8
+S'Test that stalling very early, while loading meta-data, stops delaying the load event.'
+p751
+ssS'media/video-timeupdate-during-playback.html'
+p752
+(dp753
+g8
+S"Test 'timeupdate' events are posted while playing but not while paused."
+p754
+ssS'media/video-single-valid-source.html'
+p755
+(dp756
+g8
+S'Test that a single valid &lt;source&gt; element loads correctly'
+p757
+ssS'media/video-src-invalid-remove.html'
+p758
+(dp759
+g8
+S"Test that removing 'src' attribute does NOT trigger load of &lt;source&gt; elements"
+p760
+ssS'http/tests/security/contentSecurityPolicy/media-src-blocked.html'
+p761
+(dp762
+g8
+S"This test passes if it doesn't alert failure."
+p763
+ssg197
+g198
+sS'media/video-load-readyState.html'
+p764
+(dp765
+g8
+g69
+sssS'nonskip'
+p766
+(dp767
+g403
+g404
+sg349
+g350
+sg679
+g680
+sg246
+g247
+sg536
+g537
+sg670
+g671
+sg707
+g708
+sg581
+g582
+sg367
+g368
+sg316
+g317
+sssb. \ No newline at end of file
diff --git a/media/tools/layout_tests/test_expectations_history.py b/media/tools/layout_tests/test_expectations_history.py
new file mode 100644
index 0000000..4985bba
--- /dev/null
+++ b/media/tools/layout_tests/test_expectations_history.py
@@ -0,0 +1,105 @@
+#!/usr/bin/python
+# 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.
+
+"""A Module for the history of the test expectation file."""
+
+import re
+import sys
+import time
+import pysvn
+
+from datetime import datetime
+from datetime import timedelta
+
+# Default Webkit SVN location for chromium test expectation file.
+# TODO(imasaki): support multiple test expectation files.
+DEFAULT_TEST_EXPECTATION_LOCATION = (
+ 'http://svn.webkit.org/repository/webkit/trunk/'
+ 'LayoutTests/platform/chromium/test_expectations.txt')
+
+
+class TestExpectationsHistory:
+ """A class to represent history of the test expectation file.
+
+ The history is obtained by calling PySVN.log()/diff() APIs.
+
+ TODO(imasaki): Add more functionalities here like getting some statistics
+ about the test expectation file.
+ """
+
+ @staticmethod
+ def GetDiffBetweenTimes(start, end, testname_list,
+ te_location=DEFAULT_TEST_EXPECTATION_LOCATION):
+ """Get difference between time period for the specified test names.
+
+ Given the time period, this method first gets the revision number. Then,
+ it gets the diff for each revision. Finally, it keeps the diff relating to
+ the test names and returns them along with other information about
+ revision.
+
+ Args:
+ start: A timestamp specifying start of the time period to be
+ looked at.
+ end: A timestamp object specifying end of the time period to be
+ looked at.
+ testname_list: A list of strings representing test names of interest.
+ te_location: A location of the test expectation file.
+
+ Returns:
+ A list of tuples (old_rev, new_rev, author, date, message, lines). The
+ |lines| contains the diff of the tests of interest.
+ """
+ # Get directory name which is necesary to call PySVN.checkout().
+ te_location_dir = te_location[0:te_location.rindex('/')]
+ client = pysvn.Client()
+ client.checkout(te_location_dir, 'tmp', recurse=False)
+ logs = client.log('tmp/test_expectations.txt',
+ revision_start=pysvn.Revision(
+ pysvn.opt_revision_kind.date, start),
+ revision_end=pysvn.Revision(
+ pysvn.opt_revision_kind.date, end))
+ result_list = []
+ # Find the last revision outside of time period and
+ # append it to preserve the last change before entering the time period.
+ gobackdays = 1
+ while gobackdays < sys.maxint:
+ start2 = time.mktime(
+ (datetime.fromtimestamp(start) - (
+ timedelta(days=gobackdays))).timetuple())
+ logs2 = client.log('tmp/test_expectations.txt',
+ revision_start=pysvn.Revision(
+ pysvn.opt_revision_kind.date, start2),
+ revision_end=pysvn.Revision(
+ pysvn.opt_revision_kind.date, start))
+ if logs2:
+ logs.append(logs2[len(logs2) - 2])
+ break
+ gobackdays *= 2
+
+ for i in xrange(len(logs) - 1):
+ # PySVN.log() returns logs in reverse chronological order.
+ new_rev = logs[i].revision.number
+ old_rev = logs[i + 1].revision.number
+ # Parsing the actual diff.
+ text = client.diff('/tmp', 'tmp/test_expectations.txt',
+ revision1=pysvn.Revision(
+ pysvn.opt_revision_kind.number, old_rev),
+ revision2=pysvn.Revision(
+ pysvn.opt_revision_kind.number, new_rev))
+ lines = text.split('\n')
+ target_lines = []
+ for line in lines:
+ for testname in testname_list:
+ matches = re.findall(testname, line)
+ if matches:
+ if line[0] == '+' or line[0] == '-':
+ target_lines.append(line)
+ if target_lines:
+ # Needs to convert to normal date string for presentation.
+ result_list.append((
+ old_rev, new_rev, logs[i].author,
+ datetime.fromtimestamp(logs[i].date).strftime('%Y-%m-%d %H:%M:%S'),
+ logs[i].message, target_lines))
+ return result_list
diff --git a/media/tools/layout_tests/test_expectations_history_unittest.py b/media/tools/layout_tests/test_expectations_history_unittest.py
new file mode 100644
index 0000000..a005b82
--- /dev/null
+++ b/media/tools/layout_tests/test_expectations_history_unittest.py
@@ -0,0 +1,60 @@
+#!/usr/bin/python
+# 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.
+
+from datetime import datetime
+from datetime import timedelta
+import time
+import unittest
+
+
+from test_expectations_history import TestExpectationsHistory
+
+
+class TestTestExpectationsHistory(unittest.TestCase):
+ """Unit tests for the TestExpectationsHistory class."""
+
+ def AssertTestName(self, result_list, testname):
+ """Assert test name in the result_list.
+
+ Args:
+ result_list: a result list of tuples returned by
+ |GetDiffBetweenTimesOnly1Diff()|. Each tuple consists of
+ (old_rev, new_rev, author, date, message, lines) where
+ |lines| are the entries in the test expectation file.
+ testname: a testname string.
+
+ Returns:
+ True if the result contains the testname, False otherwise.
+ """
+ for (_, _, _, _, _, lines) in result_list:
+ if any([testname in line for line in lines]):
+ return True
+ return False
+
+ def testGetDiffBetweenTimes(self):
+ t = (2011, 8, 20, 0, 0, 0, 0, 0, 0)
+ ctime = time.mktime(t)
+ t = (2011, 8, 19, 0, 0, 0, 0, 0, 0)
+ ptime = time.mktime(t)
+ testname = 'fast/css/getComputedStyle/computed-style-without-renderer.html'
+ testname_list = [testname]
+ result_list = TestExpectationsHistory.GetDiffBetweenTimes(
+ ctime, ptime, testname_list)
+ self.assertTrue(self.AssertTestName(result_list, testname))
+
+ def testGetDiffBetweenTimesOnly1Diff(self):
+ ptime = datetime.strptime('2011-08-19-23', '%Y-%m-%d-%H')
+ ptime = time.mktime(ptime.timetuple())
+ ctime = datetime.strptime('2011-08-20-00', '%Y-%m-%d-%H')
+ ctime = time.mktime(ctime.timetuple())
+ testname = 'fast/css/getComputedStyle/computed-style-without-renderer.html'
+ testname_list = [testname]
+ result_list = TestExpectationsHistory.GetDiffBetweenTimes(
+ ctime, ptime, testname_list)
+ self.assertTrue(self.AssertTestName(result_list, testname))
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/media/tools/layout_tests/testname/media.csv b/media/tools/layout_tests/testname/media.csv
new file mode 100644
index 0000000..d0b5982
--- /dev/null
+++ b/media/tools/layout_tests/testname/media.csv
@@ -0,0 +1,24 @@
+http/tests/media/\S+.html,
+media/\S+.html,
+media/track/\S+.html,
+http/tests/security/\S+video\S+.html,
+fast/layers/video-layer.html,
+compositing/geometry/clipped-video-controller.html,
+compositing/geometry/video-fixed-scrolling.html,
+compositing/geometry/video-opacity-overlay.html,
+compositing/overflow/overflow-compositing-descendant.html,
+compositing/overflow/scroll-ancestor-update.html,
+compositing/reflections/load-video-in-reflection.html,
+compositing/self-painting-layers.html,
+compositing/self-painting-layers2.html,
+compositing/video/video-background-color.html,
+compositing/video/video-poster.html,
+fast/canvas/webgl/context-lost.html,
+fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html,
+fast/dom/beforeload/remove-video-in-beforeload-listener.html,
+fast/dom/beforeload/video-before-load.html,
+fast/dom/shadow/frameless-media-element-crash.html,
+http/tests/appcache/video.html,
+http/tests/canvas/webgl/origin-clean-conformance.html,
+http/tests/security/contentSecurityPolicy/media-src-allowed.html,
+http/tests/security/contentSecurityPolicy/media-src-blocked.html,
diff --git a/media/tools/layout_tests/trend_graph.py b/media/tools/layout_tests/trend_graph.py
new file mode 100644
index 0000000..c39fff8
--- /dev/null
+++ b/media/tools/layout_tests/trend_graph.py
@@ -0,0 +1,78 @@
+#!/usr/bin/python
+# 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.
+
+import fileinput
+import os
+import sys
+
+
+"""A Module for manipulating trend graph with analyzer result history."""
+
+DEFAULT_TREND_GRAPH_PATH = os.path.join('graph', 'graph.html')
+
+# The following is necesasry to decide the point to insert.
+LINE_INSERT_POINT_FOR_NUMBERS = r'// insert 1'
+LINE_INSERT_POINT_FOR_PASSING_RATE = r'// insert 2'
+
+
+class TrendGraph(object):
+ """A class to manage trend graph which is using Google Visualization APIs.
+
+ Google Visualization API (http://code.google.com/apis/chart/interactive/docs/
+ gallery/annotatedtimeline.html) is used to present the historical analyzer
+ result. Currently, data is directly written to JavaScript file using file
+ in-place replacement for simplicity.
+
+ TODO(imasaki): use GoogleSpreadsheet to store the analyzer result.
+ """
+
+ def __init__(self, location=DEFAULT_TREND_GRAPH_PATH):
+ """Initialize this object with the location of trend graph."""
+ self._location = location
+
+ def Update(self, datetime_string, data_map):
+ """Update trend graphs using |datetime_string| and |data_map|.
+
+ There are two kinds of graphs to be updated (one is for numbers and the
+ other is for passing rates).
+
+ Args:
+ datetime_string: a datetime string (e.g., '2008,1,1,13,45,00)'
+ data_map: a dictionary containing 'whole', 'skip' , 'nonskip',
+ 'passingrate' as its keys and (number, tile, text) string tuples
+ as values for graph annotation.
+ """
+ joined_str = ''
+ for key in ['whole', 'skip', 'nonskip']:
+ joined_str += ','.join(data_map[key]) + ','
+ new_line_for_numbers = ' [new Date(%s),%s],\n' % (datetime_string,
+ joined_str)
+ new_line_for_numbers += ' %s\n' % (
+ LINE_INSERT_POINT_FOR_NUMBERS)
+ self._ReplaceLine(LINE_INSERT_POINT_FOR_NUMBERS, new_line_for_numbers)
+
+ joined_str = '%s,%s,%s' % (
+ data_map['passingrate'][0], data_map['nonskip'][1],
+ data_map['nonskip'][2])
+ new_line_for_passingrate = ' [new Date(%s),%s],\n' % (
+ datetime_string, joined_str)
+ new_line_for_passingrate += ' %s\n' % (
+ LINE_INSERT_POINT_FOR_PASSING_RATE)
+ self._ReplaceLine(LINE_INSERT_POINT_FOR_PASSING_RATE,
+ new_line_for_passingrate)
+
+ def _ReplaceLine(self, search_exp, replace_line):
+ """Replace line which has |search_exp| with |replace_line|.
+
+ Args:
+ search_exp: search expression to find a line to be replaced.
+ replace_line: the new line.
+ """
+ replaced = False
+ for line in fileinput.input(self._location, inplace=1):
+ if search_exp in line:
+ replaced = True
+ line = replace_line
+ sys.stdout.write(line)
diff --git a/media/tools/layout_tests/trend_graph_unittest.py b/media/tools/layout_tests/trend_graph_unittest.py
new file mode 100644
index 0000000..3d35a61
--- /dev/null
+++ b/media/tools/layout_tests/trend_graph_unittest.py
@@ -0,0 +1,35 @@
+#!/usr/bin/python
+# 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.
+
+import os
+import shutil
+import unittest
+
+from trend_graph import TrendGraph
+
+
+class TestTrendGraph(unittest.TestCase):
+
+ def testUpdate(self):
+ test_graph_file_backup_path = os.path.join('test_data', 'graph.html.bak')
+ test_graph_file_path = os.path.join('test_data', 'graph.html')
+ shutil.copyfile(test_graph_file_backup_path, test_graph_file_path)
+ trend_graph = TrendGraph(test_graph_file_path)
+ data_map = {}
+ data_map['whole'] = (str(1), 'undefined', 'undefined')
+ data_map['skip'] = (str(2), 'undefined', 'undefined')
+ data_map['nonskip'] = (str(3), 'undefined', 'undefined')
+ data_map['passingrate'] = (str(4), 'undefined', 'undefined')
+
+ trend_graph.Update('2008,1,1,13,45,00', data_map)
+ # Assert the result graph from the file.
+ f = open(test_graph_file_path)
+ lines2 = f.readlines()
+ f.close()
+ lineCount = 0
+ for line in lines2:
+ if '2008,1,1,13,45,00' in line:
+ lineCount += 1
+ self.assertEqual(lineCount, 2)