Merge mozilla-central to mozilla-inbound

This commit is contained in:
Carsten "Tomcat" Book 2017-02-13 12:43:02 +01:00
Родитель 46c6dced28 818da54eb3
Коммит 5e0ddfa9fb
23 изменённых файлов: 323 добавлений и 192 удалений

Просмотреть файл

@ -67,7 +67,7 @@ AnimValuesStyleRule::AddValue(nsCSSPropertyID aProperty,
{
MOZ_ASSERT(aProperty != eCSSProperty_UNKNOWN,
"Unexpected css property");
mAnimationValues.Put(aProperty, Move(aValue));
mAnimationValues.Put(aProperty, aValue);
mStyleBits |=
nsCachedStyleData::GetBitForSID(nsCSSProps::kSIDTable[aProperty]);
}

Просмотреть файл

@ -1314,9 +1314,10 @@ EventListenerManager::HandleEventInternal(nsPresContext* aPresContext,
// If we didn't find any matching listeners, and our event has a legacy
// version, we'll now switch to looking for that legacy version and we'll
// recheck our listeners.
if (hasListenerForCurrentGroup || usingLegacyMessage) {
// (No need to recheck listeners, because we already found a match, or we
// already rechecked them.)
if (hasListenerForCurrentGroup ||
usingLegacyMessage || !aEvent->IsTrusted()) {
// No need to recheck listeners, because we already found a match, we
// already rechecked them, or it is not a trusted event.
break;
}
EventMessage legacyEventMessage = GetLegacyEventMessage(eventMessage);

Просмотреть файл

@ -173,3 +173,4 @@ skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
[test_bug1305458.html]
[test_bug1298970.html]
[test_bug1304044.html]
[test_bug1332699.html]

Просмотреть файл

@ -0,0 +1,37 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test for bug 1332699</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<script src="/tests/SimpleTest/EventUtils.js"></script>
<link rel="stylesheet" href="/tests/SimpleTest/test.css">
<style>
#test {
color: red;
transition: color 100ms;
}
#test.changed {
color: green;
}
</style>
<div id="test"></div>
<script>
SimpleTest.waitForExplicitFinish();
window.onload = function () {
let $test = document.getElementById('test');
is(getComputedStyle($test).color, 'rgb(255, 0, 0)',
'color should be red before transition');
let numEvents = 0;
$test.addEventListener('webkittransitionend', function() {
++numEvents;
if (numEvents == 1) {
is(getComputedStyle($test).color, 'rgb(0, 128, 0)',
'color should be green after transition');
$test.dispatchEvent(new TransitionEvent('transitionend'));
is(numEvents, 1, "Shouldn't receive the prefixed event again");
SimpleTest.finish();
}
});
$test.className = 'changed';
};
</script>

Просмотреть файл

@ -107,7 +107,7 @@ asserts-if(stylo,1) load 766452-1.html # bug 1324700
load 766452-2.html
load 768079-1.html
asserts-if(stylo,2) load 783041-1.html # bug 1324661
asserts-if(stylo,2) load 783041-2.html # bug 1324661
asserts-if(stylo,2-4) load 783041-2.html # bug 1324661
asserts-if(stylo,3) load 783041-3.html # bug 1324671
asserts-if(stylo,2) load 783041-4.html # bug 1324661
load 798853.html # bug 868792

Просмотреть файл

@ -18,7 +18,7 @@ fails == small-background-size-2.gif small-background-size-2.gif
random == delaytest.html?transparent-animation.gif delaytest.html?transparent-animation.gif
# test for bug 641198
fails == test_bug641198.html test_bug641198.html
== test_bug641198.html test_bug641198.html
# Bug 1062886: a gif with a single color and an offset
fails == one-color-offset.gif one-color-offset.gif

Просмотреть файл

@ -79,7 +79,7 @@ fails == 263359-4.html 263359-4.html
fails == 267459-1.html 267459-1.html
fails == 267459-2.html 267459-2.html
== 299065-1.html 299065-1.html
== 305643-1.html 305643-1.html
# == 305643-1.html 305643-1.html
fails asserts-if(stylo,7) == 332655-1.html 332655-1.html # bug 1335314
fails asserts-if(stylo,7) == 332655-2.html 332655-2.html # bug 1335314
fails == 381279-1.html 381279-1.html

Просмотреть файл

@ -99,7 +99,7 @@ fails == 97777-2.html 97777-2.html
# == 99850-1b.html 99850-1b.html # bug 1337695
fails == 99850-1c.html 99850-1c.html
# == 99850-1d.html 99850-1d.html # bug 1337695
asserts-if(stylo,8) == 105030-1.html 105030-1.html # bug 1324661
asserts-if(stylo,6-8) == 105030-1.html 105030-1.html # bug 1324661
== 109735-1.html 109735-1.html
== 116882-1.html 116882-1.html
== 120834-1a.html 120834-1a.html
@ -659,9 +659,9 @@ fails == 372768-1.html 372768-1.html
fails == 373295-1.html 373295-1.html
fails == 373298-1.html 373298-1.html
== 373381-1.html 373381-1.html
fails == 373381-2.html 373381-2.html
== 373381-2.html 373381-2.html
fails-if(Android) random-if(d2d) == 373381-3.html 373381-3.html
fails == 373381-4.html 373381-4.html
== 373381-4.html 373381-4.html
== 373383-1.html 373383-1.html
fails == 373433-1.html 373433-1.html
== 373533-1.xhtml 373533-1.xhtml
@ -671,7 +671,7 @@ fails == 373433-1.html 373433-1.html
== 374038-2.xul 374038-2.xul
random-if(d2d) == 374719-1.xul 374719-1.xul
== 374927-1.html 374927-1.html
fails == 375508-1.html 375508-1.html
== 375508-1.html 375508-1.html
== 375716-1.html 375716-1.html
asserts-if(stylo,6) == 375827-1.html 375827-1.html # bug 1324661
fails == 376375-1.html 376375-1.html
@ -1031,15 +1031,15 @@ fails-if(Android) == 424074-1.xul 424074-1.xul
random-if(gtkWidget) == 424074-1-ref2.xul 424074-1-ref2.xul
== 424236-1.html 424236-1.html
== 424236-2.html 424236-2.html
fails == 424236-3.html 424236-3.html
== 424236-3.html 424236-3.html
== 424236-4.html 424236-4.html
fails == 424236-5.html 424236-5.html
== 424236-5.html 424236-5.html
== 424236-6.html 424236-6.html
== 424236-7.html 424236-7.html
fails == 424236-8.html 424236-8.html
fails == 424236-9.html 424236-9.html
== 424236-8.html 424236-8.html
== 424236-9.html 424236-9.html
== 424236-10.html 424236-10.html
fails == 424236-11.html 424236-11.html
== 424236-11.html 424236-11.html
asserts-if(stylo,4) == 424434-1.html 424434-1.html # bug 1324661
fails asserts-if(stylo,4) == 424465-1.html 424465-1.html # bug 1324661
== 424631-1.html 424631-1.html
@ -1431,7 +1431,7 @@ fails HTTP(..) == 518172-1a.html 518172-1a.html
fails == 518172-1b.html 518172-1b.html
fails HTTP(..) == 518172-2a.html 518172-2a.html
fails == 518172-2b.html 518172-2b.html
fails == 520421-1.html 520421-1.html
== 520421-1.html 520421-1.html
== 520563-1.xhtml 520563-1.xhtml
fails == 521525-1.html 521525-1.html
== 521525-2.html 521525-2.html
@ -1939,7 +1939,7 @@ fails == 1174332-1.html 1174332-1.html
== 1179078-1.html 1179078-1.html
== 1179288-1.html 1179288-1.html
== 1190635-1.html 1190635-1.html
fails == 1202512-1.html 1202512-1.html
== 1202512-1.html 1202512-1.html
fails == 1202512-2.html 1202512-2.html
== 1207326-1.html 1207326-1.html
== 1209603-1.html 1209603-1.html

Просмотреть файл

@ -34,8 +34,8 @@ fails == flexbox-box-sizing-on-items-vert-1b.html flexbox-box-sizing-on-items-ve
== flexbox-dyn-changeFrameWidth-2.xhtml flexbox-dyn-changeFrameWidth-2.xhtml
== flexbox-dyn-changeFrameWidth-3.xhtml flexbox-dyn-changeFrameWidth-3.xhtml
== flexbox-dyn-changeFrameWidth-4.xhtml flexbox-dyn-changeFrameWidth-4.xhtml
fails == flexbox-dyn-changeOrder-1a.html flexbox-dyn-changeOrder-1a.html
fails == flexbox-dyn-changeOrder-1b.html flexbox-dyn-changeOrder-1b.html
== flexbox-dyn-changeOrder-1a.html flexbox-dyn-changeOrder-1a.html
== flexbox-dyn-changeOrder-1b.html flexbox-dyn-changeOrder-1b.html
== flexbox-dyn-changePadding-1a.xhtml flexbox-dyn-changePadding-1a.xhtml
== flexbox-dyn-changePadding-1b.xhtml flexbox-dyn-changePadding-1b.xhtml

Просмотреть файл

@ -4,7 +4,7 @@ fails-if(Android) == radio-stretched.html radio-stretched.html
# == checked.html checked.html
== checked-native.html checked-native.html
# == checked.html checked.html
fails == checked-notref.html checked-notref.html
# == checked-notref.html checked-notref.html
== checked-native.html checked-native.html
== checked-native-notref.html checked-native-notref.html
# == indeterminate-checked.html indeterminate-checked.html

Просмотреть файл

@ -3,7 +3,7 @@
# == checked.html checked.html
== checked-native.html checked-native.html
# == checked.html checked.html
fails == checked-notref.html checked-notref.html
# == checked-notref.html checked-notref.html
== checked-native.html checked-native.html
== checked-native-notref.html checked-native-notref.html
skip-if(!gtkWidget) == gtk-theme-width-height.html gtk-theme-width-height.html

Просмотреть файл

@ -18,7 +18,7 @@ test-pref(layout.css.object-fit-and-position.enabled,true) == image-object-fit-d
fails test-pref(layout.css.object-fit-and-position.enabled,true) == image-object-fit-with-background-2.html image-object-fit-with-background-2.html
# test-pref(layout.css.object-fit-and-position.enabled,true) == image-object-position-dyn-1.html image-object-position-dyn-1.html
# fails test-pref(layout.css.object-fit-and-position.enabled,true) == image-object-position-with-background-1.html image-object-position-with-background-1.html
fails == image-object-position-with-background-2.html image-object-position-with-background-2.html
== image-object-position-with-background-2.html image-object-position-with-background-2.html
# Tests for image-orientation used with 'from-image' (note that all
# image-orientation tests are fuzzy because the JPEG images do not perfectly

Просмотреть файл

@ -78,7 +78,7 @@ fails pref(layers.single-tile.enabled,false) == fast-scrolling.html fast-scrolli
== background-position-2f.html background-position-2f.html
== zero-opacity-animation.html zero-opacity-animation.html
== zero-opacity-text.html zero-opacity-text.html
fails == negative-w-component.html negative-w-component.html
== negative-w-component.html negative-w-component.html
fails == mask-invalidation-1a.html mask-invalidation-1a.html
fails == mask-invalidation-1b.html mask-invalidation-1b.html

Просмотреть файл

@ -7,7 +7,7 @@
== outline-overflow-block-float.html outline-overflow-block-float.html
== outline-overflow-inlineblock-abspos.html outline-overflow-inlineblock-abspos.html
== outline-overflow-inlineblock-float.html outline-overflow-inlineblock-float.html
fails == outline-auto-001.html outline-auto-001.html
fails pref(layout.css.outline-style-auto.enabled,false) == outline-auto-001.html outline-auto-001.html
== outline-auto-001.html outline-auto-001.html
pref(layout.css.outline-style-auto.enabled,false) == outline-auto-001.html outline-auto-001.html
== outline-initial-1a.html outline-initial-1a.html
== outline-initial-1b.html outline-initial-1b.html

Просмотреть файл

@ -187,7 +187,7 @@ fails == reftest-opaque-layer-fail.html reftest-opaque-layer-fail.html
# reftest-opaque-layer and reftest-wait
fails == reftest-opaque-layer-wait-pass.html reftest-opaque-layer-wait-pass.html
fails == reftest-opaque-layer-wait-pass.html reftest-opaque-layer-wait-pass.html
# == reftest-opaque-layer-wait-pass.html reftest-opaque-layer-wait-pass.html
fails == reftest-opaque-layer-wait-fail.html reftest-opaque-layer-wait-fail.html
fails == reftest-opaque-layer-wait-fail.html reftest-opaque-layer-wait-fail.html

Просмотреть файл

@ -38,4 +38,4 @@ needs-focus == text-shadow-selected-2.html text-shadow-selected-2.html
needs-focus == text-shadow-on-selection-1.html text-shadow-on-selection-1.html
needs-focus == text-shadow-on-selection-2.html text-shadow-on-selection-2.html
fails == overflow-decoration.html overflow-decoration.html
== overflow-decoration.html overflow-decoration.html

Просмотреть файл

@ -12,9 +12,9 @@ fails == object-fit-fill-png-002i.html object-fit-fill-png-002i.html
# fails == object-fit-fill-png-002o.html object-fit-fill-png-002o.html
fails == object-fit-fill-png-002p.html object-fit-fill-png-002p.html
fails == object-fit-contain-png-001c.html object-fit-contain-png-001c.html
fails == object-fit-contain-png-001e.html object-fit-contain-png-001e.html
# fails == object-fit-contain-png-001e.html object-fit-contain-png-001e.html
fails == object-fit-contain-png-001i.html object-fit-contain-png-001i.html
fails == object-fit-contain-png-001o.html object-fit-contain-png-001o.html
# fails == object-fit-contain-png-001o.html object-fit-contain-png-001o.html
fails == object-fit-contain-png-001p.html object-fit-contain-png-001p.html
fails == object-fit-contain-png-002c.html object-fit-contain-png-002c.html
# fails == object-fit-contain-png-002e.html object-fit-contain-png-002e.html
@ -22,172 +22,172 @@ fails == object-fit-contain-png-002i.html object-fit-contain-png-002i.html
# fails == object-fit-contain-png-002o.html object-fit-contain-png-002o.html
fails == object-fit-contain-png-002p.html object-fit-contain-png-002p.html
fails == object-fit-cover-png-001c.html object-fit-cover-png-001c.html
fails == object-fit-cover-png-001e.html object-fit-cover-png-001e.html
# fails == object-fit-cover-png-001e.html object-fit-cover-png-001e.html
fails == object-fit-cover-png-001i.html object-fit-cover-png-001i.html
fails == object-fit-cover-png-001o.html object-fit-cover-png-001o.html
# fails == object-fit-cover-png-001o.html object-fit-cover-png-001o.html
fails == object-fit-cover-png-001p.html object-fit-cover-png-001p.html
fails == object-fit-cover-png-002c.html object-fit-cover-png-002c.html
fails == object-fit-cover-png-002e.html object-fit-cover-png-002e.html
# fails == object-fit-cover-png-002e.html object-fit-cover-png-002e.html
fails == object-fit-cover-png-002i.html object-fit-cover-png-002i.html
fails == object-fit-cover-png-002o.html object-fit-cover-png-002o.html
# fails == object-fit-cover-png-002o.html object-fit-cover-png-002o.html
fails == object-fit-cover-png-002p.html object-fit-cover-png-002p.html
fails == object-fit-none-png-001c.html object-fit-none-png-001c.html
fails == object-fit-none-png-001e.html object-fit-none-png-001e.html
fails == object-fit-none-png-001i.html object-fit-none-png-001i.html
fails == object-fit-none-png-001o.html object-fit-none-png-001o.html
== object-fit-none-png-001c.html object-fit-none-png-001c.html
# == object-fit-none-png-001e.html object-fit-none-png-001e.html
== object-fit-none-png-001i.html object-fit-none-png-001i.html
# == object-fit-none-png-001o.html object-fit-none-png-001o.html
fails == object-fit-none-png-001p.html object-fit-none-png-001p.html
fails == object-fit-none-png-002c.html object-fit-none-png-002c.html
fails == object-fit-none-png-002e.html object-fit-none-png-002e.html
fails == object-fit-none-png-002i.html object-fit-none-png-002i.html
fails == object-fit-none-png-002o.html object-fit-none-png-002o.html
== object-fit-none-png-002c.html object-fit-none-png-002c.html
# == object-fit-none-png-002e.html object-fit-none-png-002e.html
== object-fit-none-png-002i.html object-fit-none-png-002i.html
# == object-fit-none-png-002o.html object-fit-none-png-002o.html
fails == object-fit-none-png-002p.html object-fit-none-png-002p.html
fails == object-fit-scale-down-png-001c.html object-fit-scale-down-png-001c.html
fails == object-fit-scale-down-png-001e.html object-fit-scale-down-png-001e.html
fails == object-fit-scale-down-png-001i.html object-fit-scale-down-png-001i.html
fails == object-fit-scale-down-png-001o.html object-fit-scale-down-png-001o.html
== object-fit-scale-down-png-001c.html object-fit-scale-down-png-001c.html
# == object-fit-scale-down-png-001e.html object-fit-scale-down-png-001e.html
== object-fit-scale-down-png-001i.html object-fit-scale-down-png-001i.html
# == object-fit-scale-down-png-001o.html object-fit-scale-down-png-001o.html
fails == object-fit-scale-down-png-001p.html object-fit-scale-down-png-001p.html
fails == object-fit-scale-down-png-002c.html object-fit-scale-down-png-002c.html
fails == object-fit-scale-down-png-002e.html object-fit-scale-down-png-002e.html
fails == object-fit-scale-down-png-002i.html object-fit-scale-down-png-002i.html
fails == object-fit-scale-down-png-002o.html object-fit-scale-down-png-002o.html
== object-fit-scale-down-png-002c.html object-fit-scale-down-png-002c.html
# == object-fit-scale-down-png-002e.html object-fit-scale-down-png-002e.html
== object-fit-scale-down-png-002i.html object-fit-scale-down-png-002i.html
# == object-fit-scale-down-png-002o.html object-fit-scale-down-png-002o.html
fails == object-fit-scale-down-png-002p.html object-fit-scale-down-png-002p.html
# Tests for 'object-fit' / 'object-position' with an SVG image
fails == object-fit-fill-svg-001e.html object-fit-fill-svg-001e.html
fails == object-fit-fill-svg-001i.html object-fit-fill-svg-001i.html
fails == object-fit-fill-svg-001o.html object-fit-fill-svg-001o.html
== object-fit-fill-svg-001e.html object-fit-fill-svg-001e.html
== object-fit-fill-svg-001i.html object-fit-fill-svg-001i.html
== object-fit-fill-svg-001o.html object-fit-fill-svg-001o.html
fails == object-fit-fill-svg-001p.html object-fit-fill-svg-001p.html
fails == object-fit-fill-svg-002e.html object-fit-fill-svg-002e.html
fails == object-fit-fill-svg-002i.html object-fit-fill-svg-002i.html
fails == object-fit-fill-svg-002o.html object-fit-fill-svg-002o.html
== object-fit-fill-svg-002e.html object-fit-fill-svg-002e.html
== object-fit-fill-svg-002i.html object-fit-fill-svg-002i.html
== object-fit-fill-svg-002o.html object-fit-fill-svg-002o.html
fails == object-fit-fill-svg-002p.html object-fit-fill-svg-002p.html
fails == object-fit-fill-svg-003e.html object-fit-fill-svg-003e.html
fails == object-fit-fill-svg-003i.html object-fit-fill-svg-003i.html
fails == object-fit-fill-svg-003o.html object-fit-fill-svg-003o.html
== object-fit-fill-svg-003e.html object-fit-fill-svg-003e.html
== object-fit-fill-svg-003i.html object-fit-fill-svg-003i.html
== object-fit-fill-svg-003o.html object-fit-fill-svg-003o.html
fails == object-fit-fill-svg-003p.html object-fit-fill-svg-003p.html
fails == object-fit-fill-svg-004e.html object-fit-fill-svg-004e.html
fails == object-fit-fill-svg-004i.html object-fit-fill-svg-004i.html
fails == object-fit-fill-svg-004o.html object-fit-fill-svg-004o.html
== object-fit-fill-svg-004e.html object-fit-fill-svg-004e.html
== object-fit-fill-svg-004i.html object-fit-fill-svg-004i.html
== object-fit-fill-svg-004o.html object-fit-fill-svg-004o.html
fails == object-fit-fill-svg-004p.html object-fit-fill-svg-004p.html
fails == object-fit-fill-svg-005e.html object-fit-fill-svg-005e.html
fails == object-fit-fill-svg-005i.html object-fit-fill-svg-005i.html
fails == object-fit-fill-svg-005o.html object-fit-fill-svg-005o.html
== object-fit-fill-svg-005e.html object-fit-fill-svg-005e.html
== object-fit-fill-svg-005i.html object-fit-fill-svg-005i.html
== object-fit-fill-svg-005o.html object-fit-fill-svg-005o.html
fails == object-fit-fill-svg-005p.html object-fit-fill-svg-005p.html
fails == object-fit-fill-svg-006e.html object-fit-fill-svg-006e.html
fails == object-fit-fill-svg-006i.html object-fit-fill-svg-006i.html
fails == object-fit-fill-svg-006o.html object-fit-fill-svg-006o.html
== object-fit-fill-svg-006e.html object-fit-fill-svg-006e.html
== object-fit-fill-svg-006i.html object-fit-fill-svg-006i.html
== object-fit-fill-svg-006o.html object-fit-fill-svg-006o.html
fails == object-fit-fill-svg-006p.html object-fit-fill-svg-006p.html
fails == object-fit-contain-svg-001e.html object-fit-contain-svg-001e.html
fails == object-fit-contain-svg-001i.html object-fit-contain-svg-001i.html
fails == object-fit-contain-svg-001o.html object-fit-contain-svg-001o.html
== object-fit-contain-svg-001e.html object-fit-contain-svg-001e.html
== object-fit-contain-svg-001i.html object-fit-contain-svg-001i.html
== object-fit-contain-svg-001o.html object-fit-contain-svg-001o.html
fails == object-fit-contain-svg-001p.html object-fit-contain-svg-001p.html
fails == object-fit-contain-svg-002e.html object-fit-contain-svg-002e.html
fails == object-fit-contain-svg-002i.html object-fit-contain-svg-002i.html
fails == object-fit-contain-svg-002o.html object-fit-contain-svg-002o.html
== object-fit-contain-svg-002e.html object-fit-contain-svg-002e.html
== object-fit-contain-svg-002i.html object-fit-contain-svg-002i.html
== object-fit-contain-svg-002o.html object-fit-contain-svg-002o.html
fails == object-fit-contain-svg-002p.html object-fit-contain-svg-002p.html
fails == object-fit-contain-svg-003e.html object-fit-contain-svg-003e.html
fails == object-fit-contain-svg-003i.html object-fit-contain-svg-003i.html
fails == object-fit-contain-svg-003o.html object-fit-contain-svg-003o.html
== object-fit-contain-svg-003e.html object-fit-contain-svg-003e.html
== object-fit-contain-svg-003i.html object-fit-contain-svg-003i.html
== object-fit-contain-svg-003o.html object-fit-contain-svg-003o.html
fails == object-fit-contain-svg-003p.html object-fit-contain-svg-003p.html
fails == object-fit-contain-svg-004e.html object-fit-contain-svg-004e.html
fails == object-fit-contain-svg-004i.html object-fit-contain-svg-004i.html
fails == object-fit-contain-svg-004o.html object-fit-contain-svg-004o.html
== object-fit-contain-svg-004e.html object-fit-contain-svg-004e.html
== object-fit-contain-svg-004i.html object-fit-contain-svg-004i.html
== object-fit-contain-svg-004o.html object-fit-contain-svg-004o.html
fails == object-fit-contain-svg-004p.html object-fit-contain-svg-004p.html
fails == object-fit-contain-svg-005e.html object-fit-contain-svg-005e.html
fails == object-fit-contain-svg-005i.html object-fit-contain-svg-005i.html
fails == object-fit-contain-svg-005o.html object-fit-contain-svg-005o.html
== object-fit-contain-svg-005e.html object-fit-contain-svg-005e.html
== object-fit-contain-svg-005i.html object-fit-contain-svg-005i.html
== object-fit-contain-svg-005o.html object-fit-contain-svg-005o.html
fails == object-fit-contain-svg-005p.html object-fit-contain-svg-005p.html
fails == object-fit-contain-svg-006e.html object-fit-contain-svg-006e.html
fails == object-fit-contain-svg-006i.html object-fit-contain-svg-006i.html
fails == object-fit-contain-svg-006o.html object-fit-contain-svg-006o.html
== object-fit-contain-svg-006e.html object-fit-contain-svg-006e.html
== object-fit-contain-svg-006i.html object-fit-contain-svg-006i.html
== object-fit-contain-svg-006o.html object-fit-contain-svg-006o.html
fails == object-fit-contain-svg-006p.html object-fit-contain-svg-006p.html
fails == object-fit-cover-svg-001e.html object-fit-cover-svg-001e.html
fails == object-fit-cover-svg-001i.html object-fit-cover-svg-001i.html
fails == object-fit-cover-svg-001o.html object-fit-cover-svg-001o.html
== object-fit-cover-svg-001e.html object-fit-cover-svg-001e.html
== object-fit-cover-svg-001i.html object-fit-cover-svg-001i.html
== object-fit-cover-svg-001o.html object-fit-cover-svg-001o.html
fails == object-fit-cover-svg-001p.html object-fit-cover-svg-001p.html
fails == object-fit-cover-svg-002e.html object-fit-cover-svg-002e.html
fails == object-fit-cover-svg-002i.html object-fit-cover-svg-002i.html
fails == object-fit-cover-svg-002o.html object-fit-cover-svg-002o.html
== object-fit-cover-svg-002e.html object-fit-cover-svg-002e.html
== object-fit-cover-svg-002i.html object-fit-cover-svg-002i.html
== object-fit-cover-svg-002o.html object-fit-cover-svg-002o.html
fails == object-fit-cover-svg-002p.html object-fit-cover-svg-002p.html
fails == object-fit-cover-svg-003e.html object-fit-cover-svg-003e.html
fails == object-fit-cover-svg-003i.html object-fit-cover-svg-003i.html
fails == object-fit-cover-svg-003o.html object-fit-cover-svg-003o.html
== object-fit-cover-svg-003e.html object-fit-cover-svg-003e.html
== object-fit-cover-svg-003i.html object-fit-cover-svg-003i.html
== object-fit-cover-svg-003o.html object-fit-cover-svg-003o.html
fails == object-fit-cover-svg-003p.html object-fit-cover-svg-003p.html
fails == object-fit-cover-svg-004e.html object-fit-cover-svg-004e.html
fails == object-fit-cover-svg-004i.html object-fit-cover-svg-004i.html
fails == object-fit-cover-svg-004o.html object-fit-cover-svg-004o.html
== object-fit-cover-svg-004e.html object-fit-cover-svg-004e.html
== object-fit-cover-svg-004i.html object-fit-cover-svg-004i.html
== object-fit-cover-svg-004o.html object-fit-cover-svg-004o.html
fails == object-fit-cover-svg-004p.html object-fit-cover-svg-004p.html
fails == object-fit-cover-svg-005e.html object-fit-cover-svg-005e.html
fails == object-fit-cover-svg-005i.html object-fit-cover-svg-005i.html
fails == object-fit-cover-svg-005o.html object-fit-cover-svg-005o.html
== object-fit-cover-svg-005e.html object-fit-cover-svg-005e.html
== object-fit-cover-svg-005i.html object-fit-cover-svg-005i.html
== object-fit-cover-svg-005o.html object-fit-cover-svg-005o.html
fails == object-fit-cover-svg-005p.html object-fit-cover-svg-005p.html
fails == object-fit-cover-svg-006e.html object-fit-cover-svg-006e.html
fails == object-fit-cover-svg-006i.html object-fit-cover-svg-006i.html
fails == object-fit-cover-svg-006o.html object-fit-cover-svg-006o.html
== object-fit-cover-svg-006e.html object-fit-cover-svg-006e.html
== object-fit-cover-svg-006i.html object-fit-cover-svg-006i.html
== object-fit-cover-svg-006o.html object-fit-cover-svg-006o.html
fails == object-fit-cover-svg-006p.html object-fit-cover-svg-006p.html
fails == object-fit-none-svg-001e.html object-fit-none-svg-001e.html
fails == object-fit-none-svg-001i.html object-fit-none-svg-001i.html
fails == object-fit-none-svg-001o.html object-fit-none-svg-001o.html
== object-fit-none-svg-001e.html object-fit-none-svg-001e.html
== object-fit-none-svg-001i.html object-fit-none-svg-001i.html
== object-fit-none-svg-001o.html object-fit-none-svg-001o.html
fails == object-fit-none-svg-001p.html object-fit-none-svg-001p.html
fails == object-fit-none-svg-002e.html object-fit-none-svg-002e.html
fails == object-fit-none-svg-002i.html object-fit-none-svg-002i.html
fails == object-fit-none-svg-002o.html object-fit-none-svg-002o.html
== object-fit-none-svg-002e.html object-fit-none-svg-002e.html
== object-fit-none-svg-002i.html object-fit-none-svg-002i.html
== object-fit-none-svg-002o.html object-fit-none-svg-002o.html
fails == object-fit-none-svg-002p.html object-fit-none-svg-002p.html
fails == object-fit-none-svg-003e.html object-fit-none-svg-003e.html
fails == object-fit-none-svg-003i.html object-fit-none-svg-003i.html
fails == object-fit-none-svg-003o.html object-fit-none-svg-003o.html
== object-fit-none-svg-003e.html object-fit-none-svg-003e.html
== object-fit-none-svg-003i.html object-fit-none-svg-003i.html
== object-fit-none-svg-003o.html object-fit-none-svg-003o.html
fails == object-fit-none-svg-003p.html object-fit-none-svg-003p.html
fails == object-fit-none-svg-004e.html object-fit-none-svg-004e.html
fails == object-fit-none-svg-004i.html object-fit-none-svg-004i.html
fails == object-fit-none-svg-004o.html object-fit-none-svg-004o.html
== object-fit-none-svg-004e.html object-fit-none-svg-004e.html
== object-fit-none-svg-004i.html object-fit-none-svg-004i.html
== object-fit-none-svg-004o.html object-fit-none-svg-004o.html
fails == object-fit-none-svg-004p.html object-fit-none-svg-004p.html
fails == object-fit-none-svg-005e.html object-fit-none-svg-005e.html
fails == object-fit-none-svg-005i.html object-fit-none-svg-005i.html
fails == object-fit-none-svg-005o.html object-fit-none-svg-005o.html
== object-fit-none-svg-005e.html object-fit-none-svg-005e.html
== object-fit-none-svg-005i.html object-fit-none-svg-005i.html
== object-fit-none-svg-005o.html object-fit-none-svg-005o.html
fails == object-fit-none-svg-005p.html object-fit-none-svg-005p.html
fails == object-fit-none-svg-006e.html object-fit-none-svg-006e.html
fails == object-fit-none-svg-006i.html object-fit-none-svg-006i.html
fails == object-fit-none-svg-006o.html object-fit-none-svg-006o.html
== object-fit-none-svg-006e.html object-fit-none-svg-006e.html
== object-fit-none-svg-006i.html object-fit-none-svg-006i.html
== object-fit-none-svg-006o.html object-fit-none-svg-006o.html
fails == object-fit-none-svg-006p.html object-fit-none-svg-006p.html
fails == object-fit-scale-down-svg-001e.html object-fit-scale-down-svg-001e.html
fails == object-fit-scale-down-svg-001i.html object-fit-scale-down-svg-001i.html
fails == object-fit-scale-down-svg-001o.html object-fit-scale-down-svg-001o.html
== object-fit-scale-down-svg-001e.html object-fit-scale-down-svg-001e.html
== object-fit-scale-down-svg-001i.html object-fit-scale-down-svg-001i.html
== object-fit-scale-down-svg-001o.html object-fit-scale-down-svg-001o.html
fails == object-fit-scale-down-svg-001p.html object-fit-scale-down-svg-001p.html
fails == object-fit-scale-down-svg-002e.html object-fit-scale-down-svg-002e.html
fails == object-fit-scale-down-svg-002i.html object-fit-scale-down-svg-002i.html
fails == object-fit-scale-down-svg-002o.html object-fit-scale-down-svg-002o.html
== object-fit-scale-down-svg-002e.html object-fit-scale-down-svg-002e.html
== object-fit-scale-down-svg-002i.html object-fit-scale-down-svg-002i.html
== object-fit-scale-down-svg-002o.html object-fit-scale-down-svg-002o.html
fails == object-fit-scale-down-svg-002p.html object-fit-scale-down-svg-002p.html
fails == object-fit-scale-down-svg-003e.html object-fit-scale-down-svg-003e.html
fails == object-fit-scale-down-svg-003i.html object-fit-scale-down-svg-003i.html
fails == object-fit-scale-down-svg-003o.html object-fit-scale-down-svg-003o.html
== object-fit-scale-down-svg-003e.html object-fit-scale-down-svg-003e.html
== object-fit-scale-down-svg-003i.html object-fit-scale-down-svg-003i.html
== object-fit-scale-down-svg-003o.html object-fit-scale-down-svg-003o.html
fails == object-fit-scale-down-svg-003p.html object-fit-scale-down-svg-003p.html
fails == object-fit-scale-down-svg-004e.html object-fit-scale-down-svg-004e.html
fails == object-fit-scale-down-svg-004i.html object-fit-scale-down-svg-004i.html
fails == object-fit-scale-down-svg-004o.html object-fit-scale-down-svg-004o.html
== object-fit-scale-down-svg-004e.html object-fit-scale-down-svg-004e.html
== object-fit-scale-down-svg-004i.html object-fit-scale-down-svg-004i.html
# == object-fit-scale-down-svg-004o.html object-fit-scale-down-svg-004o.html
fails == object-fit-scale-down-svg-004p.html object-fit-scale-down-svg-004p.html
fails == object-fit-scale-down-svg-005e.html object-fit-scale-down-svg-005e.html
fails == object-fit-scale-down-svg-005i.html object-fit-scale-down-svg-005i.html
fails == object-fit-scale-down-svg-005o.html object-fit-scale-down-svg-005o.html
== object-fit-scale-down-svg-005e.html object-fit-scale-down-svg-005e.html
== object-fit-scale-down-svg-005i.html object-fit-scale-down-svg-005i.html
== object-fit-scale-down-svg-005o.html object-fit-scale-down-svg-005o.html
fails == object-fit-scale-down-svg-005p.html object-fit-scale-down-svg-005p.html
fails == object-fit-scale-down-svg-006e.html object-fit-scale-down-svg-006e.html
fails == object-fit-scale-down-svg-006i.html object-fit-scale-down-svg-006i.html
fails == object-fit-scale-down-svg-006o.html object-fit-scale-down-svg-006o.html
== object-fit-scale-down-svg-006e.html object-fit-scale-down-svg-006e.html
== object-fit-scale-down-svg-006i.html object-fit-scale-down-svg-006i.html
== object-fit-scale-down-svg-006o.html object-fit-scale-down-svg-006o.html
fails == object-fit-scale-down-svg-006p.html object-fit-scale-down-svg-006p.html
fails == object-position-png-001c.html object-position-png-001c.html
== object-position-png-001c.html object-position-png-001c.html
# fails == object-position-png-001e.html object-position-png-001e.html
fails == object-position-png-001i.html object-position-png-001i.html
== object-position-png-001i.html object-position-png-001i.html
# fails == object-position-png-001o.html object-position-png-001o.html
fails == object-position-png-001p.html object-position-png-001p.html
fails == object-position-png-002c.html object-position-png-002c.html
== object-position-png-002c.html object-position-png-002c.html
# fails == object-position-png-002e.html object-position-png-002e.html
fails == object-position-png-002i.html object-position-png-002i.html
== object-position-png-002i.html object-position-png-002i.html
# fails == object-position-png-002o.html object-position-png-002o.html
fails == object-position-png-002p.html object-position-png-002p.html
fails == object-position-svg-001e.html object-position-svg-001e.html
fails == object-position-svg-001i.html object-position-svg-001i.html
fails == object-position-svg-001o.html object-position-svg-001o.html
== object-position-svg-001e.html object-position-svg-001e.html
== object-position-svg-001i.html object-position-svg-001i.html
== object-position-svg-001o.html object-position-svg-001o.html
fails == object-position-svg-001p.html object-position-svg-001p.html
# fails == object-position-svg-002e.html object-position-svg-002e.html
fails == object-position-svg-002i.html object-position-svg-002i.html
fails == object-position-svg-002o.html object-position-svg-002o.html
== object-position-svg-002i.html object-position-svg-002i.html
== object-position-svg-002o.html object-position-svg-002o.html
fails == object-position-svg-002p.html object-position-svg-002p.html

Просмотреть файл

@ -67,10 +67,10 @@ fails == ruby-text-decoration-01.html ruby-text-decoration-01.html
== text-emphasis-position-property-001a.html text-emphasis-position-property-001a.html
== text-emphasis-position-property-001b.html text-emphasis-position-property-001b.html
== text-emphasis-position-property-001c.html text-emphasis-position-property-001c.html
fails == text-emphasis-position-property-002.html text-emphasis-position-property-002.html
fails == text-emphasis-position-property-002a.html text-emphasis-position-property-002a.html
fails == text-emphasis-position-property-002b.html text-emphasis-position-property-002b.html
fails == text-emphasis-position-property-002c.html text-emphasis-position-property-002c.html
== text-emphasis-position-property-002.html text-emphasis-position-property-002.html
== text-emphasis-position-property-002a.html text-emphasis-position-property-002a.html
== text-emphasis-position-property-002b.html text-emphasis-position-property-002b.html
== text-emphasis-position-property-002c.html text-emphasis-position-property-002c.html
== text-emphasis-position-property-003.html text-emphasis-position-property-003.html
== text-emphasis-position-property-003a.html text-emphasis-position-property-003a.html
== text-emphasis-position-property-003b.html text-emphasis-position-property-003b.html
@ -79,14 +79,14 @@ fails == text-emphasis-position-property-002c.html text-emphasis-position-proper
== text-emphasis-position-property-003e.html text-emphasis-position-property-003e.html
== text-emphasis-position-property-003f.html text-emphasis-position-property-003f.html
== text-emphasis-position-property-003g.html text-emphasis-position-property-003g.html
fails == text-emphasis-position-property-004.html text-emphasis-position-property-004.html
fails == text-emphasis-position-property-004a.html text-emphasis-position-property-004a.html
fails == text-emphasis-position-property-004b.html text-emphasis-position-property-004b.html
fails == text-emphasis-position-property-004c.html text-emphasis-position-property-004c.html
fails == text-emphasis-position-property-004d.html text-emphasis-position-property-004d.html
fails == text-emphasis-position-property-004e.html text-emphasis-position-property-004e.html
fails == text-emphasis-position-property-004f.html text-emphasis-position-property-004f.html
fails == text-emphasis-position-property-004g.html text-emphasis-position-property-004g.html
== text-emphasis-position-property-004.html text-emphasis-position-property-004.html
== text-emphasis-position-property-004a.html text-emphasis-position-property-004a.html
== text-emphasis-position-property-004b.html text-emphasis-position-property-004b.html
== text-emphasis-position-property-004c.html text-emphasis-position-property-004c.html
== text-emphasis-position-property-004d.html text-emphasis-position-property-004d.html
== text-emphasis-position-property-004e.html text-emphasis-position-property-004e.html
== text-emphasis-position-property-004f.html text-emphasis-position-property-004f.html
== text-emphasis-position-property-004g.html text-emphasis-position-property-004g.html
== text-emphasis-position-property-005.html text-emphasis-position-property-005.html
== text-emphasis-position-property-005a.html text-emphasis-position-property-005a.html
== text-emphasis-position-property-005b.html text-emphasis-position-property-005b.html
@ -95,38 +95,38 @@ fails == text-emphasis-position-property-004g.html text-emphasis-position-proper
== text-emphasis-position-property-005e.html text-emphasis-position-property-005e.html
== text-emphasis-position-property-005f.html text-emphasis-position-property-005f.html
== text-emphasis-position-property-005g.html text-emphasis-position-property-005g.html
fails == text-emphasis-position-property-006.html text-emphasis-position-property-006.html
fails == text-emphasis-position-property-006a.html text-emphasis-position-property-006a.html
fails == text-emphasis-position-property-006b.html text-emphasis-position-property-006b.html
fails == text-emphasis-position-property-006c.html text-emphasis-position-property-006c.html
fails == text-emphasis-position-property-006d.html text-emphasis-position-property-006d.html
fails == text-emphasis-position-property-006e.html text-emphasis-position-property-006e.html
fails == text-emphasis-position-property-006f.html text-emphasis-position-property-006f.html
fails == text-emphasis-position-property-006g.html text-emphasis-position-property-006g.html
== text-emphasis-position-property-006.html text-emphasis-position-property-006.html
== text-emphasis-position-property-006a.html text-emphasis-position-property-006a.html
== text-emphasis-position-property-006b.html text-emphasis-position-property-006b.html
== text-emphasis-position-property-006c.html text-emphasis-position-property-006c.html
== text-emphasis-position-property-006d.html text-emphasis-position-property-006d.html
== text-emphasis-position-property-006e.html text-emphasis-position-property-006e.html
== text-emphasis-position-property-006f.html text-emphasis-position-property-006f.html
== text-emphasis-position-property-006g.html text-emphasis-position-property-006g.html
# END tests from support/generate-text-emphasis-position-property-tests.py
# START tests from support/generate-text-emphasis-ruby-tests.py
== text-emphasis-ruby-001.html text-emphasis-ruby-001.html
fails == text-emphasis-ruby-002.html text-emphasis-ruby-002.html
== text-emphasis-ruby-002.html text-emphasis-ruby-002.html
== text-emphasis-ruby-003.html text-emphasis-ruby-003.html
== text-emphasis-ruby-003a.html text-emphasis-ruby-003a.html
fails == text-emphasis-ruby-004.html text-emphasis-ruby-004.html
fails == text-emphasis-ruby-004a.html text-emphasis-ruby-004a.html
== text-emphasis-ruby-004.html text-emphasis-ruby-004.html
== text-emphasis-ruby-004a.html text-emphasis-ruby-004a.html
# END tests from support/generate-text-emphasis-ruby-tests.py
# text-emphasis line height
# START tests from support/generate-text-emphasis-line-height-tests.py
== text-emphasis-line-height-001a.html text-emphasis-line-height-001a.html
== text-emphasis-line-height-001b.html text-emphasis-line-height-001b.html
fails == text-emphasis-line-height-002a.html text-emphasis-line-height-002a.html
fails == text-emphasis-line-height-002b.html text-emphasis-line-height-002b.html
== text-emphasis-line-height-002a.html text-emphasis-line-height-002a.html
== text-emphasis-line-height-002b.html text-emphasis-line-height-002b.html
== text-emphasis-line-height-003a.html text-emphasis-line-height-003a.html
== text-emphasis-line-height-003b.html text-emphasis-line-height-003b.html
== text-emphasis-line-height-003c.html text-emphasis-line-height-003c.html
== text-emphasis-line-height-003d.html text-emphasis-line-height-003d.html
fails == text-emphasis-line-height-004a.html text-emphasis-line-height-004a.html
fails == text-emphasis-line-height-004b.html text-emphasis-line-height-004b.html
fails == text-emphasis-line-height-004c.html text-emphasis-line-height-004c.html
fails == text-emphasis-line-height-004d.html text-emphasis-line-height-004d.html
== text-emphasis-line-height-004a.html text-emphasis-line-height-004a.html
== text-emphasis-line-height-004b.html text-emphasis-line-height-004b.html
== text-emphasis-line-height-004c.html text-emphasis-line-height-004c.html
== text-emphasis-line-height-004d.html text-emphasis-line-height-004d.html
# END tests from support/generate-text-emphasis-line-height-tests.py
fails == text-emphasis-line-height-001z.html text-emphasis-line-height-001z.html

Просмотреть файл

@ -1,6 +1,6 @@
# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
fails == 480053-1.html 480053-1.html
fails == z-index-1.html z-index-1.html
== z-index-1.html z-index-1.html
== stacking-context-yes.html stacking-context-yes.html
# == stacking-context-perspective.html stacking-context-perspective.html
== stacking-context-backface-visibility.html stacking-context-backface-visibility.html

Просмотреть файл

@ -924,7 +924,8 @@ BookmarksTracker.prototype = {
this._log.debug("Restore succeeded: wiping server and other clients.");
this.engine.service.resetClient([this.name]);
this.engine.service.wipeServer([this.name]);
this.engine.service.clientsEngine.sendCommand("wipeEngine", [this.name]);
this.engine.service.clientsEngine.sendCommand("wipeEngine", [this.name],
null, { reason: "bookmark-restore" });
break;
case "bookmarks-restore-failed":
this._log.debug("Tracking all items on failed import.");

Просмотреть файл

@ -489,7 +489,7 @@ ClientEngine.prototype = {
* @param args Array of arguments/data for command
* @param clientId Client to send command to
*/
_sendCommandToClient: function sendCommandToClient(command, args, clientId, flowID = null) {
_sendCommandToClient(command, args, clientId, telemetryExtra) {
this._log.trace("Sending " + command + " to " + clientId);
let client = this._store._remoteClients[clientId];
@ -503,18 +503,19 @@ ClientEngine.prototype = {
let action = {
command,
args,
flowID: flowID || Utils.makeGUID(), // used for telemetry.
// We send the flowID to the other client so *it* can report it in its
// telemetry - we record it in ours below.
flowID: telemetryExtra.flowID,
};
if (this._addClientCommand(clientId, action)) {
this._log.trace(`Client ${clientId} got a new action`, [command, args]);
this._tracker.addChangedID(clientId);
let deviceID;
try {
deviceID = this.service.identity.hashedDeviceID(clientId);
telemetryExtra.deviceID = this.service.identity.hashedDeviceID(clientId);
} catch (_) {}
this.service.recordTelemetryEvent("sendcommand", command, undefined,
{ flowID: action.flowID, deviceID });
this.service.recordTelemetryEvent("sendcommand", command, undefined, telemetryExtra);
} else {
this._log.trace(`Client ${clientId} got a duplicate action`, [command, args]);
}
@ -599,7 +600,7 @@ ClientEngine.prototype = {
* A unique identifier used to track success for this operation across
* devices.
*/
sendCommand: function sendCommand(command, args, clientId, flowID = null) {
sendCommand(command, args, clientId = null, telemetryExtra = {}) {
let commandData = this._commands[command];
// Don't send commands that we don't know about.
if (!commandData) {
@ -612,12 +613,18 @@ ClientEngine.prototype = {
return;
}
// We allocate a "flowID" here, so it is used for each client.
telemetryExtra = Object.assign({}, telemetryExtra); // don't clobber the caller's object
if (!telemetryExtra.flowID) {
telemetryExtra.flowID = Utils.makeGUID();
}
if (clientId) {
this._sendCommandToClient(command, args, clientId, flowID);
this._sendCommandToClient(command, args, clientId, telemetryExtra);
} else {
for (let [id, record] of Object.entries(this._store._remoteClients)) {
if (!record.stale) {
this._sendCommandToClient(command, args, id, flowID);
this._sendCommandToClient(command, args, id, telemetryExtra);
}
}
}

Просмотреть файл

@ -1293,13 +1293,14 @@ Sync11Service.prototype = {
this.wipeServer(engines);
// Only wipe the engines provided.
let extra = { reason: "wipe-remote" };
if (engines) {
engines.forEach(function(e) {
this.clientsEngine.sendCommand("wipeEngine", [e]);
this.clientsEngine.sendCommand("wipeEngine", [e], null, extra);
}, this);
} else {
// Tell the remote machines to wipe themselves.
this.clientsEngine.sendCommand("wipeAll", []);
this.clientsEngine.sendCommand("wipeAll", [], null, extra);
}
// Make sure the changed clients get updated.

Просмотреть файл

@ -379,8 +379,9 @@ add_task(async function test_send_command() {
let action = "testCommand";
let args = ["foo", "bar"];
let extra = { flowID: "flowy" }
engine._sendCommandToClient(action, args, remoteId);
engine._sendCommandToClient(action, args, remoteId, extra);
let newRecord = store._remoteClients[remoteId];
let clientCommands = engine._readCommands()[remoteId];
@ -1426,6 +1427,88 @@ add_task(async function test_command_sync() {
}
});
add_task(async function ensureSameFlowIDs() {
let events = []
let origRecordTelemetryEvent = Service.recordTelemetryEvent;
Service.recordTelemetryEvent = (object, method, value, extra) => {
events.push({ object, method, value, extra });
}
try {
// Setup 2 clients, send them a command, and ensure we get to events
// written, both with the same flowID.
let contents = {
meta: {global: {engines: {clients: {version: engine.version,
syncID: engine.syncID}}}},
clients: {},
crypto: {}
};
let server = serverForUsers({"foo": "password"}, contents);
await SyncTestingInfrastructure(server);
let remoteId = Utils.makeGUID();
let remoteId2 = Utils.makeGUID();
_("Create remote client record 1");
server.insertWBO("foo", "clients", new ServerWBO(remoteId, encryptPayload({
id: remoteId,
name: "Remote client",
type: "desktop",
commands: [],
version: "48",
protocols: ["1.5"]
}), Date.now() / 1000));
_("Create remote client record 2");
server.insertWBO("foo", "clients", new ServerWBO(remoteId2, encryptPayload({
id: remoteId2,
name: "Remote client 2",
type: "mobile",
commands: [],
version: "48",
protocols: ["1.5"]
}), Date.now() / 1000));
engine._sync();
engine.sendCommand("wipeAll", []);
engine._sync();
equal(events.length, 2);
// we don't know what the flowID is, but do know it should be the same.
equal(events[0].extra.flowID, events[1].extra.flowID);
// check it's correctly used when we specify a flow ID
events.length = 0;
let flowID = Utils.makeGUID();
engine.sendCommand("wipeAll", [], null, { flowID });
engine._sync();
equal(events.length, 2);
equal(events[0].extra.flowID, flowID);
equal(events[1].extra.flowID, flowID);
// and that it works when something else is in "extra"
events.length = 0;
engine.sendCommand("wipeAll", [], null, { reason: "testing" });
engine._sync();
equal(events.length, 2);
equal(events[0].extra.flowID, events[1].extra.flowID);
equal(events[0].extra.reason, "testing");
equal(events[1].extra.reason, "testing");
// and when both are specified.
events.length = 0;
engine.sendCommand("wipeAll", [], null, { reason: "testing", flowID });
engine._sync();
equal(events.length, 2);
equal(events[0].extra.flowID, flowID);
equal(events[1].extra.flowID, flowID);
equal(events[0].extra.reason, "testing");
equal(events[1].extra.reason, "testing");
} finally {
Service.recordTelemetryEvent = origRecordTelemetryEvent;
}
});
function run_test() {
initTestLogging("Trace");
Log.repository.getLogger("Sync.Engine.Clients").level = Log.Level.Trace;