mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 03:15:11 +00:00
Merge mozilla-central to autoland. a=merge CLOSED TREE
This commit is contained in:
commit
922c555275
@ -130,7 +130,7 @@ static void
|
||||
ConvertTexttoAsterisks(AccessibleWrap* accWrap, nsAString& aString)
|
||||
{
|
||||
// convert each char to "*" when it's "password text"
|
||||
if (accWrap->NativeRole() == roles::PASSWORD_TEXT) {
|
||||
if (accWrap->IsPassword()) {
|
||||
DOMtoATK::ConvertTexttoAsterisks(aString);
|
||||
}
|
||||
}
|
||||
@ -148,7 +148,7 @@ getTextCB(AtkText *aText, gint aStartOffset, gint aEndOffset)
|
||||
return nullptr;
|
||||
|
||||
return DOMtoATK::NewATKString(text, aStartOffset, aEndOffset,
|
||||
accWrap->NativeRole() == roles::PASSWORD_TEXT ?
|
||||
accWrap->IsPassword() ?
|
||||
DOMtoATK::AtkStringConvertFlags::ConvertTextToAsterisks :
|
||||
DOMtoATK::AtkStringConvertFlags::None);
|
||||
|
||||
|
@ -39,6 +39,7 @@ enum AccType {
|
||||
eHTMLTableCellType,
|
||||
eHTMLTableRowType,
|
||||
eHTMLTextFieldType,
|
||||
eHTMLTextPasswordFieldType,
|
||||
eHyperTextType,
|
||||
eImageType,
|
||||
eOuterDocType,
|
||||
|
@ -649,7 +649,10 @@ public:
|
||||
|
||||
bool IsTableRow() const { return HasGenericType(eTableRow); }
|
||||
|
||||
bool IsTextField() const { return mType == eHTMLTextFieldType; }
|
||||
bool IsTextField() const { return mType == eHTMLTextFieldType ||
|
||||
mType == eHTMLTextPasswordFieldType; }
|
||||
|
||||
bool IsPassword() const { return mType == eHTMLTextPasswordFieldType; }
|
||||
|
||||
bool IsText() const { return mGenericTypes & eText; }
|
||||
|
||||
|
@ -282,14 +282,16 @@ HTMLTextFieldAccessible::
|
||||
HTMLTextFieldAccessible(nsIContent* aContent, DocAccessible* aDoc) :
|
||||
HyperTextAccessibleWrap(aContent, aDoc)
|
||||
{
|
||||
mType = eHTMLTextFieldType;
|
||||
mType = mContent->AsElement()->AttrValueIs(kNameSpaceID_None, nsGkAtoms::type,
|
||||
nsGkAtoms::password, eIgnoreCase) ?
|
||||
eHTMLTextPasswordFieldType :
|
||||
eHTMLTextFieldType;
|
||||
}
|
||||
|
||||
role
|
||||
HTMLTextFieldAccessible::NativeRole()
|
||||
{
|
||||
if (mContent->AsElement()->AttrValueIs(kNameSpaceID_None, nsGkAtoms::type,
|
||||
nsGkAtoms::password, eIgnoreCase)) {
|
||||
if (mType == eHTMLTextPasswordFieldType) {
|
||||
return roles::PASSWORD_TEXT;
|
||||
}
|
||||
|
||||
|
@ -14,5 +14,4 @@ skip-if = buildapp == 'mulet'
|
||||
skip-if = buildapp == 'mulet'
|
||||
[test_canvas.html]
|
||||
[test_shadowroot.html]
|
||||
skip-if = !stylo
|
||||
support-files = test_shadowroot_subframe.html
|
||||
|
@ -15,7 +15,6 @@ support-files =
|
||||
[test_bug1175913.html]
|
||||
[test_bug1189277.html]
|
||||
[test_bug1276857.html]
|
||||
skip-if = !stylo
|
||||
support-files = test_bug1276857_subframe.html
|
||||
[test_canvas.html]
|
||||
[test_colorpicker.xul]
|
||||
|
@ -87,6 +87,14 @@
|
||||
this.__proto__ = new changeAttr(aID, "aria-multiselectable", "true");
|
||||
}
|
||||
|
||||
function changeTypeToPassword(aID) {
|
||||
this.__proto__ = new changeAttr(aID, "type", "password");
|
||||
}
|
||||
|
||||
function changeTypeToText(aID) {
|
||||
this.__proto__ = new changeAttr(aID, "type", "text");
|
||||
}
|
||||
|
||||
// //////////////////////////////////////////////////////////////////////////
|
||||
// Test
|
||||
|
||||
@ -113,6 +121,10 @@
|
||||
// recreate an accessible by aria-multiselectable change
|
||||
gQueue.push(new changeMultiselectable("div3"));
|
||||
|
||||
// recreate an accessible by type
|
||||
gQueue.push(new changeTypeToText("password"));
|
||||
gQueue.push(new changeTypeToPassword("text"));
|
||||
|
||||
gQueue.invoke(); // SimpleTest.finish() will be called in the end
|
||||
}
|
||||
|
||||
@ -139,5 +151,8 @@
|
||||
<div id="div3" role="listbox">list</div>
|
||||
|
||||
<div id="eventdump"></div>
|
||||
|
||||
<form><input type="password" id="password"/></form>
|
||||
<form><input type="text" id="text"/></form>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -2116,7 +2116,7 @@
|
||||
aTab.mCorrespondingMenuitem = menuItem;
|
||||
menuItem.tab = aTab;
|
||||
|
||||
this.appendChild(menuItem);
|
||||
return menuItem;
|
||||
]]></body>
|
||||
</method>
|
||||
|
||||
@ -2203,10 +2203,14 @@
|
||||
tabcontainer.addEventListener("TabClose", this);
|
||||
|
||||
let tabs = gBrowser.visibleTabs;
|
||||
let fragment = document.createDocumentFragment();
|
||||
for (var i = 0; i < tabs.length; i++) {
|
||||
if (!tabs[i].pinned)
|
||||
this._createTabMenuItem(tabs[i]);
|
||||
if (!tabs[i].pinned) {
|
||||
let li = this._createTabMenuItem(tabs[i]);
|
||||
fragment.appendChild(li);
|
||||
}
|
||||
}
|
||||
this.appendChild(fragment);
|
||||
this._updateTabsVisibilityStatus();
|
||||
}
|
||||
]]></handler>
|
||||
|
@ -25,16 +25,29 @@ class AnimatedPropertyList extends PureComponent {
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
animatedPropertyMap: null
|
||||
// Map which is mapped property name and the keyframes.
|
||||
animatedPropertyMap: null,
|
||||
// Object which is mapped property name and the animation type
|
||||
// such the "color", "discrete", "length" and so on.
|
||||
animationTypes: null,
|
||||
// To avoid rendering while the state is updating
|
||||
// since we call an async function in updateState.
|
||||
isStateUpdating: false,
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.updateKeyframesList(this.props.animation);
|
||||
// No need to set isStateUpdating state since paint sequence is finish here.
|
||||
this.updateState(this.props.animation);
|
||||
}
|
||||
|
||||
componentWillReceiveProps(nextProps) {
|
||||
this.updateKeyframesList(nextProps.animation);
|
||||
this.setState({ isStateUpdating: true });
|
||||
this.updateState(nextProps.animation);
|
||||
}
|
||||
|
||||
shouldComponentUpdate(nextProps, nextState) {
|
||||
return !nextState.isStateUpdating;
|
||||
}
|
||||
|
||||
getPropertyState(property) {
|
||||
@ -49,7 +62,7 @@ class AnimatedPropertyList extends PureComponent {
|
||||
return null;
|
||||
}
|
||||
|
||||
async updateKeyframesList(animation) {
|
||||
async updateState(animation) {
|
||||
const {
|
||||
getAnimatedPropertyMap,
|
||||
emitEventForTest,
|
||||
@ -68,7 +81,14 @@ class AnimatedPropertyList extends PureComponent {
|
||||
return;
|
||||
}
|
||||
|
||||
this.setState({ animatedPropertyMap, animationTypes });
|
||||
this.setState(
|
||||
{
|
||||
animatedPropertyMap,
|
||||
animationTypes,
|
||||
isStateUpdating: false
|
||||
}
|
||||
);
|
||||
|
||||
emitEventForTest("animation-keyframes-rendered");
|
||||
}
|
||||
|
||||
|
@ -35,17 +35,26 @@ class SummaryGraphPath extends PureComponent {
|
||||
this.state = {
|
||||
// Duration which can display in one pixel.
|
||||
durationPerPixel: 0,
|
||||
// To avoid rendering while the state is updating
|
||||
// since we call an async function in updateState.
|
||||
isStateUpdating: false,
|
||||
// List of keyframe which consists by only offset and easing.
|
||||
keyframesList: [],
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.updateState(this.props.animation);
|
||||
// No need to set isStateUpdating state since paint sequence is finish here.
|
||||
this.updateState(this.props);
|
||||
}
|
||||
|
||||
componentWillReceiveProps(nextProps) {
|
||||
this.updateState(nextProps.animation);
|
||||
this.setState({ isStateUpdating: true });
|
||||
this.updateState(nextProps);
|
||||
}
|
||||
|
||||
shouldComponentUpdate(nextProps, nextState) {
|
||||
return !nextState.isStateUpdating;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -141,12 +150,13 @@ class SummaryGraphPath extends PureComponent {
|
||||
return true;
|
||||
}
|
||||
|
||||
async updateState(animation) {
|
||||
async updateState(props) {
|
||||
const {
|
||||
animation,
|
||||
emitEventForTest,
|
||||
getAnimatedPropertyMap,
|
||||
timeScale,
|
||||
} = this.props;
|
||||
} = props;
|
||||
|
||||
let animatedPropertyMap = null;
|
||||
|
||||
@ -165,7 +175,13 @@ class SummaryGraphPath extends PureComponent {
|
||||
const totalDuration = this.getTotalDuration(animation, timeScale);
|
||||
const durationPerPixel = totalDuration / thisEl.parentNode.clientWidth;
|
||||
|
||||
this.setState({ durationPerPixel, keyframesList });
|
||||
this.setState(
|
||||
{
|
||||
durationPerPixel,
|
||||
isStateUpdating: false,
|
||||
keyframesList
|
||||
}
|
||||
);
|
||||
|
||||
emitEventForTest("animation-summary-graph-rendered");
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ support-files =
|
||||
[browser_animation_summary-graph_animation-name.js]
|
||||
[browser_animation_summary-graph_compositor.js]
|
||||
[browser_animation_summary-graph_computed-timing-path.js]
|
||||
[browser_animation_summary-graph_computed-timing-path_different-timescale.js]
|
||||
[browser_animation_summary-graph_delay-sign.js]
|
||||
[browser_animation_summary-graph_end-delay-sign.js]
|
||||
[browser_animation_summary-graph_effect-timing-path.js]
|
||||
|
@ -0,0 +1,23 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
"use strict";
|
||||
|
||||
// Test the Computed Timing Path component for different time scales.
|
||||
|
||||
add_task(async function() {
|
||||
await addTab(URL_ROOT + "doc_simple_animation.html");
|
||||
const { inspector, panel } = await openAnimationInspector();
|
||||
|
||||
info("Checking the path for different time scale");
|
||||
await selectNodeAndWaitForAnimations(".no-compositor", inspector);
|
||||
const pathStringA = panel.querySelector(".animation-iteration-path").getAttribute("d");
|
||||
|
||||
info("Select animation which has different time scale from no-compositor");
|
||||
await selectNodeAndWaitForAnimations(".endDelayed", inspector);
|
||||
|
||||
info("Select no-compositor again");
|
||||
await selectNodeAndWaitForAnimations(".no-compositor", inspector);
|
||||
const pathStringB = panel.querySelector(".animation-iteration-path").getAttribute("d");
|
||||
is(pathStringA, pathStringB, "Path string should be same even change the time scale");
|
||||
});
|
@ -88,7 +88,6 @@ skip-if = os == "mac" # Full keyboard navigation on OSX only works if Full Keybo
|
||||
[browser_markup_anonymous_02.js]
|
||||
skip-if = e10s # scratchpad.xul is not loading in e10s window
|
||||
[browser_markup_anonymous_03.js]
|
||||
skip-if = !stylo
|
||||
[browser_markup_anonymous_04.js]
|
||||
[browser_markup_copy_image_data.js]
|
||||
subsuite = clipboard
|
||||
|
@ -11,7 +11,6 @@ support-files =
|
||||
|
||||
[browser_webconsole_check_stubs_console_api.js]
|
||||
[browser_webconsole_check_stubs_css_message.js]
|
||||
skip-if = !stylo # Stubs updated for Stylo, won't match old Gecko style system
|
||||
[browser_webconsole_check_stubs_evaluation_result.js]
|
||||
[browser_webconsole_check_stubs_network_event.js]
|
||||
[browser_webconsole_check_stubs_page_error.js]
|
||||
|
@ -51,7 +51,6 @@ support-files =
|
||||
[test_getProcess.html]
|
||||
[test_highlighter_paused_debugger.html]
|
||||
[test_inspector-anonymous.html]
|
||||
skip-if = !stylo # No shadow dom support
|
||||
[test_inspector-changeattrs.html]
|
||||
[test_inspector-changevalue.html]
|
||||
[test_inspector-dead-nodes.html]
|
||||
|
@ -5800,9 +5800,7 @@ nsContentUtils::GetWindowProviderForContentProcess()
|
||||
already_AddRefed<nsPIDOMWindowOuter>
|
||||
nsContentUtils::GetMostRecentNonPBWindow()
|
||||
{
|
||||
nsCOMPtr<nsIWindowMediator> windowMediator =
|
||||
do_GetService(NS_WINDOWMEDIATOR_CONTRACTID);
|
||||
nsCOMPtr<nsIWindowMediator_44> wm = do_QueryInterface(windowMediator);
|
||||
nsCOMPtr<nsIWindowMediator> wm = do_GetService(NS_WINDOWMEDIATOR_CONTRACTID);
|
||||
|
||||
nsCOMPtr<mozIDOMWindowProxy> window;
|
||||
wm->GetMostRecentNonPBWindow(u"navigator:browser",
|
||||
|
@ -576,9 +576,7 @@ skip-if = toolkit == 'android' #bug 687032
|
||||
[test_bug999456.html]
|
||||
[test_bug1022229.html]
|
||||
[test_bug1025933.html]
|
||||
skip-if = !stylo
|
||||
[test_bug1037687.html]
|
||||
skip-if = !stylo
|
||||
support-files = test_bug1037687_subframe.html
|
||||
[test_bug1043106.html]
|
||||
[test_bug1057176.html]
|
||||
@ -615,7 +613,6 @@ skip-if = toolkit == 'android'
|
||||
[test_bug1404385.html]
|
||||
[test_bug1406102.html]
|
||||
[test_bug1421568.html]
|
||||
skip-if = !stylo
|
||||
[test_caretPositionFromPoint.html]
|
||||
[test_change_policy.html]
|
||||
[test_clearTimeoutIntervalNoArg.html]
|
||||
|
@ -20,7 +20,7 @@ skip-if(Android) == webgl-clear-test.html?depth&stencil wrapper.html?green.png
|
||||
skip-if(Android) == webgl-resize-test.html wrapper.html?green.png
|
||||
|
||||
# Check that captureStream() displays in a local video element
|
||||
skip-if(Android) skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)&&styloVsGecko) == webgl-capturestream-test.html?preserve wrapper.html?green.png
|
||||
skip-if(Android) == webgl-capturestream-test.html?preserve wrapper.html?green.png
|
||||
|
||||
# Some of the failure conditions are a little crazy. I'm (jgilbert) setting these based on
|
||||
# failures encountered when running on Try, and then targetting the Try config by
|
||||
@ -141,7 +141,7 @@ fuzzy(9,40000) skip pref(webgl.prefer-16bpp,true)
|
||||
fuzzy(9,40000) skip pref(webgl.prefer-16bpp,true) pref(webgl.force-layers-readback,true) == webgl-color-test.html?16bpp&readback&premult&alpha wrapper.html?colors-premult.png
|
||||
|
||||
# Force native GL (Windows):
|
||||
skip-if(!winWidget) skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)&&styloVsGecko) pref(webgl.disable-angle,true) == webgl-color-test.html?native-gl wrapper.html?colors-no-alpha.png
|
||||
skip-if(!winWidget) pref(webgl.disable-angle,true) == webgl-color-test.html?native-gl wrapper.html?colors-no-alpha.png
|
||||
|
||||
|
||||
# Non-WebGL Reftests!
|
||||
|
@ -139,9 +139,7 @@ support-files = bug1017086_inner.html
|
||||
[test_bug1017086_enable.html]
|
||||
support-files = bug1017086_inner.html
|
||||
[test_bug1079236.html]
|
||||
skip-if = !stylo
|
||||
[test_bug1145910.html]
|
||||
skip-if = !stylo
|
||||
[test_bug1150308.html]
|
||||
skip-if = true || stylo # bug 1293844, bug 1421545
|
||||
[test_bug1248459.html]
|
||||
|
@ -1,7 +1,7 @@
|
||||
default-preferences pref(dom.forms.number,true) pref(dom.forms.datetime,true)
|
||||
fuzzy-if(skiaContent,1,3) needs-focus == input-load.html input-ref.html
|
||||
fuzzy-if(skiaContent,1,3) needs-focus == input-create.html input-ref.html
|
||||
fuzzy-if(skiaContent,1,3) needs-focus skip-if(styloVsGecko) == input-number.html input-number-ref.html
|
||||
fuzzy-if(skiaContent,1,3) needs-focus == input-number.html input-number-ref.html
|
||||
fuzzy-if(skiaContent,1,3) needs-focus == input-time.html input-time-ref.html
|
||||
fuzzy-if(skiaContent,1,3) needs-focus == button-load.html button-ref.html
|
||||
fuzzy-if(skiaContent,1,3) needs-focus == button-create.html button-ref.html
|
||||
|
@ -1,5 +1,4 @@
|
||||
[DEFAULT]
|
||||
skip-if = !stylo
|
||||
support-files =
|
||||
inert_style.css
|
||||
dummy_page.html
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 468496-1 will also detect bugs in video drivers.
|
||||
== 468496-1.html 468496-1-ref.html
|
||||
fuzzy(175,443) skip-if(styloVsGecko) == 611498-1.html 611498-ref.html
|
||||
fuzzy(175,443) == 611498-1.html 611498-ref.html
|
||||
fuzzy-if(Android,8,1000) == 709477-1.html 709477-1-ref.html
|
||||
skip-if(!asyncPan) == 1086723.html 1086723-ref.html
|
||||
== 853889-1.html 853889-1-ref.html
|
||||
|
@ -54,7 +54,6 @@ ImageCacheKey::ImageCacheKey(nsIURI* aURI,
|
||||
, mOriginAttributes(aAttrs)
|
||||
, mControlledDocument(GetControlledDocumentToken(aDocument))
|
||||
, mIsChrome(URISchemeIs(mURI, "chrome"))
|
||||
, mIsStyloEnabled(nsLayoutUtils::StyloEnabled())
|
||||
{
|
||||
NS_ENSURE_SUCCESS_VOID(aRv);
|
||||
|
||||
@ -64,8 +63,7 @@ ImageCacheKey::ImageCacheKey(nsIURI* aURI,
|
||||
mBlobSerial = BlobSerial(mURI);
|
||||
}
|
||||
|
||||
mHash = ComputeHash(mURI, mBlobSerial, mOriginAttributes, mControlledDocument,
|
||||
mIsStyloEnabled);
|
||||
mHash = ComputeHash(mURI, mBlobSerial, mOriginAttributes, mControlledDocument);
|
||||
}
|
||||
|
||||
ImageCacheKey::ImageCacheKey(ImageURL* aURI,
|
||||
@ -75,7 +73,6 @@ ImageCacheKey::ImageCacheKey(ImageURL* aURI,
|
||||
, mOriginAttributes(aAttrs)
|
||||
, mControlledDocument(GetControlledDocumentToken(aDocument))
|
||||
, mIsChrome(URISchemeIs(mURI, "chrome"))
|
||||
, mIsStyloEnabled(nsLayoutUtils::StyloEnabled())
|
||||
{
|
||||
MOZ_ASSERT(aURI);
|
||||
|
||||
@ -83,8 +80,7 @@ ImageCacheKey::ImageCacheKey(ImageURL* aURI,
|
||||
mBlobSerial = BlobSerial(mURI);
|
||||
}
|
||||
|
||||
mHash = ComputeHash(mURI, mBlobSerial, mOriginAttributes, mControlledDocument,
|
||||
mIsStyloEnabled);
|
||||
mHash = ComputeHash(mURI, mBlobSerial, mOriginAttributes, mControlledDocument);
|
||||
}
|
||||
|
||||
ImageCacheKey::ImageCacheKey(const ImageCacheKey& aOther)
|
||||
@ -94,7 +90,6 @@ ImageCacheKey::ImageCacheKey(const ImageCacheKey& aOther)
|
||||
, mControlledDocument(aOther.mControlledDocument)
|
||||
, mHash(aOther.mHash)
|
||||
, mIsChrome(aOther.mIsChrome)
|
||||
, mIsStyloEnabled(aOther.mIsStyloEnabled)
|
||||
{ }
|
||||
|
||||
ImageCacheKey::ImageCacheKey(ImageCacheKey&& aOther)
|
||||
@ -104,15 +99,11 @@ ImageCacheKey::ImageCacheKey(ImageCacheKey&& aOther)
|
||||
, mControlledDocument(aOther.mControlledDocument)
|
||||
, mHash(aOther.mHash)
|
||||
, mIsChrome(aOther.mIsChrome)
|
||||
, mIsStyloEnabled(aOther.mIsStyloEnabled)
|
||||
{ }
|
||||
|
||||
bool
|
||||
ImageCacheKey::operator==(const ImageCacheKey& aOther) const
|
||||
{
|
||||
if (mIsStyloEnabled != aOther.mIsStyloEnabled) {
|
||||
return false;
|
||||
}
|
||||
// Don't share the image cache between a controlled document and anything else.
|
||||
if (mControlledDocument != aOther.mControlledDocument) {
|
||||
return false;
|
||||
@ -142,8 +133,7 @@ ImageCacheKey::Spec() const
|
||||
ImageCacheKey::ComputeHash(ImageURL* aURI,
|
||||
const Maybe<uint64_t>& aBlobSerial,
|
||||
const OriginAttributes& aAttrs,
|
||||
void* aControlledDocument,
|
||||
bool aIsStyloEnabled)
|
||||
void* aControlledDocument)
|
||||
{
|
||||
// Since we frequently call Hash() several times in a row on the same
|
||||
// ImageCacheKey, as an optimization we compute our hash once and store it.
|
||||
@ -153,8 +143,7 @@ ImageCacheKey::ComputeHash(ImageURL* aURI,
|
||||
aAttrs.CreateSuffix(suffix);
|
||||
|
||||
return AddToHash(0, aURI->ComputeHash(aBlobSerial),
|
||||
HashString(suffix), HashString(ptr),
|
||||
aIsStyloEnabled);
|
||||
HashString(suffix), HashString(ptr));
|
||||
}
|
||||
|
||||
/* static */ void*
|
||||
|
@ -59,8 +59,7 @@ private:
|
||||
static PLDHashNumber ComputeHash(ImageURL* aURI,
|
||||
const Maybe<uint64_t>& aBlobSerial,
|
||||
const OriginAttributes& aAttrs,
|
||||
void* aControlledDocument,
|
||||
bool aIsStyloEnabled);
|
||||
void* aControlledDocument);
|
||||
static void* GetControlledDocumentToken(nsIDocument* aDocument);
|
||||
|
||||
RefPtr<ImageURL> mURI;
|
||||
@ -69,10 +68,6 @@ private:
|
||||
void* mControlledDocument;
|
||||
PLDHashNumber mHash;
|
||||
bool mIsChrome;
|
||||
// To prevent the reftests of styloVsGecko taking the same image cache after
|
||||
// refreshing, we need to store different caches of stylo and gecko. So, we
|
||||
// also consider the info of StyloEnabled() in ImageCacheKey.
|
||||
bool mIsStyloEnabled;
|
||||
};
|
||||
|
||||
} // namespace image
|
||||
|
@ -8,7 +8,7 @@ load 463696.bmp
|
||||
load 570451.png
|
||||
# Bug 1390704 - Skip on stylo+debug because it triggers a quadratic behavior that makes it take
|
||||
# so much time that it can trip on the reftest timeout of 5 minutes.
|
||||
skip-if(Android||((stylo||styloVsGecko)&&isDebugBuild)) load 694165-1.xhtml
|
||||
skip-if(Android||(stylo&&isDebugBuild)) load 694165-1.xhtml
|
||||
load 681190.html
|
||||
load 732319-1.html
|
||||
load 844403-1.html
|
||||
|
@ -131,6 +131,8 @@ IsThingPoisoned(T* thing)
|
||||
JS_MOVED_TENURED_PATTERN,
|
||||
JS_SWEPT_TENURED_PATTERN,
|
||||
JS_ALLOCATED_TENURED_PATTERN,
|
||||
JS_FREED_HEAP_PTR_PATTERN,
|
||||
JS_SWEPT_TI_PATTERN,
|
||||
JS_SWEPT_CODE_PATTERN
|
||||
};
|
||||
const int numPoisonBytes = sizeof(poisonBytes) / sizeof(poisonBytes[0]);
|
||||
|
@ -460,6 +460,7 @@ class BufferGrayRootsTracer final : public JS::CallbackTracer
|
||||
{}
|
||||
|
||||
bool failed() const { return bufferingGrayRootsFailed; }
|
||||
void setFailed() { bufferingGrayRootsFailed = true; }
|
||||
|
||||
#ifdef DEBUG
|
||||
TracerKind getTracerKind() const override { return TracerKind::GrayBuffering; }
|
||||
@ -477,6 +478,9 @@ js::IsBufferGrayRootsTracer(JSTracer* trc)
|
||||
}
|
||||
#endif
|
||||
|
||||
// A canary value used to check the gray buffer contents are valid.
|
||||
static Cell* const GrayBufferCanary = reinterpret_cast<Cell*>(0x47726179); // "Gray"
|
||||
|
||||
void
|
||||
js::gc::GCRuntime::bufferGrayRoots()
|
||||
{
|
||||
@ -490,6 +494,12 @@ js::gc::GCRuntime::bufferGrayRoots()
|
||||
if (JSTraceDataOp op = grayRootTracer.op)
|
||||
(*op)(&grayBufferer, grayRootTracer.data);
|
||||
|
||||
// Push a canary value onto the end of the list.
|
||||
for (GCZonesIter zone(rt); !zone.done(); zone.next()) {
|
||||
if (!zone->gcGrayRoots().empty() && !zone->gcGrayRoots().append(GrayBufferCanary))
|
||||
grayBufferer.setFailed();
|
||||
}
|
||||
|
||||
// Propagate the failure flag from the marker to the runtime.
|
||||
if (grayBufferer.failed()) {
|
||||
grayBufferState = GrayBufferState::Failed;
|
||||
@ -531,8 +541,19 @@ GCRuntime::markBufferedGrayRoots(JS::Zone* zone)
|
||||
MOZ_ASSERT(grayBufferState == GrayBufferState::Okay);
|
||||
MOZ_ASSERT(zone->isGCMarkingGray() || zone->isGCCompacting());
|
||||
|
||||
for (auto cell : zone->gcGrayRoots())
|
||||
auto& roots = zone->gcGrayRoots();
|
||||
if (roots.empty())
|
||||
return;
|
||||
|
||||
// Check for and remove canary value.
|
||||
MOZ_RELEASE_ASSERT(roots.length() > 1);
|
||||
MOZ_RELEASE_ASSERT(roots.back() == GrayBufferCanary);
|
||||
roots.popBack();
|
||||
|
||||
for (auto cell : zone->gcGrayRoots()) {
|
||||
MOZ_ASSERT(IsCellPointerValid(cell));
|
||||
TraceManuallyBarrieredGenericPointerEdge(&marker, &cell, "buffered gray root");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -266,6 +266,7 @@ PodSet(T* aDst, const T& aSrc, size_t aNElem)
|
||||
#define JS_SWEPT_TENURED_PATTERN 0x4B
|
||||
#define JS_ALLOCATED_TENURED_PATTERN 0x4D
|
||||
#define JS_FREED_HEAP_PTR_PATTERN 0x6B
|
||||
#define JS_SWEPT_TI_PATTERN 0x6F
|
||||
|
||||
/*
|
||||
* Ensure JS_SWEPT_CODE_PATTERN is a byte pattern that will crash immediately
|
||||
|
@ -4155,6 +4155,8 @@ ConstraintTypeSet::trace(Zone* zone, JSTracer* trc)
|
||||
}
|
||||
MOZ_RELEASE_ASSERT(oldObjectCount == oldObjectsFound);
|
||||
setBaseObjectCount(objectCount);
|
||||
// Note: -1/+1 to also poison the capacity field.
|
||||
JS_POISON(oldArray - 1, JS_SWEPT_TI_PATTERN, (oldCapacity + 1) * sizeof(oldArray[0]));
|
||||
} else if (objectCount == 1) {
|
||||
ObjectKey* key = (ObjectKey*) objectSet;
|
||||
TraceObjectKey(trc, &key);
|
||||
@ -4192,6 +4194,8 @@ ConstraintTypeSet::sweep(Zone* zone, AutoClearTypeInferenceStateOnOOM& oom)
|
||||
unsigned oldCapacity = TypeHashSet::Capacity(objectCount);
|
||||
ObjectKey** oldArray = objectSet;
|
||||
|
||||
MOZ_RELEASE_ASSERT(uintptr_t(oldArray[-1]) == oldCapacity);
|
||||
|
||||
clearObjects();
|
||||
objectCount = 0;
|
||||
for (unsigned i = 0; i < oldCapacity; i++) {
|
||||
@ -4229,6 +4233,8 @@ ConstraintTypeSet::sweep(Zone* zone, AutoClearTypeInferenceStateOnOOM& oom)
|
||||
}
|
||||
}
|
||||
setBaseObjectCount(objectCount);
|
||||
// Note: -1/+1 to also poison the capacity field.
|
||||
JS_POISON(oldArray - 1, JS_SWEPT_TI_PATTERN, (oldCapacity + 1) * sizeof(oldArray[0]));
|
||||
} else if (objectCount == 1) {
|
||||
ObjectKey* key = (ObjectKey*) objectSet;
|
||||
if (!IsObjectKeyAboutToBeFinalized(&key)) {
|
||||
@ -4261,7 +4267,9 @@ ConstraintTypeSet::sweep(Zone* zone, AutoClearTypeInferenceStateOnOOM& oom)
|
||||
oom.setOOM();
|
||||
}
|
||||
}
|
||||
constraint = constraint->next();
|
||||
TypeConstraint* next = constraint->next();
|
||||
JS_POISON(constraint, JS_SWEPT_TI_PATTERN, sizeof(TypeConstraint));
|
||||
constraint = next;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4360,13 +4368,15 @@ ObjectGroup::sweep(AutoClearTypeInferenceStateOnOOM* oom)
|
||||
* (i.e. for the definite properties analysis). The contents of
|
||||
* these type sets will be regenerated as necessary.
|
||||
*/
|
||||
JS_POISON(prop, JS_SWEPT_TI_PATTERN, sizeof(Property));
|
||||
continue;
|
||||
}
|
||||
|
||||
Property* newProp = typeLifoAlloc.new_<Property>(*prop);
|
||||
JS_POISON(prop, JS_SWEPT_TI_PATTERN, sizeof(Property));
|
||||
if (newProp) {
|
||||
Property** pentry = TypeHashSet::Insert<jsid, Property, Property>
|
||||
(typeLifoAlloc, propertySet, propertyCount, prop->id);
|
||||
(typeLifoAlloc, propertySet, propertyCount, newProp->id);
|
||||
if (pentry) {
|
||||
*pentry = newProp;
|
||||
newProp->types.sweep(zone(), *oom);
|
||||
@ -4387,9 +4397,11 @@ ObjectGroup::sweep(AutoClearTypeInferenceStateOnOOM* oom)
|
||||
prop->types.checkMagic();
|
||||
if (singleton() && !prop->types.constraintList() && !zone()->isPreservingCode()) {
|
||||
// Skip, as above.
|
||||
JS_POISON(prop, JS_SWEPT_TI_PATTERN, sizeof(Property));
|
||||
clearProperties();
|
||||
} else {
|
||||
Property* newProp = typeLifoAlloc.new_<Property>(*prop);
|
||||
JS_POISON(prop, JS_SWEPT_TI_PATTERN, sizeof(Property));
|
||||
if (newProp) {
|
||||
propertySet = (Property**) newProp;
|
||||
newProp->types.sweep(zone(), *oom);
|
||||
|
@ -495,7 +495,7 @@ load 1352380.html
|
||||
load 1362423-1.html
|
||||
load 1381323.html
|
||||
load 1382534.html
|
||||
asserts-if(!stylo,1) load 1388625-1.html # bug 1389286
|
||||
load 1388625-1.html
|
||||
load 1390389.html
|
||||
load 1391736.html
|
||||
load 1395591-1.html
|
||||
@ -526,4 +526,4 @@ load 1435015.html
|
||||
load 1429962.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) load 1439016.html
|
||||
load 1442506.html
|
||||
asserts-if(!stylo,1) load 1437155.html
|
||||
load 1437155.html
|
||||
|
@ -586,7 +586,7 @@ load 1039454-1.html
|
||||
load 1042489.html
|
||||
load 1054010-1.html
|
||||
load 1058954-1.html
|
||||
asserts-if(!stylo,0-2) pref(dom.webcomponents.shadowdom.enabled,true) pref(dom.webcomponents.customelements.enabled,true) load 1059138-1.html # bug 1389936
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) pref(dom.webcomponents.customelements.enabled,true) load 1059138-1.html
|
||||
load 1134531.html
|
||||
load 1134667.html
|
||||
load 1137723-1.html
|
||||
|
@ -1,5 +1,5 @@
|
||||
load 1402183-1.html
|
||||
skip-if(!(stylo||styloVsGecko)||Android) load 1407470-1.html
|
||||
skip-if(Android) load 1407470-1.html
|
||||
load 1413073-1.html
|
||||
load 1413073-2.html
|
||||
load 1405881-1.html
|
||||
|
@ -305,7 +305,7 @@ fuzzy-if(Android,3,50) fuzzy-if(skiaContent,1,133) == 273681-1.html 273681-1-ref
|
||||
== 283686-2.html 283686-2-ref.html
|
||||
== 283686-3.html about:blank
|
||||
== 289384-1.xhtml 289384-ref.xhtml
|
||||
random-if(d2d) fuzzy-if(Android,8,1439) skip-if(styloVsGecko) HTTP == 289480.html#top 289480-ref.html # basically-verbatim acid2 test, HTTP for a 404 page -- bug 578114 for the d2d failures, bug 1354406
|
||||
random-if(d2d) fuzzy-if(Android,8,1439) HTTP == 289480.html#top 289480-ref.html # basically-verbatim acid2 test, HTTP for a 404 page -- bug 578114 for the d2d failures
|
||||
== 290129-1.html 290129-1-ref.html
|
||||
== 291078-1.html 291078-1-ref.html
|
||||
== 291078-2.html 291078-2-ref.html
|
||||
@ -1259,7 +1259,7 @@ fails == 472020-2.xul 472020-2-ref.xul
|
||||
== 473847-1.xul 473847-1-ref.xul
|
||||
fuzzy-if(skiaContent,1,16) == 474336-1.xul 474336-1-ref.xul
|
||||
== 474417-1.html 474417-1-ref.html
|
||||
fuzzy-if(skiaContent,1,5) skip-if((stylo||styloVsGecko)&&isDebugBuild&&winWidget) == 474472-1.html 474472-1-ref.html # Bug 1383845
|
||||
fuzzy-if(skiaContent,1,5) == 474472-1.html 474472-1-ref.html
|
||||
== 475986-1a.html 475986-1-ref.html
|
||||
== 475986-1b.html 475986-1-ref.html
|
||||
== 475986-1c.html 475986-1-ref.html
|
||||
@ -1473,7 +1473,7 @@ random == 536061.html 536061-ref.html # fixedpoint division in blur code makes t
|
||||
== 539323-3.html 539323-3-ref.html
|
||||
== 539880-1.html 539880-1-ref.html
|
||||
== 539880-1-dynamic.html 539880-1-ref.html
|
||||
fuzzy-if(Android,12,1000) skip-if(styloVsGecko) == 539949-1.html#test2 539949-1-ref.html#test2 # bug 1354406
|
||||
fuzzy-if(Android,12,1000) == 539949-1.html#test2 539949-1-ref.html#test2
|
||||
== 541382-1.html 541382-1-ref.html
|
||||
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)||!haveTestPlugin) HTTP == 541406-1.html 541406-1-ref.html
|
||||
needs-focus != 542116-1.html 542116-1-ref.html
|
||||
@ -1504,7 +1504,7 @@ fuzzy-if(!contentSameGfxBackendAsCanvas,128,91) random-if(d2d) skip-if(azureSkia
|
||||
fuzzy-if(skiaContent,4,5) == 557087-1.html 557087-ref.html
|
||||
fuzzy-if(skiaContent&&!Android,2,5) == 557087-2.html 557087-ref.html
|
||||
== 557736-1.html 557736-1-ref.html
|
||||
fails-if(styloVsGecko) != 558011-1.xul 558011-1-ref.xul # bug 1410784
|
||||
!= 558011-1.xul 558011-1-ref.xul
|
||||
== 559284-1.html 559284-1-ref.html
|
||||
fails-if(Android) == 560455-1.xul 560455-1-ref.xul
|
||||
fuzzy-if(skiaContent,2,5) == 561981-1.html 561981-1-ref.html
|
||||
@ -1598,7 +1598,7 @@ random-if(Android) == 594333-1.html 594333-1-ref.html
|
||||
== 594624-1.html 594624-1-ref.html
|
||||
== 594737-1.html 594737-1-ref.html
|
||||
fuzzy-if(skiaContent,1,80) fuzzy-if(webrender,1,100) == 597721-1.html 597721-1-ref.html
|
||||
random-if(winWidget) fuzzy-if(Android,38,539) fuzzy-if(skiaContent,1,480) needs-focus skip-if(styloVsGecko) == 598726-1.html 598726-1-ref.html # Fails on Windows, bug 782196
|
||||
random-if(winWidget) fuzzy-if(Android,38,539) fuzzy-if(skiaContent,1,480) needs-focus == 598726-1.html 598726-1-ref.html # Fails on Windows, bug 782196
|
||||
== 599113-1.html 599113-1-ref.html
|
||||
fails-if(!haveTestPlugin) HTTP == 599476.html 599476-ref.html
|
||||
== 599882-1a.html 599882-1-ref.html
|
||||
@ -1786,8 +1786,8 @@ fuzzy-if(OSX,1,364) fuzzy-if(skiaContent,1,320) == 846144-1.html 846144-1-ref.ht
|
||||
== 871338-1.html 871338-1-ref.html
|
||||
== 875060-1.html 875060-1-ref.html
|
||||
== 883987-1a.html 883987-1-ref.html
|
||||
fails-if(styloVsGecko||stylo) == 883987-1b.html 883987-1-ref.html
|
||||
fails-if(styloVsGecko||stylo) == 883987-1c.html 883987-1-ref.html
|
||||
fails == 883987-1b.html 883987-1-ref.html # bug 1446971
|
||||
fails == 883987-1c.html 883987-1-ref.html # bug 1446971
|
||||
== 883987-1d.html 883987-1-ref.html
|
||||
== 883987-1e.html 883987-1-ref.html
|
||||
== 883987-1f.html 883987-1-ref.html
|
||||
@ -1845,7 +1845,7 @@ pref(layout.css.overflow-clip-box.enabled,true) fuzzy-if(skiaContent,2,845) == 9
|
||||
== 1021564-4.html 1021564-ref.html
|
||||
pref(browser.display.use_document_fonts,0) == 1022481-1.html 1022481-1-ref.html
|
||||
fuzzy-if(d2d,1,125200) fuzzy-if(skiaContent,1,126000) == 1022612-1.html 1022612-1-ref.html
|
||||
skip-if(styloVsGecko) == 1024473-1.html 1024473-1-ref.html # skip styloVsGecko for imperceptible pixel rounding differences between Stylo and Gecko
|
||||
== 1024473-1.html 1024473-1-ref.html
|
||||
fuzzy-if(skiaContent,1,24000) == 1025914-1.html 1025914-1-ref.html
|
||||
pref(layout.css.moz-document.content.enabled,true) == 1035091.html 1035091-ref.html
|
||||
pref(layout.css.moz-document.content.enabled,false) == 1035091-2.html 1035091-ref.html
|
||||
@ -1864,7 +1864,7 @@ pref(layout.css.moz-document.content.enabled,false) == 1035091-2.html 1035091-re
|
||||
== 1062108-1.html 1062108-1-ref.html
|
||||
== 1062792-1.html 1062792-1-ref.html
|
||||
== 1062963-floatmanager-reflow.html 1062963-floatmanager-reflow-ref.html
|
||||
test-pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == 1066554-1.html 1066554-1-ref.html
|
||||
test-pref(dom.webcomponents.shadowdom.enabled,true) == 1066554-1.html 1066554-1-ref.html
|
||||
== 1069716-1.html 1069716-1-ref.html
|
||||
== 1078262-1.html about:blank
|
||||
test-pref(layout.testing.overlay-scrollbars.always-visible,false) == 1081072-1.html 1081072-1-ref.html
|
||||
@ -1996,7 +1996,7 @@ fuzzy(13,40000) fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),13,40000) fa
|
||||
fuzzy(13,40000) fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),13,40000) == 1316719-1c.html 1316719-1-ref.html
|
||||
skip-if(Android) != 1318769-1.html 1318769-1-ref.html
|
||||
== 1322512-1.html 1322512-1-ref.html
|
||||
skip-if((stylo||styloVsGecko)&&isDebugBuild&&winWidget) == 1330051.svg 1330051-ref.svg
|
||||
skip-if(isDebugBuild&&winWidget) == 1330051.svg 1330051-ref.svg
|
||||
== 1348481-1.html 1348481-ref.html
|
||||
== 1348481-2.html 1348481-ref.html
|
||||
== 1352464-1.html 1352464-1-ref.html
|
||||
@ -2009,7 +2009,7 @@ skip-if((stylo||styloVsGecko)&&isDebugBuild&&winWidget) == 1330051.svg 1330051-r
|
||||
== 1364280-2c.html 1364280-2-ref.html
|
||||
== 1364360-1.html 1364360-1-ref.html
|
||||
== 1365159-1.html 1365159-1-ref.html
|
||||
fails-if(!stylo||styloVsGecko) == 1365162-1.html 1365162-1-ref.html
|
||||
== 1365162-1.html 1365162-1-ref.html
|
||||
== 1352306-1.html 1352306-1-ref.html
|
||||
== 1366144.html 1366144-ref.html
|
||||
== 1367592-1.html 1367592-1-ref.html
|
||||
@ -2063,5 +2063,5 @@ test-pref(font.size.systemFontScale,200) == 1412743.html 1412743-ref.html
|
||||
fuzzy(74,2234) random-if(webrender) == 1425243-1.html 1425243-1-ref.html
|
||||
fuzzy-if(Android,66,574) fuzzy-if(d2d,89,777) fuzzy-if(!Android&&!d2d,1,31219) == 1425243-2.html 1425243-2-ref.html
|
||||
== 1432541.html 1432541-ref.html
|
||||
pref(layout.css.moz-document.url-prefix-hack.enabled,true) fails-if(!stylo||styloVsGecko) == 1446470.html 1035091-ref.html
|
||||
pref(layout.css.moz-document.url-prefix-hack.enabled,true) == 1446470.html 1035091-ref.html
|
||||
pref(layout.css.moz-document.url-prefix-hack.enabled,false) == 1446470-2.html 1035091-ref.html
|
||||
|
@ -2,7 +2,7 @@ default-preferences pref(layout.css.box-decoration-break.enabled,true)
|
||||
|
||||
== box-decoration-break-1.html box-decoration-break-1-ref.html
|
||||
fuzzy(1,20) fuzzy-if(skiaContent,1,700) fuzzy-if(webrender,23-23,14016-14016) == box-decoration-break-with-inset-box-shadow-1.html box-decoration-break-with-inset-box-shadow-1-ref.html
|
||||
fuzzy(45,460) fuzzy-if(skiaContent,57,439) fuzzy-if(Android,57,1330) fuzzy-if(styloVsGecko,45,1410) == box-decoration-break-with-outset-box-shadow-1.html box-decoration-break-with-outset-box-shadow-1-ref.html # Bug 1386543
|
||||
fuzzy(45,460) fuzzy-if(skiaContent,57,439) fuzzy-if(Android,57,1330) == box-decoration-break-with-outset-box-shadow-1.html box-decoration-break-with-outset-box-shadow-1-ref.html # Bug 1386543
|
||||
random-if(!gtkWidget) == box-decoration-break-border-image.html box-decoration-break-border-image-ref.html
|
||||
== box-decoration-break-block-border-padding.html box-decoration-break-block-border-padding-ref.html
|
||||
== box-decoration-break-block-margin.html box-decoration-break-block-margin-ref.html
|
||||
|
@ -1,3 +1,3 @@
|
||||
== background-image-gradient-1.html background-image-gradient-1-ref.html
|
||||
== line-height-1.html line-height-1-ref.html
|
||||
fails-if(!isDebugBuild&&(!stylo||styloVsGecko)) skip-if(isDebugBuild&&(!stylo||styloVsGecko)) == line-height-2.html line-height-2-ref.html
|
||||
== line-height-2.html line-height-2-ref.html
|
||||
|
@ -23,7 +23,7 @@ fuzzy-if(Android,7,3935) == display-contents-xbl.xhtml display-contents-xbl-ref.
|
||||
skip == display-contents-xbl-4.xul display-contents-xbl-4-ref.xul # fails (not just asserts) due to bug 1089223
|
||||
asserts(0-1) fuzzy-if(Android,8,3216) == display-contents-fieldset.html display-contents-fieldset-ref.html # bug 1089223
|
||||
== display-contents-xbl-5.xul display-contents-xbl-3-ref.xul
|
||||
fails-if(!stylo) == display-contents-xbl-6.xhtml display-contents-xbl-6-ref.html # bug 1345809
|
||||
== display-contents-xbl-6.xhtml display-contents-xbl-6-ref.html
|
||||
== display-contents-xbl-7.xhtml display-contents-xbl-7-ref.html
|
||||
== display-contents-list-item-child.html display-contents-list-item-child-ref.html
|
||||
== display-contents-dyn-insert-text.html display-contents-dyn-insert-text-ref.html
|
||||
|
@ -136,7 +136,7 @@ random-if(http.oscpu!="Linux\u0020i686") == grid-item-content-baseline-002.html
|
||||
random-if(http.oscpu!="Linux\u0020i686") == grid-item-mixed-baseline-001.html grid-item-mixed-baseline-001-ref.html # ditto
|
||||
random-if(http.oscpu!="Linux\u0020i686") == grid-item-mixed-baseline-002.html grid-item-mixed-baseline-002-ref.html # ditto
|
||||
random-if(http.oscpu!="Linux\u0020i686") == grid-item-mixed-baseline-003.html grid-item-mixed-baseline-003-ref.html # ditto
|
||||
skip-if(!gtkWidget) fails-if(styloVsGecko) == grid-item-mixed-baseline-004.html grid-item-mixed-baseline-004-ref.html # ditto. Also stylo bug 1396977.
|
||||
skip-if(!gtkWidget) == grid-item-mixed-baseline-004.html grid-item-mixed-baseline-004-ref.html # ditto.
|
||||
== grid-align-content-001.html grid-align-content-001-ref.html
|
||||
== grid-justify-content-001.html grid-justify-content-001-ref.html
|
||||
skip-if(Android&&isDebugBuild) == grid-justify-content-002.html grid-justify-content-002-ref.html # Bug 1245884 - slow
|
||||
|
@ -9,7 +9,9 @@
|
||||
== unit-vh-vw.html unit-vh-vw-ref.html
|
||||
== unit-vh-vw-zoom.html unit-vh-vw-zoom-ref.html
|
||||
== unit-vh-vw-overflow-auto.html unit-vh-vw-overflow-auto-ref.html
|
||||
fails-if(!Android&&(styloVsGecko||stylo)) == unit-vh-vw-overflow-scroll.html unit-vh-vw-overflow-scroll-ref.html
|
||||
fails-if(!Android&&(styloVsGecko||stylo)) == unit-vh-vw-overflow-scroll-x.html unit-vh-vw-overflow-scroll-x-ref.html
|
||||
fails-if(!Android&&(styloVsGecko||stylo)) == unit-vh-vw-overflow-scroll-y.html unit-vh-vw-overflow-scroll-y-ref.html
|
||||
skip-if(Android) fails-if(stylo) != unit-vh-vw-overflow-auto.html unit-vh-vw-overflow-scroll.html
|
||||
|
||||
# These tests should probably be removed, see bug 1393603.
|
||||
fails-if(!Android) == unit-vh-vw-overflow-scroll.html unit-vh-vw-overflow-scroll-ref.html
|
||||
fails-if(!Android) == unit-vh-vw-overflow-scroll-x.html unit-vh-vw-overflow-scroll-x-ref.html
|
||||
fails-if(!Android) == unit-vh-vw-overflow-scroll-y.html unit-vh-vw-overflow-scroll-y-ref.html
|
||||
skip-if(Android) fails != unit-vh-vw-overflow-auto.html unit-vh-vw-overflow-scroll.html
|
||||
|
@ -65,9 +65,9 @@
|
||||
== details-writing-mode.html details-writing-mode-ref.html
|
||||
== details-in-ol.html details-in-ol-ref.html
|
||||
== summary-three-columns.html summary-three-columns-ref.html
|
||||
fails-if(styloVsGecko) == details-first-line.html details-first-line-ref.html
|
||||
fails-if(styloVsGecko) == open-details-first-line-1.html open-details-first-line-ref.html
|
||||
fails-if(styloVsGecko) == open-details-first-line-2.html open-details-first-line-ref.html
|
||||
== details-first-line.html details-first-line-ref.html
|
||||
== open-details-first-line-1.html open-details-first-line-ref.html
|
||||
== open-details-first-line-2.html open-details-first-line-ref.html
|
||||
|
||||
# Dispatch mouse click to summary
|
||||
== mouse-click-single-summary.html open-single-summary.html
|
||||
|
@ -22,7 +22,7 @@ fails == quote-1d.html quote-1-ref.html
|
||||
fails == quote-1e.html quote-1-ref.html # bug 509685
|
||||
== quote-1e.html quote-1b.html
|
||||
== quote-1f.html quote-1-ref.html
|
||||
fails-if(!stylo) fails-if(styloVsGecko) == dynamic-1.html dynamic-1-ref.html # bug 8253
|
||||
== dynamic-1.html dynamic-1-ref.html
|
||||
random-if(d2d) == dynamic-2.html dynamic-2-ref.html
|
||||
== dynamic-3a.html dynamic-3-ref.html
|
||||
== dynamic-3b.html dynamic-3-ref.html
|
||||
|
@ -5,7 +5,7 @@
|
||||
== out-of-flow-1a.html out-of-flow-1-ref.html
|
||||
== out-of-flow-1b.html out-of-flow-1-ref.html
|
||||
== out-of-flow-1c.html out-of-flow-1-ref.html
|
||||
fails-if(!stylo) fails-if(styloVsGecko) == out-of-flow-1d.html out-of-flow-1-ref.html # bug 396645
|
||||
== out-of-flow-1d.html out-of-flow-1-ref.html
|
||||
|
||||
# parent style context correct
|
||||
== parent-style-1.html parent-style-1-ref.html
|
||||
@ -36,7 +36,7 @@ load stress-10.html # crash test
|
||||
== font-styles.html font-styles-ref.html
|
||||
fuzzy-if(OSX==1010,1,2) == font-styles-nooverflow.html font-styles-ref.html
|
||||
|
||||
fails-if(!stylo) == ib-split-1.html ib-split-1-ref.html
|
||||
== ib-split-1.html ib-split-1-ref.html
|
||||
|
||||
== first-line-in-columnset-1.html first-line-in-columnset-1-ref.html
|
||||
|
||||
|
@ -82,8 +82,8 @@ random-if(cocoaWidget) == sheet-set-switch-1.html sheet-set-switch-1-ref.html #
|
||||
== insert-rule-1a.html insert-rule-1-ref.html
|
||||
== insert-rule-1b.html insert-rule-1-ref.html
|
||||
== delete-rule-1.html delete-rule-1-ref.html
|
||||
skip-if(styloVsGecko) == media-query-add-1.html media-query-add-1-ref.html # skip styloVsGecko for imperceptible pixel rounding differences between Stylo and Gecko
|
||||
skip-if(styloVsGecko) == media-query-remove-1.html media-query-remove-1-ref.html # skip styloVsGecko for imperceptible pixel rounding differences between Stylo and Gecko
|
||||
== media-query-add-1.html media-query-add-1-ref.html
|
||||
== media-query-remove-1.html media-query-remove-1-ref.html
|
||||
!= media-query-add-1-ref.html media-query-remove-1-ref.html
|
||||
|
||||
== ahem-metrics-1.html ahem-metrics-1-ref.html
|
||||
|
@ -54,7 +54,7 @@
|
||||
== alternates-order.html alternates-order-ref.html
|
||||
|
||||
# check that font-specific values line up with @font-face feature settings
|
||||
skip-if((stylo||styloVsGecko)&&winWidget) == annotations.html annotations-ref.html
|
||||
skip-if(winWidget) == annotations.html annotations-ref.html # bug 1447257
|
||||
|
||||
# font-variant subproperties
|
||||
# test for specific features being on and others off, based on prop values
|
||||
|
@ -39,7 +39,7 @@ test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceE
|
||||
test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fuzzy-if(webrender,0-1,0-19) == css-transform-2.html css-transform-2-ref.html
|
||||
# skipped - bug 1380830
|
||||
fuzzy-if(asyncPan&&!layersGPUAccelerated,102,1764) skip test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == container-with-clamping.html container-with-clamping-ref.html
|
||||
test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) skip-if(styloVsGecko) load video-1.html
|
||||
test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) load video-1.html
|
||||
test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == intrinsic-min-1.html intrinsic-min-1-ref.html
|
||||
test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == intrinsic-max-1.html intrinsic-max-1-ref.html
|
||||
test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == intrinsic-fit-1a.html intrinsic-fit-1a-ref.html
|
||||
|
@ -1,4 +1,4 @@
|
||||
== legend.html legend-ref.html
|
||||
#bug 1418002 fuzzy-if(skiaContent,1,7) pref(dom.webcomponents.shadowdom.enabled,true) == shadow-dom.html shadow-dom-ref.html
|
||||
== 1273433.html 1273433-ref.html
|
||||
fails-if(styloVsGecko||stylo) == 1339287.html 1339287-ref.html
|
||||
fails == 1339287.html 1339287-ref.html # bug 1383868
|
||||
|
@ -5,7 +5,7 @@ random == bug-364968.html bug-364968-ref.html
|
||||
== mozsetimageelement-02.html about:blank
|
||||
== image-outside-document-invalidate.html about:blank
|
||||
== canvas-outside-document-invalidate-01.html about:blank
|
||||
fails-if(azureSkia) fails-if(cocoaWidget) skip-if(styloVsGecko) == canvas-outside-document-invalidate-02.html about:blank # See bug 666800
|
||||
fails-if(azureSkia) fails-if(cocoaWidget) == canvas-outside-document-invalidate-02.html about:blank # See bug 666800
|
||||
#fails with Skia due to Skia bug http://code.google.com/p/skia/issues/detail?id=568
|
||||
== element-paint-simple.html element-paint-simple-ref.html
|
||||
== element-paint-repeated.html element-paint-repeated-ref.html
|
||||
|
@ -3,10 +3,10 @@ fuzzy-if(cocoaWidget,2,6) random-if(Android) == component-alpha-exit-1.html comp
|
||||
fuzzy-if(cocoaWidget,2,6) random-if(Android) == component-alpha-enter-1.html component-alpha-enter-1-ref.html
|
||||
|
||||
!= pull-background-1.html about:blank
|
||||
skip-if(styloVsGecko) != pull-background-2.html about:blank # skip styloVsGecko for imperceptible pixel rounding differences between Stylo and Gecko
|
||||
!= pull-background-2.html about:blank
|
||||
!= pull-background-3.html about:blank
|
||||
!= pull-background-4.html about:blank
|
||||
fuzzy-if(styloVsGecko,1,1) != pull-background-5.html about:blank
|
||||
!= pull-background-5.html about:blank
|
||||
!= pull-background-6.html about:blank
|
||||
|
||||
# The animated-position tests are disabled for intermittent failures / passes, bug 1150941
|
||||
@ -17,10 +17,10 @@ skip != pull-background-animated-position-4.html about:blank # Fails because Pai
|
||||
skip != pull-background-animated-position-5.html about:blank # Fails because ownLayer bounds don't anticipate changes of animated contents, but doesn't fail with event regions
|
||||
|
||||
skip-if(!asyncPan) != pull-background-displayport-1.html about:blank
|
||||
skip-if(!asyncPan) skip-if(styloVsGecko) != pull-background-displayport-2.html about:blank # skip styloVsGecko for imperceptible pixel rounding differences between Stylo and Gecko
|
||||
skip-if(!asyncPan) != pull-background-displayport-2.html about:blank
|
||||
skip-if(!asyncPan) != pull-background-displayport-3.html about:blank # fails with non-overlay scrollbars and event regions due to bug 1148515
|
||||
skip-if(!asyncPan) != pull-background-displayport-4.html about:blank # fails with non-overlay scrollbars and event regions due to bug 1148515
|
||||
skip-if(!asyncPan) fuzzy-if(styloVsGecko,1,1) != pull-background-displayport-5.html about:blank
|
||||
skip-if(!asyncPan) != pull-background-displayport-5.html about:blank
|
||||
skip-if(!asyncPan) != pull-background-displayport-6.html about:blank # fails with non-overlay scrollbars and event regions due to bug 1148515
|
||||
|
||||
fuzzy(2,30150) == opacity-blending.html opacity-blending-ref.html
|
||||
|
@ -367,7 +367,7 @@ fuzzy-if(OSX,1,100) fuzzy-if(skiaContent,1,14) == mfrac-D-1.html mfrac-D-1-ref.h
|
||||
== mfrac-D-3.html mfrac-D-3-ref.html
|
||||
== mfrac-D-4.html mfrac-D-4-ref.html
|
||||
== mfrac-E-1.html mfrac-E-1-ref.html
|
||||
test-pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == shadow-dom-1.html shadow-dom-1-ref.html
|
||||
test-pref(dom.webcomponents.shadowdom.enabled,true) == shadow-dom-1.html shadow-dom-1-ref.html
|
||||
pref(dom.meta-viewport.enabled,true) pref(font.size.inflation.emPerLine,25) == font-inflation-1.html font-inflation-1-ref.html
|
||||
test-pref(font.minimum-size.x-math,40) == default-font.html default-font-ref.html
|
||||
!= radicalbar-1.html about:blank
|
||||
|
@ -39,7 +39,7 @@ skip-if(!winWidget) != 403458-winmenu-ltr.xul 403458-winmenu-rtl.xul
|
||||
== 492155-1.html about:blank
|
||||
== 492155-2.html about:blank
|
||||
== 492155-3.html about:blank
|
||||
fails-if(Android&&!asyncPan) fuzzy-if(styloVsGecko,0-1,0-1) != 492155-4.html about:blank
|
||||
fails-if(Android&&!asyncPan) != 492155-4.html about:blank
|
||||
|
||||
!= box-shadow-input.html box-shadow-input-ref.html
|
||||
!= box-shadow-button.html box-shadow-button-ref.html
|
||||
|
@ -179,5 +179,5 @@ fuzzy-if(skiaContent,1,145) == rounded-background-color-width-left-6.html rounde
|
||||
|
||||
== iframe-1.html iframe-1-ref.html
|
||||
|
||||
fuzzy-if(stylo||styloVsGecko,128,220) == viewport-units-rounding-1.html viewport-units-rounding-1-ref.html
|
||||
fuzzy(128,220) == viewport-units-rounding-1.html viewport-units-rounding-1-ref.html
|
||||
== viewport-units-rounding-2.html about:blank
|
||||
|
@ -111,8 +111,8 @@ require-or(true&&true,fails) script scripttest-pass.html
|
||||
|
||||
# tests for pref(...) syntax in manifest, including "fails" examples with incorrect prefs
|
||||
# a boolean pref
|
||||
pref(gfx.downloadable_fonts.enabled,true) skip-if(styloVsGecko) != font-download.html font-default.html
|
||||
pref(gfx.downloadable_fonts.enabled,false) skip-if(styloVsGecko) == font-download.html font-default.html
|
||||
pref(gfx.downloadable_fonts.enabled,true) != font-download.html font-default.html
|
||||
pref(gfx.downloadable_fonts.enabled,false) == font-download.html font-default.html
|
||||
fails pref(gfx.downloadable_fonts.enabled,0) == font-download.html font-default.html
|
||||
fails pref(gfx.downloadable_fonts.enabled,"foo") == font-download.html font-default.html
|
||||
# a non-existent pref
|
||||
@ -132,10 +132,10 @@ pref(font.default.x-western,"sans-serif") != font-serif.html font-default.html
|
||||
fails pref(font.default.x-western,true) == font-serif.html font-default.html
|
||||
fails pref(font.default.x-western,0) == font-serif.html font-default.html
|
||||
# tests for ref-pref, and test-pref
|
||||
ref-pref(font.size.variable.x-western,16) skip-if(styloVsGecko) == font-size-16.html font-default.html
|
||||
ref-pref(font.size.variable.x-western,16) skip-if(styloVsGecko) != font-size-24.html font-default.html
|
||||
ref-pref(font.size.variable.x-western,24) skip-if(styloVsGecko) == font-size-24.html font-default.html
|
||||
ref-pref(font.size.variable.x-western,24) skip-if(styloVsGecko) != font-size-16.html font-default.html
|
||||
ref-pref(font.size.variable.x-western,16) == font-size-16.html font-default.html
|
||||
ref-pref(font.size.variable.x-western,16) != font-size-24.html font-default.html
|
||||
ref-pref(font.size.variable.x-western,24) == font-size-24.html font-default.html
|
||||
ref-pref(font.size.variable.x-western,24) != font-size-16.html font-default.html
|
||||
fails ref-pref(font.size.variable.x-western,false) == font-size-16.html font-default.html
|
||||
fails ref-pref(font.size.variable.x-western,"foo") == font-size-16.html font-default.html
|
||||
test-pref(font.size.variable.x-western,16) == font-default.html font-size-16.html
|
||||
@ -144,9 +144,9 @@ test-pref(font.size.variable.x-western,24) == font-default.html font-size-24.htm
|
||||
test-pref(font.size.variable.x-western,24) != font-default.html font-size-16.html
|
||||
fails test-pref(font.size.variable.x-western,false) == font-default.html font-size-16.html
|
||||
fails test-pref(font.size.variable.x-western,"foo") == font-default.html font-size-16.html
|
||||
ref-pref(font.size.variable.x-western,16) test-pref(font.size.variable.x-western,24) skip-if(styloVsGecko) != font-default.html font-default.html
|
||||
ref-pref(font.size.variable.x-western,24) test-pref(font.size.variable.x-western,16) skip-if(styloVsGecko) != font-default.html font-default.html
|
||||
ref-pref(font.size.variable.x-western,24) test-pref(font.size.variable.x-western,24) skip-if(styloVsGecko) == font-default.html font-default.html
|
||||
ref-pref(font.size.variable.x-western,16) test-pref(font.size.variable.x-western,24) != font-default.html font-default.html
|
||||
ref-pref(font.size.variable.x-western,24) test-pref(font.size.variable.x-western,16) != font-default.html font-default.html
|
||||
ref-pref(font.size.variable.x-western,24) test-pref(font.size.variable.x-western,24) == font-default.html font-default.html
|
||||
|
||||
# reftest syntax: fuzzy(maxPixelDifference,maxNumberDifferingPixels)
|
||||
fuzzy(1,250000) == fuzzy.html fuzzy-ref.html
|
||||
@ -154,9 +154,9 @@ fuzzy(1,250000) != too-fuzzy.html fuzzy-ref.html
|
||||
fuzzy-if(true,1,250000) == fuzzy.html fuzzy-ref.html
|
||||
fuzzy-if(false,2,1) == fuzzy-ref.html fuzzy-ref.html
|
||||
# test some ranged fuzzes
|
||||
fuzzy(1-10,1-250000) fuzzy-if(false,5-10,250000) skip-if(styloVsGecko) == fuzzy.html fuzzy-ref.html
|
||||
fuzzy(0-0,250000) skip-if(styloVsGecko) != fuzzy.html fuzzy-ref.html
|
||||
fuzzy(1,0-2) skip-if(styloVsGecko) != fuzzy.html fuzzy-ref.html
|
||||
fuzzy(1-10,1-250000) fuzzy-if(false,5-10,250000) == fuzzy.html fuzzy-ref.html
|
||||
fuzzy(0-0,250000) != fuzzy.html fuzzy-ref.html
|
||||
fuzzy(1,0-2) != fuzzy.html fuzzy-ref.html
|
||||
# If enabled, the following two should result in UNEXPECTED-PASS because
|
||||
# they are both overfuzzed
|
||||
# fuzzy(3-4,250000) == fuzzy.html fuzzy-ref.html
|
||||
|
@ -300,7 +300,7 @@ include position-dynamic-changes/reftest.list
|
||||
|
||||
# printing
|
||||
# SkiaPDF is required for printing tests to control printing to PDF files.
|
||||
skip-if(!skiaPdf||styloVsGecko) include printing/reftest.list
|
||||
skip-if(!skiaPdf) include printing/reftest.list
|
||||
|
||||
# pagination
|
||||
include pagination/reftest.list
|
||||
|
@ -1,4 +1,4 @@
|
||||
skip-if(styloVsGecko) HTTP == deferred-anchor.xhtml#d deferred-anchor-ref.xhtml#d # bug 1354406
|
||||
HTTP == deferred-anchor.xhtml#d deferred-anchor-ref.xhtml#d
|
||||
fuzzy-if(xulRuntime.widgetToolkit=="gtk3",1,23) == deferred-anchor2.xhtml deferred-anchor-ref.xhtml#d # bug 1182632
|
||||
HTTP == fixed-1.html fixed-1.html?ref
|
||||
fuzzy-if(skiaContent,1,32200) HTTP == fixed-table-1.html fixed-table-1.html?ref
|
||||
@ -22,7 +22,7 @@ pref(layout.css.scroll-behavior.enabled,true) pref(layout.css.scroll-behavior.pr
|
||||
pref(layout.css.scroll-behavior.enabled,true) pref(layout.css.scroll-behavior.property-enabled,true) == scroll-behavior-10.html scroll-behavior-10.html?ref
|
||||
pref(layout.css.scroll-behavior.enabled,true) pref(layout.css.scroll-behavior.property-enabled,true) == scroll-behavior-textarea.html scroll-behavior-textarea.html?ref
|
||||
HTTP == simple-1.html simple-1.html?ref
|
||||
skip-if(styloVsGecko) HTTP == subpixel-1.html#d subpixel-1-ref.html#d # bug 1354406
|
||||
HTTP == subpixel-1.html#d subpixel-1-ref.html#d
|
||||
fuzzy-if(Android,4,120) HTTP == text-1.html text-1.html?ref
|
||||
fuzzy-if(Android,4,120) HTTP == text-2.html?up text-2.html?ref
|
||||
fuzzy-if(d2d,1,4) fuzzy-if(webrender,0-1,0-42) HTTP == transformed-1.html transformed-1.html?ref
|
||||
|
@ -142,7 +142,7 @@ fuzzy-if(skiaContent,1,600) == anim-feGaussianBlur-01.svg lime.svg
|
||||
fuzzy-if(Android,4,1) == anim-svg-viewBox-01.svg lime.svg
|
||||
== anim-svg-viewBox-02.svg lime.svg
|
||||
== anim-svg-viewBox-03.svg lime.svg
|
||||
skip-if(styloVsGecko) == anim-view-01.svg#view lime.svg # bug 1354406
|
||||
== anim-view-01.svg#view lime.svg
|
||||
|
||||
# animate some preserveAspectRatio attributes
|
||||
== anim-feImage-preserveAspectRatio-01.svg lime.svg
|
||||
|
@ -53,9 +53,9 @@ fuzzy-if(skiaContent,1,580) == anim-css-fill-3-from-by-rgb-ident.svg anim-css
|
||||
# clamp *final presentation values*.
|
||||
# (Reference: SVG 1.1 Appendix F.4)
|
||||
== anim-css-fill-overflow-1-by.svg anim-css-fill-overflow-1-ref.svg
|
||||
fails-if(!stylo) == anim-css-fill-overflow-1-from-by.svg anim-css-fill-overflow-1-ref.svg # bug 515919
|
||||
fails-if(!stylo) == anim-css-stopcolor-overflow-1-from-by.svg anim-css-stopcolor-overflow-1-ref.svg # bug 515919
|
||||
fails-if(!stylo) == anim-css-floodcolor-overflow-1-from-by.svg anim-css-floodcolor-overflow-1-ref.svg # bug 515919
|
||||
== anim-css-fill-overflow-1-from-by.svg anim-css-fill-overflow-1-ref.svg # bug 515919
|
||||
== anim-css-stopcolor-overflow-1-from-by.svg anim-css-stopcolor-overflow-1-ref.svg # bug 515919
|
||||
== anim-css-floodcolor-overflow-1-from-by.svg anim-css-floodcolor-overflow-1-ref.svg # bug 515919
|
||||
|
||||
# 'fill-opacity' property
|
||||
fuzzy-if(skiaContent,1,885) == anim-css-fillopacity-1-by.svg anim-css-fillopacity-1-ref.svg
|
||||
|
@ -26,7 +26,7 @@ fuzzy-if(Android,255,30) == clipPath-html-06-extref.xhtml clipPath-html-06-ref.x
|
||||
== dynamic-conditions-outer-svg-04.xhtml ../pass.svg
|
||||
== filter-html-01.xhtml filter-html-01-ref.svg
|
||||
== filter-html-dynamic-01.xhtml filter-html-dynamic-01-ref.xhtml
|
||||
random-if(Android) skip-if(styloVsGecko) == filter-html-01-extref.xhtml filter-html-01-ref.svg # Android: bug 1198380. skip styloVsGecko for imperceptible pixel rounding differences between Stylo and Gecko
|
||||
random-if(Android) == filter-html-01-extref.xhtml filter-html-01-ref.svg # Android: bug 1198380
|
||||
== filter-html-zoomed-01.xhtml filter-html-01-ref.svg
|
||||
fuzzy-if(webrender,1,125414) == mask-html-01.xhtml mask-html-01-ref.svg
|
||||
fuzzy-if(webrender,1,125414) == mask-html-01-extref-01.xhtml mask-html-01-ref.svg
|
||||
|
@ -1,11 +1,11 @@
|
||||
# these could be moved to crashtests
|
||||
!= backgr_border-table-cell.html empty.html
|
||||
fuzzy-if(styloVsGecko,5,330) != backgr_border-table-column-group.html empty.html # Bug 1386543
|
||||
!= backgr_border-table-column-group.html empty.html
|
||||
# This seems to be caused by bug 527825
|
||||
fuzzy-if(styloVsGecko,5,579) asserts-if(gtkWidget,0-12) != backgr_border-table-column.html empty.html # Bug 1386543
|
||||
asserts-if(gtkWidget,0-6) fuzzy-if(styloVsGecko&&(winWidget||cocoaWidget),32,88) != backgr_border-table-quirks.html empty.html
|
||||
fuzzy-if(styloVsGecko,1,168) != backgr_border-table-row-group.html empty.html # Bug 1386543
|
||||
fuzzy-if(styloVsGecko,1,204) != backgr_border-table-row.html empty.html # Bug 1386543
|
||||
asserts-if(gtkWidget,0-12) != backgr_border-table-column.html empty.html
|
||||
asserts-if(gtkWidget,0-6) != backgr_border-table-quirks.html empty.html
|
||||
!= backgr_border-table-row-group.html empty.html
|
||||
!= backgr_border-table-row.html empty.html
|
||||
!= backgr_border-table.html empty.html
|
||||
!= backgr_fixed-bg.html empty.html
|
||||
!= backgr_index.html empty.html
|
||||
|
@ -151,7 +151,7 @@ random-if(cocoaWidget) random-if(gtkWidget) == zwnj-01.xhtml zwnj-01-ref.xhtml #
|
||||
== initial-zwj-1.html initial-zwj-1-ref.html
|
||||
== cgj-01.html cgj-01-ref.html
|
||||
== 444656.html 444656-ref.html
|
||||
fails-if(cocoaWidget&&styloVsGecko) == 449555-1.html 449555-1-ref.html
|
||||
== 449555-1.html 449555-1-ref.html
|
||||
== 467722.html 467722-ref.html
|
||||
fuzzy-if(skiaContent,1,600) == 475092-sub.html 475092-ref.html
|
||||
fails-if(Android) fuzzy-if(skiaContent&&!Android,90,3100) == 475092-pos.html 475092-sub.html # bug 482596
|
||||
@ -327,7 +327,7 @@ fails-if(!cocoaWidget) != osx-font-smoothing.html osx-font-smoothing-ref.html
|
||||
fails-if(!cocoaWidget) != osx-font-smoothing-2.html osx-font-smoothing-2-notref.html
|
||||
== osx-font-smoothing-2.html osx-font-smoothing-2-ref.html
|
||||
|
||||
pref(layout.css.text-align-unsafe-value.enabled,true) fails-if(styloVsGecko||stylo) == text-align-unsafe.html text-align-unsafe-ref.html
|
||||
pref(layout.css.text-align-unsafe-value.enabled,true) fails == text-align-unsafe.html text-align-unsafe-ref.html # bug 1388949
|
||||
|
||||
# stray control chars should be visible by default, bug 1099557
|
||||
!= control-chars-01a.html control-chars-01-notref.html
|
||||
|
@ -142,8 +142,6 @@ pref(svg.transform-box.enabled,true) == transform-box-svg-3a.svg pass.svg
|
||||
# Bug 1301500
|
||||
== dynamic-add-without-change-cb-1.html dynamic-add-without-change-cb-1-ref.html
|
||||
fuzzy-if(d2d,1,5) fuzzy-if(skiaContent,26,208) == table-overflowed-by-animation.html table-overflowed-by-animation-ref.html
|
||||
# Bug 1392161. These tests are failed on Gecko (Bug 1396535). The viewport
|
||||
# length transform test is also failed on Servo backend.
|
||||
fails-if(!stylo) == translate-rounding-1.html translate-rounding-ref.html
|
||||
fails-if(!stylo) == translate-rounding-2.html translate-rounding-ref.html
|
||||
fails == translate-rounding-3.html translate-rounding-viewport-ref.html
|
||||
== translate-rounding-1.html translate-rounding-ref.html
|
||||
== translate-rounding-2.html translate-rounding-ref.html
|
||||
fails == translate-rounding-3.html translate-rounding-viewport-ref.html # bug 1397146
|
||||
|
@ -35,9 +35,6 @@ fails css-values/attr-*.html
|
||||
css-values/attr-*-invalid-fallback.html
|
||||
css-values/attr-invalid-type-???.html
|
||||
|
||||
# Bug 1256575
|
||||
fails-if(!stylo||styloVsGecko) css-values/calc-in-media-queries-???.html
|
||||
|
||||
# because of dynamic change
|
||||
skip css-values/vh_not_refreshing_on_chrome.html
|
||||
skip css-values/vh_not_refreshing_on_chrome_iframe.html
|
||||
|
@ -212,8 +212,8 @@ fails == css-values/attr-px-invalid-cast.html css-values/reference/200-200-green
|
||||
== css-values/attr-px-invalid-fallback.html css-values/reference/200-200-green.html
|
||||
fails == css-values/attr-px-valid.html css-values/reference/200-200-green.html
|
||||
== css-values/calc-in-calc.html css-values/reference/all-green.html
|
||||
fails-if(!stylo||styloVsGecko) == css-values/calc-in-media-queries-001.html css-values/reference/all-green.html
|
||||
fails-if(!stylo||styloVsGecko) == css-values/calc-in-media-queries-002.html css-values/reference/all-green.html
|
||||
== css-values/calc-in-media-queries-001.html css-values/reference/all-green.html
|
||||
== css-values/calc-in-media-queries-002.html css-values/reference/all-green.html
|
||||
== css-values/calc-invalid-range-clamping.html css-values/reference/200-200-green.html
|
||||
== css-values/calc-parenthesis-stack.html css-values/reference/all-green.html
|
||||
fuzzy-if(OSX||Android,78,197) == css-values/ch-unit-001.html css-values/reference/ch-unit-001-ref.html
|
||||
|
@ -6,11 +6,9 @@
|
||||
== perspective-zero-2.html perspective-zero-2-ref.html
|
||||
|
||||
default-preferences pref(layout.css.individual-transform.enabled,true)
|
||||
# stylo-vs-gecko comparison fails since we support individual transform on new
|
||||
# style system only.
|
||||
fails-if(!stylo||styloVsGecko) == individual-transform-1.html individual-transform-1-ref.html
|
||||
fails-if(!stylo||styloVsGecko) == individual-transform-2a.html individual-transform-2-ref.html
|
||||
fails-if(!stylo||styloVsGecko) == individual-transform-2b.html individual-transform-2-ref.html
|
||||
fails-if(!stylo||styloVsGecko) == individual-transform-2c.html individual-transform-2-ref.html
|
||||
fails-if(!stylo||styloVsGecko) == individual-transform-2d.html individual-transform-2-ref.html
|
||||
fails-if(!stylo||styloVsGecko) == individual-transform-2e.html individual-transform-2-ref.html
|
||||
== individual-transform-1.html individual-transform-1-ref.html
|
||||
== individual-transform-2a.html individual-transform-2-ref.html
|
||||
== individual-transform-2b.html individual-transform-2-ref.html
|
||||
== individual-transform-2c.html individual-transform-2-ref.html
|
||||
== individual-transform-2d.html individual-transform-2-ref.html
|
||||
== individual-transform-2e.html individual-transform-2-ref.html
|
||||
|
@ -1,23 +1,23 @@
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == cross-tree-selection-1.html cross-tree-selection-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == basic-shadow-1.html basic-shadow-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == basic-shadow-2.html basic-shadow-2-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == basic-shadow-3.html basic-shadow-3-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == basic-shadow-4.html basic-shadow-4-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == fallback-content-1.html fallback-content-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == remove-insertion-point-1.html remove-insertion-point-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == nested-insertion-point-1.html nested-insertion-point-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) skip-if(!stylo||styloVsGecko) == update-dist-node-descendants-1.html update-dist-node-descendants-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) skip-if(!stylo||styloVsGecko) fuzzy-if(Android,2,7) == input-transition-1.html input-transition-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) skip-if(!stylo||styloVsGecko) == dynamic-insertion-point-distribution-1.html dynamic-insertion-point-distribution-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) skip-if(!stylo||styloVsGecko) == dynamic-insertion-point-distribution-2.html dynamic-insertion-point-distribution-2-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == remove-append-shadow-host-1.html remove-append-shadow-host-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == reframe-shadow-child-1.html reframe-shadow-child-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == reframe-shadow-child-2.html reframe-shadow-child-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == style-sharing.html style-sharing-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) skip-if(!stylo||styloVsGecko) == style-sharing-across-shadow.html style-sharing-ref.html # bug 1412400
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == cross-tree-selection-1.html cross-tree-selection-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == basic-shadow-1.html basic-shadow-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == basic-shadow-2.html basic-shadow-2-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == basic-shadow-3.html basic-shadow-3-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == basic-shadow-4.html basic-shadow-4-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == fallback-content-1.html fallback-content-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == remove-insertion-point-1.html remove-insertion-point-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == nested-insertion-point-1.html nested-insertion-point-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == update-dist-node-descendants-1.html update-dist-node-descendants-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fuzzy-if(Android,2,7) == input-transition-1.html input-transition-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == dynamic-insertion-point-distribution-1.html dynamic-insertion-point-distribution-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == dynamic-insertion-point-distribution-2.html dynamic-insertion-point-distribution-2-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == remove-append-shadow-host-1.html remove-append-shadow-host-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == reframe-shadow-child-1.html reframe-shadow-child-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == reframe-shadow-child-2.html reframe-shadow-child-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == style-sharing.html style-sharing-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == style-sharing-across-shadow.html style-sharing-ref.html # bug 1412400
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == basic-slot-1.html basic-slot-1-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == basic-slot-2.html basic-slot-2-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == basic-slot-3.html basic-slot-3-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == basic-slot-4.html basic-slot-3-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == basic-slot-5.html basic-slot-5-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) fails-if(!stylo||styloVsGecko) == basic-slot-6.html basic-slot-6-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == basic-slot-3.html basic-slot-3-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == basic-slot-4.html basic-slot-3-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == basic-slot-5.html basic-slot-5-ref.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) == basic-slot-6.html basic-slot-6-ref.html
|
||||
|
@ -266,7 +266,7 @@ load 1415663.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) load 1415353.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) load 1415021.html
|
||||
load 1418059.html
|
||||
skip-if(!stylo) test-pref(dom.animations-api.core.enabled,true) load 1418867.html
|
||||
test-pref(dom.animations-api.core.enabled,true) load 1418867.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) load 1419554.html
|
||||
load 1426312.html
|
||||
load 1439793.html
|
||||
|
@ -166,7 +166,6 @@ support-files = file_bug1375944.html Ahem.ttf
|
||||
[test_bug1382568.html]
|
||||
support-files = bug1382568-iframe.html
|
||||
[test_bug1394302.html]
|
||||
skip-if = !stylo # This is a stylo test; gecko isn't deterministic here
|
||||
[test_bug1443344-1.html]
|
||||
scheme = https
|
||||
support-files = file_bug1443344.css
|
||||
@ -186,7 +185,6 @@ skip-if = toolkit == 'android'
|
||||
[test_computed_style_in_created_document.html]
|
||||
[test_computed_style_min_size_auto.html]
|
||||
[test_computed_style_no_flush.html]
|
||||
skip-if = !stylo # gecko will fail without some hack, see bug 1401857
|
||||
[test_computed_style_no_pseudo.html]
|
||||
[test_computed_style_prefs.html]
|
||||
[test_condition_text.html]
|
||||
@ -206,7 +204,6 @@ skip-if = toolkit == 'android' #bug 536603
|
||||
[test_css_supports.html]
|
||||
[test_css_supports_variables.html]
|
||||
[test_custom_content_inheritance.html]
|
||||
skip-if = !stylo # Gecko fails this and messes up inheritance
|
||||
[test_default_bidi_css.html]
|
||||
[test_default_computed_style.html]
|
||||
[test_descriptor_storage.html]
|
||||
@ -248,7 +245,6 @@ skip-if = toolkit == 'android'
|
||||
skip-if = toolkit == 'android'
|
||||
[test_initial_storage.html]
|
||||
[test_invalidation_basic.html]
|
||||
skip-if = !stylo
|
||||
[test_keyframes_rules.html]
|
||||
[test_keyframes_vendor_prefix.html]
|
||||
[test_load_events_on_stylesheets.html]
|
||||
@ -309,7 +305,6 @@ support-files = file_specified_value_serialization_individual_transforms.html
|
||||
[test_style_attribute_standards.html]
|
||||
[test_style_struct_copy_constructors.html]
|
||||
[test_stylesheet_additions.html]
|
||||
skip-if = !stylo
|
||||
[test_stylesheet_clone_font_face.html]
|
||||
[test_supports_rules.html]
|
||||
[test_system_font_serialization.html]
|
||||
|
@ -70,7 +70,6 @@ for (let [key, val] of Object.entries({
|
||||
contentGfxInfo: null,
|
||||
focusFilterMode: "all",
|
||||
compareRetainedDisplayLists: false,
|
||||
compareStyloToGecko: false,
|
||||
|
||||
browser: undefined,
|
||||
// Are we testing web content loaded in a separate process?
|
||||
|
@ -68,10 +68,6 @@ function ReadManifest(aURL, aFilter)
|
||||
AddRetainedDisplayListTestPrefs(sandbox, defaultTestPrefSettings,
|
||||
defaultRefPrefSettings);
|
||||
}
|
||||
if (g.compareStyloToGecko) {
|
||||
AddStyloTestPrefs(sandbox, defaultTestPrefSettings,
|
||||
defaultRefPrefSettings);
|
||||
}
|
||||
for (var str of lines) {
|
||||
++lineNo;
|
||||
if (str.charAt(0) == "#")
|
||||
@ -110,10 +106,6 @@ function ReadManifest(aURL, aFilter)
|
||||
AddRetainedDisplayListTestPrefs(sandbox, defaultTestPrefSettings,
|
||||
defaultRefPrefSettings);
|
||||
}
|
||||
if (g.compareStyloToGecko) {
|
||||
AddStyloTestPrefs(sandbox, defaultTestPrefSettings,
|
||||
defaultRefPrefSettings);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -327,7 +319,7 @@ function ReadManifest(aURL, aFilter)
|
||||
}
|
||||
|
||||
var type = items[0];
|
||||
if (g.compareStyloToGecko || g.compareRetainedDisplayLists) {
|
||||
if (g.compareRetainedDisplayLists) {
|
||||
type = TYPE_REFTEST_EQUAL;
|
||||
|
||||
// We expect twice as many assertion failures when running in
|
||||
@ -501,11 +493,9 @@ sandbox.compareRetainedDisplayLists = g.compareRetainedDisplayLists;
|
||||
} else {
|
||||
styloEnabled = prefs.getBoolPref("layout.css.servo.enabled", false);
|
||||
}
|
||||
sandbox.stylo = styloEnabled && !g.compareStyloToGecko;
|
||||
sandbox.styloVsGecko = g.compareStyloToGecko;
|
||||
sandbox.stylo = styloEnabled;
|
||||
#else
|
||||
sandbox.stylo = false;
|
||||
sandbox.styloVsGecko = false;
|
||||
#endif
|
||||
|
||||
sandbox.skiaPdf = false;
|
||||
@ -583,13 +573,6 @@ function AddRetainedDisplayListTestPrefs(aSandbox, aTestPrefSettings,
|
||||
aTestPrefSettings, aRefPrefSettings);
|
||||
}
|
||||
|
||||
function AddStyloTestPrefs(aSandbox, aTestPrefSettings, aRefPrefSettings) {
|
||||
AddPrefSettings("test-", "layout.css.servo.enabled", "true", aSandbox,
|
||||
aTestPrefSettings, aRefPrefSettings);
|
||||
AddPrefSettings("ref-", "layout.css.servo.enabled", "false", aSandbox,
|
||||
aTestPrefSettings, aRefPrefSettings);
|
||||
}
|
||||
|
||||
function AddPrefSettings(aWhere, aPrefName, aPrefValExpression, aSandbox, aTestPrefSettings, aRefPrefSettings) {
|
||||
var prefVal = Cu.evalInSandbox("(" + aPrefValExpression + ")", aSandbox);
|
||||
var prefType;
|
||||
@ -607,8 +590,7 @@ function AddPrefSettings(aWhere, aPrefName, aPrefValExpression, aSandbox, aTestP
|
||||
type: prefType,
|
||||
value: prefVal };
|
||||
|
||||
if ((g.compareStyloToGecko && aPrefName != "layout.css.servo.enabled") ||
|
||||
(g.compareRetainedDisplayLists && aPrefName != "layout.display-list.retain")) {
|
||||
if (g.compareRetainedDisplayLists && aPrefName != "layout.display-list.retain") {
|
||||
// ref-pref() is ignored, test-pref() and pref() are added to both
|
||||
if (aWhere != "ref-") {
|
||||
aTestPrefSettings.push(setting);
|
||||
@ -690,8 +672,6 @@ function CreateUrls(test) {
|
||||
|
||||
let files = [test.url1, test.url2];
|
||||
[test.url1, test.url2] = files.map(FileToURI);
|
||||
if (test.url2 && g.compareStyloToGecko)
|
||||
test.url2 = test.url1;
|
||||
|
||||
return test;
|
||||
}
|
||||
|
@ -265,11 +265,6 @@ function InitAndStartRefTests()
|
||||
try {
|
||||
g.compareRetainedDisplayLists = prefs.getBoolPref("reftest.compareRetainedDisplayLists");
|
||||
} catch (e) {}
|
||||
#ifdef MOZ_STYLO
|
||||
try {
|
||||
g.compareStyloToGecko = prefs.getBoolPref("reftest.compareStyloToGecko");
|
||||
} catch(e) {}
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_ENABLE_SKIA_PDF
|
||||
try {
|
||||
|
@ -3590,10 +3590,29 @@ ToIPCSegment(const nsStandardURL::URLSegment& aSegment)
|
||||
}
|
||||
|
||||
inline
|
||||
nsStandardURL::URLSegment
|
||||
FromIPCSegment(const ipc::StandardURLSegment& aSegment)
|
||||
MOZ_MUST_USE bool
|
||||
FromIPCSegment(const nsACString& aSpec, const ipc::StandardURLSegment& aSegment, nsStandardURL::URLSegment& aTarget)
|
||||
{
|
||||
return nsStandardURL::URLSegment(aSegment.position(), aSegment.length());
|
||||
// This seems to be just an empty segment.
|
||||
if (aSegment.length() == -1) {
|
||||
aTarget = nsStandardURL::URLSegment();
|
||||
return true;
|
||||
}
|
||||
|
||||
// A value of -1 means an empty segment, but < -1 is undefined.
|
||||
if (NS_WARN_IF(aSegment.length() < -1)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Make sure the segment does not extend beyond the spec.
|
||||
if (NS_WARN_IF(aSegment.position() + aSegment.length() > aSpec.Length())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
aTarget.mPos = aSegment.position();
|
||||
aTarget.mLen = aSegment.length();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
@ -3660,22 +3679,37 @@ nsStandardURL::Deserialize(const URIParams& aParams)
|
||||
mPort = params.port();
|
||||
mDefaultPort = params.defaultPort();
|
||||
mSpec = params.spec();
|
||||
mScheme = FromIPCSegment(params.scheme());
|
||||
mAuthority = FromIPCSegment(params.authority());
|
||||
mUsername = FromIPCSegment(params.username());
|
||||
mPassword = FromIPCSegment(params.password());
|
||||
mHost = FromIPCSegment(params.host());
|
||||
mPath = FromIPCSegment(params.path());
|
||||
mFilepath = FromIPCSegment(params.filePath());
|
||||
mDirectory = FromIPCSegment(params.directory());
|
||||
mBasename = FromIPCSegment(params.baseName());
|
||||
mExtension = FromIPCSegment(params.extension());
|
||||
mQuery = FromIPCSegment(params.query());
|
||||
mRef = FromIPCSegment(params.ref());
|
||||
NS_ENSURE_TRUE(mSpec.Length() <= (uint32_t) net_GetURLMaxLength(), false);
|
||||
NS_ENSURE_TRUE(FromIPCSegment(mSpec, params.scheme(), mScheme), false);
|
||||
NS_ENSURE_TRUE(FromIPCSegment(mSpec, params.authority(), mAuthority), false);
|
||||
NS_ENSURE_TRUE(FromIPCSegment(mSpec, params.username(), mUsername), false);
|
||||
NS_ENSURE_TRUE(FromIPCSegment(mSpec, params.password(), mPassword), false);
|
||||
NS_ENSURE_TRUE(FromIPCSegment(mSpec, params.host(), mHost), false);
|
||||
NS_ENSURE_TRUE(FromIPCSegment(mSpec, params.path(), mPath), false);
|
||||
NS_ENSURE_TRUE(FromIPCSegment(mSpec, params.filePath(), mFilepath), false);
|
||||
NS_ENSURE_TRUE(FromIPCSegment(mSpec, params.directory(), mDirectory), false);
|
||||
NS_ENSURE_TRUE(FromIPCSegment(mSpec, params.baseName(), mBasename), false);
|
||||
NS_ENSURE_TRUE(FromIPCSegment(mSpec, params.extension(), mExtension), false);
|
||||
NS_ENSURE_TRUE(FromIPCSegment(mSpec, params.query(), mQuery), false);
|
||||
NS_ENSURE_TRUE(FromIPCSegment(mSpec, params.ref(), mRef), false);
|
||||
|
||||
mMutable = params.isMutable();
|
||||
mSupportsFileURL = params.supportsFileURL();
|
||||
|
||||
// mSpecEncoding and mDisplayHost are just caches that can be recovered as needed.
|
||||
|
||||
// Some sanity checks
|
||||
NS_ENSURE_TRUE(mScheme.mPos == 0, false);
|
||||
NS_ENSURE_TRUE(mScheme.mLen > 0, false);
|
||||
// Make sure scheme is followed by :// (3 characters)
|
||||
NS_ENSURE_TRUE(mScheme.mLen < INT32_MAX - 3, false); // avoid overflow
|
||||
NS_ENSURE_TRUE(mSpec.Length() >= (uint32_t) mScheme.mLen + 3, false);
|
||||
NS_ENSURE_TRUE(nsDependentCSubstring(mSpec, mScheme.mLen, 3).EqualsLiteral("://"), false);
|
||||
NS_ENSURE_TRUE(mPath.mLen != -1 && mSpec.CharAt(mPath.mPos) == '/', false);
|
||||
NS_ENSURE_TRUE(mPath.mPos == mFilepath.mPos, false);
|
||||
NS_ENSURE_TRUE(mQuery.mLen == -1 || mSpec.CharAt(mQuery.mPos - 1) == '?', false);
|
||||
NS_ENSURE_TRUE(mRef.mLen == -1 || mSpec.CharAt(mRef.mPos - 1) == '#', false);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -217,6 +217,7 @@ HttpBaseChannel::HttpBaseChannel()
|
||||
, mRequireCORSPreflight(false)
|
||||
, mReportCollector(new ConsoleReportCollector())
|
||||
, mAltDataLength(0)
|
||||
, mAltDataForChild(false)
|
||||
, mForceMainDocumentChannel(false)
|
||||
, mIsTrackingResource(false)
|
||||
, mLastRedirectFlags(0)
|
||||
@ -3689,6 +3690,8 @@ HttpBaseChannel::SetupReplacementChannel(nsIURI *newURI,
|
||||
// Preserve Integrity metadata.
|
||||
rv = httpInternal->SetIntegrityMetadata(mIntegrityMetadata);
|
||||
MOZ_ASSERT(NS_SUCCEEDED(rv));
|
||||
|
||||
httpInternal->SetAltDataForChild(mAltDataForChild);
|
||||
}
|
||||
|
||||
// transfer application cache information
|
||||
@ -4438,6 +4441,12 @@ HttpBaseChannel::SetCorsPreflightParameters(const nsTArray<nsCString>& aUnsafeHe
|
||||
mUnsafeHeaders = aUnsafeHeaders;
|
||||
}
|
||||
|
||||
void
|
||||
HttpBaseChannel::SetAltDataForChild(bool aIsForChild)
|
||||
{
|
||||
mAltDataForChild = aIsForChild;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
HttpBaseChannel::GetBlockAuthPrompt(bool* aValue)
|
||||
{
|
||||
|
@ -263,6 +263,7 @@ public:
|
||||
NS_IMETHOD SetTopWindowURIIfUnknown(nsIURI *aTopWindowURI) override;
|
||||
NS_IMETHOD GetProxyURI(nsIURI **proxyURI) override;
|
||||
virtual void SetCorsPreflightParameters(const nsTArray<nsCString>& unsafeHeaders) override;
|
||||
virtual void SetAltDataForChild(bool aIsForChild) override;
|
||||
NS_IMETHOD GetConnectionInfoHashKey(nsACString& aConnectionInfoHashKey) override;
|
||||
NS_IMETHOD GetIntegrityMetadata(nsAString& aIntegrityMetadata) override;
|
||||
NS_IMETHOD SetIntegrityMetadata(const nsAString& aIntegrityMetadata) override;
|
||||
@ -704,6 +705,9 @@ protected:
|
||||
// Holds the name of the alternative data type the channel returned.
|
||||
nsCString mAvailableCachedAltDataType;
|
||||
int64_t mAltDataLength;
|
||||
// This flag will be true if the consumer is requesting alt-data AND the
|
||||
// consumer is in the child process.
|
||||
bool mAltDataForChild;
|
||||
|
||||
bool mForceMainDocumentChannel;
|
||||
Atomic<bool, ReleaseAcquire> mIsTrackingResource;
|
||||
|
@ -699,8 +699,14 @@ HttpChannelParent::DoAsyncOpen( const URIParams& aURI,
|
||||
cacheChannel->PreferAlternativeDataType(aPreferredAlternativeType);
|
||||
|
||||
cacheChannel->SetAllowStaleCacheContent(aAllowStaleCacheContent);
|
||||
|
||||
// This is to mark that the results are going to the content process.
|
||||
if (httpChannelImpl) {
|
||||
httpChannelImpl->SetAltDataForChild(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
httpChannel->SetContentType(aContentTypeHint);
|
||||
|
||||
if (priority != nsISupportsPriority::PRIORITY_NORMAL) {
|
||||
@ -2276,7 +2282,11 @@ HttpChannelParent::OpenAlternativeOutputStream(const nsACString & type, nsIOutpu
|
||||
if (!mCacheEntry) {
|
||||
return NS_ERROR_NOT_AVAILABLE;
|
||||
}
|
||||
return mCacheEntry->OpenAlternativeOutputStream(type, _retval);
|
||||
nsresult rv = mCacheEntry->OpenAlternativeOutputStream(type, _retval);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
mCacheEntry->SetMetaDataElement("alt-data-from-child", "1");
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
@ -4788,7 +4788,16 @@ nsHttpChannel::OpenCacheInputStream(nsICacheEntry* cacheEntry, bool startBufferi
|
||||
|
||||
// If an alternate representation was requested, try to open the alt
|
||||
// input stream.
|
||||
if (!mPreferredCachedAltDataType.IsEmpty()) {
|
||||
// If the entry has a "is-from-child" metadata, then only open the altdata stream if the consumer is also from child.
|
||||
bool altDataFromChild = false;
|
||||
{
|
||||
nsCString value;
|
||||
rv = cacheEntry->GetMetaDataElement("alt-data-from-child",
|
||||
getter_Copies(value));
|
||||
altDataFromChild = !value.IsEmpty();
|
||||
}
|
||||
|
||||
if (!mPreferredCachedAltDataType.IsEmpty() && (altDataFromChild == mAltDataForChild)) {
|
||||
rv = cacheEntry->OpenAlternativeInputStream(mPreferredCachedAltDataType,
|
||||
getter_AddRefs(stream));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
@ -7874,7 +7883,13 @@ nsHttpChannel::OpenAlternativeOutputStream(const nsACString & type, nsIOutputStr
|
||||
if (!cacheEntry) {
|
||||
return NS_ERROR_NOT_AVAILABLE;
|
||||
}
|
||||
return cacheEntry->OpenAlternativeOutputStream(type, _retval);
|
||||
nsresult rv = cacheEntry->OpenAlternativeOutputStream(type, _retval);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
// Clear this metadata flag in case it exists.
|
||||
// The caller of this method may set it again.
|
||||
cacheEntry->SetMetaDataElement("alt-data-from-child", nullptr);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@ -302,6 +302,9 @@ interface nsIHttpChannelInternal : nsISupports
|
||||
[noscript, notxpcom, nostdcall]
|
||||
void setCorsPreflightParameters(in StringArrayRef unsafeHeaders);
|
||||
|
||||
[noscript, notxpcom, nostdcall]
|
||||
void setAltDataForChild(in boolean aIsForChild);
|
||||
|
||||
/**
|
||||
* When set to true, the channel will not pop any authentication prompts up
|
||||
* to the user. When provided or cached credentials lead to an
|
||||
|
@ -1119,6 +1119,12 @@ nsViewSourceChannel::SetCorsPreflightParameters(const nsTArray<nsCString>& aUnsa
|
||||
mHttpChannelInternal->SetCorsPreflightParameters(aUnsafeHeaders);
|
||||
}
|
||||
|
||||
void
|
||||
nsViewSourceChannel::SetAltDataForChild(bool aIsForChild)
|
||||
{
|
||||
mHttpChannelInternal->SetAltDataForChild(aIsForChild);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsViewSourceChannel::LogBlockedCORSRequest(const nsAString& aMessage)
|
||||
{
|
||||
|
141
netwerk/test/unit/test_alt-data_cross_process.js
Normal file
141
netwerk/test/unit/test_alt-data_cross_process.js
Normal file
@ -0,0 +1,141 @@
|
||||
/**
|
||||
* Test for the "alternative data stream" stored withing a cache entry.
|
||||
*
|
||||
* - we load a URL with preference for an alt data (check what we get is the raw data,
|
||||
* since there was nothing previously cached)
|
||||
* - we store the alt data along the channel (to the cache entry)
|
||||
* - we flush the HTTP cache
|
||||
* - we reload the same URL using a new channel, again prefering the alt data be loaded
|
||||
* - this time the alt data must arive
|
||||
*/
|
||||
|
||||
ChromeUtils.import("resource://testing-common/httpd.js");
|
||||
ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
|
||||
ChromeUtils.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "URL", function() {
|
||||
return "http://localhost:" + httpServer.identity.primaryPort + "/content";
|
||||
});
|
||||
|
||||
var httpServer = null;
|
||||
|
||||
function make_channel(url, callback, ctx) {
|
||||
return NetUtil.newChannel({uri: url, loadUsingSystemPrincipal: true});
|
||||
}
|
||||
|
||||
function inChildProcess() {
|
||||
return Cc["@mozilla.org/xre/app-info;1"]
|
||||
.getService(Ci.nsIXULRuntime)
|
||||
.processType != Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT;
|
||||
}
|
||||
|
||||
const responseContent = "response body";
|
||||
const responseContent2 = "response body 2";
|
||||
const altContent = "!@#$%^&*()";
|
||||
const altContentType = "text/binary";
|
||||
|
||||
var servedNotModified = false;
|
||||
var shouldPassRevalidation = true;
|
||||
|
||||
var cache_storage = null;
|
||||
|
||||
function contentHandler(metadata, response)
|
||||
{
|
||||
response.setHeader("Content-Type", "text/plain");
|
||||
response.setHeader("Cache-Control", "no-cache");
|
||||
response.setHeader("ETag", "test-etag1");
|
||||
|
||||
try {
|
||||
var etag = metadata.getHeader("If-None-Match");
|
||||
} catch(ex) {
|
||||
var etag = "";
|
||||
}
|
||||
|
||||
if (etag == "test-etag1" && shouldPassRevalidation) {
|
||||
response.setStatusLine(metadata.httpVersion, 304, "Not Modified");
|
||||
servedNotModified = true;
|
||||
} else {
|
||||
var content = shouldPassRevalidation ? responseContent : responseContent2;
|
||||
response.bodyOutputStream.write(content, content.length);
|
||||
}
|
||||
}
|
||||
|
||||
function check_has_alt_data_in_index(aHasAltData)
|
||||
{
|
||||
if (inChildProcess()) {
|
||||
return;
|
||||
}
|
||||
var hasAltData = {};
|
||||
cache_storage.getCacheIndexEntryAttrs(createURI(URL), "", hasAltData, {});
|
||||
Assert.equal(hasAltData.value, aHasAltData);
|
||||
}
|
||||
|
||||
function run_test()
|
||||
{
|
||||
httpServer = new HttpServer();
|
||||
httpServer.registerPathHandler("/content", contentHandler);
|
||||
httpServer.start(-1);
|
||||
do_test_pending();
|
||||
|
||||
asyncOpen();
|
||||
}
|
||||
|
||||
function asyncOpen()
|
||||
{
|
||||
var chan = make_channel(URL);
|
||||
|
||||
var cc = chan.QueryInterface(Ci.nsICacheInfoChannel);
|
||||
cc.preferAlternativeDataType(altContentType);
|
||||
|
||||
chan.asyncOpen2(new ChannelListener(readServerContent, null));
|
||||
}
|
||||
|
||||
function readServerContent(request, buffer)
|
||||
{
|
||||
var cc = request.QueryInterface(Ci.nsICacheInfoChannel);
|
||||
|
||||
Assert.equal(buffer, responseContent);
|
||||
Assert.equal(cc.alternativeDataType, "");
|
||||
check_has_alt_data_in_index(false);
|
||||
|
||||
executeSoon(() => {
|
||||
var os = cc.openAlternativeOutputStream(altContentType);
|
||||
os.write(altContent, altContent.length);
|
||||
os.close();
|
||||
|
||||
executeSoon(flushAndOpenAltChannel);
|
||||
});
|
||||
}
|
||||
|
||||
function flushAndOpenAltChannel()
|
||||
{
|
||||
// We need to do a GC pass to ensure the cache entry has been freed.
|
||||
gc();
|
||||
do_send_remote_message('flush');
|
||||
do_await_remote_message('flushed').then(() => {
|
||||
openAltChannel();
|
||||
});
|
||||
}
|
||||
|
||||
function openAltChannel() {
|
||||
var chan = make_channel(URL);
|
||||
var cc = chan.QueryInterface(Ci.nsICacheInfoChannel);
|
||||
cc.preferAlternativeDataType(altContentType);
|
||||
|
||||
chan.asyncOpen2(new ChannelListener(readAltContent, null));
|
||||
}
|
||||
|
||||
function readAltContent(request, buffer)
|
||||
{
|
||||
var cc = request.QueryInterface(Ci.nsICacheInfoChannel);
|
||||
|
||||
Assert.equal(servedNotModified, true);
|
||||
Assert.equal(cc.alternativeDataType, altContentType);
|
||||
Assert.equal(buffer, altContent);
|
||||
|
||||
// FINISH
|
||||
do_send_remote_message('done');
|
||||
do_await_remote_message('finish').then(() => {
|
||||
httpServer.stop(do_test_finished);
|
||||
});
|
||||
}
|
@ -20,6 +20,7 @@ support-files =
|
||||
test_link.desktop
|
||||
test_link.url
|
||||
../../dns/effective_tld_names.dat
|
||||
test_alt-data_cross_process.js
|
||||
|
||||
[test_network_activity.js]
|
||||
[test_nsIBufferedOutputStream_writeFrom_block.js]
|
||||
|
81
netwerk/test/unit_ipc/test_alt-data_cross_process_wrap.js
Normal file
81
netwerk/test/unit_ipc/test_alt-data_cross_process_wrap.js
Normal file
@ -0,0 +1,81 @@
|
||||
ChromeUtils.import("resource://gre/modules/Services.jsm");
|
||||
ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
|
||||
|
||||
// needs to be rooted
|
||||
var cacheFlushObserver = { observe: function() {
|
||||
cacheFlushObserver = null;
|
||||
do_send_remote_message('flushed');
|
||||
}};
|
||||
|
||||
// We get this from the child a bit later
|
||||
var URL = null;
|
||||
|
||||
// needs to be rooted
|
||||
var cacheFlushObserver2 = { observe: function() {
|
||||
cacheFlushObserver2 = null;
|
||||
openAltChannel();
|
||||
}};
|
||||
|
||||
function run_test() {
|
||||
do_get_profile();
|
||||
do_await_remote_message('flush').then(() => {
|
||||
Services.cache2.QueryInterface(Ci.nsICacheTesting).flush(cacheFlushObserver);
|
||||
});
|
||||
|
||||
do_await_remote_message('done').then(() => { sendCommand("URL;", load_channel); });
|
||||
|
||||
run_test_in_child("../unit/test_alt-data_cross_process.js");
|
||||
}
|
||||
|
||||
function load_channel(url) {
|
||||
ok(url);
|
||||
URL = url; // save this to open the alt data channel later
|
||||
var chan = make_channel(url);
|
||||
var cc = chan.QueryInterface(Ci.nsICacheInfoChannel);
|
||||
cc.preferAlternativeDataType("text/binary");
|
||||
chan.asyncOpen2(new ChannelListener(readTextData, null));
|
||||
}
|
||||
|
||||
function make_channel(url, callback, ctx) {
|
||||
return NetUtil.newChannel({uri: url, loadUsingSystemPrincipal: true});
|
||||
}
|
||||
|
||||
function readTextData(request, buffer)
|
||||
{
|
||||
var cc = request.QueryInterface(Ci.nsICacheInfoChannel);
|
||||
// Since we are in a different process from what that generated the alt-data,
|
||||
// we should receive the original data, not processed content.
|
||||
Assert.equal(cc.alternativeDataType, "");
|
||||
Assert.equal(buffer, "response body");
|
||||
|
||||
// Now let's generate some alt-data in the parent, and make sure we can get it
|
||||
var altContent = "altContentParentGenerated";
|
||||
executeSoon(() => {
|
||||
var os = cc.openAlternativeOutputStream("text/parent-binary");
|
||||
os.write(altContent, altContent.length);
|
||||
os.close();
|
||||
|
||||
executeSoon(() => {
|
||||
Services.cache2.QueryInterface(Ci.nsICacheTesting).flush(cacheFlushObserver2);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function openAltChannel() {
|
||||
var chan = make_channel(URL);
|
||||
var cc = chan.QueryInterface(Ci.nsICacheInfoChannel);
|
||||
cc.preferAlternativeDataType("text/parent-binary");
|
||||
chan.asyncOpen2(new ChannelListener(readAltData, null));
|
||||
}
|
||||
|
||||
function readAltData(request, buffer)
|
||||
{
|
||||
var cc = request.QueryInterface(Ci.nsICacheInfoChannel);
|
||||
|
||||
// This was generated in the parent, so it's OK to get it.
|
||||
Assert.equal(buffer, "altContentParentGenerated");
|
||||
Assert.equal(cc.alternativeDataType, "text/parent-binary");
|
||||
|
||||
// FINISH
|
||||
do_send_remote_message('finish');
|
||||
}
|
@ -59,6 +59,7 @@ support-files =
|
||||
!/netwerk/test/unit/test_channel_priority.js
|
||||
!/netwerk/test/unit/test_multipart_streamconv.js
|
||||
!/netwerk/test/unit/test_original_sent_received_head.js
|
||||
!/netwerk/test/unit/test_alt-data_cross_process.js
|
||||
|
||||
[test_bug528292_wrap.js]
|
||||
[test_bug248970_cookie_wrap.js]
|
||||
@ -106,3 +107,4 @@ skip-if = true
|
||||
[test_trackingProtection_annotateChannels_wrap2.js]
|
||||
[test_channel_priority_wrap.js]
|
||||
[test_multipart_streamconv_wrap.js]
|
||||
[test_alt-data_cross_process_wrap.js]
|
||||
|
@ -1 +1 @@
|
||||
fails-if(styloVsGecko) == test1.html test1-ref.html
|
||||
== test1.html test1-ref.html
|
||||
|
@ -1,2 +1,2 @@
|
||||
fails-if(styloVsGecko) == reftest1.html reftest1-ref.html
|
||||
== reftest1.html reftest1-ref.html
|
||||
include included-reftest.list
|
||||
|
@ -1 +1 @@
|
||||
fails-if(styloVsGecko) == reftest1.html reftest1-ref.html
|
||||
== reftest1.html reftest1-ref.html
|
||||
|
@ -28,6 +28,7 @@
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "mozilla/Assertions.h"
|
||||
#include "mozilla/Unused.h"
|
||||
|
||||
namespace logging {
|
||||
@ -115,6 +116,9 @@ LogMessage::LogMessage(const char* file, int line, LogSeverity severity,
|
||||
}
|
||||
|
||||
LogMessage::~LogMessage() {
|
||||
if (severity_ == LOG_FATAL) {
|
||||
MOZ_CRASH("Hit fatal chromium sandbox condition.");
|
||||
}
|
||||
}
|
||||
|
||||
SystemErrorCode GetLastSystemErrorCode() {
|
||||
|
@ -1,170 +0,0 @@
|
||||
# HG changeset patch
|
||||
# User Bob Owen <bobowencode@gmail.com>
|
||||
# Date 1486465183 0
|
||||
# Tue Feb 07 10:59:43 2017 +0000
|
||||
# Node ID 69c8c415e87bd14843e26488e9cff30e39d69750
|
||||
# Parent 945bec53811d358e3c668405bc1feb63e671782a
|
||||
Change USER_NON_ADMIN access token level from whitelist to blacklist containing Admin SIDs. r=jimm
|
||||
|
||||
Originally landed in changeset:
|
||||
https://hg.mozilla.org/mozilla-central/rev/0e6bf137521e
|
||||
|
||||
diff --git a/security/sandbox/chromium/sandbox/win/src/restricted_token.cc b/security/sandbox/chromium/sandbox/win/src/restricted_token.cc
|
||||
--- a/security/sandbox/chromium/sandbox/win/src/restricted_token.cc
|
||||
+++ b/security/sandbox/chromium/sandbox/win/src/restricted_token.cc
|
||||
@@ -254,16 +254,50 @@ DWORD RestrictedToken::AddAllSidsForDeny
|
||||
reinterpret_cast<SID*>(token_groups->Groups[i].Sid));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
+DWORD RestrictedToken::AddDenyOnlySids(const std::vector<Sid>& deny_only_sids) {
|
||||
+ DCHECK(init_);
|
||||
+ if (!init_) {
|
||||
+ return ERROR_NO_TOKEN;
|
||||
+ }
|
||||
+
|
||||
+ DWORD error;
|
||||
+ std::unique_ptr<BYTE[]> buffer =
|
||||
+ GetTokenInfo(effective_token_, TokenGroups, &error);
|
||||
+
|
||||
+ if (!buffer) {
|
||||
+ return error;
|
||||
+ }
|
||||
+
|
||||
+ TOKEN_GROUPS* token_groups = reinterpret_cast<TOKEN_GROUPS*>(buffer.get());
|
||||
+
|
||||
+ // Build the list of the deny only group SIDs
|
||||
+ for (unsigned int i = 0; i < token_groups->GroupCount ; ++i) {
|
||||
+ if ((token_groups->Groups[i].Attributes & SE_GROUP_INTEGRITY) == 0 &&
|
||||
+ (token_groups->Groups[i].Attributes & SE_GROUP_LOGON_ID) == 0) {
|
||||
+ for (unsigned int j = 0; j < deny_only_sids.size(); ++j) {
|
||||
+ if (::EqualSid(const_cast<SID*>(deny_only_sids[j].GetPSID()),
|
||||
+ token_groups->Groups[i].Sid)) {
|
||||
+ sids_for_deny_only_.push_back(
|
||||
+ reinterpret_cast<SID*>(token_groups->Groups[i].Sid));
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return ERROR_SUCCESS;
|
||||
+}
|
||||
+
|
||||
DWORD RestrictedToken::AddSidForDenyOnly(const Sid &sid) {
|
||||
DCHECK(init_);
|
||||
if (!init_)
|
||||
return ERROR_NO_TOKEN;
|
||||
|
||||
sids_for_deny_only_.push_back(sid);
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
diff --git a/security/sandbox/chromium/sandbox/win/src/restricted_token.h b/security/sandbox/chromium/sandbox/win/src/restricted_token.h
|
||||
--- a/security/sandbox/chromium/sandbox/win/src/restricted_token.h
|
||||
+++ b/security/sandbox/chromium/sandbox/win/src/restricted_token.h
|
||||
@@ -83,16 +83,27 @@ class RestrictedToken {
|
||||
// std::vector<Sid> sid_exceptions;
|
||||
// sid_exceptions.push_back(ATL::Sids::Users().GetPSID());
|
||||
// sid_exceptions.push_back(ATL::Sids::World().GetPSID());
|
||||
// restricted_token.AddAllSidsForDenyOnly(&sid_exceptions);
|
||||
// Note: A Sid marked for Deny Only in a token cannot be used to grant
|
||||
// access to any resource. It can only be used to deny access.
|
||||
DWORD AddAllSidsForDenyOnly(std::vector<Sid> *exceptions);
|
||||
|
||||
+ // Lists all sids in the token and mark them as Deny Only if present in the
|
||||
+ // deny_only_sids parameter.
|
||||
+ //
|
||||
+ // If the function succeeds, the return value is ERROR_SUCCESS. If the
|
||||
+ // function fails, the return value is the win32 error code corresponding to
|
||||
+ // the error.
|
||||
+ //
|
||||
+ // Note: A Sid marked for Deny Only in a token cannot be used to grant
|
||||
+ // access to any resource. It can only be used to deny access.
|
||||
+ DWORD AddDenyOnlySids(const std::vector<Sid>& deny_only_sids);
|
||||
+
|
||||
// Adds a user or group SID for Deny Only in the restricted token.
|
||||
// Parameter: sid is the SID to add in the Deny Only list.
|
||||
// The return value is always ERROR_SUCCESS.
|
||||
//
|
||||
// Sample Usage:
|
||||
// restricted_token.AddSidForDenyOnly(ATL::Sids::Admins().GetPSID());
|
||||
DWORD AddSidForDenyOnly(const Sid &sid);
|
||||
|
||||
diff --git a/security/sandbox/chromium/sandbox/win/src/restricted_token_utils.cc b/security/sandbox/chromium/sandbox/win/src/restricted_token_utils.cc
|
||||
--- a/security/sandbox/chromium/sandbox/win/src/restricted_token_utils.cc
|
||||
+++ b/security/sandbox/chromium/sandbox/win/src/restricted_token_utils.cc
|
||||
@@ -26,16 +26,17 @@ DWORD CreateRestrictedToken(TokenLevel s
|
||||
base::win::ScopedHandle* token) {
|
||||
RestrictedToken restricted_token;
|
||||
restricted_token.Init(NULL); // Initialized with the current process token
|
||||
if (lockdown_default_dacl)
|
||||
restricted_token.SetLockdownDefaultDacl();
|
||||
|
||||
std::vector<base::string16> privilege_exceptions;
|
||||
std::vector<Sid> sid_exceptions;
|
||||
+ std::vector<Sid> deny_only_sids;
|
||||
|
||||
bool deny_sids = true;
|
||||
bool remove_privileges = true;
|
||||
|
||||
switch (security_level) {
|
||||
case USER_UNPROTECTED: {
|
||||
deny_sids = false;
|
||||
remove_privileges = false;
|
||||
@@ -50,20 +51,26 @@ DWORD CreateRestrictedToken(TokenLevel s
|
||||
if (ERROR_SUCCESS != err_code) {
|
||||
return err_code;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case USER_NON_ADMIN: {
|
||||
- sid_exceptions.push_back(WinBuiltinUsersSid);
|
||||
- sid_exceptions.push_back(WinWorldSid);
|
||||
- sid_exceptions.push_back(WinInteractiveSid);
|
||||
- sid_exceptions.push_back(WinAuthenticatedUserSid);
|
||||
+ deny_sids = false;
|
||||
+ deny_only_sids.push_back(WinBuiltinAdministratorsSid);
|
||||
+ deny_only_sids.push_back(WinAccountAdministratorSid);
|
||||
+ deny_only_sids.push_back(WinAccountDomainAdminsSid);
|
||||
+ deny_only_sids.push_back(WinAccountCertAdminsSid);
|
||||
+ deny_only_sids.push_back(WinAccountSchemaAdminsSid);
|
||||
+ deny_only_sids.push_back(WinAccountEnterpriseAdminsSid);
|
||||
+ deny_only_sids.push_back(WinAccountPolicyAdminsSid);
|
||||
+ deny_only_sids.push_back(WinBuiltinHyperVAdminsSid);
|
||||
+ deny_only_sids.push_back(WinLocalAccountAndAdministratorSid);
|
||||
privilege_exceptions.push_back(SE_CHANGE_NOTIFY_NAME);
|
||||
break;
|
||||
}
|
||||
case USER_INTERACTIVE: {
|
||||
sid_exceptions.push_back(WinBuiltinUsersSid);
|
||||
sid_exceptions.push_back(WinWorldSid);
|
||||
sid_exceptions.push_back(WinInteractiveSid);
|
||||
sid_exceptions.push_back(WinAuthenticatedUserSid);
|
||||
@@ -116,16 +123,21 @@ DWORD CreateRestrictedToken(TokenLevel s
|
||||
}
|
||||
}
|
||||
|
||||
DWORD err_code = ERROR_SUCCESS;
|
||||
if (deny_sids) {
|
||||
err_code = restricted_token.AddAllSidsForDenyOnly(&sid_exceptions);
|
||||
if (ERROR_SUCCESS != err_code)
|
||||
return err_code;
|
||||
+ } else if (!deny_only_sids.empty()) {
|
||||
+ err_code = restricted_token.AddDenyOnlySids(deny_only_sids);
|
||||
+ if (ERROR_SUCCESS != err_code) {
|
||||
+ return err_code;
|
||||
+ }
|
||||
}
|
||||
|
||||
if (remove_privileges) {
|
||||
err_code = restricted_token.DeleteAllPrivileges(&privilege_exceptions);
|
||||
if (ERROR_SUCCESS != err_code)
|
||||
return err_code;
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
add_interception_logging.patch
|
||||
allow_rules_for_network_drive_and_non_file_devices.patch
|
||||
add_WOW64_flags_to_allowed_registry_read_flags.patch
|
||||
change_USER_NON_ADMIN_to_blacklist.patch
|
||||
consult_PermissionsService_for_file_access.patch
|
||||
allow_flash_temporary_files.patch
|
||||
use_STARTF_FORCEOFFFEEDBACK_flag.patch
|
||||
|
@ -259,40 +259,6 @@ DWORD RestrictedToken::AddAllSidsForDenyOnly(std::vector<Sid> *exceptions) {
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
DWORD RestrictedToken::AddDenyOnlySids(const std::vector<Sid>& deny_only_sids) {
|
||||
DCHECK(init_);
|
||||
if (!init_) {
|
||||
return ERROR_NO_TOKEN;
|
||||
}
|
||||
|
||||
DWORD error;
|
||||
std::unique_ptr<BYTE[]> buffer =
|
||||
GetTokenInfo(effective_token_, TokenGroups, &error);
|
||||
|
||||
if (!buffer) {
|
||||
return error;
|
||||
}
|
||||
|
||||
TOKEN_GROUPS* token_groups = reinterpret_cast<TOKEN_GROUPS*>(buffer.get());
|
||||
|
||||
// Build the list of the deny only group SIDs
|
||||
for (unsigned int i = 0; i < token_groups->GroupCount ; ++i) {
|
||||
if ((token_groups->Groups[i].Attributes & SE_GROUP_INTEGRITY) == 0 &&
|
||||
(token_groups->Groups[i].Attributes & SE_GROUP_LOGON_ID) == 0) {
|
||||
for (unsigned int j = 0; j < deny_only_sids.size(); ++j) {
|
||||
if (::EqualSid(const_cast<SID*>(deny_only_sids[j].GetPSID()),
|
||||
token_groups->Groups[i].Sid)) {
|
||||
sids_for_deny_only_.push_back(
|
||||
reinterpret_cast<SID*>(token_groups->Groups[i].Sid));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
DWORD RestrictedToken::AddSidForDenyOnly(const Sid &sid) {
|
||||
DCHECK(init_);
|
||||
if (!init_)
|
||||
|
@ -88,17 +88,6 @@ class RestrictedToken {
|
||||
// access to any resource. It can only be used to deny access.
|
||||
DWORD AddAllSidsForDenyOnly(std::vector<Sid> *exceptions);
|
||||
|
||||
// Lists all sids in the token and mark them as Deny Only if present in the
|
||||
// deny_only_sids parameter.
|
||||
//
|
||||
// If the function succeeds, the return value is ERROR_SUCCESS. If the
|
||||
// function fails, the return value is the win32 error code corresponding to
|
||||
// the error.
|
||||
//
|
||||
// Note: A Sid marked for Deny Only in a token cannot be used to grant
|
||||
// access to any resource. It can only be used to deny access.
|
||||
DWORD AddDenyOnlySids(const std::vector<Sid>& deny_only_sids);
|
||||
|
||||
// Adds a user or group SID for Deny Only in the restricted token.
|
||||
// Parameter: sid is the SID to add in the Deny Only list.
|
||||
// The return value is always ERROR_SUCCESS.
|
||||
|
@ -31,7 +31,6 @@ DWORD CreateRestrictedToken(TokenLevel security_level,
|
||||
|
||||
std::vector<base::string16> privilege_exceptions;
|
||||
std::vector<Sid> sid_exceptions;
|
||||
std::vector<Sid> deny_only_sids;
|
||||
|
||||
bool deny_sids = true;
|
||||
bool remove_privileges = true;
|
||||
@ -56,16 +55,10 @@ DWORD CreateRestrictedToken(TokenLevel security_level,
|
||||
break;
|
||||
}
|
||||
case USER_NON_ADMIN: {
|
||||
deny_sids = false;
|
||||
deny_only_sids.push_back(WinBuiltinAdministratorsSid);
|
||||
deny_only_sids.push_back(WinAccountAdministratorSid);
|
||||
deny_only_sids.push_back(WinAccountDomainAdminsSid);
|
||||
deny_only_sids.push_back(WinAccountCertAdminsSid);
|
||||
deny_only_sids.push_back(WinAccountSchemaAdminsSid);
|
||||
deny_only_sids.push_back(WinAccountEnterpriseAdminsSid);
|
||||
deny_only_sids.push_back(WinAccountPolicyAdminsSid);
|
||||
deny_only_sids.push_back(WinBuiltinHyperVAdminsSid);
|
||||
deny_only_sids.push_back(WinLocalAccountAndAdministratorSid);
|
||||
sid_exceptions.push_back(WinBuiltinUsersSid);
|
||||
sid_exceptions.push_back(WinWorldSid);
|
||||
sid_exceptions.push_back(WinInteractiveSid);
|
||||
sid_exceptions.push_back(WinAuthenticatedUserSid);
|
||||
privilege_exceptions.push_back(SE_CHANGE_NOTIFY_NAME);
|
||||
break;
|
||||
}
|
||||
@ -128,11 +121,6 @@ DWORD CreateRestrictedToken(TokenLevel security_level,
|
||||
err_code = restricted_token.AddAllSidsForDenyOnly(&sid_exceptions);
|
||||
if (ERROR_SUCCESS != err_code)
|
||||
return err_code;
|
||||
} else if (!deny_only_sids.empty()) {
|
||||
err_code = restricted_token.AddDenyOnlySids(deny_only_sids);
|
||||
if (ERROR_SUCCESS != err_code) {
|
||||
return err_code;
|
||||
}
|
||||
}
|
||||
|
||||
if (remove_privileges) {
|
||||
|
@ -170,10 +170,3 @@ reftest-no-accel:
|
||||
by-test-platform:
|
||||
windows10-64-asan.*: 3
|
||||
default: default
|
||||
|
||||
reftest-stylo:
|
||||
description: "Reftest run in Stylo vs. Gecko mode"
|
||||
suite: reftest/reftest-stylo
|
||||
treeherder-symbol: R(Rs)
|
||||
virtualization: virtual-with-gpu
|
||||
chunks: 8
|
||||
|
@ -40,7 +40,6 @@ linux64/debug:
|
||||
test-sets:
|
||||
- common-tests
|
||||
- web-platform-tests
|
||||
- reftest-stylo
|
||||
- mochitest-headless
|
||||
linux64/opt:
|
||||
build-platform: linux64/opt
|
||||
@ -48,7 +47,6 @@ linux64/opt:
|
||||
- common-tests
|
||||
- web-platform-tests
|
||||
- opt-only-tests
|
||||
- reftest-stylo
|
||||
- desktop-screenshot-capture
|
||||
- talos
|
||||
- awsy
|
||||
@ -84,26 +82,6 @@ linux64-asan/opt:
|
||||
test-sets:
|
||||
- common-tests
|
||||
|
||||
# Stylo disabled mode only runs a subset of tests.
|
||||
linux32-stylo-disabled/debug:
|
||||
build-platform: linux/debug
|
||||
test-sets:
|
||||
- stylo-disabled-tests
|
||||
linux32-stylo-disabled/opt:
|
||||
build-platform: linux/opt
|
||||
test-sets:
|
||||
- stylo-disabled-tests
|
||||
linux64-stylo-disabled/debug:
|
||||
build-platform: linux64/debug
|
||||
test-sets:
|
||||
- stylo-disabled-tests
|
||||
- devtools-tests
|
||||
linux64-stylo-disabled/opt:
|
||||
build-platform: linux64/opt
|
||||
test-sets:
|
||||
- stylo-disabled-tests
|
||||
- devtools-tests
|
||||
|
||||
# Stylo sequential runs check memory and performance when using a single thread.
|
||||
linux64-stylo-sequential/opt:
|
||||
build-platform: linux64/opt
|
||||
|
@ -83,25 +83,6 @@ awsy-stylo-sequential:
|
||||
##
|
||||
# Limited test sets for specific platforms
|
||||
|
||||
stylo-disabled-tests:
|
||||
- cppunit
|
||||
- crashtest
|
||||
- reftest
|
||||
- web-platform-tests
|
||||
- web-platform-tests-reftests
|
||||
- mochitest
|
||||
- mochitest-a11y
|
||||
- mochitest-browser-chrome
|
||||
- browser-screenshots
|
||||
- mochitest-chrome
|
||||
- mochitest-clipboard
|
||||
- mochitest-gpu
|
||||
- mochitest-media
|
||||
- mochitest-webgl
|
||||
|
||||
reftest-stylo:
|
||||
- reftest-stylo
|
||||
|
||||
linux-qr-talos:
|
||||
- talos-chrome
|
||||
- talos-dromaeojs
|
||||
|
@ -231,13 +231,13 @@ class TestTryOptionSyntax(unittest.TestCase):
|
||||
]))
|
||||
|
||||
def test_u_platforms_pretty(self):
|
||||
"""-u gtest[Ubuntu] selects the linux, linux64, linux64-asan, linux64-stylo-disabled,
|
||||
"""-u gtest[Ubuntu] selects the linux, linux64, linux64-asan
|
||||
and linux64-stylo-sequential platforms for gtest"""
|
||||
parameters = {'try_options': parse_message('try: -u gtest[Ubuntu]')}
|
||||
tos = TryOptionSyntax(parameters, graph_with_jobs, GRAPH_CONFIG)
|
||||
self.assertEqual(sorted(tos.unittests), sorted([
|
||||
{'test': 'gtest', 'platforms': ['linux32', 'linux64', 'linux64-asan',
|
||||
'linux64-stylo-disabled', 'linux64-stylo-sequential']},
|
||||
'linux64-stylo-sequential']},
|
||||
]))
|
||||
|
||||
def test_u_platforms_negated(self):
|
||||
|
@ -69,11 +69,6 @@ WINDOWS_WORKER_TYPES = {
|
||||
'virtual-with-gpu': 'aws-provisioner-v1/gecko-t-win7-32-gpu',
|
||||
'hardware': 'releng-hardware/gecko-t-win7-32-hw',
|
||||
},
|
||||
'windows7-32-stylo-disabled': {
|
||||
'virtual': 'aws-provisioner-v1/gecko-t-win7-32',
|
||||
'virtual-with-gpu': 'aws-provisioner-v1/gecko-t-win7-32-gpu',
|
||||
'hardware': 'releng-hardware/gecko-t-win7-32-hw',
|
||||
},
|
||||
'windows10-64': {
|
||||
'virtual': 'aws-provisioner-v1/gecko-t-win10-64',
|
||||
'virtual-with-gpu': 'aws-provisioner-v1/gecko-t-win10-64-gpu',
|
||||
@ -99,11 +94,6 @@ WINDOWS_WORKER_TYPES = {
|
||||
'virtual-with-gpu': 'aws-provisioner-v1/gecko-t-win10-64-gpu',
|
||||
'hardware': 'releng-hardware/gecko-t-win10-64-hw',
|
||||
},
|
||||
'windows10-64-stylo-disabled': {
|
||||
'virtual': 'aws-provisioner-v1/gecko-t-win10-64',
|
||||
'virtual-with-gpu': 'aws-provisioner-v1/gecko-t-win10-64-gpu',
|
||||
'hardware': 'releng-hardware/gecko-t-win10-64-hw',
|
||||
},
|
||||
'windows10-64-asan': {
|
||||
'virtual': 'aws-provisioner-v1/gecko-t-win10-64',
|
||||
'virtual-with-gpu': 'aws-provisioner-v1/gecko-t-win10-64-gpu',
|
||||
@ -551,18 +541,8 @@ def set_treeherder_machine_platform(config, tests):
|
||||
'android-api-16-gradle/opt': 'android-api-16-gradle/opt',
|
||||
}
|
||||
for test in tests:
|
||||
# For most desktop platforms, the above table is not used for "regular"
|
||||
# builds, so we'll always pick the test platform here.
|
||||
# On macOS though, the regular builds are in the table. This causes a
|
||||
# conflict in `verify_task_graph_symbol` once you add a new test
|
||||
# platform based on regular macOS builds, such as for Stylo.
|
||||
# Since it's unclear if the regular macOS builds can be removed from
|
||||
# the table, workaround the issue for Stylo.
|
||||
if '-stylo-disabled' in test['test-platform']:
|
||||
test['treeherder-machine-platform'] = test['test-platform']
|
||||
else:
|
||||
test['treeherder-machine-platform'] = translation.get(
|
||||
test['build-platform'], test['test-platform'])
|
||||
test['treeherder-machine-platform'] = translation.get(
|
||||
test['build-platform'], test['test-platform'])
|
||||
yield test
|
||||
|
||||
|
||||
@ -580,36 +560,26 @@ def set_tier(config, tests):
|
||||
'linux32/debug',
|
||||
'linux32-nightly/opt',
|
||||
'linux32-devedition/opt',
|
||||
'linux32-stylo-disabled/debug',
|
||||
'linux32-stylo-disabled/opt',
|
||||
'linux64/opt',
|
||||
'linux64-nightly/opt',
|
||||
'linux64/debug',
|
||||
'linux64-pgo/opt',
|
||||
'linux64-devedition/opt',
|
||||
'linux64-asan/opt',
|
||||
'linux64-stylo-disabled/debug',
|
||||
'linux64-stylo-disabled/opt',
|
||||
'windows7-32/debug',
|
||||
'windows7-32/opt',
|
||||
'windows7-32-pgo/opt',
|
||||
'windows7-32-devedition/opt',
|
||||
'windows7-32-nightly/opt',
|
||||
'windows7-32-stylo-disabled/debug',
|
||||
'windows7-32-stylo-disabled/opt',
|
||||
'windows10-64/debug',
|
||||
'windows10-64/opt',
|
||||
'windows10-64-pgo/opt',
|
||||
'windows10-64-devedition/opt',
|
||||
'windows10-64-nightly/opt',
|
||||
'windows10-64-stylo-disabled/debug',
|
||||
'windows10-64-stylo-disabled/opt',
|
||||
'macosx64/opt',
|
||||
'macosx64/debug',
|
||||
'macosx64-nightly/opt',
|
||||
'macosx64-devedition/opt',
|
||||
'macosx64-stylo-disabled/debug',
|
||||
'macosx64-stylo-disabled/opt',
|
||||
'android-4.3-arm7-api-16/opt',
|
||||
'android-4.3-arm7-api-16/debug',
|
||||
'android-4.2-x86/opt']:
|
||||
@ -889,21 +859,6 @@ def set_test_type(config, tests):
|
||||
yield test
|
||||
|
||||
|
||||
@transforms.add
|
||||
def disable_stylo(config, tests):
|
||||
"""
|
||||
Disable Stylo for all jobs on `-stylo-disabled` platforms.
|
||||
"""
|
||||
for test in tests:
|
||||
if '-stylo-disabled' not in test['test-platform']:
|
||||
yield test
|
||||
continue
|
||||
|
||||
test['mozharness'].setdefault('extra-options', []).append('--disable-stylo')
|
||||
|
||||
yield test
|
||||
|
||||
|
||||
@transforms.add
|
||||
def single_stylo_traversal_tests(config, tests):
|
||||
"""Enable single traversal for all tests on the sequential Stylo platform."""
|
||||
|
@ -98,7 +98,6 @@ UNITTEST_ALIASES = {
|
||||
'reftest-no-accel': alias_matches(r'^(plain-)?reftest-no-accel.*$'),
|
||||
'reftests': alias_matches(r'^(plain-)?reftest.*$'),
|
||||
'reftests-e10s': alias_matches(r'^(plain-)?reftest-e10s.*$'),
|
||||
'reftest-stylo': alias_matches(r'^(plain-)?reftest-stylo.*$'),
|
||||
'reftest-gpu': alias_matches(r'^(plain-)?reftest-gpu.*$'),
|
||||
'robocop': alias_prefix('robocop'),
|
||||
'web-platform-test': alias_prefix('web-platform-tests'),
|
||||
@ -126,13 +125,11 @@ UNITTEST_PLATFORM_PRETTY_NAMES = {
|
||||
'linux32',
|
||||
'linux64',
|
||||
'linux64-asan',
|
||||
'linux64-stylo-disabled',
|
||||
'linux64-stylo-sequential'
|
||||
],
|
||||
'x64': [
|
||||
'linux64',
|
||||
'linux64-asan',
|
||||
'linux64-stylo-disabled',
|
||||
'linux64-stylo-sequential'
|
||||
],
|
||||
'Android 4.3': ['android-4.3-arm7-api-16'],
|
||||
|
@ -69,8 +69,6 @@ def create_suite(name, node, data_path):
|
||||
}
|
||||
if 'STYLO_FORCE_ENABLED' in os.environ and os.environ['STYLO_FORCE_ENABLED']:
|
||||
suite['extraOptions'] = ["stylo"]
|
||||
if 'STYLO_FORCE_DISABLED' in os.environ and os.environ['STYLO_FORCE_DISABLED']:
|
||||
suite['extraOptions'] = ["stylo-disabled"]
|
||||
if 'STYLO_THREADS' in os.environ and os.environ['STYLO_THREADS'] == '1':
|
||||
suite['extraOptions'] = ["stylo-sequential"]
|
||||
update_checkpoint_paths(glob.glob(os.path.join(data_path, "memory-report*")))
|
||||
|
@ -64,14 +64,6 @@ class MachCommands(MachCommandBase):
|
||||
kwargs['perTabPause'] = 1
|
||||
kwargs['settleWaitTime'] = 1
|
||||
|
||||
if 'disable_stylo' in kwargs and kwargs['disable_stylo']:
|
||||
if 'single_stylo_traversal' in kwargs and kwargs['single_stylo_traversal']:
|
||||
print("--disable-stylo conflicts with --single-stylo-traversal")
|
||||
return 1
|
||||
if 'enable_stylo' in kwargs and kwargs['enable_stylo']:
|
||||
print("--disable-stylo conflicts with --enable-stylo")
|
||||
return 1
|
||||
|
||||
if 'single_stylo_traversal' in kwargs and kwargs['single_stylo_traversal']:
|
||||
os.environ['STYLO_THREADS'] = '1'
|
||||
else:
|
||||
@ -79,8 +71,6 @@ class MachCommands(MachCommandBase):
|
||||
|
||||
if 'enable_stylo' in kwargs and kwargs['enable_stylo']:
|
||||
os.environ['STYLO_FORCE_ENABLED'] = '1'
|
||||
if 'disable_stylo' in kwargs and kwargs['disable_stylo']:
|
||||
os.environ['STYLO_FORCE_DISABLED'] = '1'
|
||||
|
||||
if 'enable_webrender' in kwargs and kwargs['enable_webrender']:
|
||||
os.environ['MOZ_WEBRENDER'] = '1'
|
||||
@ -218,9 +208,6 @@ class MachCommands(MachCommandBase):
|
||||
@CommandArgument('--enable-stylo', group='AWSY', action='store_true',
|
||||
dest='enable_stylo', default=False,
|
||||
help='Enable Stylo.')
|
||||
@CommandArgument('--disable-stylo', group='AWSY', action='store_true',
|
||||
dest='disable_stylo', default=False,
|
||||
help='Disable Stylo.')
|
||||
@CommandArgument('--single-stylo-traversal', group='AWSY', action='store_true',
|
||||
dest='single_stylo_traversal', default=False,
|
||||
help='Set STYLO_THREADS=1.')
|
||||
|
@ -1427,8 +1427,6 @@ toolbar#nav-bar {
|
||||
mozinfo.update(options.extra_mozinfo_json)
|
||||
if 'STYLO_FORCE_ENABLED' in os.environ:
|
||||
mozinfo.update({'stylo': True})
|
||||
if 'STYLO_FORCE_DISABLED' in os.environ:
|
||||
mozinfo.update({'stylo': False})
|
||||
|
||||
info = mozinfo.info
|
||||
|
||||
|
@ -215,11 +215,6 @@ config = {
|
||||
"--setpref=layers.acceleration.disabled=true"],
|
||||
"tests": ["tests/reftest/tests/layout/reftests/reftest.list"]
|
||||
},
|
||||
"reftest-stylo": {
|
||||
"options": ["--suite=reftest",
|
||||
"--setpref=reftest.compareStyloToGecko=true"],
|
||||
"tests": ["tests/reftest/tests/layout/reftests/reftest.list"],
|
||||
},
|
||||
},
|
||||
"all_xpcshell_suites": {
|
||||
"xpcshell": {
|
||||
|
@ -171,11 +171,6 @@ config = {
|
||||
'options': ["--suite=reftest"],
|
||||
'tests': ["tests/reftest/tests/layout/reftests/reftest.list"]
|
||||
},
|
||||
"reftest-stylo": {
|
||||
"options": ["--suite=reftest",
|
||||
"--setpref=reftest.compareStyloToGecko=true"],
|
||||
"tests": ["tests/reftest/tests/layout/reftests/reftest.list"],
|
||||
},
|
||||
},
|
||||
"all_xpcshell_suites": {
|
||||
"xpcshell": {
|
||||
|
@ -204,11 +204,6 @@ config = {
|
||||
"--setpref=layers.acceleration.disabled=true"],
|
||||
"tests": ["tests/reftest/tests/layout/reftests/reftest.list"]
|
||||
},
|
||||
"reftest-stylo": {
|
||||
"options": ["--suite=reftest",
|
||||
"--setpref=reftest.compareStyloToGecko=true"],
|
||||
"tests": ["tests/reftest/tests/layout/reftests/reftest.list"],
|
||||
},
|
||||
},
|
||||
"all_xpcshell_suites": {
|
||||
"xpcshell": {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user