Roll 50: Updated for push to origin/master.

TBR=jacobr@google.com

Review-Url: https://codereview.chromium.org/2875773003 .
This commit is contained in:
Terry Lucas 2017-05-10 18:16:26 -07:00
parent a68b44924e
commit f27144d7b5
52 changed files with 10966 additions and 7295 deletions

2
DEPS
View file

@ -122,7 +122,7 @@ vars = {
"watcher_tag": "@0.9.7+3",
"web_components_rev": "@6349e09f9118dce7ae1b309af5763745e25a9d61",
"web_socket_channel_tag": "@1.0.4",
"WebCore_rev": "@a86fe28efadcfc781f836037a80f27e22a5dad17",
"WebCore_rev": "@3c45690813c112373757bbef53de1602a62af609",
"when_tag": "@0.2.0+2",
"which_tag": "@0.1.3+1",
"yaml_tag": "@2.1.12",

View file

@ -50,7 +50,7 @@ char kTSanDefaultSuppressions[] =
"race:base/threading/watchdog.cc\n"
// http://crbug.com/157586
"race:third_party/libvpx/source/libvpx/vp8/decoder/threading.c\n"
"race:third_party/libvpx_new/source/libvpx/vp8/decoder/threading.c\n"
// http://crbug.com/158718
"race:third_party/ffmpeg/libavcodec/pthread.c\n"
@ -62,8 +62,8 @@ char kTSanDefaultSuppressions[] =
"race:media::ReleaseData\n"
// http://crbug.com/158922
"race:third_party/libvpx/source/libvpx/vp8/encoder/*\n"
"race:third_party/libvpx/source/libvpx/vp9/encoder/*\n"
"race:third_party/libvpx_new/source/libvpx/vp8/encoder/*\n"
"race:third_party/libvpx_new/source/libvpx/vp9/encoder/*\n"
// http://crbug.com/189177
"race:thread_manager\n"

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -419,8 +419,7 @@ class Database extends EventTarget {
@DomName('IDBDatabase.version')
@DocsEditable()
Object get version =>
(_blink.BlinkIDBDatabase.instance.version_Getter_(this));
int get version => _blink.BlinkIDBDatabase.instance.version_Getter_(this);
@DomName('IDBDatabase.close')
@DocsEditable()
@ -1258,7 +1257,7 @@ class Request extends EventTarget {
@DomName('IDBRequest.error')
@DocsEditable()
DomError get error => _blink.BlinkIDBRequest.instance.error_Getter_(this);
DomException get error => _blink.BlinkIDBRequest.instance.error_Getter_(this);
@DomName('IDBRequest.readyState')
@DocsEditable()
@ -1374,7 +1373,8 @@ class Transaction extends EventTarget {
@DomName('IDBTransaction.error')
@DocsEditable()
DomError get error => _blink.BlinkIDBTransaction.instance.error_Getter_(this);
DomException get error =>
_blink.BlinkIDBTransaction.instance.error_Getter_(this);
@DomName('IDBTransaction.mode')
@DocsEditable()

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -35,6 +35,7 @@ final web_audioBlinkMap = {
'DelayNode': () => DelayNode.instanceRuntimeType,
'DynamicsCompressorNode': () => DynamicsCompressorNode.instanceRuntimeType,
'GainNode': () => GainNode.instanceRuntimeType,
'IIRFilterNode': () => IirFilterNode.instanceRuntimeType,
'MediaElementAudioSourceNode': () =>
MediaElementAudioSourceNode.instanceRuntimeType,
'MediaStreamAudioDestinationNode': () =>
@ -221,7 +222,7 @@ class AudioBuffer extends DartHtmlDomObject {
@DomName('AudioBufferCallback')
// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBuffer-section
@Experimental()
typedef void AudioBufferCallback(AudioBuffer audioBuffer);
typedef void AudioBufferCallback(audioBuffer_OR_exception);
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
@ -468,6 +469,13 @@ class AudioContext extends EventTarget {
GainNode createGain() =>
_blink.BlinkAudioContext.instance.createGain_Callback_0_(this);
@DomName('AudioContext.createIIRFilter')
@DocsEditable()
@Experimental() // untriaged
IirFilterNode createIirFilter(List<num> feedForward, List<num> feedBack) =>
_blink.BlinkAudioContext.instance
.createIIRFilter_Callback_2_(this, feedForward, feedBack);
@DomName('AudioContext.createMediaElementSource')
@DocsEditable()
MediaElementAudioSourceNode createMediaElementSource(
@ -497,12 +505,15 @@ class AudioContext extends EventTarget {
PannerNode createPanner() =>
_blink.BlinkAudioContext.instance.createPanner_Callback_0_(this);
@DomName('AudioContext.createPeriodicWave')
@DocsEditable()
@Experimental() // untriaged
PeriodicWave createPeriodicWave(Float32List real, Float32List imag) =>
_blink.BlinkAudioContext.instance
.createPeriodicWave_Callback_2_(this, real, imag);
PeriodicWave createPeriodicWave(Float32List real, Float32List imag,
[Map options]) {
if (options != null) {
return _blink.BlinkAudioContext.instance.createPeriodicWave_Callback_3_(
this, real, imag, convertDartToNative_Dictionary(options));
}
return _blink.BlinkAudioContext.instance
.createPeriodicWave_Callback_2_(this, real, imag);
}
ScriptProcessorNode createScriptProcessor(
[int bufferSize, int numberOfInputChannels, int numberOfOutputChannels]) {
@ -535,17 +546,19 @@ class AudioContext extends EventTarget {
WaveShaperNode createWaveShaper() =>
_blink.BlinkAudioContext.instance.createWaveShaper_Callback_0_(this);
void _decodeAudioData(
ByteBuffer audioData, AudioBufferCallback successCallback,
[AudioBufferCallback errorCallback]) {
Future _decodeAudioData(ByteBuffer audioData,
[AudioBufferCallback successCallback,
AudioBufferCallback errorCallback]) {
if (errorCallback != null) {
_blink.BlinkAudioContext.instance.decodeAudioData_Callback_3_(
return _blink.BlinkAudioContext.instance.decodeAudioData_Callback_3_(
this, audioData, successCallback, errorCallback);
return;
}
_blink.BlinkAudioContext.instance
.decodeAudioData_Callback_2_(this, audioData, successCallback);
return;
if (successCallback != null) {
return _blink.BlinkAudioContext.instance
.decodeAudioData_Callback_2_(this, audioData, successCallback);
}
return _blink.BlinkAudioContext.instance
.decodeAudioData_Callback_1_(this, audioData);
}
@DomName('AudioContext.resume')
@ -724,35 +737,32 @@ class AudioNode extends EventTarget {
int get numberOfOutputs =>
_blink.BlinkAudioNode.instance.numberOfOutputs_Getter_(this);
void _connect(destination, [int output, int input]) {
AudioNode _connect(destination, [int output, int input]) {
if ((destination is AudioNode) && output == null && input == null) {
_blink.BlinkAudioNode.instance.connect_Callback_1_(this, destination);
return;
return _blink.BlinkAudioNode.instance
.connect_Callback_1_(this, destination);
}
if ((output is int || output == null) &&
(destination is AudioNode) &&
input == null) {
_blink.BlinkAudioNode.instance
return _blink.BlinkAudioNode.instance
.connect_Callback_2_(this, destination, output);
return;
}
if ((input is int || input == null) &&
(output is int || output == null) &&
(destination is AudioNode)) {
_blink.BlinkAudioNode.instance
return _blink.BlinkAudioNode.instance
.connect_Callback_3_(this, destination, output, input);
return;
}
if ((destination is AudioParam) && output == null && input == null) {
_blink.BlinkAudioNode.instance.connect_Callback_1_(this, destination);
return;
return _blink.BlinkAudioNode.instance
.connect_Callback_1_(this, destination);
}
if ((output is int || output == null) &&
(destination is AudioParam) &&
input == null) {
_blink.BlinkAudioNode.instance
return _blink.BlinkAudioNode.instance
.connect_Callback_2_(this, destination, output);
return;
}
throw new ArgumentError("Incorrect number or type of arguments");
}
@ -853,35 +863,43 @@ class AudioParam extends DartHtmlDomObject {
@DomName('AudioParam.cancelScheduledValues')
@DocsEditable()
void cancelScheduledValues(num startTime) => _blink.BlinkAudioParam.instance
.cancelScheduledValues_Callback_1_(this, startTime);
AudioParam cancelScheduledValues(num startTime) =>
_blink.BlinkAudioParam.instance
.cancelScheduledValues_Callback_1_(this, startTime);
@DomName('AudioParam.exponentialRampToValueAtTime')
@DocsEditable()
void exponentialRampToValueAtTime(num value, num time) =>
AudioParam exponentialRampToValueAtTime(num value, num time) =>
_blink.BlinkAudioParam.instance
.exponentialRampToValueAtTime_Callback_2_(this, value, time);
@DomName('AudioParam.linearRampToValueAtTime')
@DocsEditable()
void linearRampToValueAtTime(num value, num time) =>
AudioParam linearRampToValueAtTime(num value, num time) =>
_blink.BlinkAudioParam.instance
.linearRampToValueAtTime_Callback_2_(this, value, time);
@DomName('AudioParam.setTargetAtTime')
@DocsEditable()
void setTargetAtTime(num target, num time, num timeConstant) =>
_blink.BlinkAudioParam.instance
AudioParam setTargetAtTime(num target, num time, num timeConstant) {
if ((timeConstant is num) && (time is num) && (target is num)) {
return _blink.BlinkAudioParam.instance
.setTargetAtTime_Callback_3_(this, target, time, timeConstant);
}
if ((timeConstant is num) && (time is num) && (target is num)) {
return _blink.BlinkAudioParam.instance
.setTargetAtTime_Callback_3_(this, target, time, timeConstant);
}
throw new ArgumentError("Incorrect number or type of arguments");
}
@DomName('AudioParam.setValueAtTime')
@DocsEditable()
void setValueAtTime(num value, num time) => _blink.BlinkAudioParam.instance
.setValueAtTime_Callback_2_(this, value, time);
AudioParam setValueAtTime(num value, num time) =>
_blink.BlinkAudioParam.instance
.setValueAtTime_Callback_2_(this, value, time);
@DomName('AudioParam.setValueCurveAtTime')
@DocsEditable()
void setValueCurveAtTime(Float32List values, num time, num duration) =>
AudioParam setValueCurveAtTime(Float32List values, num time, num duration) =>
_blink.BlinkAudioParam.instance
.setValueCurveAtTime_Callback_3_(this, values, time, duration);
}
@ -1199,6 +1217,35 @@ class GainNode extends AudioNode {
// WARNING: Do not edit - generated code.
@DocsEditable()
@DomName('IIRFilterNode')
@Experimental() // untriaged
class IirFilterNode extends AudioNode {
// To suppress missing implicit constructor warnings.
factory IirFilterNode._() {
throw new UnsupportedError("Not supported");
}
@Deprecated("Internal Use Only")
external static Type get instanceRuntimeType;
@Deprecated("Internal Use Only")
IirFilterNode.internal_() : super.internal_();
@DomName('IIRFilterNode.getFrequencyResponse')
@DocsEditable()
@Experimental() // untriaged
void getFrequencyResponse(Float32List frequencyHz, Float32List magResponse,
Float32List phaseResponse) =>
_blink.BlinkIIRFilterNode.instance.getFrequencyResponse_Callback_3_(
this, frequencyHz, magResponse, phaseResponse);
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// WARNING: Do not edit - generated code.
@DocsEditable()
@DomName('MediaElementAudioSourceNode')
// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#MediaElementAudioSourceNode
@ -1334,12 +1381,25 @@ class OfflineAudioContext extends AudioContext {
@Deprecated("Internal Use Only")
OfflineAudioContext.internal_() : super.internal_();
@DomName('OfflineAudioContext.resume')
@DocsEditable()
@Experimental() // untriaged
Future resume() => convertNativePromiseToDartFuture(
_blink.BlinkOfflineAudioContext.instance.resume_Callback_0_(this));
@DomName('OfflineAudioContext.startRendering')
@DocsEditable()
@Experimental() // untriaged
Future startRendering() =>
convertNativePromiseToDartFuture(_blink.BlinkOfflineAudioContext.instance
.startRendering_Callback_0_(this));
@DomName('OfflineAudioContext.suspend')
@DocsEditable()
@Experimental() // untriaged
Future suspend(num suspendTime) =>
convertNativePromiseToDartFuture(_blink.BlinkOfflineAudioContext.instance
.suspend_Callback_1_(this, suspendTime));
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a

File diff suppressed because it is too large Load diff

View file

@ -234,6 +234,7 @@ LayoutTests/fast/canvas/webgl/webgl-specific_t01: Pass, RuntimeError # Issue 220
LayoutTests/fast/canvas/webgl/webgl-texture-binding-preserved_t01: RuntimeError # Issue 25653
LayoutTests/fast/canvas/webgl/webgl-viewport-parameters-preserved_t01: Pass, RuntimeError # Issue 22026
LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: Pass, RuntimeError # Issue 22026
LayoutTests/fast/css/font-shorthand-from-longhands_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css-generated-content/bug91547_t01: Skip # Test reloads itself. Issue 18558.
LayoutTests/fast/css-generated-content/hit-test-generated-content_t01: Skip # co19 issue 732.
LayoutTests/fast/css-generated-content/malformed-url_t01: RuntimeError # co19-roll r786: Please triage this failure.
@ -294,8 +295,9 @@ LayoutTests/fast/css/computed-offset-with-zoom_t01: Skip # co19 issue 732.
LayoutTests/fast/css/content/content-none_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/content/content-normal_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/counters/complex-before_t01: RuntimeError, Pass # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/css-properties-case-insensitive_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/css-escaped-identifier_t01: RuntimeError # co19 issue 14
LayoutTests/fast/css/css-properties-case-insensitive_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/deprecated-flexbox-auto-min-size_t01: Pass, RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/first-child-display-change-inverse_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/focus-display-block-inline_t01: RuntimeError, Pass # co19-roll r761: Please triage this failure.
@ -306,6 +308,8 @@ LayoutTests/fast/css/font-face-unicode-range-load_t01: RuntimeError, Pass # co19
LayoutTests/fast/css/font-face-unicode-range-overlap-load_t01: RuntimeError, Pass # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/fontfaceset-events_t01: Pass, RuntimeError # Issue 23433
LayoutTests/fast/css/fontfaceset-loadingdone_t01: RuntimeError, Pass # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/getComputedStyle/computed-style-border-image_t01: RuntimeError # See Issue https://github.com/dart-lang/co19/issues/92
LayoutTests/fast/css/getComputedStyle/computed-style-cross-fade_t01: RuntimeError # See Issue https://github.com/dart-lang/co19/issues/93
LayoutTests/fast/css/html-attr-case-sensitivity_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/id-or-class-before-stylesheet_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/inherit-initial-shorthand-values_t01: RuntimeError # co19-roll r761: Please triage this failure.
@ -318,7 +322,7 @@ LayoutTests/fast/css/link-alternate-stylesheet-5_t01: RuntimeError # co19-roll r
LayoutTests/fast/css/media-query-recovery_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/parsing-at-rule-recovery_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/parsing-css-allowed-string-characters_t01: RuntimeError # 45 Roll co19 test rewrite issue 25807
LayoutTests/fast/css/parsing-object-position_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/parsing-css-nonascii_t01: RuntimeError # See Issue https://github.com/dart-lang/co19/issues/95
LayoutTests/fast/css/parsing-page-rule_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/parsing-selector-error-recovery_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/pseudo-any_t01: RuntimeError, Pass # co19-roll r761: Please triage this failure.
@ -329,6 +333,7 @@ LayoutTests/fast/css/readonly-pseudoclass-opera-002_t01: RuntimeError # co19-rol
LayoutTests/fast/css/readonly-pseudoclass-opera-003_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/readonly-pseudoclass-opera-004_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/readonly-pseudoclass-opera-005_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/selector-text-escape_t01: RuntimeError # See Issue https://github.com/dart-lang/co19/issues/96
LayoutTests/fast/css/sticky/parsing-position-sticky_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/style-element-process-crash_t01: Skip # Times out. co19-roll r761: Please triage this failure.
LayoutTests/fast/css/style-scoped/style-scoped-nested_t01: RuntimeError # co19-roll r786: Please triage this failure.
@ -336,8 +341,9 @@ LayoutTests/fast/css/style-scoped/style-scoped-with-dom-operation_t01: RuntimeEr
LayoutTests/fast/css/style-scoped/style-scoped-with-important-rule_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/css/stylesheet-enable-first-alternate-on-load-sheet_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/stylesheet-enable-second-alternate-link_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/unicode-bidi-computed-value_t01: RuntimeError # See Issue https://github.com/dart-lang/co19/issues/97
LayoutTests/fast/css/url-with-multi-byte-unicode-escape_t01: RuntimeError # co19 issue 14
LayoutTests/fast/css/webkit-keyframes-errors_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited_t01: Pass, RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-line_t01: RuntimeError # co19-roll r786: Please triage this failure.
@ -346,17 +352,12 @@ LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyl
LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-inherited_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify_t01: Pass, RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/css-intrinsic-dimensions/multicol_t01: RuntimeError # See Issue https://github.com/dart-lang/co19/issues/94
LayoutTests/fast/dom/anchor-without-content_t01: RuntimeError # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/attribute-namespaces-get-set_t01: RuntimeError # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/blur-contenteditable_t01: RuntimeError, Pass # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/characterdata-api-arguments_t01: RuntimeError # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/client-width-height-quirks_t01: RuntimeError # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/computed-style-set-property_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/computed-style-set-property_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/createDocumentType2_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/createDocumentType2_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/createElementNS_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/createElementNS_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/css-cached-import-rule_t01: Skip # Test reloads itself. Issue 18558.
LayoutTests/fast/dom/css-innerHTML_t01: RuntimeError # Test is incorrect.
LayoutTests/fast/dom/cssTarget-crash_t01: Skip # Test reloads itself. Issue 18558.
@ -364,8 +365,6 @@ LayoutTests/fast/dom/custom/document-register-basic_t01: RuntimeError # Bad test
LayoutTests/fast/dom/custom/document-register-namespace_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/custom/document-register-namespace_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/custom/document-register-svg-extends_t01: RuntimeError # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/custom/document-register-type-extensions_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/custom/document-register-type-extensions_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/custom/element-names_t01: RuntimeError # 45 Roll issue dart-lang/co19/issues/25
LayoutTests/fast/dom/custom/element-type_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/custom/element-type_t01: RuntimeError # Please triage this failure.
@ -379,11 +378,8 @@ LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-strict-
LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: RuntimeError # co19-roll r706. Please triage this failure.
LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport_t01: RuntimeError # co19-roll r706. Please triage this failure.
LayoutTests/fast/dom/Document/CaretRangeFromPoint/replace-element_t01: Pass, RuntimeError # co19-roll r706. Please triage this failure.
LayoutTests/fast/dom/Document/createElement-invalid-names_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/Document/createElement-invalid-names_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/Document/createElementNS-namespace-err_t01: RuntimeError # co19-roll r706. Please triage this failure.
LayoutTests/fast/dom/DOMException/prototype-object_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/DOMException/prototype-object_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/DOMException/dispatch-event-exception_t01: RuntimeError # See Issue https://github.com/dart-lang/co19/issues/98
LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: RuntimeError # co19-roll r706. Please triage this failure.
LayoutTests/fast/dom/Element/attribute-uppercase_t01: RuntimeError # co19-roll r706. Please triage this failure.
LayoutTests/fast/dom/Element/getClientRects_t01: RuntimeError # co19-roll r706. Please triage this failure.
@ -430,14 +426,10 @@ LayoutTests/fast/dom/HTMLScriptElement/async-inline-script_t01: RuntimeError # c
LayoutTests/fast/dom/HTMLScriptElement/async-onbeforeload_t01: RuntimeError # co19-roll r722: Please triage this failure.
LayoutTests/fast/dom/HTMLScriptElement/defer-inline-script_t01: RuntimeError, Pass # co19-roll r722: Please triage this failure.
LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload_t01: RuntimeError # co19-roll r722: Please triage this failure.
LayoutTests/fast/dom/HTMLScriptElement/remove-source_t01: RuntimeError # Issue 18128
LayoutTests/fast/dom/HTMLScriptElement/remove-in-beforeload_t01: RuntimeError # co19-roll r722: Please triage this failure.
LayoutTests/fast/dom/HTMLScriptElement/script-set-src_t01: RuntimeError, Pass # co19-roll r722: Please triage this failure.
LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: RuntimeError # co19-roll r722: Issue 18127
LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc_t01: RuntimeError # co19-roll r722: Issue 18250
LayoutTests/fast/dom/HTMLTemplateElement/cycles_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/HTMLTemplateElement/cycles_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/HTMLTemplateElement/cycles-in-shadow_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/HTMLTemplateElement/cycles-in-shadow_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/HTMLTemplateElement/innerHTML_t01: RuntimeError # co19-roll r722: Issue 18249
LayoutTests/fast/dom/HTMLTemplateElement/ownerDocumentXHTML_t01: RuntimeError # co19-roll r722: Please triage this failure.
LayoutTests/fast/dom/location-hash_t01: Pass, RuntimeError # co19-roll r738: Please triage this failure.
@ -446,8 +438,6 @@ LayoutTests/fast/dom/MutationObserver/observe-childList_t01: RuntimeError # co19
LayoutTests/fast/dom/MutationObserver/weak-callback-gc-crash_t01: RuntimeError # co19-roll r722: Please triage this failure.
LayoutTests/fast/dom/navigatorcontentutils/is-protocol-handler-registered_t01: RuntimeError # Dartium JSInterop failure
LayoutTests/fast/dom/navigatorcontentutils/unregister-protocol-handler_t01: RuntimeError # Dartium JSInterop failure
LayoutTests/fast/dom/Node/contains-method_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/Node/contains-method_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/Node/fragment-mutation_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/Node/initial-values_t01: RuntimeError # co19-roll r722: Please triage this failure.
LayoutTests/fast/dom/option-properties_t01: RuntimeError # co19-roll r738: Please triage this failure.
@ -456,7 +446,10 @@ LayoutTests/fast/dom/Range/bug-19527_t01: RuntimeError # Please triage this fail
LayoutTests/fast/dom/Range/range-created-during-remove-children_t01: RuntimeError, Pass # co19-roll r722: Please triage this failure.
LayoutTests/fast/dom/Range/range-detached-exceptions_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/set-innerHTML_t01: RuntimeError # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: RuntimeError # See Issue
LayoutTests/fast/dom/shadow/form-in-shadow_t01: Skip # Test reloads itself. Issue 18558.
LayoutTests/fast/dom/shadow/host-context-pseudo-class-css-text_t01: RuntimeError # See Issue https://github.com/dart-lang/co19/issues/100
LayoutTests/fast/dom/shadow/host-pseudo-class-css-text_t01: RuntimeError # See Issue https://github.com/dart-lang/co19/issues/1
LayoutTests/fast/dom/shadow/no-renderers-for-light-children_t01: RuntimeError # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/shadow/pseudoclass-update-checked-option_t01: RuntimeError # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-optgroup_t01: RuntimeError # co19-roll r738: Please triage this failure.
@ -464,12 +457,11 @@ LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-option_t01: RuntimeError
LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-optgroup_t01: RuntimeError # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-option_t01: RuntimeError # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/shadow/shadow-content-crash_t01: RuntimeError # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/shadow/shadow-hierarchy-exception_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/shadow/shadow-hierarchy-exception_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/shadow/shadow-removechild-and-blur-event_t01: RuntimeError, Pass # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/shadow/shadowroot-keyframes_t01: RuntimeError, Pass # Issue 29018
LayoutTests/fast/dom/StyleSheet/css-medialist-item_t01: RuntimeError # Dartium JSInterop failure
LayoutTests/fast/dom/StyleSheet/discarded-sheet-owner-null_t01: Skip # Test reloads itself. Issue 18558.
LayoutTests/fast/dom/Window/getMatchedCSSRules-with-pseudo-elements-complex_t01: RuntimeError # See Issue https://github.com/dart-lang/co19/issues/102
LayoutTests/fast/dom/Window/window-resize_t01: RuntimeError # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/Window/window-resize-contents_t01: Pass, RuntimeError # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/Window/window-scroll-arguments_t01: RuntimeError # co19-roll r738: Please triage this failure.
@ -494,10 +486,6 @@ LayoutTests/fast/events/input-focus-no-duplicate-events_t01: Pass, RuntimeError
LayoutTests/fast/events/invalid-003_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/events/invalid-004_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/events/label-focus_t01: Pass, RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/events/mutation-during-append-child_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/events/mutation-during-append-child_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/events/mutation-during-insert-before_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/events/mutation-during-insert-before_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/events/mutation-during-replace-child_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/events/mutation-during-replace-child-2_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/events/nested-event-remove-node-crash_t01: Skip # Flaky timeout. co19-roll r786: Please triage this failure.
@ -510,6 +498,7 @@ LayoutTests/fast/exclusions/parsing/parsing-wrap-through_t01: RuntimeError # co1
LayoutTests/fast/files/blob-close_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/files/blob-close-read_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/files/blob-close-revoke_t01: RuntimeError # Experimental feature not exposed anywhere yet
LayoutTests/fast/files/url-null_t01: RuntimeError # See Issue https://github.com/dart-lang/co19/issues/103
LayoutTests/fast/files/xhr-response-blob_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/filesystem/async-operations_t01: Pass, RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/filesystem/directory-entry-to-uri_t01: RuntimeError # co19-roll r786: Please triage this failure.
@ -553,17 +542,20 @@ LayoutTests/fast/forms/listbox-select-all_t01: Pass, RuntimeError # co19-roll r8
LayoutTests/fast/forms/listbox-selection-2_t01: RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/menulist-disabled-selected-option_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/menulist-selection-reset_t01: RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/menulist-submit-without-selection_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/missing-action_t01: Skip # Test reloads itself. Issue 18558.
LayoutTests/fast/forms/multiple-selected-options-innerHTML_t01: RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/option-change-single-selected_t01: RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/option-strip-unicode-spaces_t01: RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/parser-associated-form-removal_t01: RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/plaintext-mode-1_t01: RuntimeError # Fails in dart2js too
LayoutTests/fast/forms/search-popup-crasher_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/select-change-popup-to-listbox-in-event-handler_t01: Skip # Times out. co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/select-clientheight-large-size_t01: RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/select-clientheight-with-multiple-attr_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/select-list-box-mouse-focus_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/select-max-length_t01: RuntimeError # See Issue https://github.com/dart-lang/co19/issues/104
LayoutTests/fast/forms/setrangetext_t01: RuntimeError # See Issue https://github.com/dart-lang/co19/issues/105
LayoutTests/fast/forms/submit-form-attributes_t01: RuntimeError # co19 issue 14
LayoutTests/fast/forms/submit-form-with-dirname-attribute_t01: Skip # Test reloads itself. Issue 18558.
LayoutTests/fast/forms/submit-form-with-dirname-attribute-with-ancestor-dir-attribute_t01: Skip # Test reloads itself. Issue 18558.
LayoutTests/fast/forms/submit-form-with-dirname-attribute-with-nonhtml-ancestor_t01: Skip # Test reloads itself. Issue 18558.
@ -573,6 +565,8 @@ LayoutTests/fast/forms/textarea-paste-newline_t01: Pass, RuntimeError # Issue 23
LayoutTests/fast/forms/textarea-scrollbar-height_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/textarea-submit-crash_t01: Skip # Test reloads itself. Issue 18558.
LayoutTests/fast/forms/textfield-focus-out_t01: Skip # Times out. co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/ValidityState-tooLong-input_t01: RuntimeError # Please triage this failure
LayoutTests/fast/forms/ValidityState-tooLong-textarea_t01: RuntimeError # Please triage this failure
LayoutTests/fast/html/adjacent-html-context-element_t01:RuntimeError # co19 issue 11.
LayoutTests/fast/html/hidden-attr_t01: RuntimeError # co19-roll r706. Please triage this failure.
LayoutTests/fast/html/imports/import-element-removed-flag_t01: RuntimeError # co19-roll r706. Please triage this failure.
@ -585,6 +579,7 @@ LayoutTests/fast/inline/inline-with-empty-inline-children_t01: RuntimeError # co
LayoutTests/fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline_t01: RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/inline/parent-inline-element-padding-contributes-width_t01: RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/inline/positioned-element-padding-contributes-width_t01: RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/innerHTML/innerHTML-uri-resolution_t01: RuntimeError # See Issue https://github.com/dart-lang/co19/issues/106
LayoutTests/fast/layers/zindex-hit-test_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/layers/zindex-hit-test_t01: RuntimeError # co19 issue 11.
LayoutTests/fast/lists/list-style-position-inside_t01: Pass, RuntimeError # co19 issue 11.
@ -775,6 +770,9 @@ LayoutTests/fast/url/relative-win_t01: RuntimeError # co19-roll r786: Please tri
LayoutTests/fast/url/segments_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/url/segments-from-data-url_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/url/standard-url_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/writing-mode/auto-sizing-orthogonal-flows_t01: RuntimeError # co19 test failure div container data-expected-height should be 575 not 590
LayoutTests/fast/writing-mode/flipped-blocks-hit-test-overflow-scroll_t01: RuntimeError # Please triage this failure
LayoutTests/fast/writing-mode/flipped-blocks-hit-test-overflow_t01: RuntimeError # Please triage this failure
LayoutTests/fast/writing-mode/percentage-margins-absolute-replaced_t01: Pass, RuntimeError # co19 issue 11.
LayoutTests/fast/writing-mode/positionForPoint_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/writing-mode/positionForPoint_t01: Skip # co19 issue 732.
@ -1022,7 +1020,6 @@ WebPlatformTest/dom/EventTarget/dispatchEvent_A02_t01: RuntimeError # co19-roll
WebPlatformTest/dom/EventTarget/dispatchEvent_A03_t01: Skip # co19-roll r722: Please triage this failure.
WebPlatformTest/dom/Node-replaceChild_t01: RuntimeError # co19-roll r761: Please triage this failure.
WebPlatformTest/dom/nodes/attributes/setAttribute_A01_t01: RuntimeError # Please triage this failure.
WebPlatformTest/dom/nodes/attributes/setAttribute_A01_t01: RuntimeError # Please triage this failure.
WebPlatformTest/dom/nodes/attributes/setAttribute_A03_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/dom/nodes/attributes/setAttributeNS_A05_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/dom/nodes/attributes/setAttributeNS_A06_t03: RuntimeError # co19-roll r722: Please triage this failure.
@ -1031,7 +1028,6 @@ WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t03: RuntimeError # co19
WebPlatformTest/dom/nodes/attributes/setAttributeNS_A08_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/dom/nodes/Document-adoptNode_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/dom/nodes/Document-createElement_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/dom/nodes/Document-createElementNS_t01: RuntimeError, Pass # co19-roll r722: Please triage this failure.
WebPlatformTest/dom/nodes/Document-getElementsByTagName_t01: RuntimeError, Pass # co19-roll r722: Please triage this failure.
WebPlatformTest/dom/nodes/DOMImplementation-createDocument_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/dom/nodes/DOMImplementation-createDocumentType_t01: RuntimeError, Pass # co19-roll r722: Please triage this failure.
@ -1039,7 +1035,6 @@ WebPlatformTest/dom/nodes/DOMImplementation-createHTMLDocument_t01: RuntimeError
WebPlatformTest/dom/nodes/Element-childElementCount_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/dom/nodes/Element-childElementCount-nochild_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/dom/nodes/Node-appendChild_t01: RuntimeError # Please triage this failure.
WebPlatformTest/dom/nodes/Node-appendChild_t01: RuntimeError # Please triage this failure.
WebPlatformTest/dom/nodes/Node-appendChild_t02: RuntimeError, Pass # co19-roll r722: Please triage this failure.
WebPlatformTest/dom/nodes/Node-insertBefore_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/dom/nodes/Node-isEqualNode_t01: RuntimeError # co19-roll r722: Please triage this failure.
@ -1083,10 +1078,7 @@ WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLEl
WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src_t01: RuntimeError # co19-roll r738: Please triage this failure.
WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues_t01: Skip # Times out and fails. # co19-roll r738: Please triage this failure.LayoutTests/fast/dom/Window/window-resize-contents_t01: RuntimeError # co19-roll r738: Please triage this failure.
WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: RuntimeError # co19-roll r738: Please triage this failure.
WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: RuntimeError # co19-roll r738: Please triage this failure.
WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formaction_t01: RuntimeError # co19-roll r738: Please triage this failure.
WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: RuntimeError # Dartium 45 roll
WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setRangeText_t01: RuntimeError # co19-roll r738: Please triage this failure.
WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange_t01: RuntimeError, Pass # co19-roll r738: Please triage this failure. Pass on macos.
WebPlatformTest/html/semantics/forms/the-button-element/button-validation_t01: RuntimeError # co19-roll r738: Please triage this failure.
WebPlatformTest/html/semantics/forms/the-fieldset-element/disabled_t01: RuntimeError # co19-roll r738: Please triage this failure.
@ -1108,7 +1100,6 @@ WebPlatformTest/html/semantics/forms/the-input-element/range_t01: RuntimeError #
WebPlatformTest/html/semantics/forms/the-input-element/time_t01: RuntimeError # co19-roll r761: Please triage this failure.
WebPlatformTest/html/semantics/forms/the-input-element/time_t02: RuntimeError # co19-roll r761: Please triage this failure.
WebPlatformTest/html/semantics/forms/the-input-element/type-change-state_t01: RuntimeError # co19-roll r761: Please triage this failure.
WebPlatformTest/html/semantics/forms/the-input-element/url_t01: RuntimeError # co19-roll r761: Please triage this failure.
WebPlatformTest/html/semantics/forms/the-input-element/valueMode_t01: RuntimeError # co19-roll r761: Please triage this failure.
WebPlatformTest/html/semantics/forms/the-input-element/week_t01: RuntimeError # co19-roll r761: Please triage this failure.
WebPlatformTest/html/semantics/forms/the-meter-element/meter_t01: RuntimeError # co19-roll r761: Please triage this failure.
@ -1137,7 +1128,6 @@ WebPlatformTest/html/semantics/selectors/pseudo-classes/link_t01: RuntimeError #
WebPlatformTest/html/semantics/selectors/pseudo-classes/valid-invalid_t01: RuntimeError # co19 issue 11.
WebPlatformTest/html/semantics/selectors/pseudo-classes/valid-invalid_t01: RuntimeError # co19-roll r761: Please triage this failure.
WebPlatformTest/html/semantics/tabular-data/the-table-element/table-rows_t01: RuntimeError # co19-roll r761: Please triage this failure.
WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: RuntimeError # co19-roll r761: Please triage this failure.
WebPlatformTest/html/semantics/text-level-semantics/the-a-element/a.text-getter_t01: RuntimeError # co19 issue 11.
WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t01: RuntimeError # co19 issue 11.
WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t02: RuntimeError # co19-roll r786: Please triage this failure.
@ -1171,7 +1161,7 @@ WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: RuntimeError # co
WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: RuntimeError # Not clear that any of this works. Also suppressed in dart2js
WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: Pass, RuntimeError # Flaky with Dartium JsInterop. Seems like timing issues in the test.
WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: Pass, RuntimeError, Timeout # Flaky with Dartium JsInterop. Seems like timing issues in the test.
WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: Skip # co19-roll r722: Please triage this failure.
WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: Skip # co19-roll r722: Please triage this failure.
WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: Skip # co19-roll r722: Please triage this failure.
@ -1181,6 +1171,15 @@ WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: Runtim
WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: RuntimeError # Issue https://github.com/dart-lang/co19/issues/107
WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: RuntimeError # Issue https://github.com/dart-lang/co19/issues/107
WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: RuntimeError # Issue https://github.com/dart-lang/co19/issues/107
WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: RuntimeError # Issue https://github.com/dart-lang/co19/issues/107
WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: RuntimeError # Issue https://github.com/dart-lang/co19/issues/107
WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: RuntimeError # Issue https://github.com/dart-lang/co19/issues/107
WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: RuntimeError # Issue https://github.com/dart-lang/co19/issues/107
WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: RuntimeError # Issue https://github.com/dart-lang/co19/issues/107
WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: RuntimeError # Issue https://github.com/dart-lang/co19/issues/107
WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: RuntimeError # co19-roll r722: Please triage this failure.
@ -1203,6 +1202,32 @@ LayoutTests/fast/events/clipboard-dataTransferItemList-remove_t01: Skip # Issue
LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t06: Skip # Issue 26134, timeout
html/cross_domain_iframe_test: RuntimeError # Issue 26134
# TODO(terry): Failing tests with Dartium 50 roll (NEED TO FIX All)
# ---------------------------------------------
LayoutTests/fast/dom/computed-style-set-property_t01: RuntimeError # Roll 50 breakage
LayoutTests/fast/dom/createDocumentType2_t01: RuntimeError # Roll 50 breakage
LayoutTests/fast/dom/createElementNS_t01: RuntimeError # Roll 50 breakage
LayoutTests/fast/dom/custom/document-register-type-extensions_t01: RuntimeError # Roll 50 breakage
LayoutTests/fast/dom/Document/createElement-invalid-names_t01: RuntimeError # Roll 50 breakage
LayoutTests/fast/dom/DOMException/prototype-object_t01: RuntimeError # Roll 50 breakage
LayoutTests/fast/dom/HTMLTemplateElement/cycles-in-shadow_t01: RuntimeError # Roll 50 breakage
LayoutTests/fast/dom/HTMLTemplateElement/cycles_t01: RuntimeError # Roll 50 breakage
LayoutTests/fast/dom/offset-position-writing-modes_t01: RuntimeError # Roll 50 breakage
LayoutTests/fast/dom/shadow/shadow-hierarchy-exception_t01: RuntimeError # Roll 50 breakage
LayoutTests/fast/events/mutation-during-append-child_t01: RuntimeError # Roll 50 breakage
LayoutTests/fast/events/mutation-during-insert-before_t01: RuntimeError # Roll 50 breakage
LayoutTests/fast/forms/menulist-submit-without-selection_t01: RuntimeError # Roll 50 breakage
# ---------------------------------------------
# TODO(terry): End of Dartium 50 roll failures
[ $compiler == none && $runtime == dartium && $system == macos && $checked && $system == macos ]
# TODO(terry): Failing tests with Dartium 50 roll (NEED TO FIX All)
# ---------------------------------------------
LayoutTests/fast/canvas/webgl/buffer-data-array-buffer_t01: RuntimeError # Roll 50 breakage
LayoutTests/fast/canvas/webgl/tex-input-validation_t01: RuntimeError # Roll 50 breakage
# ---------------------------------------------
# TODO(terry): End of Dartium 50 roll failures
[ $compiler == none && $runtime == dartium && $system == macos ]
LayoutTests/fast/css-generated-content/pseudo-animation-before-onload_t01: Skip # Depends on animation timing, commented as known to be flaky in test. Will not fix.
LayoutTests/fast/forms/input-value-sanitization_t01: RuntimeError # 45 roll
@ -1212,8 +1237,16 @@ LayoutTests/fast/writing-mode/vertical-inline-block-hittest_t01: Pass, RuntimeEr
LibTest/collection/ListBase/ListBase_class_A01_t02: Skip # Timing out on the bots. Please triage this failure.
WebPlatformTest/custom-elements/concepts/type_A07_t01: Skip # Timing out on the bots. Please triage this failure.
# TODO(terry): Failing Mac ONLY tests with Dartium 50 roll (NEED TO FIX All)
# ---------------------------------------------
LayoutTests/fast/canvas/webgl/buffer-data-array-buffer_t01: RuntimeError # Roll 50 must fix.
LayoutTests/fast/canvas/webgl/tex-input-validation_t01: RuntimeError # Roll 50 must fix.
# ---------------------------------------------
# TODO(terry): End of Mac ONLY Dartium 50 roll failures
[ $compiler == none && $runtime == dartium && $system == windows ]
LayoutTests/fast/css/MarqueeLayoutTest_t01: Pass, RuntimeError # Please triage this failure
LayoutTests/fast/writing-mode/auto-sizing-orthogonal-flows_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/writing-mode/flipped-blocks-hit-test-overflow_t01: Pass, RuntimeError # Issue 21605
LayoutTests/fast/writing-mode/vertical-inline-block-hittest_t01: Pass, RuntimeError # Issue 21605
LayoutTests/fast/dom/shadow/shadowhost-keyframes_t01: Pass, RuntimeError # Gardening: please triage this failure.
@ -1227,6 +1260,7 @@ LayoutTests/fast/writing-mode/auto-sizing-orthogonal-flows_t01: Pass, RuntimeErr
[ $compiler == none && $runtime == dartium && $system == linux ]
language/mixin_illegal_constructor_test/01: Skip # Issue 43
LayoutTests/fast/text/international/combining-marks-position_t01: RuntimeError # See Issue https://github.com/dart-lang/co19/issues/109
[ $compiler == none && $runtime == dartium && ($system == windows || $system == linux) ]
LayoutTests/fast/canvas/webgl/buffer-data-array-buffer_t01: RuntimeError # 45 roll webgl doesn't run on on windows/linux bots.

View file

@ -15,7 +15,7 @@ main() {
test('TimeStamp', () {
Event event = new Event('test');
int timeStamp = event.timeStamp;
num timeStamp = event.timeStamp;
expect(timeStamp, greaterThan(0));
});

View file

@ -6,12 +6,12 @@ interactive_test: Skip # Must be run manually.
cross_frame_test: Skip # Test reloads itself. Issue 18558
[ $compiler == none && ($runtime == dartium || $runtime == drt) ]
mirrors_js_typed_interop_test: Fail # Missing expected failure (Issue 25044)
js_typed_interop_side_cast_exp_test: Fail, OK # tests dart2js-specific behavior.
js_typed_interop_type1_test: Fail, OK # tests dart2js-specific behavior.
js_typed_interop_type2_test: Fail, OK # tests dart2js-specific behavior.
js_typed_interop_type3_test: Fail, OK # tests dart2js-specific behavior.
svgelement_test/PathElement: RuntimeError # Issue 25665
native_gc_test: Skip # Dartium JSInterop failure
js_interop_constructor_name_test/HTMLDivElement-methods: Fail # Investigate.
@ -359,10 +359,6 @@ postmessage_structured_test: SkipByDesign
[ $compiler == dart2js && ($runtime == chrome || $runtime == drt) ]
svgelement_test/supported_altGlyph: RuntimeError # Issue 25787
[ ($runtime == dartium) && ($system == macos || $system == windows || $system == linux)]
# Desktop operating systems do not support touch events on chrome 34 dartium.
touchevent_test/supported: Fail
[ (($runtime == dartium || $runtime == drt) && $system == macos) || $system == windows ]
xhr_test/xhr: Skip # Times out. Issue 21527

View file

@ -92,7 +92,7 @@ positional_parameters_type_test/02: Fail # Issue 14651.
type_checks_in_factory_method_test: Fail # Issue 14651.
vm/type_vm_test: Fail # Issue 14651.
[ $compiler == none && ($runtime == dartium || $runtime == drt) ]
[ $compiler == none && ($runtime == dartium || $runtime == drt)]
abstract_beats_arguments2_test/01: Skip # Issue 29171
# Other issues.
issue13474_test: Pass, Fail # Issue 14651.

View file

@ -359,6 +359,13 @@ async/timer_test: Fail, Pass # See Issue 10982
[ $compiler == none && $runtime == drt && $checked ]
async/slow_consumer_test: Fail, Pass # Dartium JsInterop failure, dartbug.com/24460
[ $compiler == none && ($runtime == drt || $runtime == dartium) && $checked ]
# TODO(terry): Failing tests with Dartium 50 roll (NEED TO FIX All)
# ---------------------------------------------
mirrors/regress_16321_test/01: Timeout, Pass # Roll 50 crash works on full build
# ---------------------------------------------
# TODO(terry): End of Dartium 50 roll failures
[ $compiler == dart2js && $runtime == safarimobilesim ]
mirrors/mirrors_reader_test: SkipSlow # Times out. Issue 20806.
mirrors/null_test: Fail # Issue 16831

View file

@ -46,7 +46,8 @@ class Channel(object):
BLEEDING_EDGE = 'be'
DEV = 'dev'
STABLE = 'stable'
ALL_CHANNELS = [BLEEDING_EDGE, DEV, STABLE]
INTEGRATION = 'integration'
ALL_CHANNELS = [BLEEDING_EDGE, DEV, STABLE, INTEGRATION]
class ReleaseType(object):
RAW = 'raw'
@ -66,7 +67,7 @@ class GCSNamer(object):
For every (channel,revision,release-type) tuple we have a base path:
gs://dart-archive/channels/{be,dev,stable}
gs://dart-archive/channels/{be,dev,stable,integration}
/{raw,signed,release}/{revision,latest}/
Under every base path, the following structure is used:

View file

@ -19,9 +19,10 @@ if HOST_OS == 'mac':
CHROMEDRIVER_FILES = ['chromedriver']
elif HOST_OS == 'linux':
CONTENTSHELL_FILES = ['content_shell', 'content_shell.pak', 'fonts.conf',
'libffmpegsumo.so', 'libosmesa.so', 'lib',
'icudtl.dat', 'AHEM____.TTF', 'GardinerModBug.ttf',
'GardinerModCat.ttf', 'natives_blob.bin']
'libblink_test_plugin.so', 'libffmpegsumo.so',
'libosmesa.so', 'lib', 'icudtl.dat', 'AHEM____.TTF',
'GardinerModBug.ttf', 'GardinerModCat.ttf',
'natives_blob.bin']
CHROMEDRIVER_FILES = ['chromedriver']
elif HOST_OS == 'win':
# TODO: provide proper list.

View file

@ -12,6 +12,7 @@ ALL_TARGETS = [
'content_shell',
'chrome',
'blink_tests',
'chromedriver'
]
def main():

View file

@ -90,13 +90,12 @@ def main():
result = 0
# Archive to the revision bucket unless integration build
if info.channel != 'integration':
result = upload_steps.ArchiveAndUpload(info, archive_latest=False)
# On dev/stable we archive to the latest bucket as well
if info.channel != 'be':
result = (upload_steps.ArchiveAndUpload(info, archive_latest=True)
or result)
# Archive to the revision bucket
result = upload_steps.ArchiveAndUpload(info, archive_latest=False)
# On dev/stable we archive to the latest bucket as well
if info.channel != 'be':
result = (upload_steps.ArchiveAndUpload(info, archive_latest=True)
or result)
# Run layout tests
if info.mode == 'Release' or platform.system() != 'Darwin':

View file

@ -26,15 +26,29 @@ set -x
# build Dartium, run this script and build Dartium again with the newly
# generated patches.
ARG_OPTION="dartGenCachedPatches"
LOCATION_DARTIUM="../../../out/Release"
DARTIUM="$LOCATION_DARTIUM"
if [[ "$1" != "" ]] ; then
DARTIUM="$1"
else
LOCATION_DARTIUM="../../../out/Release"
DARTIUM="$LOCATION_DARTIUM"
if [[ "$1" =~ ^--roll ]]; then
ARG_OPTION="dartGenCachedPatchesForRoll"
else
DARTIUM="$1"
fi
fi
if [[ "$2" != "" ]] ; then
if [[ "$2" =~ ^--roll ]]; then
ARG_OPTION="dartGenCachedPatchesForRoll"
else
DARTIUM="$2"
fi
fi
DART_APP_LOCATION="file://"$PWD"/generate_app/generate_cached_patches.html"
DARTIUM_ARGS=" --user-data-dir=out --disable-web-security --no-sandbox --enable-blink-features=dartGenCachedPatches"
DARTIUM_ARGS=" --user-data-dir=out --disable-web-security --no-sandbox --enable-blink-features="$ARG_OPTION""
CACHED_PATCHES_FILE=""$PWD"/../../sdk/lib/js/dartium/cached_patches.dart"
cmd=""$DARTIUM"/chrome "$DARTIUM_ARGS" "$DART_APP_LOCATION" |

View file

@ -194,6 +194,7 @@ def main():
test = os.path.join(DART_TEST_DIR, options.layout_test)
else:
test = DART_TEST_DIR
utils.runCommand(['python',
test_script,
test_mode,

View file

@ -8,9 +8,8 @@ execfile(os.path.join(path, 'src', 'dart', 'tools', 'deps', 'dartium.deps', 'DEP
# Now we need to override some settings and add some new ones.
vars.update({
"dartium_chromium_commit": "7558afb6379171d7f96b2db68ae9d2b64b2c5544",
"dartium_webkit_commit": "6b2be51884a122443c468e93e9d5090fb709964b",
"chromium_base_revision": "338390",
"dartium_chromium_commit": "1ac95883b0e9e13d0ec62164f0ca461dacef8a4b",
"chromium_base_revision": "378081",
# We use mirrors of all github repos to guarantee reproducibility and
# consistency between what users see and what the bots see.
@ -67,7 +66,7 @@ vars.update({
"yaml_rev": "@563a5ffd4a800a2897b8f4dd6b19f2a370df2f2b",
"zlib_rev": "@c3d0a6190f2f8c924a05ab6cc97b8f975bddd33f",
"web_components_rev": "@6349e09f9118dce7ae1b309af5763745e25a9d61",
"WebCore_rev": "@2fe910c049be42bcef58f205debd4440e8139863",
"WebCore_rev": "@3c45690813c112373757bbef53de1602a62af609",
"co19_rev": "@4af9ef149be554216c5bb16cbac8e50d4c28cdf1",
})
@ -76,11 +75,6 @@ deps.update({
"src":
Var("chromium_git") + "/dart/dartium/src.git" + "@" +
Var("dartium_chromium_commit"),
"src/third_party/WebKit":
Var("chromium_git") + "/dart/dartium/blink.git" + "@" +
Var("dartium_webkit_commit"),
"src/dart/third_party/pkg/args":
(Var("github_mirror") % "args") + Var("args_tag"),
"src/dart/third_party/pkg/barback":
@ -205,16 +199,16 @@ hooks.append({
'src/dart/tools/bots/set_reference_build_revision.py',
Var('chromium_base_revision')],
})
hooks.append({
#hooks.append({
# Peg the blink version number in LASTCHANGE.blink to be the upstream
# webkit_revision number so that chrome remote devtools pulls assets from
# the right place.
"name": "lastchange",
"pattern": ".",
"action": ["python", "-c",
"f=open('src/build/util/LASTCHANGE.blink','w'); f.write('LASTCHANGE=" +
Var('webkit_revision') + "\\n')" ],
})
# "name": "lastchange",
# "pattern": ".",
# "action": ["python", "-c",
# "f=open('src/build/util/LASTCHANGE.blink','w'); f.write('LASTCHANGE=" +
# Var('webkit_revision') + "\\n')" ],
#})
hooks.append({
"name": "checked_in_dart_sdks",
"pattern": ".",

View file

@ -1,41 +1,44 @@
vars = {
'webkit_revision': 'abaaf1d0b6b6483140b5dca34e80fc259833ddf7', # from svn revision 198714
'angle_revision':
'44897140a2ae07dc5ba88190100179baa6fe7914',
'4d76061e2be5b8b005afba8e0c145592c3b04527',
'boringssl_revision':
'de24aadc5bc01130b6a9d25582203bb5308fabe1',
'6d49157929abdefb155daf2751dc03fd9eb4240c',
'buildspec_platforms':
'ios,',
'chromeos,',
'buildtools_revision':
'ecc8e253abac3b6186a97573871a084f4c0ca3ae',
'14288a03a92856fe1fc296d39e6a25c2d83cd6cf',
'chromium_git':
'https://chromium.googlesource.com',
'deqp_revision':
'cc0ded6c77267bbb14d21aac358fc5d9690c07f8',
'deqp_url':
'https://android.googlesource.com/platform/external/deqp',
'freetype_android_revision':
'a512b0fe7a8d9db0e5aa9c0a4db1e92cb861722d',
'google_toolbox_for_mac_revision':
'ce47a231ea0b238fbe95538e86cc61d74c234be6',
'401878398253074c515c03cb3a3f8bb0cc8da6e9',
'googlecode_url':
'http://%s.googlecode.com/svn',
'libvpx_revision':
'96484d320036bbc1e30f1dea232799a3e0517b1d',
'lighttpd_revision':
'9dfa55d15937a688a92cbf2b7a8621b0927d06eb',
'lss_revision':
'6f97298fe3794e92c8c896a6bc06e0b36e4c3de3',
'4fc942258fe5509549333b9487ec018e3c8c5b10',
'nacl_revision':
'b3d4cc125348924f727d3b87cee3674a839b54a0',
'd182b0a028d44ba9767ae25b30cf3986a7e72e99',
'nss_revision':
'aab0d08a298b29407397fbb1c4219f99e99431ed',
'225bfc39c93dfb7c7d0d1162f81e9bb5cd356c30',
'openmax_dl_revision':
'22bb1085a6a0f6f3589a8c3d60ed0a9b82248275',
'6670e52d32351145a6b6c198dab3f6a536edf3db',
'pdfium_revision':
'cc2323f0d0d626edac4a426097eb38b53ba54848',
'8ba5b59356d506d3b9e976e7422e69bbd5bec8d6',
'sfntly_revision':
'1bdaae8fc788a5ac8936d68bf24f37d977a13dac',
'130f832eddf98467e6578b548cb74ce17d04a26d',
'skia_revision':
'ea561bf055bb803f4c10ca323ea60a9d94da7956',
'82e26bf23923f20828c850d1a0e01d8bde69cfff',
'swarming_revision':
'b39a448d8522392389b28f6997126a6ab04bfe87',
'a72f46e42dba1335e8001499b4621acad2d26728',
'v8_revision':
'7f211533faba9dd85708b1394186c7fe99b88392'
'ad16e6c2cbd2c6b0f2e8ff944ac245561c682ac2'
}
allowed_hosts = [
'android.googlesource.com',
@ -45,60 +48,59 @@ allowed_hosts = [
]
deps = {
'src/breakpad/src':
(Var("chromium_git")) + '/external/google-breakpad/src.git@242fb9a38db6ba534b1f7daa341dd4d79171658b',
(Var("chromium_git")) + '/breakpad/breakpad/src.git@481608d284106df9400d447e95574799670cabaf',
'src/buildtools':
(Var("chromium_git")) + '/chromium/buildtools.git@ecc8e253abac3b6186a97573871a084f4c0ca3ae',
(Var("chromium_git")) + '/chromium/buildtools.git@14288a03a92856fe1fc296d39e6a25c2d83cd6cf',
'src/chrome/test/data/perf/canvas_bench':
(Var("chromium_git")) + '/chromium/canvas_bench.git@a7b40ea5ae0239517d78845a5fc9b12976bfc732',
'src/chrome/test/data/perf/frame_rate/content':
(Var("chromium_git")) + '/chromium/frame_rate/content.git@c10272c88463efeef6bb19c9ec07c42bc8fe22b9',
'src/media/cdm/ppapi/api':
(Var("chromium_git")) + '/chromium/cdm.git@7377023e384f296cbb27644eb2c485275f1f92e8',
'src/media/cdm/api':
(Var("chromium_git")) + '/chromium/cdm.git@1dea7088184dec2ebe4a8b3800aabb0afbb4b88a',
'src/native_client':
(Var("chromium_git")) + '/native_client/src/native_client.git@b3d4cc125348924f727d3b87cee3674a839b54a0',
(Var("chromium_git")) + '/native_client/src/native_client.git@fb00463cb1ebd46a46c050101f8b6a6c999d5dc1',
'src/sdch/open-vcdiff':
(Var("chromium_git")) + '/external/open-vcdiff.git@438f2a5be6d809bc21611a94cd37bfc8c28ceb33',
(Var("chromium_git")) + '/external/github.com/google/open-vcdiff.git@21d7d0b9c3d0c3ccbdb221c85ae889373f0a2a58',
'src/testing/gmock':
(Var("chromium_git")) + '/external/googlemock.git@29763965ab52f24565299976b936d1265cb6a271',
(Var("chromium_git")) + '/external/googlemock.git@0421b6f358139f02e102c9c332ce19a33faf75be',
'src/testing/gtest':
(Var("chromium_git")) + '/external/googletest.git@23574bf2333f834ff665f894c97bef8a5b33a0a9',
(Var("chromium_git")) + '/external/github.com/google/googletest.git@6f8a66431cb592dad629028a50b3dd418a408c87',
'src/third_party/angle':
(Var("chromium_git")) + '/angle/angle.git@6f0fd8c5457f9dcffc9fa9fab3852417311be0a9',
(Var("chromium_git")) + '/angle/angle.git@c46018b8598dad46f6834411f27e12e90bb62a56',
'src/third_party/bidichecker':
(Var("chromium_git")) + '/external/bidichecker/lib.git@97f2aa645b74c28c57eca56992235c79850fa9e0',
'src/third_party/boringssl/src':
'https://boringssl.googlesource.com/boringssl.git@de24aadc5bc01130b6a9d25582203bb5308fabe1',
'https://boringssl.googlesource.com/boringssl.git@c880e42ba1c8032d4cdde2aba0541d8a9d9fa2e9',
'src/third_party/catapult':
(Var("chromium_git")) + '/external/github.com/catapult-project/catapult.git@a489be785184f64356555a8170452a6d6880cc5d',
'src/third_party/cld_2/src':
(Var("chromium_git")) + '/external/cld2.git@14d9ef8d4766326f8aa7de54402d1b9c782d4481',
(Var("chromium_git")) + '/external/github.com/CLD2Owners/cld2.git@84b58a5d7690ebf05a91406f371ce00c3daf31c0',
'src/third_party/colorama/src':
(Var("chromium_git")) + '/external/colorama.git@799604a1041e9b3bc5d2789ecbd7e8db2e18e6b8',
'src/third_party/crashpad/crashpad':
(Var("chromium_git")) + '/crashpad/crashpad.git@797adb320680a4a8ad39428075cca287e04b111f',
'src/third_party/dom_distiller_js/dist':
(Var("chromium_git")) + '/external/github.com/chromium/dom-distiller-dist.git@81e5b59da2a7a0a518b90b5ded58670322c98128',
(Var("chromium_git")) + '/external/github.com/chromium/dom-distiller-dist.git@e21fe06cb71327ec62431f823e783d7b02f97b26',
'src/third_party/ffmpeg':
(Var("chromium_git")) + '/chromium/third_party/ffmpeg.git@833732528c1873f37b490b289eeaded2ae86349c',
(Var("chromium_git")) + '/chromium/third_party/ffmpeg.git@b828a1bc02572754455e97508e4b78fc06d5e6fa',
'src/third_party/flac':
(Var("chromium_git")) + '/chromium/deps/flac.git@c291ce676d2c855f7b2739f00f5c7f7e813813dc',
(Var("chromium_git")) + '/chromium/deps/flac.git@2c4b86af352b23498315c016dc207e3fb2733fc0',
'src/third_party/hunspell_dictionaries':
(Var("chromium_git")) + '/chromium/deps/hunspell_dictionaries.git@c106afdcec5d3de2622e19f1b3294c47bbd8bd72',
'src/third_party/icu':
(Var("chromium_git")) + '/chromium/deps/icu.git@257f502ab8b2a6371efcd6d4606202e7f5be17d8',
(Var("chromium_git")) + '/chromium/deps/icu.git@052cebbb5f0695b797b0053cb302a2ca29b8044a',
'src/third_party/jsoncpp/source':
(Var("chromium_git")) + '/external/github.com/open-source-parsers/jsoncpp.git@f572e8e42e22cfcf5ab0aea26574f408943edfa4',
'src/third_party/leveldatabase/src':
(Var("chromium_git")) + '/external/leveldb.git@40c17c0b84ac0b791fb434096fd5c05f3819ad55',
(Var("chromium_git")) + '/external/leveldb.git@706b7f8d43b0aecdc75c5ee49d3e4ef5f27b9faf',
'src/third_party/libaddressinput/src':
(Var("chromium_git")) + '/external/libaddressinput.git@5eeeb797e79fa01503fcdcbebdc50036fac023ef',
'src/third_party/libexif/sources':
(Var("chromium_git")) + '/chromium/deps/libexif/sources.git@ed98343daabd7b4497f97fda972e132e6877c48a',
# TODO(terry): Commented out 45 roll and reverted to use old SHA1 for this from roll 39
# 'src/third_party/libjingle/source/talk':
# (Var("chromium_git")) + '/external/webrtc/trunk/talk.git@e0fa7aec7298a0c82081b14e17191f80f9f0e044',
(Var("chromium_git")) + '/chromium/deps/libexif/sources.git@9d467f7d21e4749ee22ee7520e561ac7b38484b9',
'src/third_party/libjingle/source/talk':
(Var('chromium_git')) + '/external/webrtc/trunk/talk.git' + '@' + 'f7c923ddc729dc7f002b0e194ab72b661f932c00', # commit position 9564
(Var("chromium_git")) + '/external/webrtc/trunk/talk.git@a4cc90bc9bfb5cc932075aebccb734e38932b107',
# TODO(terry): Hash different between original and git mirror above is new hash below is original hash. Some CL though.
# (Var("chromium_git")) + '/external/webrtc/trunk/talk.git@04170d694b177d0e4b2c4f191daad36e88f765b2',
'src/third_party/libjpeg_turbo':
(Var("chromium_git")) + '/chromium/deps/libjpeg_turbo.git@f4631b6ee8b1dbb05e51ae335a7886f9ac598ab6',
(Var("chromium_git")) + '/chromium/deps/libjpeg_turbo.git@e4e75037f29745f1546b6ebf5cf532e841c04c2c',
'src/third_party/libphonenumber/src/phonenumbers':
(Var("chromium_git")) + '/external/libphonenumber/cpp/src/phonenumbers.git@0d6e3e50e17c94262ad1ca3b7d52b11223084bca',
'src/third_party/libphonenumber/src/resources':
@ -106,89 +108,105 @@ deps = {
'src/third_party/libphonenumber/src/test':
(Var("chromium_git")) + '/external/libphonenumber/cpp/test.git@f351a7e007f9c9995494499120bbc361ca808a16',
'src/third_party/libsrtp':
(Var("chromium_git")) + '/chromium/deps/libsrtp.git@9c53f858cddd4d890e405e91ff3af0b48dfd90e6',
'src/third_party/libvpx':
(Var("chromium_git")) + '/chromium/deps/libvpx.git@96484d320036bbc1e30f1dea232799a3e0517b1d',
(Var("chromium_git")) + '/chromium/deps/libsrtp.git@8eecac0feef4c65e2debb42718a10eab91551f35',
'src/third_party/libvpx_new/source/libvpx':
(Var("chromium_git")) + '/webm/libvpx.git@89cc68252846478fa7f2d570d96ff93776cefac6',
'src/third_party/libwebm/source':
(Var("chromium_git")) + '/webm/libwebm.git@75a6d2da8b63e0c446ec0ce1ac942c2962d959d7',
'src/third_party/libyuv':
(Var("chromium_git")) + '/libyuv/libyuv.git@0e83b64e8879e9469919dc96b5d970c7c5bd05af',
(Var("chromium_git")) + '/libyuv/libyuv.git@20343f45c612e485cd898aeaae2250df2d0b2d2d',
'src/third_party/mesa/src':
(Var("chromium_git")) + '/chromium/deps/mesa.git@071d25db04c23821a12a8b260ab9d96a097402f0',
(Var("chromium_git")) + '/chromium/deps/mesa.git@ef811c6bd4de74e13e7035ca882cc77f85793fef',
'src/third_party/openh264/src':
(Var("chromium_git")) + '/external/github.com/cisco/openh264@b37cda248234162033e3e11b0335f3131cdfe488',
'src/third_party/openmax_dl':
(Var("chromium_git")) + '/external/webrtc/deps/third_party/openmax.git@22bb1085a6a0f6f3589a8c3d60ed0a9b82248275',
(Var("chromium_git")) + '/external/webrtc/deps/third_party/openmax.git@6670e52d32351145a6b6c198dab3f6a536edf3db',
'src/third_party/opus/src':
(Var("chromium_git")) + '/chromium/deps/opus.git@cae696156f1e60006e39821e79a1811ae1933c69',
(Var("chromium_git")) + '/chromium/deps/opus.git@655cc54c564b84ef2827f0b2152ce3811046201e',
'src/third_party/pdfium':
'https://pdfium.googlesource.com/pdfium.git@860a3eb0f3c18853f95df5a70dc50a95a29aafb1',
'https://pdfium.googlesource.com/pdfium.git@58340b0f837343671f1eb033371a41441eae80cd',
'src/third_party/py_trace_event/src':
(Var("chromium_git")) + '/external/py_trace_event.git@dd463ea9e2c430de2b9e53dea57a77b4c3ac9b30',
'src/third_party/pyftpdlib/src':
(Var("chromium_git")) + '/external/pyftpdlib.git@2be6d65e31c7ee6320d059f581f05ae8d89d7e45',
'src/third_party/pywebsocket/src':
(Var("chromium_git")) + '/external/pywebsocket/src.git@cb349e87ddb30ff8d1fa1a89be39cec901f4a29c',
(Var("chromium_git")) + '/external/github.com/google/pywebsocket.git@2d7b73c3acbd0f41dcab487ae5c97c6feae06ce2',
'src/third_party/re2/src':
(Var("chromium_git")) + '/external/github.com/google/re2.git@dba3349aba83b5588e85e5ecf2b56c97f2d259b7',
'src/third_party/safe_browsing/testing':
(Var("chromium_git")) + '/external/google-safe-browsing/testing.git@9d7e8064f3ca2e45891470c9b5b1dce54af6a9d6',
'src/third_party/scons-2.0.1':
(Var("chromium_git")) + '/native_client/src/third_party/scons-2.0.1.git@1c1550e17fc26355d08627fbdec13d8291227067',
'src/third_party/sfntly/cpp/src':
(Var("chromium_git")) + '/external/sfntly/cpp/src.git@1bdaae8fc788a5ac8936d68bf24f37d977a13dac',
'src/third_party/sfntly/src':
(Var("chromium_git")) + '/external/github.com/googlei18n/sfntly.git@130f832eddf98467e6578b548cb74ce17d04a26d',
'src/third_party/skia':
(Var("chromium_git")) + '/skia.git@56032c4f7bab7b0dd31b4d1eb139561d73fcd12d',
(Var("chromium_git")) + '/skia.git@b95c8954fceebf67629d894d26cf57a170507612',
'src/third_party/smhasher/src':
(Var("chromium_git")) + '/external/smhasher.git@e87738e57558e0ec472b2fc3a643b838e5b6e88f',
'src/third_party/snappy/src':
(Var("chromium_git")) + '/external/snappy.git@762bb32f0c9d2f31ba4958c7c0933d22e80c20bf',
'src/third_party/trace-viewer':
(Var("chromium_git")) + '/external/trace-viewer.git@4f30209abd53c699c937519f39ce41888f93507b',
'src/third_party/usrsctp/usrsctplib':
(Var("chromium_git")) + '/external/usrsctplib.git@36444a999739e9e408f8f587cb4c3ffeef2e50ac',
(Var("chromium_git")) + '/external/github.com/sctplab/usrsctp@c60ec8b35c3fe6027d7a3faae89d1c8d7dd3ce98',
'src/third_party/webdriver/pylib':
(Var("chromium_git")) + '/external/selenium/py.git@5fd78261a75fe08d27ca4835fb6c5ce4b42275bd',
'src/third_party/webgl/src':
(Var("chromium_git")) + '/external/khronosgroup/webgl.git@8986f8bfa84547b1a30a9256ebdd665024d68d71',
(Var("chromium_git")) + '/external/khronosgroup/webgl.git@1012e1f8baea808f3bc9fcef945d66b5f740c32b',
'src/third_party/webpagereplay':
(Var("chromium_git")) + '/external/github.com/chromium/web-page-replay.git@5da5975950daa7b30a6938da73fd0b3200901b0c',
# TODO(terry): Commented out 45 roll and reverted to use old SHA1 for this from roll 39
(Var("chromium_git")) + '/external/github.com/chromium/web-page-replay.git@7564939bdf6482d57b9bd5e9c931679f96d8cf75',
# TODO(terry): below directory to enlist temporary commented out to explicitly pull in src/third_party/webrtc
# at SHA commit 256ade59023c75dcf2135a4d99a371c09d07e0fe (need to revert src checkin
# https://codereview.chromium.org/2741183002 then uncomment below 2 lines and remove rest
# of comments below those 2 lines.
# 'src/third_party/webrtc':
# (Var("chromium_git")) + '/external/webrtc/trunk/webrtc.git@7c166694b3c8f614eeb47148f4ab68545c78786e',
'src/third_party/webrtc':
(Var('chromium_git')) + '/external/webrtc/trunk/webrtc.git' + '@' + '847b12a225694e10425c8a9b31e0eec028baf841', # commit position 9565
# (Var("chromium_git")) + '/external/webrtc/trunk/webrtc.git@256ade59023c75dcf2135a4d99a371c09d07e0fe',
# TODO(terry): Above is correct commit - below is a commit that exists on the mirrors.
#
# To work around comment the above SHA and enable the below SHA
# do a gclient sync then after that do this:
#
# > git fetch origin refs/branch-heads/50
# > git checkout -b webrtc_roll_50 256ade59023c75dcf2135a4d99a371c09d07e0
#
# then comment the below SHA and enable the above SHA line.
#
# then gclient sync again, everything will now work locally.
#
# (Var("chromium_git")) + '/external/webrtc/trunk/webrtc.git@780d506ddf7bcba4a3dc04cfe2240c1ae80880f2',
'src/third_party/yasm/source/patched-yasm':
(Var("chromium_git")) + '/chromium/deps/yasm/patched-yasm.git@4671120cd8558ce62ee8672ebf3eb6f5216f909b',
'src/tools/deps2git':
(Var("chromium_git")) + '/chromium/tools/deps2git.git@f04828eb0b5acd3e7ad983c024870f17f17b06d9',
'src/tools/grit':
(Var("chromium_git")) + '/external/grit-i18n.git@1dac9ae64b0224beb1547810933a6f9998d0d55e',
(Var("chromium_git")) + '/chromium/deps/yasm/patched-yasm.git@7da28c6c7c6a1387217352ce02b31754deb54d2a',
'src/tools/gyp':
(Var("chromium_git")) + '/external/gyp.git@5122240c5e5c4d8da12c543d82b03d6089eb77c5',
(Var("chromium_git")) + '/external/gyp.git@ed163ce233f76a950dce1751ac851dbe4b1c00cc',
'src/tools/page_cycler/acid3':
(Var("chromium_git")) + '/chromium/deps/acid3.git@6be0a66a1ebd7ebc5abc1b2f405a945f6d871521',
'src/tools/swarming_client':
(Var("chromium_git")) + '/external/swarming.client.git@b39a448d8522392389b28f6997126a6ab04bfe87',
(Var("chromium_git")) + '/external/swarming.client.git@a72f46e42dba1335e8001499b4621acad2d26728',
'src/v8':
(Var("chromium_git")) + '/v8/v8.git@96dddb455daff3d8626bc4e5d7b2898fbab55991'
(Var("chromium_git")) + '/v8/v8.git@45a71919836046560ba8eb349eaf9172857ffe6f'
}
deps_os = {
'android': {
'src/third_party/android_protobuf/src':
(Var("chromium_git")) + '/external/android_protobuf.git@999188d0dc72e97f7fe08bb756958a2cf090f4e7',
'src/third_party/android_tools':
(Var("chromium_git")) + '/android_tools.git@4238a28593b7e6178c95431f91ca8c24e45fa7eb',
(Var("chromium_git")) + '/android_tools.git@f4c36ad89b2696b37d9cd7ca7d984b691888b188',
'src/third_party/apache-mime4j':
(Var("chromium_git")) + '/chromium/deps/apache-mime4j.git@28cb1108bff4b6cf0a2e86ff58b3d025934ebe3a',
'src/third_party/apache-portable-runtime/src':
(Var("chromium_git")) + '/external/apache-portable-runtime.git@c76a8c4277e09a82eaa229e35246edea1ee0a6a1',
'src/third_party/appurify-python/src':
(Var("chromium_git")) + '/external/github.com/appurify/appurify-python.git@ee7abd5c5ae3106f72b2a0b9d2cb55094688e867',
'src/third_party/cardboard-java/src':
(Var("chromium_git")) + '/external/github.com/googlesamples/cardboard-java.git@08ad25a04f2801bd822c3f2cd28301b68d74aef6',
(Var("chromium_git")) + '/external/github.com/googlesamples/cardboard-java.git@e36ee57e72bbd057ddb53b127954177b50e18df7',
'src/third_party/custom_tabs_client/src':
(Var("chromium_git")) + '/external/github.com/GoogleChrome/custom-tabs-client.git@a562624975518bd6c6c5976eb883fcc5f69d16b6',
(Var("chromium_git")) + '/external/github.com/GoogleChrome/custom-tabs-client.git@8ae46d26e739899d2e35f462beeb20e9c194d0ab',
'src/third_party/elfutils/src':
(Var("chromium_git")) + '/external/elfutils.git@249673729a7e5dbd5de4f3760bdcaa3d23d154d7',
'src/third_party/errorprone/lib':
(Var("chromium_git")) + '/chromium/third_party/errorprone.git@6c66e56c0f9d750aef83190466df834f9d6af8ab',
(Var("chromium_git")) + '/chromium/third_party/errorprone.git@0eea83b66343133b9c76b7d3288c30321818ebcf',
'src/third_party/findbugs':
(Var("chromium_git")) + '/chromium/deps/findbugs.git@7f69fa78a6db6dc31866d09572a0e356e921bf12',
(Var("chromium_git")) + '/chromium/deps/findbugs.git@57f05238d3ac77ea0a194813d3065dd780c6e566',
'src/third_party/freetype-android/src':
(Var("chromium_git")) + '/chromium/src/third_party/freetype2.git@e186230678ee8e4ea4ac4797ece8125761e3225a',
(Var("chromium_git")) + '/chromium/src/third_party/freetype2.git@a512b0fe7a8d9db0e5aa9c0a4db1e92cb861722d',
'src/third_party/httpcomponents-client':
(Var("chromium_git")) + '/chromium/deps/httpcomponents-client.git@285c4dafc5de0e853fa845dce5773e223219601c',
'src/third_party/httpcomponents-core':
@ -199,31 +217,41 @@ deps_os = {
(Var("chromium_git")) + '/external/jsr-305.git@642c508235471f7220af6d5df2d3210e3bfc0919',
'src/third_party/junit/src':
(Var("chromium_git")) + '/external/junit.git@45a44647e7306262162e1346b750c3209019f2e1',
'src/third_party/leakcanary/src':
(Var("chromium_git")) + '/external/github.com/square/leakcanary.git@608ded739e036a3aa69db47ac43777dcee506f8e',
'src/third_party/lss':
(Var("chromium_git")) + '/external/linux-syscall-support/lss.git@6f97298fe3794e92c8c896a6bc06e0b36e4c3de3',
(Var("chromium_git")) + '/external/linux-syscall-support/lss.git@4fc942258fe5509549333b9487ec018e3c8c5b10',
'src/third_party/mockito/src':
(Var("chromium_git")) + '/external/mockito/mockito.git@ed99a52e94a84bd7c467f2443b475a22fcc6ba8e',
(Var("chromium_git")) + '/external/mockito/mockito.git@4d987dcd923b81525c42b1333e6c4e07440776c3',
'src/third_party/netty-tcnative/src':
(Var("chromium_git")) + '/external/netty-tcnative.git@12d01332921695e974175870175eb14a889313a1',
'src/third_party/netty4/src':
(Var("chromium_git")) + '/external/netty4.git@e0f26303b4ce635365be19414d0ac81f2ef6ba3c',
'src/third_party/requests/src':
(Var("chromium_git")) + '/external/github.com/kennethreitz/requests.git@f172b30356d821d180fa4ecfa3e71c7274a32de4',
'src/third_party/robolectric/lib':
(Var("chromium_git")) + '/chromium/third_party/robolectric.git@6b63c99a8b6967acdb42cbed0adb067c80efc810',
'src/third_party/ub-uiautomator/lib':
(Var("chromium_git")) + '/chromium/third_party/ub-uiautomator.git@e6f02481bada8bdbdfdd7987dd6e648c44a3adcb'
(Var("chromium_git")) + '/chromium/third_party/ub-uiautomator.git@00270549ce3161ae72ceb24712618ea28b4f9434'
},
'ios': {
'src/chrome/test/data/perf/canvas_bench': None,
'src/chrome/test/data/perf/frame_rate/content': None,
'src/ios/third_party/fishhook/src':
(Var("chromium_git")) + '/external/github.com/facebook/fishhook.git@d172d5247aa590c25d0b1885448bae76036ea22c',
'src/ios/third_party/gcdwebserver/src':
(Var("chromium_git")) + '/external/github.com/swisspol/GCDWebServer.git@3d5fd0b8281a7224c057deb2d17709b5bea64836',
'src/ios/third_party/ochamcrest/src':
(Var("chromium_git")) + '/external/github.com/hamcrest/OCHamcrest.git@5b50930c66d1e537918a87eef0943d6750729dc5',
'src/native_client': None,
'src/third_party/class-dump/src':
(Var("chromium_git")) + '/external/github.com/nygard/class-dump.git@978d177ca6f0d2e5e34acf3e8dadc63e3140ebbc',
'src/third_party/ffmpeg': None,
'src/third_party/google_toolbox_for_mac/src':
(Var("chromium_git")) + '/external/google-toolbox-for-mac.git@ce47a231ea0b238fbe95538e86cc61d74c234be6',
(Var("chromium_git")) + '/external/github.com/google/google-toolbox-for-mac.git@401878398253074c515c03cb3a3f8bb0cc8da6e9',
'src/third_party/hunspell_dictionaries': None,
'src/third_party/nss':
(Var("chromium_git")) + '/chromium/deps/nss.git@aab0d08a298b29407397fbb1c4219f99e99431ed',
(Var("chromium_git")) + '/chromium/deps/nss.git@225bfc39c93dfb7c7d0d1162f81e9bb5cd356c30',
'src/third_party/webgl': None
},
'mac': {
@ -232,11 +260,11 @@ deps_os = {
'src/chrome/tools/test/reference_build/chrome_mac':
(Var("chromium_git")) + '/chromium/reference_builds/chrome_mac.git@8dc181329e7c5255f83b4b85dc2f71498a237955',
'src/third_party/google_toolbox_for_mac/src':
(Var("chromium_git")) + '/external/google-toolbox-for-mac.git@ce47a231ea0b238fbe95538e86cc61d74c234be6',
(Var("chromium_git")) + '/external/github.com/google/google-toolbox-for-mac.git@401878398253074c515c03cb3a3f8bb0cc8da6e9',
'src/third_party/lighttpd':
(Var("chromium_git")) + '/chromium/deps/lighttpd.git@9dfa55d15937a688a92cbf2b7a8621b0927d06eb',
'src/third_party/nss':
(Var("chromium_git")) + '/chromium/deps/nss.git@aab0d08a298b29407397fbb1c4219f99e99431ed',
(Var("chromium_git")) + '/chromium/deps/nss.git@225bfc39c93dfb7c7d0d1162f81e9bb5cd356c30',
'src/third_party/pdfsqueeze':
(Var("chromium_git")) + '/external/pdfsqueeze.git@5936b871e6a087b7e50d4cbcb122378d8a07499f'
},
@ -246,19 +274,29 @@ deps_os = {
'src/third_party/chromite':
(Var("chromium_git")) + '/chromiumos/chromite.git@e19f83ba227bf1ec0077f5d3a816a415f1dd88d0',
'src/third_party/cros_system_api':
(Var("chromium_git")) + '/chromiumos/platform/system_api.git@513f58ccbcecfd4a3d21545f67136090838eaf52',
(Var("chromium_git")) + '/chromiumos/platform/system_api.git@7d0047203cf4263940e92d50b0725d0faf4d9281',
'src/third_party/deqp/src':
'https://android.googlesource.com/platform/external/deqp@cc0ded6c77267bbb14d21aac358fc5d9690c07f8',
'src/third_party/fontconfig/src':
(Var("chromium_git")) + '/external/fontconfig.git@f16c3118e25546c1b749f9823c51827a60aeb5c1',
'src/third_party/freetype-android/src':
(Var("chromium_git")) + '/chromium/src/third_party/freetype2.git@a512b0fe7a8d9db0e5aa9c0a4db1e92cb861722d',
'src/third_party/freetype2/src':
(Var("chromium_git")) + '/chromium/src/third_party/freetype2.git@1dd5f5f4a909866f15c92a45c9702bce290a0151',
(Var("chromium_git")) + '/chromium/src/third_party/freetype2.git@fc1532a7c4c592f24a4c1a0261d2845524ca5cff',
'src/third_party/liblouis/src':
(Var("chromium_git")) + '/external/liblouis-github.git@5f9c03f2a3478561deb6ae4798175094be8a26c2',
'src/third_party/lss':
(Var("chromium_git")) + '/external/linux-syscall-support/lss.git@6f97298fe3794e92c8c896a6bc06e0b36e4c3de3',
(Var("chromium_git")) + '/external/linux-syscall-support/lss.git@4fc942258fe5509549333b9487ec018e3c8c5b10',
'src/third_party/minigbm/src':
(Var("chromium_git")) + '/chromiumos/platform/minigbm.git@f9d2ab79a15a1bb6a1307f3b608964c81c27791b',
'src/third_party/pyelftools':
(Var("chromium_git")) + '/chromiumos/third_party/pyelftools.git@bdc1d380acd88d4bfaf47265008091483b0d614e',
'src/third_party/stp/src':
(Var("chromium_git")) + '/external/github.com/stp/stp.git@fc94a599207752ab4d64048204f0c88494811b62',
'src/third_party/wayland-protocols/src':
(Var("chromium_git")) + '/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git@596dfda882a51c05699bcb28a8459ce936a138db',
'src/third_party/wayland/src':
(Var("chromium_git")) + '/external/anongit.freedesktop.org/git/wayland/wayland.git@7ed00c1de77afbab23f4908fbd9d60ec070c209b',
'src/third_party/wds/src':
(Var("chromium_git")) + '/external/github.com/01org/wds@f187dda5fccaad08e168dc6657109325f42c648e',
'src/third_party/xdg-utils':
(Var("chromium_git")) + '/chromium/deps/xdg-utils.git@d80274d5869b17b8c9067a1022e4416ee7ed5e0d'
},
@ -270,7 +308,7 @@ deps_os = {
'src/third_party/cygwin':
(Var("chromium_git")) + '/chromium/deps/cygwin.git@c89e446b273697fadf3a10ff1007a97c0b7de6df',
'src/third_party/deqp/src':
'https://android.googlesource.com/platform/external/deqp@194294e69d44eac48bc1fb063bd607189650aa5e',
'https://android.googlesource.com/platform/external/deqp@cc0ded6c77267bbb14d21aac358fc5d9690c07f8',
'src/third_party/gnu_binutils':
(Var("chromium_git")) + '/native_client/deps/third_party/gnu_binutils.git@f4003433b61b25666565690caf3d7a7a1a4ec436',
'src/third_party/gperf':
@ -282,7 +320,7 @@ deps_os = {
'src/third_party/nacl_sdk_binaries':
(Var("chromium_git")) + '/chromium/deps/nacl_sdk_binaries.git@759dfca03bdc774da7ecbf974f6e2b84f43699a5',
'src/third_party/nss':
(Var("chromium_git")) + '/chromium/deps/nss.git@aab0d08a298b29407397fbb1c4219f99e99431ed',
(Var("chromium_git")) + '/chromium/deps/nss.git@225bfc39c93dfb7c7d0d1162f81e9bb5cd356c30',
'src/third_party/pefile':
(Var("chromium_git")) + '/external/pefile.git@72c6ae42396cb913bcab63c15585dc3b5c3f92f1',
'src/third_party/perl':
@ -321,7 +359,8 @@ hooks = [
{
'action': [
'python',
'src/build/download_sdk_extras.py'
'src/build/android/play_services/update.py',
'download'
],
'pattern':
'.',
@ -396,7 +435,7 @@ hooks = [
'pattern':
'.',
'name':
'lastchange'
'lastchange_blink'
},
{
'action': [
@ -494,6 +533,22 @@ hooks = [
'name':
'clang_format_linux'
},
{
'action': [
'download_from_google_storage',
'--no_resume',
'--platform=darwin',
'--no_auth',
'--bucket',
'chromium-libcpp',
'-s',
'src/third_party/libc++-static/libc++.a.sha1'
],
'pattern':
'.',
'name':
'libcpp_mac'
},
{
'action': [
'download_from_google_storage',
@ -579,7 +634,7 @@ hooks = [
'python',
'src/build/get_syzygy_binaries.py',
'--output-dir=src/third_party/syzygy/binaries',
'--revision=e50a9822fc8aeb5e7902da5e2940ea135d732e57',
'--revision=2d774f05a05cbc2f0dd929170c7a62fd549b2c5f',
'--overwrite'
],
'pattern':
@ -591,8 +646,8 @@ hooks = [
'action': [
'python',
'src/build/get_syzygy_binaries.py',
'--output-dir=src/third_party/kasko',
'--revision=283aeaceeb22e2ba40a1753e3cb32454b59cc017',
'--output-dir=src/third_party/kasko/binaries',
'--revision=266a18d9209be5ca5c5dcd0620942b82a2d238f3',
'--resource=kasko.zip',
'--resource=kasko_symbols.zip',
'--overwrite'
@ -636,6 +691,7 @@ hooks = [
'src/tools/remove_stale_pyc_files.py',
'src/android_webview/tools',
'src/gpu/gles2_conform_support',
'src/infra',
'src/ppapi',
'src/printing',
'src/third_party/closure_compiler/build',
@ -655,17 +711,6 @@ hooks = [
'.',
'name':
'gyp'
},
{
'action': [
'python',
'src/tools/check_git_config.py',
'--running-as-hook'
],
'pattern':
'.',
'name':
'check_git_config'
}
]
include_rules = [
@ -687,4 +732,4 @@ skip_child_includes = [
'testing',
'v8',
'win8'
]
]

File diff suppressed because it is too large Load diff

View file

@ -139,6 +139,12 @@ interface RTCPeerConnection {
[DartSuppress, RaisesException] void addIceCandidate(RTCIceCandidate candidate);
};
[DartSupplemental]
interface WebGL2RenderingContextBase {
[DartName=readPixels2] void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLintptr offset);
[DartName=texImage2D2] void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLintptr offset);
};
[DartSupplemental]
interface WebGLContextEvent {
[DartSuppress] void initEvent(optional DOMString eventTypeArg,
@ -438,6 +444,30 @@ interface HTMLCollection {
};
[DartSupplemental]
interface Performance {
[DartSuppress] void webkitClearResourceTimings();
[DartSuppress] void webkitSetResourceTimingBufferSize(unsigned long maxSize);
[DartSuppress] attribute EventHandler onwebkitresourcetimingbufferfull;
};
[DartSupplemental]
interface CalcLength {
[DartName=inch] readonly attribute double? in;
};
[DartSupplemental]
interface RTCPeerConnection {
[DartSuppress] Promise<void> setLocalDescription(RTCSessionDescriptionInit description);
[DartSuppress] Promise<void> setRemoteDescription(RTCSessionDescriptionInit description);
};
[DartSuppress]
interface DragEvent {};
[DartSuppress]
interface InputEvent {};
Element implements GlobalEventHandlers;

View file

@ -148,7 +148,6 @@ DartUtilities.activity_logging_world_list = _activity_logging_world_list
DartUtilities.bool_to_cpp = _bool_to_cpp
DartUtilities.call_with_arguments = _call_with_arguments
DartUtilities.capitalize = v8_utilities.capitalize
DartUtilities.conditional_string = v8_utilities.conditional_string
DartUtilities.cpp_name = v8_utilities.cpp_name
DartUtilities.deprecate_as = _deprecate_as
DartUtilities.extended_attribute_value_contains = v8_utilities.extended_attribute_value_contains

View file

@ -158,11 +158,7 @@ $endif
$if DARTIUM
bool _hasProperty(String propertyName) =>
$if JSINTEROP
_blink.BlinkCSSStyleDeclaration.instance.$__propertyQuery___Callback_1_(this, propertyName);
$else
_blink.BlinkCSSStyleDeclaration.$__propertyQuery___Callback_1(this, propertyName);
$endif
_blink.BlinkCSSStyleDeclaration.instance.$__get___propertyIsEnumerable_Callback_1_(this, propertyName);
$endif
@DomName('CSSStyleDeclaration.setProperty')

View file

@ -59,7 +59,7 @@ _js_custom_members = Set([
'Node.nodeType',
'Node.textContent',
'HTMLCollection.length',
'HTMLCollection.item',
'Node.lastElementChild',
@ -87,6 +87,17 @@ _js_custom_members = Set([
# tightly natively wired.
# _js_custom_members = Set([])
# Expose built-in methods support by an instance that is not shown in the IDL.
_additional_methods = {
# Support propertyIsEnumerable (available on all objects only needed by
# CSSStyleDeclaration decides if style property is supported (handling
# camelcase and inject hyphens between camelcase).
# Format of dictionary is 'operation name', arguments, returns value (True or False)
'CSSStyleDeclaration': ('propertyIsEnumerable', 1, True),
}
HEADER = """/* Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
* for details. All rights reserved. Use of this source code is governed by a
* BSD-style license that can be found in the LICENSE file.
@ -320,7 +331,7 @@ OPERATION_0 = [' %s_Callback_0_(mthis)',
' native "Blink_Operation_0_%s_%s";\n\n'
]
# getter, setter, deleter and propertyQuery code
# getter, setter, deleter, propertyQuery code, and propertyIsEnumerable
OPERATION_1 = [' $%s_Callback_1_(mthis, __arg_0)',
' => Blink_JsNative_DomException.callMethod(mthis /* %s */, "%s", [__arg_0]);\n\n',
' native "Blink_Operation_1_%s_%s";\n\n'
@ -440,12 +451,14 @@ def Generate_Blink(output_dir, database, type_registry):
blink_file.write(Select_Stub(CONSTRUCTOR_0, _Is_Native(name, 'constructor')) % rename_constructor(name))
_Process_Attributes(blink_file, interface, interface.attributes)
_Process_Operations(blink_file, interface, interface.operations)
_Process_Operations(blink_file, interface, interface.operations, True)
_Emit_Extra_Operations(blink_file, name)
secondary_parents = database.TransitiveSecondaryParents(interface, False)
for secondary in secondary_parents:
_Process_Attributes(blink_file, secondary, secondary.attributes)
_Process_Operations(blink_file, secondary, secondary.operations)
_Process_Operations(blink_file, secondary, secondary.operations, False)
blink_file.write(CLASS_DEFINITION_END);
@ -453,6 +466,12 @@ def Generate_Blink(output_dir, database, type_registry):
blink_file.close()
def _Emit_Extra_Operations(blink_file, interface_name):
if (interface_name in _additional_methods):
(name, arg_count, return_value) = _additional_methods[interface_name]
exposed_name = ''.join(['__get', '___', name]) if return_value else name
blink_file.write(Select_Stub(OPERATION_1, False) % (exposed_name, interface_name, name))
def _Emit_Blink_Constructors(blink_file, analyzed_constructors):
(arg_min_count, arg_max_count) = generate_parameter_entries(analyzed_constructors.param_infos)
name = analyzed_constructors.js_name
@ -485,7 +504,7 @@ def _Process_Attributes(blink_file, interface, attributes):
blink_file.write(Select_Stub(ATTRIBUTE_GETTER, is_native) % (name, interface.id, name))
blink_file.write(Select_Stub(ATTRIBUTE_SETTER, is_native) % (name, interface.id, name))
def _Process_Operations(blink_file, interface, operations):
def _Process_Operations(blink_file, interface, operations, primary_interface = False):
analyzeOperations = []
for operation in sorted(operations, ConstantOutputOrder):
@ -496,15 +515,34 @@ def _Process_Operations(blink_file, interface, operations):
# Handle overloads
analyzeOperations.append(operation)
else:
_Emit_Blink_Operation(blink_file, interface, analyzeOperations)
_Emit_Blink_Operation(blink_file, interface, analyzeOperations, primary_interface)
analyzeOperations = [operation]
if len(analyzeOperations) > 0:
_Emit_Blink_Operation(blink_file, interface, analyzeOperations)
_Emit_Blink_Operation(blink_file, interface, analyzeOperations, primary_interface)
def _Emit_Blink_Operation(blink_file, interface, analyzeOperations):
# List of DartName operations to not emit (e.g., For now only WebGL2RenderingContextBase
# has readPixels in both WebGLRenderingContextBase and WebGL2RenderingContextBase.
# Furthermore, readPixels has the exact same number of arguments - in Javascript
# there is no typing so they're the same.
suppressed_operations = {
'WebGL2RenderingContextBase': [ 'readPixels2', 'texImage2D2' ],
}
def _Suppress_Secondary_Interface_Operation(interface, analyzed):
if interface.id in suppressed_operations:
# Should this DartName (name property) be suppressed on this interface?
return analyzed.name in suppressed_operations[interface.id]
return False
def _Emit_Blink_Operation(blink_file, interface, analyzeOperations, primary_interface):
analyzed = AnalyzeOperation(interface, analyzeOperations)
if not(primary_interface) and _Suppress_Secondary_Interface_Operation(interface, analyzed):
return
(arg_min_count, arg_max_count) = generate_parameter_entries(analyzed.param_infos)
name = analyzed.js_name
is_native = _Is_Native(interface.id, name)
operation = analyzeOperations[0]

View file

@ -401,14 +401,19 @@ class ParamInfo(object):
self.name, self.type_id, self.is_optional)
return '<ParamInfo(%s)>' % content
def GetCallbackInfo(interface):
"""For the given interface, find operations that take callbacks (for use in
auto-transforming callbacks into futures)."""
def GetCallbackHandlers(interface):
callback_handlers = []
callback_handlers = [operation for operation in interface.operations
if operation.id == 'handleEvent']
if callback_handlers == []:
callback_handlers = [operation for operation in interface.operations
if operation.id == 'handleItem']
return callback_handlers
def GetCallbackInfo(interface):
"""For the given interface, find operations that take callbacks (for use in
auto-transforming callbacks into futures)."""
callback_handlers = GetCallbackHandlers(interface)
return AnalyzeOperation(interface, callback_handlers)
# Given a list of overloaded arguments, render dart arguments.
@ -504,7 +509,12 @@ def ConvertToFuture(info):
instead uses futures instead of callbacks."""
new_info = copy.deepcopy(info)
def IsNotCallbackType(param):
return 'Callback' not in param.type_id
type_id = param.type_id
if type_id is None:
return False
else:
return 'Callback' not in type_id
# Success callback is the first argument (change if this no longer holds).
new_info.callback_args = filter(
lambda x: not IsNotCallbackType(x), new_info.param_infos)
@ -641,6 +651,9 @@ class OperationInfo(object):
dart_type = 'dynamic'
else:
dart_type = rename_type(param.type_id) if param.type_id else 'dynamic'
# Special handling for setlike IDL forEach operation.
if dart_type is None and param.type_id.endswith('ForEachCallback'):
dart_type = param.type_id
return (TypeOrNothing(dart_type, param.type_id), param.name)
required = []
optional = []
@ -1180,7 +1193,8 @@ class SequenceIDLTypeInfo(IDLTypeInfo):
self._item_info = item_info
def dart_type(self):
return 'List<%s>' % self._item_info.dart_type()
darttype = self._item_info.dart_type()
return 'List' if darttype is None else 'List<%s>' % darttype
def interface_name(self):
return self.dart_type()
@ -1517,6 +1531,7 @@ _idl_type_registry = monitored.Dict('generator._idl_type_registry', {
'NamedNodeMap': TypeData(clazz='Interface', item_type='Node'),
'NodeList': TypeData(clazz='Interface', item_type='Node',
suppress_interface=False, dart_type='List<Node>'),
'NotificationAction': TypedListTypeData(''),
'SVGElementInstanceList': TypeData(clazz='Interface',
item_type='SVGElementInstance', suppress_interface=True),
'SourceBufferList': TypeData(clazz='Interface', item_type='SourceBuffer'),
@ -1562,6 +1577,9 @@ _idl_type_registry = monitored.Dict('generator._idl_type_registry', {
'SVGTransform': TypeData(clazz='SVGTearOff', native_type="SVGPropertyTearOff<SVGTransform>"),
'SVGTransformList': TypeData(clazz='SVGTearOff', item_type='SVGTransform',
native_type='SVGTransformListPropertyTearOff'),
# Add any setlike forEach Callback types here.
'FontFaceSetForEachCallback': TypeData(clazz='Interface', item_type='FontFaceSetForEachCallback'),
})
_svg_supplemental_includes = [

View file

@ -393,11 +393,13 @@ class HtmlDartGenerator(object):
generate_call(stmts_emitter, call_emitter,
version[0], signature_index, argument_count)
def IsTypeChecking(interface_argument):
return 'LegacyInterfaceTypeChecking' in interface_argument.ext_attrs or \
self._database.HasInterface(interface_argument.id)
def GenerateChecksAndCall(signature_index, argument_count):
checks = []
typechecked_interface = \
('TypeChecking' in self._interface.ext_attrs) and \
('Interface' in self._interface.ext_attrs['TypeChecking'])
typechecked_interface = IsTypeChecking(self._interface)
for i in reversed(range(0, argument_count)):
argument = signatures[signature_index][i]
@ -408,9 +410,7 @@ class HtmlDartGenerator(object):
if test_type in ['dynamic', 'Object']:
checks.append('%s != null' % parameter_name)
elif not can_omit_type_check(test_type, i):
typechecked = typechecked_interface or \
('TypeChecking' in argument.ext_attrs) and \
('Interface' in argument.ext_attrs['TypeChecking'])
typechecked = typechecked_interface or IsTypeChecking(argument)
converts_null = \
('TreatNullAs' in argument.ext_attrs) or \
(argument.default_value is not None) or \
@ -541,9 +541,10 @@ class HtmlDartGenerator(object):
def _AddConstructor(self,
constructor_info, factory_name, factory_constructor_name):
# Hack to ignore the Image constructor used by JavaScript.
# Hack to ignore the constructor used by JavaScript.
if ((self._interface.id == 'HTMLImageElement' or
self._interface.id == 'Blob' or
self._interface.id == 'TouchEvent' or
self._interface.id == 'DOMException')
and not constructor_info.pure_dart_constructor):
return

View file

@ -71,6 +71,14 @@ html_interface_renames = monitored.Dict('htmlrenamer.html_interface_renames',
# Interfaces that are suppressed, but need to still exist for Dartium and to
# properly wrap DOM objects if/when encountered.
_removed_html_interfaces = [
'Bluetooth',
'BluetoothAdvertisingData',
'BluetoothCharacteristicProperties',
'BluetoothDevice',
'BluetoothRemoteGATTCharacteristic',
'BluetoothRemoteGATTServer',
'BluetoothRemoteGATTService',
'BluetoothUUID',
'Cache', # TODO: Symbol conflicts with Angular: dartbug.com/20937
'CanvasPathMethods',
'CDataSection',
@ -97,6 +105,7 @@ _removed_html_interfaces = [
'HTMLFrameSetElement',
'HTMLMarqueeElement',
'IDBAny',
'NFC',
'Notation',
'PagePopupController',
'RGBColor',
@ -128,6 +137,19 @@ _removed_html_interfaces = [
'SVGTRefElement',
'SVGVKernElement',
'SubtleCrypto',
'USB',
'USBAlternateInterface',
'USBConfiguration',
'USBConnectionEvent',
'USBDevice',
'USBEndpoint',
'USBInTransferResult',
'USBInterface',
'USBIsochronousInTransferPacket',
'USBIsochronousInTransferResult',
'USBIsochronousOutTransferPacket',
'USBIsochronousOutTransferResult',
'USBOutTransferResult',
'WebKitCSSFilterValue',
'WebKitCSSMatrix',
'WebKitCSSMixFunctionValue',
@ -140,6 +162,8 @@ _removed_html_interfaces = [
'WebKitSourceBufferList',
'WorkerLocation', # Workers
'WorkerNavigator', # Workers
'Worklet', # Rendering Workers
'WorkletGlobalScope', # Rendering Workers
'XMLHttpRequestProgressEvent',
# Obsolete event for NaCl.
'ResourceProgressEvent',
@ -774,10 +798,12 @@ removed_html_members = monitored.Set('htmlrenamer.removed_html_members', [
'MouseEvent.webkitMovementY',
'MouseEvent.x',
'MouseEvent.y',
'Navigator.bluetooth',
'Navigator.registerServiceWorker',
'Navigator.unregisterServiceWorker',
'Navigator.isProtocolHandlerRegistered',
'Navigator.unregisterProtocolHandler',
'Navigator.usb',
'Node.compareDocumentPosition',
'Node.get:DOCUMENT_POSITION_CONTAINED_BY',
'Node.get:DOCUMENT_POSITION_CONTAINS',
@ -802,6 +828,7 @@ removed_html_members = monitored.Set('htmlrenamer.removed_html_members', [
'NodeList.item',
'ParentNode.append',
'ParentNode.prepend',
'RTCPeerConnection.generateCertificate',
'ServiceWorkerMessageEvent.data',
'ShadowRoot.getElementsByTagNameNS',
'SVGElement.getPresentationAttribute',
@ -829,6 +856,37 @@ _library_names = monitored.Dict('htmlrenamer._library_names', {
'Database': 'web_sql',
'Navigator': 'html',
'Window': 'html',
'AnalyserNode': 'web_audio',
'AudioBufferCallback': 'web_audio',
'AudioBuffer': 'web_audio',
'AudioBufferSourceNode': 'web_audio',
'AudioContext': 'web_audio',
'AudioDestinationNode': 'web_audio',
'AudioListener': 'web_audio',
'AudioNode': 'web_audio',
'AudioParam': 'web_audio',
'AudioProcessingEvent': 'web_audio',
'AudioSourceNode': 'web_audio',
'BiquadFilterNode': 'web_audio',
'ChannelMergerNode': 'web_audio',
'ChannelSplitterNode': 'web_audio',
'ConvolverNode': 'web_audio',
'DelayNode': 'web_audio',
'DynamicsCompressorNode': 'web_audio',
'GainNode': 'web_audio',
'IIRFilterNode': 'web_audio',
'MediaElementAudioSourceNode': 'web_audio',
'MediaStreamAudioDestinationNode': 'web_audio',
'MediaStreamAudioSourceNode': 'web_audio',
'OfflineAudioCompletionEvent': 'web_audio',
'OfflineAudioContext': 'web_audio',
'OscillatorNode': 'web_audio',
'PannerNode': 'web_audio',
'PeriodicWave': 'web_audio',
'ScriptProcessorNode': 'web_audio',
'StereoPannerNode': 'web_audio',
'WaveShaperNode': 'web_audio',
'WindowWebAudio': 'web_audio',
})
_library_ids = monitored.Dict('htmlrenamer._library_names', {
@ -837,6 +895,37 @@ _library_ids = monitored.Dict('htmlrenamer._library_names', {
'Database': 'WebSql',
'Navigator': 'Html',
'Window': 'Html',
'AnalyserNode': 'WebAudio',
'AudioBufferCallback': 'WebAudio',
'AudioBuffer': 'WebAudio',
'AudioBufferSourceNode': 'WebAudio',
'AudioContext': 'WebAudio',
'AudioDestinationNode': 'WebAudio',
'AudioListener': 'WebAudio',
'AudioNode': 'WebAudio',
'AudioParam': 'WebAudio',
'AudioProcessingEvent': 'WebAudio',
'AudioSourceNode': 'WebAudio',
'BiquadFilterNode': 'WebAudio',
'ChannelMergerNode': 'WebAudio',
'ChannelSplitterNode': 'WebAudio',
'ConvolverNode': 'WebAudio',
'DelayNode': 'WebAudio',
'DynamicsCompressorNode': 'WebAudio',
'GainNode': 'WebAudio',
'IIRFilterNode': 'WebAudio',
'MediaElementAudioSourceNode': 'WebAudio',
'MediaStreamAudioDestinationNode': 'WebAudio',
'MediaStreamAudioSourceNode': 'WebAudio',
'OfflineAudioCompletionEvent': 'WebAudio',
'OfflineAudioContext': 'WebAudio',
'OscillatorNode': 'WebAudio',
'PannerNode': 'WebAudio',
'PeriodicWave': 'WebAudio',
'ScriptProcessorNode': 'WebAudio',
'StereoPannerNode': 'WebAudio',
'WaveShaperNode': 'WebAudio',
'WindowWebAudio': 'WebAudio',
})
class HtmlRenamer(object):
@ -946,8 +1035,10 @@ class HtmlRenamer(object):
if interface.id in _library_names:
return _library_names[interface.id]
# TODO(ager, blois): The conditional has been removed from indexed db,
# so we can no longer determine the library based on the conditionals.
# Support for IDL conditional has been removed from indexed db, web_sql,
# svg and web_gl so we can no longer determine the library based on conditional.
# Use interface prefix to do that. web_audio interfaces have no common prefix
# - all audio interfaces added to _library_names/_library_ids.
if interface.id.startswith("IDB"):
return 'indexed_db'
if interface.id.startswith("SQL"):
@ -958,14 +1049,6 @@ class HtmlRenamer(object):
or interface.id.startswith("EXT"):
return 'web_gl'
if 'Conditional' in interface.ext_attrs:
if 'WEB_AUDIO' in interface.ext_attrs['Conditional']:
return 'web_audio'
if 'INDEXED_DATABASE' in interface.ext_attrs['Conditional']:
return 'indexed_db'
if 'SQL_DATABASE' in interface.ext_attrs['Conditional']:
return 'web_sql'
if interface.id in typed_array_renames:
return 'typed_data'
@ -976,8 +1059,10 @@ class HtmlRenamer(object):
if interface.id in _library_ids:
return _library_ids[interface.id]
# TODO(ager, blois): The conditional has been removed from indexed db,
# so we can no longer determine the library based on the conditionals.
# Support for IDL conditional has been removed from indexed db, web_sql,
# svg and web_gl so we can no longer determine the library based on conditional.
# Use interface prefix to do that. web_audio interfaces have no common prefix
# - all audio interfaces added to _library_names/_library_ids.
if interface.id.startswith("IDB"):
return 'IndexedDb'
if interface.id.startswith("SQL"):
@ -988,14 +1073,6 @@ class HtmlRenamer(object):
or interface.id.startswith("EXT"):
return 'WebGl'
if 'Conditional' in interface.ext_attrs:
if 'WEB_AUDIO' in interface.ext_attrs['Conditional']:
return 'WebAudio'
if 'INDEXED_DATABASE' in interface.ext_attrs['Conditional']:
return 'IndexedDb'
if 'SQL_DATABASE' in interface.ext_attrs['Conditional']:
return 'WebSql'
if interface.id in typed_array_renames:
return 'TypedData'

View file

@ -58,10 +58,13 @@ class IDLNode(object):
etc.
"""
def __init__(self, ast):
def __init__(self, ast, id=None):
"""Initializes an IDLNode from a PegParser AST output."""
self.id = self._find_first(ast, 'Id') if ast is not None else None
if ast:
self.id = self._find_first(ast, 'Id') if ast is not None else None
else:
# Support synthesized IDLNode created w/o an AST (e.g., setlike support).
self.id = id
def __repr__(self):
"""Generates string of the form <class id extra extra ... 0x12345678>."""
@ -570,90 +573,95 @@ class IDLExtAttrFunctionValue(IDLNode):
class IDLType(IDLNode):
"""IDLType is used to describe constants, attributes and operations'
return and input types. IDLType matches AST labels such as ScopedName,
StringType, VoidType, IntegerType, etc."""
StringType, VoidType, IntegerType, etc.
NOTE: AST of None implies synthesize IDLType the id is passed in used by
setlike."""
def __init__(self, ast):
def __init__(self, ast, id=None):
global _unions_to_any
IDLNode.__init__(self, ast)
IDLNode.__init__(self, ast, id)
if ast:
self.nullable = self._has(ast, 'Nullable')
# Search for a 'ScopedName' or any label ending with 'Type'.
if isinstance(ast, list):
self.id = self._find_first(ast, 'ScopedName')
if not self.id:
# FIXME: use regexp search instead
def findType(ast):
for label, childAst in ast:
if label.endswith('Type'):
type = self._label_to_type(label, ast)
if type != 'sequence':
return type
type_ast = self._find_first(childAst, 'Type')
if not type_ast:
return type
return 'sequence<%s>' % findType(type_ast)
raise Exception('No type declaration found in %s' % ast)
self.id = findType(ast)
# TODO(terry): Remove array_modifiers id has [] appended, keep for old
# parsing.
array_modifiers = self._find_first(ast, 'ArrayModifiers')
if array_modifiers:
self.id += array_modifiers
elif isinstance(ast, tuple):
(label, value) = ast
if label == 'ScopedName':
self.id = value
else:
self.id = self._label_to_type(label, ast)
elif isinstance(ast, str):
self.id = ast
# New blink handling.
elif ast.__module__ == "idl_types":
if isinstance(ast, IdlType) or isinstance(ast, IdlArrayOrSequenceType) or \
isinstance(ast, IdlNullableType):
if isinstance(ast, IdlNullableType) and ast.inner_type.is_union_type:
# Report of union types mapped to any.
if not(self.id in _unions_to_any):
_unions_to_any.append(self.id)
# TODO(terry): For union types use any otherwise type is unionType is
# not found and is removed during merging.
self.id = 'any'
else:
type_name = str(ast)
# TODO(terry): For now don't handle unrestricted types see
# https://code.google.com/p/chromium/issues/detail?id=354298
type_name = type_name.replace('unrestricted ', '', 1);
# TODO(terry): Handled USVString as a DOMString.
type_name = type_name.replace('USVString', 'DOMString', 1)
# TODO(terry); WindowTimers setInterval/setTimeout overloads with a
# Function type - map to any until the IDL uses union.
type_name = type_name.replace('Function', 'any', 1)
self.id = type_name
else:
# IdlUnionType
if ast.is_union_type:
if not(self.id in _unions_to_any):
_unions_to_any.append(self.id)
# TODO(terry): For union types use any otherwise type is unionType is
# not found and is removed during merging.
self.id = 'any'
# TODO(terry): Any union type e.g. 'type1 or type2 or type2',
# 'typedef (Type1 or Type2) UnionType'
# Is a problem we need to extend IDLType and IDLTypeDef to handle more
# than one type.
#
# Also for typedef's e.g.,
# typedef (Type1 or Type2) UnionType
# should consider synthesizing a new interface (e.g., UnionType) that's
# both Type1 and Type2.
if not ast:
# Support synthesized IDLType with no AST (e.g., setlike support).
return
self.nullable = self._has(ast, 'Nullable')
# Search for a 'ScopedName' or any label ending with 'Type'.
if isinstance(ast, list):
self.id = self._find_first(ast, 'ScopedName')
if not self.id:
print '>>>> __module__ %s' % ast.__module__
raise SyntaxError('Could not parse type %s' % (ast))
# FIXME: use regexp search instead
def findType(ast):
for label, childAst in ast:
if label.endswith('Type'):
type = self._label_to_type(label, ast)
if type != 'sequence':
return type
type_ast = self._find_first(childAst, 'Type')
if not type_ast:
return type
return 'sequence<%s>' % findType(type_ast)
raise Exception('No type declaration found in %s' % ast)
self.id = findType(ast)
# TODO(terry): Remove array_modifiers id has [] appended, keep for old
# parsing.
array_modifiers = self._find_first(ast, 'ArrayModifiers')
if array_modifiers:
self.id += array_modifiers
elif isinstance(ast, tuple):
(label, value) = ast
if label == 'ScopedName':
self.id = value
else:
self.id = self._label_to_type(label, ast)
elif isinstance(ast, str):
self.id = ast
# New blink handling.
elif ast.__module__ == "idl_types":
if isinstance(ast, IdlType) or isinstance(ast, IdlArrayOrSequenceType) or \
isinstance(ast, IdlNullableType):
if isinstance(ast, IdlNullableType) and ast.inner_type.is_union_type:
# Report of union types mapped to any.
if not(self.id in _unions_to_any):
_unions_to_any.append(self.id)
# TODO(terry): For union types use any otherwise type is unionType is
# not found and is removed during merging.
self.id = 'any'
else:
type_name = str(ast)
# TODO(terry): For now don't handle unrestricted types see
# https://code.google.com/p/chromium/issues/detail?id=354298
type_name = type_name.replace('unrestricted ', '', 1);
# TODO(terry): Handled USVString as a DOMString.
type_name = type_name.replace('USVString', 'DOMString', 1)
# TODO(terry); WindowTimers setInterval/setTimeout overloads with a
# Function type - map to any until the IDL uses union.
type_name = type_name.replace('Function', 'any', 1)
self.id = type_name
else:
# IdlUnionType
if ast.is_union_type:
if not(self.id in _unions_to_any):
_unions_to_any.append(self.id)
# TODO(terry): For union types use any otherwise type is unionType is
# not found and is removed during merging.
self.id = 'any'
# TODO(terry): Any union type e.g. 'type1 or type2 or type2',
# 'typedef (Type1 or Type2) UnionType'
# Is a problem we need to extend IDLType and IDLTypeDef to handle more
# than one type.
#
# Also for typedef's e.g.,
# typedef (Type1 or Type2) UnionType
# should consider synthesizing a new interface (e.g., UnionType) that's
# both Type1 and Type2.
if not self.id:
print '>>>> __module__ %s' % ast.__module__
raise SyntaxError('Could not parse type %s' % (ast))
def _label_to_type(self, label, ast):
if label == 'LongLongType':
@ -717,6 +725,72 @@ class IDLDictionaryMembers(IDLDictNode):
value = IDLDictionaryMember(member, js_name)
self[name] = value
def generate_operation(interface_name, result_type_name, oper_name, arguments):
""" Synthesize an IDLOperation with no AST used for support of setlike."""
""" Arguments is a list of argument where each argument is:
[IDLType, argument_name, optional_boolean] """
syn_op = IDLOperation(None, interface_name, oper_name)
syn_op.type = IDLType(None, result_type_name)
syn_op.type = resolveTypedef(syn_op.type)
for argument in arguments:
arg = IDLArgument(None, argument[1]);
arg.type = argument[0];
arg.optional = argument[2] if len(argument) > 2 else False
syn_op.arguments.append(arg)
return syn_op
def generate_setLike_operations_properties(interface, set_like):
"""
Need to create (in our database) a number of operations. This is a new IDL
syntax, the implied operations for a set now use setlike<T> where T is a known
type e.g., setlike<FontFace> setlike implies these operations are generated:
void forEach(any callback, optional any thisArg);
boolean has(FontFace fontFace);
boolean has(FontFace fontFace);
if setlike is not read-only these operations are generated:
FontFaceSet add(FontFace value);
boolean delete(FontFace value);
void clear();
"""
setlike_ops = []
"""
Need to create a typedef for a function callback e.g.,
a setlike will need a callback that has the proper args in FontFaceSet that is
three arguments, etc.
typedef void FontFaceSetForEachCallback(
FontFace fontFace, FontFace fontFaceAgain, FontFaceSet set);
void forEach(FontFaceSetForEachCallback callback, [Object thisArg]);
"""
callback_name = '%sForEachCallback' % interface.id
set_op = generate_operation(interface.id, 'void', 'forEach',
[[IDLType(None, callback_name), 'callback'],
[IDLType(None, 'any'), 'thisArg', True]])
setlike_ops.append(set_op)
set_op = generate_operation(interface.id, 'boolean', 'has',
[[IDLType(None, set_like.value_type.base_type), 'arg']])
setlike_ops.append(set_op)
if not set_like.is_read_only:
set_op = generate_operation(interface.id, interface.id, 'add',
[[IDLType(None, set_like.value_type.base_type), 'arg']])
setlike_ops.append(set_op)
set_op = generate_operation(interface.id, 'boolean', 'delete',
[[IDLType(None, set_like.value_type.base_type), 'arg']])
setlike_ops.append(set_op)
set_op = generate_operation(interface.id, 'void', 'clear', [])
setlike_ops.append(set_op)
return setlike_ops
class IDLInterface(IDLNode):
"""IDLInterface node contains operations, attributes, constants,
@ -742,6 +816,12 @@ class IDLInterface(IDLNode):
self.operations = self._convert_all(ast, 'Operation',
lambda ast: IDLOperation(ast, self.doc_js_name))
if ast.setlike:
setlike_ops = generate_setLike_operations_properties(self, ast.setlike)
for op in setlike_ops:
self.operations.append(op)
self.attributes = self._convert_all(ast, 'Attribute',
lambda ast: IDLAttribute(ast, self.doc_js_name))
self.constants = self._convert_all(ast, 'Const',
@ -752,7 +832,6 @@ class IDLInterface(IDLNode):
self.is_fc_suppressed = 'Suppressed' in self.ext_attrs or \
'DartSuppress' in self.ext_attrs
def reset_id(self, new_id):
"""Reset the id of the Interface and corresponding the JS names."""
if self.id != new_id:
@ -785,9 +864,16 @@ class IDLParentInterface(IDLNode):
class IDLMember(IDLNode):
"""A base class for constants, attributes and operations."""
def __init__(self, ast, doc_js_interface_name):
IDLNode.__init__(self, ast)
def __init__(self, ast, doc_js_interface_name, member_id=None):
if ast:
IDLNode.__init__(self, ast)
else:
# The ast is None to support synthesizing an IDLMember, member_id is only
# used when ast is None.
IDLNode.__init__(self, ast, member_id)
self.type = None
self.doc_js_interface_name = doc_js_interface_name
return
self.type = self._convert_first(ast, 'Type', IDLType)
self.type = resolveTypedef(self.type)
@ -802,8 +888,18 @@ class IDLMember(IDLNode):
class IDLOperation(IDLMember):
"""IDLNode specialization for 'type name(args)' declarations."""
def __init__(self, ast, doc_js_interface_name):
IDLMember.__init__(self, ast, doc_js_interface_name)
def __init__(self, ast, doc_js_interface_name, id=None):
IDLMember.__init__(self, ast, doc_js_interface_name, id)
if not ast:
# Synthesize an IDLOperation with no ast used for setlike.
self.ext_attrs = IDLExtAttrs()
self.annotations = IDLAnnotations()
self.is_fc_suppressed = False
self.specials = []
self.is_static = False
self.arguments = []
return;
self.type = self._convert_first(ast, 'ReturnType', IDLType)
self.type = resolveTypedef(self.type)
@ -837,6 +933,9 @@ class IDLOperation(IDLMember):
operation_category = 'Named' if arg.type.id == 'DOMString' else 'Indexed'
self.ext_attrs.setdefault('ImplementedAs', 'anonymous%s%s' % (operation_category, _operation_suffix_map[self.id]))
def __repr__(self):
return '<IDLOperation(id = %s)>' % (self.id)
def _extra_repr(self):
return [self.arguments]
@ -867,8 +966,16 @@ class IDLConstant(IDLMember):
class IDLArgument(IDLNode):
"""IDLNode specialization for operation arguments."""
def __init__(self, ast):
IDLNode.__init__(self, ast)
def __init__(self, ast, id=None):
if ast:
IDLNode.__init__(self, ast)
else:
# Synthesize an IDLArgument with no ast used for setlike.
IDLNode.__init__(self, ast, id)
self.ext_attrs = IDLExtAttrs()
self.default_value = None
self.default_value_is_null = False
return
self.default_value = None
self.default_value_is_null = False

View file

@ -1,128 +1,108 @@
#!/usr/bin/python
# Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
# Upgrading Dart's SDK for HTML (blink IDLs).
#
# Typically this is done using the Dart integration branch (as it has to be
# staged to get most things working).
#
# Enlist in third_party/WebCore:
# > cd src/dart/third_party
# > rm -rf WebCore (NOTE: Normally detached head using gclient sync)
# > git clone https://github.com/dart-lang/webcore.git WebCore
#
# To update all *.idl, *.py, LICENSE files, and IDLExtendedAttributes.txt:
# > cd src/dart
# > python tools/dom/scripts/idlsync.py
#
# Display blink files to delete, copy, update, and collisions to review:
# > python tools/dom/scripts/idlsync.py --check
#
# Bring over all blink files to dart/third_party/WebCore (*.py, *.idl, and
# IDLExtendedAttributes.txt):
# > python tools/dom/scripts/idlsync.py
#
# Update the DEPS file SHA for "WebCore_rev" with the committed changes of files
# in WebCore e.g., "WebCore_rev": "@NNNNNNNNNNNNNNNNNNNNNNNNN"
#
# Generate the sdk/*.dart files from the new IDLs and PYTHON IDL parsing code
# copied to in dart/third_party/WebCore from src/third_party/WebKit (blink).
#
# > cd src/dart/tools/dom/script
# > ./go.sh
#
# Finally, commit the files in dart/third_party/WebCore.
import optparse
import os
import os.path
import re
import requests
import shutil
import subprocess
import sys
import tempfile
import time
SCRIPT_PATH = os.path.abspath(os.path.dirname(__file__))
DART_PATH = os.path.abspath(os.path.join(SCRIPT_PATH, '..', '..', '..'))
from shutil import copyfile
# Dartium DEPS file from the DEPS file checked into the dart-lang/sdk integration
# branch.
DEPS_GIT = ('https://raw.githubusercontent.com/dart-lang/sdk/'
'integration/tools/deps/dartium.deps/DEPS')
# Whitelist of files to keep.
WHITELIST = [
r'LICENSE(\S+)',
r'(\S+)\.idl',
r'(\S+)\.json',
r'(\S+)\.py',
r'(\S+)\.txt',
]
# WebKit / WebCore info.
CHROME_TRUNK = "https://src.chromium.org"
WEBKIT_URL_PATTERN = r'"dartium_webkit_branch": "(\S+)",'
WEBKIT_REV_PATTERN = r'"dartium_webkit_revision": "(\d+)",'
WEBCORE_SUBPATH = 'Source/core'
MODULES_SUBPATH = 'Source/modules'
BINDINGS_SUBPATH = 'Source/bindings'
LOCAL_WEBKIT_IDL_PATH = os.path.join(DART_PATH, 'third_party', 'WebCore')
LOCAL_WEBKIT_README = """\
This directory contains a copy of WebKit/WebCore IDL files.
See the attached LICENSE-* files in this directory.
Please do not modify the files here. They are periodically copied
using the script: $DART_ROOT/sdk/lib/html/scripts/%(script)s
The current version corresponds to:
URL: %(url)s
Current revision: %(revision)s
"""
# Chrome info.
CHROME_URL_PATTERN = r'"dartium_chromium_branch": "(\S+)",'
CHROME_REV_PATTERN = r'"dartium_chromium_revision": "(\d+)",'
CHROME_IDL_SUBPATH = 'trunk/src/chrome/common/extensions/api'
CHROME_COMMENT_EATER_SUBPATH = 'trunk/src/tools/json_comment_eater'
CHROME_COMPILER_SUBPATH = 'trunk/src/tools/json_schema_compiler'
CHROME_IDL_PARSER_SUBPATH = 'trunk/src/ppapi/generators'
CHROME_PLY_SUBPATH = 'trunk/src/third_party/ply'
LOCAL_CHROME_IDL_PATH = os.path.join(DART_PATH, 'third_party', 'chrome', 'idl')
LOCAL_CHROME_COMMENT_EATER_PATH = os.path.join(
DART_PATH, 'third_party', 'chrome', 'tools', 'json_comment_eater')
LOCAL_CHROME_COMPILER_PATH = os.path.join(DART_PATH, 'third_party', 'chrome',
'tools', 'json_schema_compiler')
LOCAL_CHROME_IDL_PARSER_PATH = os.path.join(DART_PATH, 'third_party', 'chrome',
'ppapi', 'generators')
LOCAL_CHROME_PLY_PATH = os.path.join(DART_PATH, 'third_party', 'chrome',
'third_party', 'ply')
LOCAL_CHROME_README = """\
This directory contains a copy of Chromium IDL and generation scripts
used to generate Dart APIs for Chrome Apps.
The original files are from:
URL: %(url)s
Current revision: %(revision)s
Please see the corresponding LICENSE file at
%(url)s/trunk/src/LICENSE.
"""
DEPTH_FILES = 'files'
DEPTH_INFINITY = 'infinity'
# Regular expressions corresponding to URL/revision patters in the
# DEPS file.
DEPS_GIT = ('https://raw.githubusercontent.com/dart-lang/sdk/integration/'
'tools/deps/dartium.deps/DEPS')
CHROME_TRUNK = "https://chromium.googlesource.com"
WEBKIT_URL_PATTERN = r'"dartium_chromium_commit": "(\S+)",'
DEPS_PATTERNS = {
'webkit': (CHROME_TRUNK, WEBKIT_URL_PATTERN, WEBKIT_REV_PATTERN),
# 'chrome': (CHROME_TRUNK, CHROME_URL_PATTERN, CHROME_REV_PATTERN),
}
'webkit': (CHROME_TRUNK, WEBKIT_URL_PATTERN),
}
# List of components to update.
UPDATE_LIST = [
# (component, remote subpath, local path, local readme file, depth)
# Dartium/Chromium remote (GIT repository)
GIT_REMOTES_CHROMIUM = 'https://chromium.googlesource.com/dart/dartium/src.git'
# WebKit IDL.
('webkit', WEBCORE_SUBPATH, os.path.join(LOCAL_WEBKIT_IDL_PATH, 'core'),
LOCAL_WEBKIT_README, DEPTH_INFINITY),
('webkit', MODULES_SUBPATH, os.path.join(LOCAL_WEBKIT_IDL_PATH, 'modules'),
LOCAL_WEBKIT_README, DEPTH_INFINITY),
('webkit', BINDINGS_SUBPATH, os.path.join(LOCAL_WEBKIT_IDL_PATH, 'bindings'),
LOCAL_WEBKIT_README, DEPTH_INFINITY),
# location of this file
SOURCE_FILE_DIR = 'src/dart/tools/dom/scripts'
# Chrome IDL.
('chrome', CHROME_IDL_SUBPATH, LOCAL_CHROME_IDL_PATH, LOCAL_CHROME_README,
DEPTH_INFINITY),
# Chrome PPAPI generators. Contains idl_parser.py which is used by the
# Chrome IDL compiler.
('chrome', CHROME_IDL_PARSER_SUBPATH, LOCAL_CHROME_IDL_PARSER_PATH,
LOCAL_CHROME_README, DEPTH_FILES),
# ply files.
('chrome', CHROME_PLY_SUBPATH, LOCAL_CHROME_PLY_PATH, LOCAL_CHROME_README,
DEPTH_INFINITY),
# Path for json_comment_eater, which is needed by the Chrome IDL compiler.
('chrome', CHROME_COMMENT_EATER_SUBPATH, LOCAL_CHROME_COMMENT_EATER_PATH,
LOCAL_CHROME_README, DEPTH_FILES),
# Chrome IDL compiler files.
('chrome', CHROME_COMPILER_SUBPATH, LOCAL_CHROME_COMPILER_PATH,
LOCAL_CHROME_README, DEPTH_INFINITY),
]
WEBKIT_SOURCE = 'src/third_party/WebKit/Source'
WEBCORE_SOURCE = 'src/dart/third_party/WebCore'
# Never automatically git add bindings/IDLExtendedAttributes.txt this file has
# been modified by Dart but is usually changed by WebKit blink too.
IDL_EXTENDED_ATTRIBUTES_FILE = 'IDLExtendedAttributes.txt'
# Don't automatically update, delete or add anything in this directory:
# bindings/dart/scripts
# The scripts in the above directory is the source for our Dart generators that
# is driven from the blink IDL parser AST
DART_SDK_GENERATOR_SCRIPTS = 'bindings/dart/scripts'
# sub directories containing IDLs (core and modules) from the base directory
# src/third_party/WebKit/Source
SUBDIRS = [
'bindings',
'core',
'modules',
]
IDL_EXT = '.idl'
PY_EXT = '.py'
LICENSE_FILE_PREFIX = 'LICENSE' # e.g., LICENSE-APPLE, etc.
# Look in any file in WebCore we copy from WebKit if this comment is in the file
# then flag this as a special .py or .idl file that needs to be looked at.
DART_CHANGES = ' FIXMEDART: '
# application options passed in.
options = None
warning_messages = []
# Is --check passed in.
def isChecked():
global options
return options['check'] is not None
# Is --verbose passed in.
def isVerbose():
global options
return options['verbose'] is not None
def RunCommand(cmd, valid_exits=[0]):
"""Executes a shell command and return its stdout."""
print ' '.join(cmd)
if isVerbose():
print ' '.join(cmd)
pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output = pipe.communicate()
if pipe.returncode in valid_exits:
@ -132,102 +112,207 @@ def RunCommand(cmd, valid_exits=[0]):
print 'FAILED. RET_CODE=%d' % pipe.returncode
sys.exit(pipe.returncode)
# returns True if // FIXMEDART: is in the file.
def anyDartFixMe(filepath):
if os.path.exists(filepath):
data = open(filepath, 'r').read()
return data.find(DART_CHANGES) != -1
else:
return False
# Give a base_dir compute the trailing directory after base_dir
# returns the subpath from base_dir for the path passed in.
def subpath(path, base_dir):
dir_portion = ''
head = path
while True:
head, tail = os.path.split(head)
dir_portion = os.path.join(tail, dir_portion)
if head == base_dir or tail == '':
break;
return dir_portion
# Copy any file in source_dir (WebKit) to destination_dir (dart/third_party/WebCore)
# source_dir is the src/third_party/WebKit/Source location (blink)
# destination_dir is the src/dart/third_party/WebCore location
# returns idls_copied, py_copied, other_copied
def copy_files(source_dir, destination_dir):
original_cwd = os.getcwd()
os.chdir(destination_dir)
idls = 0 # *.idl files copied
pys = 0 # *.py files copied
others = 0 # all other files copied
for (root, _, files) in os.walk(source_dir, topdown=False):
dir_portion = subpath(root, source_dir)
for f in files:
# Never automatically add any Dart generator scripts (these are the original
# sources in WebCore) from WebKit to WebCore.
if dir_portion != DART_SDK_GENERATOR_SCRIPTS:
if (f.endswith(IDL_EXT) or
f == IDL_EXTENDED_ATTRIBUTES_FILE or
f.endswith(PY_EXT) or
f.startswith(LICENSE_FILE_PREFIX)):
if f.endswith(IDL_EXT):
idls += 1
elif f.endswith(PY_EXT):
pys += 1
else:
others += 1
src_file = os.path.join(root, f)
dst_root = root.replace(WEBKIT_SOURCE, WEBCORE_SOURCE)
dst_file = os.path.join(dst_root, f)
destination = os.path.dirname(dst_file)
if not os.path.exists(destination):
os.makedirs(destination)
has_Dart_fix_me = anyDartFixMe(dst_file)
if not isChecked():
copyfile(src_file, dst_file)
if isVerbose():
print('...copying %s' % os.path.split(dst_file)[1])
if f == IDL_EXTENDED_ATTRIBUTES_FILE:
warning_messages.append(dst_file)
else:
if has_Dart_fix_me:
warning_messages.append(dst_file)
if not (isChecked() or has_Dart_fix_me):
# git add the file
RunCommand(['git', 'add', dst_file])
os.chdir(original_cwd)
return [idls, pys, others]
# Remove any file in webcore_dir that no longer exist in the webkit_dir
# webcore_dir src/dart/third_party/WebCore location
# webkit_dir src/third_party/WebKit/Source location (blink)
# only check if the subdir off from webcore_dir
# return list of files deleted
def remove_obsolete_webcore_files(webcore_dir, webkit_dir, subdir):
files_to_delete = []
original_cwd = os.getcwd()
os.chdir(webcore_dir)
for (root, _, files) in os.walk(os.path.join(webcore_dir, subdir), topdown=False):
dir_portion = subpath(root, webcore_dir)
for f in files:
# Never automatically deleted any Dart generator scripts (these are the
# original sources in WebCore).
if dir_portion != DART_SDK_GENERATOR_SCRIPTS:
check_file = os.path.join(dir_portion, f)
check_file_full_path = os.path.join(webkit_dir, check_file)
if not os.path.exists(check_file_full_path):
if not isChecked():
# Remove the file using git
RunCommand(['git', 'rm', check_file])
files_to_delete.append(check_file)
os.chdir(original_cwd)
return files_to_delete
def ParseOptions():
parser = optparse.OptionParser()
parser.add_option('--verbose', '-v', dest='verbose', action='store_false',
help='Dump all information', default=None)
parser.add_option('--check', '-c', dest='check', action='store_false',
help='Display results without adding, updating or deleting any files', default=None)
args, _ = parser.parse_args()
argOptions = {}
argOptions['verbose'] = args.verbose
argOptions['check'] = args.check
return argOptions
# Fetch the DEPS file in src/dart/tools/deps/dartium.deps/DEPS from the GIT repro.
def GetDepsFromGit():
req = requests.get(DEPS_GIT)
return req.text
def GetSvnRevision(deps, component):
"""Returns a tuple with the (dartium webkit repo, latest revision)."""
url_base, url_pattern, rev_pattern = DEPS_PATTERNS[component]
url = url_base + re.search(url_pattern, deps).group(1)
revision = re.search(rev_pattern, deps).group(1)
return (url, revision)
def ValidateGitRemotes():
#origin https://chromium.googlesource.com/dart/dartium/src.git (fetch)
remotes_list = RunCommand(['git', 'remote', '--verbose']).split()
if (len(remotes_list) > 2 and
remotes_list[0] == 'origin' and remotes_list[1] == GIT_REMOTES_CHROMIUM):
return True
print 'ERROR: Unable to find dart/dartium/src repository %s' % GIT_REMOTES_CHROMIUM
return False
def RefreshFiles(url, revision, remote_path, local_path, depth):
"""Refreshes refreshes files in the local_path to specific url /
revision / remote_path, exporting to depth"""
def getCurrentDartiumSHA():
cwd = os.getcwd()
try:
if os.path.exists(local_path):
shutil.rmtree(local_path)
head, tail = os.path.split(local_path)
if not os.path.exists(head):
os.makedirs(head)
os.chdir(head)
RunCommand(['svn', 'export', '--depth', depth, '-r', revision,
url + '/' + remote_path, tail])
finally:
os.chdir(cwd)
if cwd.endswith('dart'):
# In src/dart
src_dir, _ = os.path.split(cwd)
elif cwd.endswith('src'):
src_dir = cwd
else:
src_dir = os.path.join(cwd, 'src')
os.chdir(src_dir)
if ValidateGitRemotes():
dartium_sha = RunCommand(['git', 'log', '--format=format:%H', '-1'])
else:
dartium_sha = -1
def PruneExtraFiles(local_path):
"""Removes all files that do not match the whitelist."""
pattern = re.compile(reduce(lambda x,y: '%s|%s' % (x,y),
map(lambda z: '(%s)' % z, WHITELIST)))
for (root, dirs, files) in os.walk(local_path, topdown=False):
for f in files:
if not pattern.match(f):
os.remove(os.path.join(root, f))
for d in dirs:
dirpath = os.path.join(root, d)
if not os.listdir(dirpath):
shutil.rmtree(dirpath)
def GenerateReadme(local_path, template, url, revision):
readme = template % {
'script': os.path.basename(__file__),
'url': url,
'revision': revision }
readme_path = os.path.join(local_path, 'README')
out = open(readme_path, 'w')
out.write(readme)
out.close()
ZIP_ARCHIVE = 'version-control-dirs.zip'
def SaveVersionControlDir(local_path):
if os.path.exists(local_path):
RunCommand([
'sh', '-c',
'find %s -name .svn -or -name .git | zip -r %s -@' % (
os.path.relpath(local_path), ZIP_ARCHIVE)
], [0, 12]) # It is ok if zip has nothing to do (exit code 12).
def RestoreVersionControlDir(local_path):
archive_path = os.path.join(local_path, ZIP_ARCHIVE)
if os.path.exists(archive_path):
RunCommand(['unzip', ZIP_ARCHIVE, '-d', '.'])
RunCommand(['rm', ZIP_ARCHIVE])
def ParseOptions():
parser = optparse.OptionParser()
parser.add_option('--webkit-revision', '-w', dest='webkit_revision',
help='WebKit IDL revision to install', default=None)
parser.add_option('--chrome-revision', '-c', dest='chrome_revision',
help='Chrome IDL revision to install', default=None)
args, _ = parser.parse_args()
update = {}
update['webkit'] = args.webkit_revision
return update
os.chdir(cwd)
return dartium_sha
# Returns the SHA of the Dartium/Chromiun in the DEPS file.
def GetDEPSDartiumGitRevision(deps, component):
"""Returns a tuple with the (dartium chromium repo, latest revision)."""
url_base, url_pattern = DEPS_PATTERNS[component]
url = url_base + re.search(url_pattern, deps).group(1)
# Get the SHA for the Chromium/WebKit changes for Dartium.
revision = url[len(url_base):]
return revision
def main():
update = ParseOptions()
global options
options = ParseOptions()
current_dir = os.path.dirname(os.path.abspath(__file__))
if not current_dir.endswith(SOURCE_FILE_DIR):
print 'ERROR: idlsync.py not run in proper directory (%s)\n', current_dir
base_directory = current_dir[:current_dir.rfind(SOURCE_FILE_DIR)]
# Validate that the DEPS SHA matches the SHA of the chromium/dartium branch.
deps = GetDepsFromGit()
for (component, remote_path, local_path, readme, depth) in UPDATE_LIST:
if component in update.keys():
revision = update[component]
url, latest = GetSvnRevision(deps, component)
if revision is None:
revision = latest
SaveVersionControlDir(local_path);
RefreshFiles(url, revision, remote_path, local_path, depth)
PruneExtraFiles(local_path)
GenerateReadme(local_path, readme, url, revision)
RestoreVersionControlDir(local_path);
revision = GetDEPSDartiumGitRevision(deps, 'webkit')
dartium_sha = getCurrentDartiumSHA()
if not(revision == dartium_sha):
print "ERROR: Chromium/Dartium SHA in DEPS doesn't match the GIT branch."
return
start_time = time.time()
for subdir in SUBDIRS:
webkit_dir = os.path.join(base_directory, WEBKIT_SOURCE)
webcore_dir = os.path.join(base_directory, WEBCORE_SOURCE)
idls_deleted = remove_obsolete_webcore_files(webcore_dir, webkit_dir, subdir)
print "%s files removed in WebCore %s" % (idls_deleted.__len__(), subdir)
if isVerbose():
for delete_file in idls_deleted:
print " %s" % delete_file
idls_copied, py_copied, other_copied = copy_files(os.path.join(webkit_dir, subdir), webcore_dir)
print "Copied %s IDLs to %s" % (idls_copied, subdir)
print "Copied %s PYs to %s" % (py_copied, subdir)
print "Copied %s other to %s\n" % (other_copied, subdir)
end_time = time.time()
print 'WARNING: File(s) contain FIXMEDART and are NOT "git add " please review:'
for warning in warning_messages:
print ' %s' % warning
print '\nDone idlsync completed in %s seconds' % round(end_time - start_time, 2)
if __name__ == '__main__':
main()
sys.exit(main())

View file

@ -502,7 +502,10 @@ class HtmlDartInterfaceGenerator(object):
if IsCustomType(self._interface.id):
pass
elif 'Callback' in self._interface.ext_attrs:
self.GenerateCallback()
if len(GetCallbackHandlers(self._interface)) > 0:
self.GenerateCallback()
else:
return
else:
self.GenerateInterface()
@ -902,6 +905,8 @@ class Dart2JSBackend(HtmlDartGenerator):
indexed_getter = 'this.getItem(index)'
elif any(op.id == 'item' for op in self._interface.operations):
indexed_getter = 'this.item(index)'
else:
indexed_getter = False
if indexed_getter:
self._members_emitter.Emit(

View file

@ -63,6 +63,8 @@ class KeyEvent extends _WrappedEvent implements KeyboardEvent {
/** Shadows on top of the parent's currentTarget. */
EventTarget _currentTarget;
final InputDeviceCapabilities sourceCapabilities;
/**
* The value we want to use for this object's dispatch. Created here so it is
* only invoked once.
@ -216,7 +218,6 @@ class KeyEvent extends _WrappedEvent implements KeyboardEvent {
bool get metaKey => _parent.metaKey;
/** True if the shift key was pressed during this event. */
bool get shiftKey => _parent.shiftKey;
InputDevice get sourceDevice => _parent.sourceDevice;
Window get view => _parent.view;
void _initUIEvent(
String type, bool canBubble, bool cancelable, Window view, int detail) {

View file

@ -21,13 +21,21 @@ class _WrappedEvent implements Event {
EventTarget get currentTarget => wrapped.currentTarget;
List<EventTarget> deepPath() {
return wrapped.deepPath();
}
bool get defaultPrevented => wrapped.defaultPrevented;
int get eventPhase => wrapped.eventPhase;
bool get isTrusted => wrapped.isTrusted;
bool get scoped => wrapped.scoped;
EventTarget get target => wrapped.target;
int get timeStamp => wrapped.timeStamp;
double get timeStamp => wrapped.timeStamp;
String get type => wrapped.type;

View file

@ -73,6 +73,9 @@ class _ElementCssClassSet extends CssClassSetImpl {
Set<String> readClasses() {
var s = new LinkedHashSet<String>();
var classname = _element.className;
if (classname is svg.AnimatedString) {
classname = classname.baseVal;
}
for (String name in classname.split(' ')) {
String trimmed = name.trim();

View file

@ -67,6 +67,8 @@ class KeyEvent extends _WrappedEvent implements KeyboardEvent {
/** Shadows on top of the parent's currentTarget. */
EventTarget _currentTarget;
final InputDeviceCapabilities sourceCapabilities;
/** Construct a KeyEvent with [parent] as the event we're emulating. */
KeyEvent.wrap(KeyboardEvent parent) : super(parent) {
_parent = parent;

View file

@ -27,13 +27,21 @@ class _WrappedEvent implements Event {
EventTarget get currentTarget => wrapped.currentTarget;
List<EventTarget> deepPath() {
return wrapped.deepPath();
}
bool get defaultPrevented => wrapped.defaultPrevented;
int get eventPhase => wrapped.eventPhase;
bool get isTrusted => wrapped.isTrusted;
bool get scoped => wrapped.scoped;
EventTarget get target => wrapped.target;
int get timeStamp => wrapped.timeStamp;
double get timeStamp => wrapped.timeStamp;
String get type => wrapped.type;

View file

@ -146,3 +146,13 @@ Future<Isolate> spawnDomUri(Uri uri, List<String> args, message) {
}
createCustomUpgrader(Type customElementClass, $this) => $this;
/**
* Emitted for any setlike IDL entry needs a callback signature.
* Today there is only one.
*/
@DomName('FontFaceSetForEachCallback')
@Experimental() // untriaged
typedef void FontFaceSetForEachCallback(
FontFace fontFace, FontFace fontFaceAgain, FontFaceSet set);

View file

@ -377,3 +377,13 @@ class DartHtmlDomObject extends NativeFieldWrapperClass2 {}
_createCustomUpgrader(Type customElementClass, $this) => $this;
$endif
/**
* Emitted for any setlike IDL entry needs a callback signature.
* Today there is only one.
*/
@DomName('FontFaceSetForEachCallback')
@Experimental() // untriaged
typedef void FontFaceSetForEachCallback(
FontFace fontFace, FontFace fontFaceAgain, FontFaceSet set);

View file

@ -67,11 +67,7 @@ $endif
$if DARTIUM
bool _hasProperty(String propertyName) =>
$if JSINTEROP
_blink.BlinkCSSStyleDeclaration.instance.$__propertyQuery___Callback_1_(this, propertyName);
$else
_blink.BlinkCSSStyleDeclaration.$__propertyQuery___Callback_1(this, propertyName);
$endif
_blink.BlinkCSSStyleDeclaration.instance.$__get___propertyIsEnumerable_Callback_1_(this, propertyName);
$endif
@DomName('CSSStyleDeclaration.setProperty')

View file

@ -27,6 +27,8 @@ $(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS
static const String TIMEOUT = 'TimeoutError';
static const String INVALID_NODE_TYPE = 'InvalidNodeTypeError';
static const String DATA_CLONE = 'DataCloneError';
// Is TypeError class derived from DomException but name is 'TypeError'
static const String TYPE_ERROR = 'TypeError';
$if DART2JS
String get name {

View file

@ -1341,6 +1341,12 @@ $endif
base.href = document.baseUri;
_parseDocument.head.append(base);
}
// TODO(terry): Fixes Chromium 50 change no body after createHtmlDocument()
if (_parseDocument.body == null) {
_parseDocument.body = _parseDocument.createElement("body");
}
var contextElement;
if (this is BodyElement) {
contextElement = _parseDocument.body;
@ -1593,23 +1599,23 @@ $else
@DomName('Element.offsetParent')
@DocsEditable()
Element get offsetParent => _blink.BlinkElement.instance.offsetParent_Getter_(this);
Element get offsetParent => _blink.BlinkHTMLElement.instance.offsetParent_Getter_(this);
@DomName('Element.offsetHeight')
@DocsEditable()
int get offsetHeight => _blink.BlinkElement.instance.offsetHeight_Getter_(this);
int get offsetHeight => _blink.BlinkHTMLElement.instance.offsetHeight_Getter_(this);
@DomName('Element.offsetLeft')
@DocsEditable()
int get offsetLeft => _blink.BlinkElement.instance.offsetLeft_Getter_(this);
int get offsetLeft => _blink.BlinkHTMLElement.instance.offsetLeft_Getter_(this);
@DomName('Element.offsetTop')
@DocsEditable()
int get offsetTop => _blink.BlinkElement.instance.offsetTop_Getter_(this);
int get offsetTop => _blink.BlinkHTMLElement.instance.offsetTop_Getter_(this);
@DomName('Element.offsetWidth')
@DocsEditable()
int get offsetWidth => _blink.BlinkElement.instance.offsetWidth_Getter_(this);
int get offsetWidth => _blink.BlinkHTMLElement.instance.offsetWidth_Getter_(this);
@DomName('Element.scrollHeight')
@DocsEditable()

View file

@ -45,7 +45,7 @@ $if DART2JS
static bool get supportsCssCanvasContext =>
JS('bool', '!!(document.getCSSCanvasContext)');
$else
static bool get supportsCssCanvasContext => true;
static bool get supportsCssCanvasContext => false;
$endif
@ -75,7 +75,11 @@ $endif
@DomName('Document.getCSSCanvasContext')
CanvasRenderingContext getCssCanvasContext(String contextId, String name,
int width, int height) {
return _getCssCanvasContext(contextId, name, width, height);
$if DART2JS
if (HtmlDocument.supportsCssCanvasContext)
return JS('CanvasRenderingContext', '#.getCSSCanvasContext(#, #, #, #)', this, contextId, name, width, height);
$endif
throw new UnsupportedError("Not supported");
}
@DomName('Document.head')

View file

@ -9,22 +9,18 @@ $(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS
factory $CLASSNAME(String type,
{bool canBubble: true, bool cancelable: true, String oldUrl,
String newUrl}) {
$if DART2JS
var options = {
'canBubble' : canBubble,
'cancelable' : cancelable,
'oldURL': oldUrl,
'newURL': newUrl,
};
$if DART2JS
return JS('HashChangeEvent', 'new HashChangeEvent(#, #)',
type, convertDartToNative_Dictionary(options));
$else
// TODO(alanknight): This is required while we're on Dartium 39, but will need
// to look like dart2js with later versions when initHashChange is removed.
var event = document._createEvent("HashChangeEvent");
event._initHashChangeEvent(type, canBubble, cancelable, oldUrl, newUrl);
return event;
return _blink.BlinkHashChangeEvent.instance
.constructorCallback_2_(type, convertDartToNative_Dictionary(options));
$endif
}

View file

@ -62,5 +62,17 @@ $endif
_getStats((value) { completer.complete(value); }, selector);
return completer.future;
}
@DomName('RTCPeerConnection.generateCertificate')
@DocsEditable()
@Experimental() // untriaged
static Future generateCertificate(/*AlgorithmIdentifier*/ keygenAlgorithm) =>
$if DART2JS
JS('dynamic', 'generateCertificate(#)', keygenAlgorithm);
$else
convertNativePromiseToDartFuture(_blink.BlinkRTCPeerConnection.instance
.generateCertificate_Callback_1_(keygenAlgorithm));
$endif
$!MEMBERS
}

View file

@ -4,13 +4,16 @@
part of $LIBRARYNAME;
class _AttributeClassSet extends CssClassSetImpl {
class AttributeClassSet extends CssClassSetImpl {
final Element _element;
_AttributeClassSet(this._element);
AttributeClassSet(this._element);
Set<String> readClasses() {
var classname = _element.attributes['class'];
if (classname is AnimatedString) {
classname = classname.baseVal;
}
Set<String> s = new LinkedHashSet<String>();
if (classname == null) {
@ -26,7 +29,7 @@ class _AttributeClassSet extends CssClassSetImpl {
}
void writeClasses(Set s) {
_element.attributes['class'] = s.join(' ');
_element.setAttribute('class', s.join(' '));
}
}
@ -54,7 +57,7 @@ $(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS
return fragment.nodes.where((e) => e is SvgElement).single;
}
CssClassSet get classes => new _AttributeClassSet(this);
CssClassSet get classes => new AttributeClassSet(this);
List<Element> get children => new FilteredElementList(this);

View file

@ -15,18 +15,25 @@ $(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS
if (view == null) {
view = window;
}
$if DART2JS
TouchEvent e = document._createEvent("TouchEvent");
$else
TouchEvent e = _blink.BlinkTouchEvent.instance.constructorCallback_1_(type);
$endif
e._initTouchEvent(touches, targetTouches, changedTouches, type, view,
screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey);
return e;
}
$!MEMBERS
/**
* Checks if touch events supported on the current platform.
*
* Note that touch events are only supported if the user is using a touch
* device.
*/
$if DART2JS
static bool get supported => Device.isEventTypeSupported('TouchEvent');
$else
static bool get supported => true;
$endif
}

View file

@ -2105,6 +2105,10 @@ class RunningProcess {
environment.remove(excludedEnvironmentVariable);
}
// TODO(terry): Needed for roll 50?
environment["GLIBCPP_FORCE_NEW"] = "1";
environment["GLIBCXX_FORCE_NEW"] = "1";
return environment;
}
}

View file

@ -1208,6 +1208,8 @@ class StandardTestSuite extends TestSuite {
if (configuration['system'] == 'linux' &&
configuration['runtime'] == 'drt') {
contentShellOptions.add('--disable-gpu');
// TODO(terry): Roll 50 need this in conjection with disable-gpu.
contentShellOptions.add('--disable-gpu-early-init');
}
if (compiler == 'none') {
dartFlags.add('--ignore-unrecognized-flags');

View file

@ -404,7 +404,7 @@ def GetArchiveVersion():
version = ReadVersionFile()
if not version:
raise 'Could not get the archive version, parsing the version file failed'
if version.channel == 'be':
if version.channel in ['be', 'integration']:
return GetGitNumber()
return GetSemanticSDKVersion()