Merge autoland to m-c, a=merge

MozReview-Commit-ID: 4AKIgYeFhIc
This commit is contained in:
Phil Ringnalda 2017-05-27 21:28:38 -07:00
commit 7a63ae191d
174 changed files with 4926 additions and 3157 deletions

View File

@ -1585,7 +1585,6 @@ pref("browser.migrate.automigrate.enabled", false);
// hidden the 4th day, so it will actually be shown on 3 different days.
pref("browser.migrate.automigrate.daysToOfferUndo", 4);
pref("browser.migrate.automigrate.ui.enabled", true);
pref("browser.migrate.automigrate.inpage.ui.enabled", false);
// See comments in bug 1340115 on how we got to these numbers.
pref("browser.migrate.chrome.history.limit", 2000);

View File

@ -333,6 +333,8 @@
<menupopup id="toolbar-context-menu"
onpopupshowing="onViewToolbarsPopupShowing(event, document.getElementById('viewToolbarsMenuSeparator'));">
<menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)"
photonaccesskey="&customizeMenu.pinToOverflowMenu.accesskey;"
photonlabel="&customizeMenu.pinToOverflowMenu.label;"
accesskey="&customizeMenu.moveToPanel.accesskey;"
label="&customizeMenu.moveToPanel.label;"
contexttype="toolbaritem"

View File

@ -251,6 +251,10 @@ var gPage = {
onPageVisibleAndLoaded() {
// Maybe tell the user they can undo an initial automigration
sendAsyncMessage("NewTab:MaybeShowMigrateMessage");
this.maybeShowAutoMigrationUndoNotification();
},
maybeShowAutoMigrationUndoNotification() {
sendAsyncMessage("NewTab:MaybeShowAutoMigrationUndoNotification");
},
};

View File

@ -160,7 +160,7 @@ var AboutHomeListener = {
addEventListener("click", this, true);
addEventListener("pagehide", this, true);
sendAsyncMessage("AboutHome:MaybeShowMigrateMessage");
sendAsyncMessage("AboutHome:MaybeShowAutoMigrationUndoNotification");
sendAsyncMessage("AboutHome:RequestUpdate");
},

View File

@ -1345,7 +1345,7 @@
return;
}
if (!window.fullScreen || isTabEmpty(this.mCurrentTab)) {
if (!window.fullScreen || isTabEmpty(newTab)) {
focusAndSelectUrlBar();
return;
}

View File

@ -28,6 +28,7 @@ skip-if = (os == "mac" && debug) # temporary skip-if due to increase in intermit
subsuite = clipboard
[browser_newtab_drop_preview.js]
[browser_newtab_focus.js]
[browser_newtab_fullscreen_focus.js]
[browser_newtab_perwindow_private_browsing.js]
[browser_newtab_reflow_load.js]
support-files =

View File

@ -0,0 +1,35 @@
"use strict";
function isFullscreenSizeMode() {
let sizemode = document.documentElement.getAttribute("sizemode");
return sizemode == "fullscreen";
}
/**
* Checks that the URL bar is correctly focused
* when a new tab is opened while in fullscreen
* mode.
*/
add_task(async function() {
gURLBar.blur();
Assert.ok(!window.fullScreen, "Should not start in fullscreen mode.");
BrowserFullScreen();
await BrowserTestUtils.waitForCondition(() => isFullscreenSizeMode());
registerCleanupFunction(async function() {
// Exit fullscreen if we're still in it.
if (window.fullScreen) {
BrowserFullScreen();
await BrowserTestUtils.waitForCondition(() => !isFullscreenSizeMode());
}
});
Assert.ok(window.fullScreen, "Should be in fullscreen mode now.");
let newTabOpened = BrowserTestUtils.waitForEvent(gBrowser, "TabSwitchDone");
BrowserOpenTab();
await newTabOpened;
Assert.ok(gURLBar.focused, "URL bar should be focused.");
});

View File

@ -12,12 +12,12 @@ XPCOMUtils.defineLazyModuleGetter(this, "ExtensionParent",
Cu.import("resource://gre/modules/ExtensionUtils.jsm");
var {
extensionStylesheets,
promiseEvent,
} = ExtensionUtils;
const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
function getBrowser(sidebar) {
let browser = document.getElementById("webext-panels-browser");
if (browser) {
@ -54,6 +54,15 @@ function getBrowser(sidebar) {
return readyPromise.then(() => {
browser.messageManager.loadFrameScript("chrome://browser/content/content.js", false);
ExtensionParent.apiManager.emit("extension-browser-inserted", browser);
if (sidebar.browserStyle) {
browser.messageManager.loadFrameScript(
"chrome://extensions/content/ext-browser-content.js", false);
browser.messageManager.sendAsyncMessage("Extension:InitBrowser", {
stylesheets: extensionStylesheets,
});
}
return browser;
});
}
@ -63,6 +72,7 @@ function loadWebPanel() {
let sidebar = {
uri: sidebarURI.searchParams.get("panel"),
remote: sidebarURI.searchParams.get("remote"),
browserStyle: sidebarURI.searchParams.get("browser-style"),
};
getBrowser(sidebar).then(browser => {
browser.loadURI(sidebar.uri);

View File

@ -776,7 +776,9 @@ CustomizeMode.prototype = {
if (aNode.localName == "toolbarpaletteitem" && aNode.firstChild) {
aNode = aNode.firstChild;
}
CustomizableUI.addWidgetToArea(aNode.id, CustomizableUI.AREA_PANEL);
let panel = gPhotonStructure ? CustomizableUI.AREA_FIXED_OVERFLOW_PANEL
: CustomizableUI.AREA_PANEL;
CustomizableUI.addWidgetToArea(aNode.id, panel);
if (!this._customizing) {
CustomizableUI.dispatchToolboxEvent("customizationchange");
}

View File

@ -332,42 +332,6 @@
</panelview>
</panelmultiview>
<!-- These menupopups are located here to prevent flickering,
see bug 492960 comment 20. -->
<menupopup id="customizationPanelItemContextMenu">
<menuitem oncommand="gCustomizeMode.addToToolbar(document.popupNode)"
closemenu="single"
class="customize-context-moveToToolbar"
accesskey="&customizeMenu.moveToToolbar.accesskey;"
label="&customizeMenu.moveToToolbar.label;"/>
<menuitem oncommand="gCustomizeMode.removeFromArea(document.popupNode)"
closemenu="single"
class="customize-context-removeFromPanel"
accesskey="&customizeMenu.removeFromMenu.accesskey;"
label="&customizeMenu.removeFromMenu.label;"/>
<menuseparator/>
<menuitem command="cmd_CustomizeToolbars"
class="viewCustomizeToolbar"
accesskey="&viewCustomizeToolbar.accesskey;"
label="&viewCustomizeToolbar.label;"/>
</menupopup>
<menupopup id="customizationPaletteItemContextMenu">
<menuitem oncommand="gCustomizeMode.addToToolbar(document.popupNode)"
class="customize-context-addToToolbar"
accesskey="&customizeMenu.addToToolbar.accesskey;"
label="&customizeMenu.addToToolbar.label;"/>
<menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)"
class="customize-context-addToPanel"
accesskey="&customizeMenu.addToPanel.accesskey;"
label="&customizeMenu.addToPanel.label;"/>
</menupopup>
<menupopup id="customizationPanelContextMenu">
<menuitem command="cmd_CustomizeToolbars"
accesskey="&customizeMenu.addMoreItems.accesskey;"
label="&customizeMenu.addMoreItems.label;"/>
</menupopup>
</panel>
<panel id="widget-overflow"
@ -490,6 +454,47 @@
</popupnotification>
</panel>
<menupopup id="customizationPanelItemContextMenu">
<menuitem oncommand="gCustomizeMode.addToToolbar(document.popupNode)"
closemenu="single"
class="customize-context-moveToToolbar"
photonaccesskey="&customizeMenu.unpinFromOverflowMenu.accesskey;"
photonlabel="&customizeMenu.unpinFromOverflowMenu.label;"
accesskey="&customizeMenu.moveToToolbar.accesskey;"
label="&customizeMenu.moveToToolbar.label;"/>
<menuitem oncommand="gCustomizeMode.removeFromArea(document.popupNode)"
closemenu="single"
class="customize-context-removeFromPanel"
photonaccesskey="&customizeMenu.removeFromToolbar.accesskey;"
photonlabel="&customizeMenu.removeFromToolbar.label;"
accesskey="&customizeMenu.removeFromMenu.accesskey;"
label="&customizeMenu.removeFromMenu.label;"/>
<menuseparator/>
<menuitem command="cmd_CustomizeToolbars"
class="viewCustomizeToolbar"
accesskey="&viewCustomizeToolbar.accesskey;"
label="&viewCustomizeToolbar.label;"/>
</menupopup>
<menupopup id="customizationPaletteItemContextMenu">
<menuitem oncommand="gCustomizeMode.addToToolbar(document.popupNode)"
class="customize-context-addToToolbar"
accesskey="&customizeMenu.addToToolbar.accesskey;"
label="&customizeMenu.addToToolbar.label;"/>
<menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)"
class="customize-context-addToPanel"
photonaccesskey="&customizeMenu.addToOverflowMenu.accesskey;"
photonlabel="&customizeMenu.addToOverflowMenu.label;"
accesskey="&customizeMenu.addToPanel.accesskey;"
label="&customizeMenu.addToPanel.label;"/>
</menupopup>
<menupopup id="customizationPanelContextMenu">
<menuitem command="cmd_CustomizeToolbars"
accesskey="&customizeMenu.addMoreItems.accesskey;"
label="&customizeMenu.addMoreItems.label;"/>
</menupopup>
<panel id="appMenu-popup"
class="cui-widget-panel"
role="group"

View File

@ -70,6 +70,7 @@ const PanelUI = {
}
this._initPhotonPanel();
this._updateContextMenuLabels();
Services.obs.notifyObservers(null, "appMenu-notifications-request", "refresh");
this._initialized = true;
@ -80,6 +81,7 @@ const PanelUI = {
// If the Photon pref changes, we need to re-init our element references.
this._initElements();
this._initPhotonPanel();
this._updateContextMenuLabels();
delete this._readyPromise;
this._isReady = false;
},
@ -114,6 +116,32 @@ const PanelUI = {
}
},
_updateContextMenuLabels() {
const kContextMenus = [
"customizationPanelItemContextMenu",
"customizationPaletteItemContextMenu",
"toolbar-context-menu",
];
for (let menuId of kContextMenus) {
let menu = document.getElementById(menuId);
if (gPhotonStructure) {
let items = menu.querySelectorAll("menuitem[photonlabel]");
for (let item of items) {
item.setAttribute("nonphotonlabel", item.getAttribute("label"));
item.setAttribute("nonphotonaccesskey", item.getAttribute("accesskey"));
item.setAttribute("label", item.getAttribute("photonlabel"));
item.setAttribute("accesskey", item.getAttribute("photonaccesskey"));
}
} else {
let items = menu.querySelectorAll("menuitem[nonphotonlabel]");
for (let item of items) {
item.setAttribute("label", item.getAttribute("nonphotonlabel"));
item.setAttribute("accesskey", item.getAttribute("nonphotonaccesskey"));
}
}
}
},
_eventListenersAdded: false,
_ensureEventListenersAdded() {
if (this._eventListenersAdded)
@ -541,6 +569,9 @@ const PanelUI = {
this.navbar.setAttribute("nonemptyoverflow", "true");
this.overflowPanel.setAttribute("hasfixeditems", "true");
} else if (!hasKids && this.navbar.hasAttribute("nonemptyoverflow")) {
if (this.overflowPanel.state != "closed") {
this.overflowPanel.hidePopup();
}
this.overflowPanel.removeAttribute("hasfixeditems");
this.navbar.removeAttribute("nonemptyoverflow");
}

View File

@ -161,4 +161,5 @@ skip-if = os == "mac"
[browser_check_tooltips_in_navbar.js]
[browser_editcontrols_update.js]
subsuite = clipboard
[browser_photon_customization_context_menus.js]
[browser_remote_tabs_button.js]

View File

@ -3,18 +3,19 @@
const kOverflowPanel = document.getElementById("widget-overflow");
var gOriginalWidth;
registerCleanupFunction(function*() {
registerCleanupFunction(async function() {
kOverflowPanel.removeAttribute("animate");
window.resizeTo(gOriginalWidth, window.outerHeight);
await waitForCondition(() => !document.getElementById("nav-bar").hasAttribute("overflowing"));
CustomizableUI.reset();
});
/**
* This checks that subview-compatible items show up as subviews rather than
* re-anchored panels. If we ever remove the character encoding widget, please
* re-anchored panels. If we ever remove the developer widget, please
* replace this test with another subview - don't remove it.
*/
add_task(async function check_character_encoding_subview_in_overflow() {
add_task(async function check_developer_subview_in_overflow() {
kOverflowPanel.setAttribute("animate", "false");
gOriginalWidth = window.outerWidth;
@ -39,8 +40,6 @@ add_task(async function check_character_encoding_subview_in_overflow() {
is(developerView.closest("panel"), kOverflowPanel, "Should be inside the panel");
kOverflowPanel.hidePopup();
await Promise.resolve(); // wait for popup to hide fully.
CustomizableUI.reset();
});
/**

View File

@ -0,0 +1,431 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
requestLongerTimeout(2);
const isOSX = (Services.appinfo.OS === "Darwin");
const overflowButton = document.getElementById("nav-bar-overflow-button");
const overflowPanel = document.getElementById("widget-overflow");
// Right-click on the home button should
// show a context menu with options to move it.
add_task(async function() {
await SpecialPowers.pushPrefEnv({set: [["browser.photon.structure.enabled", true]]});
let contextMenu = document.getElementById("toolbar-context-menu");
let shownPromise = popupShown(contextMenu);
let homeButton = document.getElementById("home-button");
EventUtils.synthesizeMouse(homeButton, 2, 2, {type: "contextmenu", button: 2 });
await shownPromise;
let expectedEntries = [
[".customize-context-moveToPanel", true],
[".customize-context-removeFromToolbar", true],
["---"]
];
if (!isOSX) {
expectedEntries.push(["#toggle_toolbar-menubar", true]);
}
expectedEntries.push(
["#toggle_PersonalToolbar", true],
["---"],
[".viewCustomizeToolbar", true]
);
checkContextMenu(contextMenu, expectedEntries);
let hiddenPromise = popupHidden(contextMenu);
contextMenu.hidePopup();
await hiddenPromise;
});
// Right-click on an empty bit of tabstrip should
// show a context menu without options to move it,
// but with tab-specific options instead.
add_task(async function() {
// ensure there are tabs to reload/bookmark:
let extraTab = gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
await promiseTabLoadEvent(extraTab, "http://example.com/");
let contextMenu = document.getElementById("toolbar-context-menu");
let shownPromise = popupShown(contextMenu);
let tabstrip = document.getElementById("tabbrowser-tabs");
let rect = tabstrip.getBoundingClientRect();
EventUtils.synthesizeMouse(tabstrip, rect.width - 2, 2, {type: "contextmenu", button: 2 });
await shownPromise;
let closedTabsAvailable = SessionStore.getClosedTabCount(window) == 0;
info("Closed tabs: " + closedTabsAvailable);
let expectedEntries = [
["#toolbar-context-reloadAllTabs", true],
["#toolbar-context-bookmarkAllTabs", true],
["#toolbar-context-undoCloseTab", !closedTabsAvailable],
["---"]
];
if (!isOSX) {
expectedEntries.push(["#toggle_toolbar-menubar", true]);
}
expectedEntries.push(
["#toggle_PersonalToolbar", true],
["---"],
[".viewCustomizeToolbar", true]
);
checkContextMenu(contextMenu, expectedEntries);
let hiddenPromise = popupHidden(contextMenu);
contextMenu.hidePopup();
await hiddenPromise;
gBrowser.removeTab(extraTab);
});
// Right-click on an empty bit of extra toolbar should
// show a context menu with moving options disabled,
// and a toggle option for the extra toolbar
add_task(async function() {
let contextMenu = document.getElementById("toolbar-context-menu");
let shownPromise = popupShown(contextMenu);
let toolbar = createToolbarWithPlacements("880164_empty_toolbar", []);
toolbar.setAttribute("context", "toolbar-context-menu");
toolbar.setAttribute("toolbarname", "Fancy Toolbar for Context Menu");
EventUtils.synthesizeMouseAtCenter(toolbar, {type: "contextmenu", button: 2 });
await shownPromise;
let expectedEntries = [
[".customize-context-moveToPanel", false],
[".customize-context-removeFromToolbar", false],
["---"]
];
if (!isOSX) {
expectedEntries.push(["#toggle_toolbar-menubar", true]);
}
expectedEntries.push(
["#toggle_PersonalToolbar", true],
["#toggle_880164_empty_toolbar", true],
["---"],
[".viewCustomizeToolbar", true]
);
checkContextMenu(contextMenu, expectedEntries);
let hiddenPromise = popupHidden(contextMenu);
contextMenu.hidePopup();
await hiddenPromise;
removeCustomToolbars();
});
// Right-click on the urlbar-container should
// show a context menu with disabled options to move it.
add_task(async function() {
let contextMenu = document.getElementById("toolbar-context-menu");
let shownPromise = popupShown(contextMenu);
let urlBarContainer = document.getElementById("urlbar-container");
// Need to make sure not to click within an edit field.
EventUtils.synthesizeMouse(urlBarContainer, 100, 1, {type: "contextmenu", button: 2 });
await shownPromise;
let expectedEntries = [
[".customize-context-moveToPanel", false],
[".customize-context-removeFromToolbar", false],
["---"]
];
if (!isOSX) {
expectedEntries.push(["#toggle_toolbar-menubar", true]);
}
expectedEntries.push(
["#toggle_PersonalToolbar", true],
["---"],
[".viewCustomizeToolbar", true]
);
checkContextMenu(contextMenu, expectedEntries);
let hiddenPromise = popupHidden(contextMenu);
contextMenu.hidePopup();
await hiddenPromise;
});
// Right-click on the searchbar and moving it to the menu
// and back should move the search-container instead.
add_task(async function() {
let searchbar = document.getElementById("searchbar");
gCustomizeMode.addToPanel(searchbar);
let placement = CustomizableUI.getPlacementOfWidget("search-container");
is(placement.area, CustomizableUI.AREA_FIXED_OVERFLOW_PANEL, "Should be in panel");
let shownPanelPromise = popupShown(overflowPanel);
overflowButton.click();
await shownPanelPromise;
let hiddenPanelPromise = popupHidden(overflowPanel);
overflowButton.click();
await hiddenPanelPromise;
gCustomizeMode.addToToolbar(searchbar);
placement = CustomizableUI.getPlacementOfWidget("search-container");
is(placement.area, CustomizableUI.AREA_NAVBAR, "Should be in navbar");
gCustomizeMode.removeFromArea(searchbar);
placement = CustomizableUI.getPlacementOfWidget("search-container");
is(placement, null, "Should be in palette");
CustomizableUI.reset();
placement = CustomizableUI.getPlacementOfWidget("search-container");
is(placement.area, CustomizableUI.AREA_NAVBAR, "Should be in navbar");
});
// Right-click on an item within the panel should
// show a context menu with options to move it.
add_task(async function() {
CustomizableUI.addWidgetToArea("new-window-button", CustomizableUI.AREA_FIXED_OVERFLOW_PANEL);
let shownPanelPromise = popupShown(overflowPanel);
overflowButton.click();
await shownPanelPromise;
let contextMenu = document.getElementById("customizationPanelItemContextMenu");
let shownContextPromise = popupShown(contextMenu);
let newWindowButton = document.getElementById("new-window-button");
ok(newWindowButton, "new-window-button was found");
EventUtils.synthesizeMouse(newWindowButton, 2, 2, {type: "contextmenu", button: 2});
await shownContextPromise;
is(overflowPanel.state, "open", "The overflow panel should still be open.");
let expectedEntries = [
[".customize-context-moveToToolbar", true],
[".customize-context-removeFromPanel", true],
["---"],
[".viewCustomizeToolbar", true]
];
checkContextMenu(contextMenu, expectedEntries);
let hiddenContextPromise = popupHidden(contextMenu);
contextMenu.hidePopup();
await hiddenContextPromise;
let hiddenPromise = popupHidden(overflowPanel);
overflowButton.click();
await hiddenPromise;
CustomizableUI.removeWidgetFromArea("new-window-button");
});
// Right-click on the home button while in customization mode
// should show a context menu with options to move it.
add_task(async function() {
await startCustomizing();
let contextMenu = document.getElementById("toolbar-context-menu");
let shownPromise = popupShown(contextMenu);
let homeButton = document.getElementById("wrapper-home-button");
EventUtils.synthesizeMouse(homeButton, 2, 2, {type: "contextmenu", button: 2});
await shownPromise;
let expectedEntries = [
[".customize-context-moveToPanel", true],
[".customize-context-removeFromToolbar", true],
["---"]
];
if (!isOSX) {
expectedEntries.push(["#toggle_toolbar-menubar", true]);
}
expectedEntries.push(
["#toggle_PersonalToolbar", true],
["---"],
[".viewCustomizeToolbar", false]
);
checkContextMenu(contextMenu, expectedEntries);
let hiddenContextPromise = popupHidden(contextMenu);
contextMenu.hidePopup();
await hiddenContextPromise;
});
// Right-click on an item in the palette should
// show a context menu with options to move it.
add_task(async function() {
let contextMenu = document.getElementById("customizationPaletteItemContextMenu");
let shownPromise = popupShown(contextMenu);
let openFileButton = document.getElementById("wrapper-open-file-button");
EventUtils.synthesizeMouse(openFileButton, 2, 2, {type: "contextmenu", button: 2});
await shownPromise;
let expectedEntries = [
[".customize-context-addToToolbar", true],
[".customize-context-addToPanel", true]
];
checkContextMenu(contextMenu, expectedEntries);
let hiddenContextPromise = popupHidden(contextMenu);
contextMenu.hidePopup();
await hiddenContextPromise;
});
// Right-click on an item in the panel while in customization mode
// should show a context menu with options to move it.
add_task(async function() {
CustomizableUI.addWidgetToArea("new-window-button", CustomizableUI.AREA_FIXED_OVERFLOW_PANEL);
let contextMenu = document.getElementById("customizationPanelItemContextMenu");
let shownPromise = popupShown(contextMenu);
let newWindowButton = document.getElementById("wrapper-new-window-button");
EventUtils.synthesizeMouse(newWindowButton, 2, 2, {type: "contextmenu", button: 2});
await shownPromise;
let expectedEntries = [
[".customize-context-moveToToolbar", true],
[".customize-context-removeFromPanel", true],
["---"],
[".viewCustomizeToolbar", false]
];
checkContextMenu(contextMenu, expectedEntries);
let hiddenContextPromise = popupHidden(contextMenu);
contextMenu.hidePopup();
await hiddenContextPromise;
CustomizableUI.removeWidgetFromArea("new-window-button");
await endCustomizing();
});
// Test the toolbarbutton panel context menu in customization mode
// without opening the panel before customization mode
add_task(async function() {
CustomizableUI.addWidgetToArea("new-window-button", CustomizableUI.AREA_FIXED_OVERFLOW_PANEL);
this.otherWin = await openAndLoadWindow(null, true);
await new Promise(resolve => waitForFocus(resolve, this.otherWin));
await startCustomizing(this.otherWin);
let contextMenu = this.otherWin.document.getElementById("customizationPanelItemContextMenu");
let shownPromise = popupShown(contextMenu);
let newWindowButton = this.otherWin.document.getElementById("wrapper-new-window-button");
EventUtils.synthesizeMouse(newWindowButton, 2, 2, {type: "contextmenu", button: 2}, this.otherWin);
await shownPromise;
let expectedEntries = [
[".customize-context-moveToToolbar", true],
[".customize-context-removeFromPanel", true],
["---"],
[".viewCustomizeToolbar", false]
];
checkContextMenu(contextMenu, expectedEntries, this.otherWin);
let hiddenContextPromise = popupHidden(contextMenu);
contextMenu.hidePopup();
await hiddenContextPromise;
await endCustomizing(this.otherWin);
CustomizableUI.removeWidgetFromArea("new-window-button");
await promiseWindowClosed(this.otherWin);
this.otherWin = null;
await new Promise(resolve => waitForFocus(resolve, window));
});
// Bug 945191 - Combined buttons show wrong context menu options
// when they are in the toolbar.
add_task(async function() {
CustomizableUI.addWidgetToArea("zoom-controls", CustomizableUI.AREA_FIXED_OVERFLOW_PANEL);
await startCustomizing();
let contextMenu = document.getElementById("customizationPanelItemContextMenu");
let shownPromise = popupShown(contextMenu);
let zoomControls = document.getElementById("wrapper-zoom-controls");
EventUtils.synthesizeMouse(zoomControls, 2, 2, {type: "contextmenu", button: 2});
await shownPromise;
// Execute the command to move the item from the panel to the toolbar.
contextMenu.childNodes[0].doCommand();
let hiddenPromise = popupHidden(contextMenu);
contextMenu.hidePopup();
await hiddenPromise;
await endCustomizing();
zoomControls = document.getElementById("zoom-controls");
is(zoomControls.parentNode.id, "nav-bar-customization-target", "Zoom-controls should be on the nav-bar");
contextMenu = document.getElementById("toolbar-context-menu");
shownPromise = popupShown(contextMenu);
EventUtils.synthesizeMouse(zoomControls, 2, 2, {type: "contextmenu", button: 2});
await shownPromise;
let expectedEntries = [
[".customize-context-moveToPanel", true],
[".customize-context-removeFromToolbar", true],
["---"]
];
if (!isOSX) {
expectedEntries.push(["#toggle_toolbar-menubar", true]);
}
expectedEntries.push(
["#toggle_PersonalToolbar", true],
["---"],
[".viewCustomizeToolbar", true]
);
checkContextMenu(contextMenu, expectedEntries);
hiddenPromise = popupHidden(contextMenu);
contextMenu.hidePopup();
await hiddenPromise;
await resetCustomization();
});
// Bug 947586 - After customization, panel items show wrong context menu options
add_task(async function() {
info("Check panel context menu is correct after customization");
await startCustomizing();
await endCustomizing();
CustomizableUI.addWidgetToArea("new-window-button", CustomizableUI.AREA_FIXED_OVERFLOW_PANEL);
let shownPanelPromise = popupShown(overflowPanel);
overflowButton.click();
await shownPanelPromise;
let contextMenu = document.getElementById("customizationPanelItemContextMenu");
let shownContextPromise = popupShown(contextMenu);
let newWindowButton = document.getElementById("new-window-button");
ok(newWindowButton, "new-window-button was found");
EventUtils.synthesizeMouse(newWindowButton, 2, 2, {type: "contextmenu", button: 2});
await shownContextPromise;
is(overflowPanel.state, "open", "The panel should still be open.");
let expectedEntries = [
[".customize-context-moveToToolbar", true],
[".customize-context-removeFromPanel", true],
["---"],
[".viewCustomizeToolbar", true]
];
checkContextMenu(contextMenu, expectedEntries);
let hiddenContextPromise = popupHidden(contextMenu);
contextMenu.hidePopup();
await hiddenContextPromise;
let hiddenPromise = popupHidden(overflowPanel);
overflowButton.click();
await hiddenPromise;
CustomizableUI.removeWidgetFromArea("new-window-button");
});
// Bug 982027 - moving icon around removes custom context menu.
add_task(async function() {
let widgetId = "custom-context-menu-toolbarbutton";
let expectedContext = "myfancycontext";
let widget = createDummyXULButton(widgetId, "Test ctxt menu");
widget.setAttribute("context", expectedContext);
CustomizableUI.addWidgetToArea(widgetId, CustomizableUI.AREA_NAVBAR);
is(widget.getAttribute("context"), expectedContext, "Should have context menu when added to the toolbar.");
await startCustomizing();
is(widget.getAttribute("context"), "", "Should not have own context menu in the toolbar now that we're customizing.");
is(widget.getAttribute("wrapped-context"), expectedContext, "Should keep own context menu wrapped when in toolbar.");
let panel = document.getElementById("widget-overflow-fixed-list");
simulateItemDrag(widget, panel);
is(widget.getAttribute("context"), "", "Should not have own context menu when in the panel.");
is(widget.getAttribute("wrapped-context"), expectedContext, "Should keep own context menu wrapped now that we're in the panel.");
simulateItemDrag(widget, document.getElementById("nav-bar").customizationTarget);
is(widget.getAttribute("context"), "", "Should not have own context menu when back in toolbar because we're still customizing.");
is(widget.getAttribute("wrapped-context"), expectedContext, "Should keep own context menu wrapped now that we're back in the toolbar.");
await endCustomizing();
is(widget.getAttribute("context"), expectedContext, "Should have context menu again now that we're out of customize mode.");
CustomizableUI.removeWidgetFromArea(widgetId);
widget.remove();
ok(CustomizableUI.inDefaultState, "Should be in default state after removing button.");
});

View File

@ -24,6 +24,7 @@ Cu.import("resource://gre/modules/ExtensionUtils.jsm");
var {
DefaultWeakMap,
extensionStylesheets,
promiseEvent,
} = ExtensionUtils;
@ -50,15 +51,6 @@ function promisePopupShown(popup) {
});
}
XPCOMUtils.defineLazyGetter(this, "popupStylesheets", () => {
let stylesheets = ["chrome://browser/content/extension.css"];
if (AppConstants.platform === "macosx") {
stylesheets.push("chrome://browser/content/extension-mac.css");
}
return stylesheets;
});
XPCOMUtils.defineLazyGetter(this, "standaloneStylesheets", () => {
let stylesheets = [];
@ -168,7 +160,7 @@ class BasePopup {
let sheets = [];
if (this.browserStyle) {
sheets.push(...popupStylesheets);
sheets.push(...extensionStylesheets);
}
if (!this.fixedWidth) {
sheets.push(...standaloneStylesheets);

View File

@ -43,6 +43,10 @@ this.sidebarAction = class extends ExtensionAPI {
this.id = `${widgetId}-sidebar-action`;
this.menuId = `menu_${this.id}`;
// We default browser_style to true because this is a new API and
// we therefore don't need to worry about breaking existing add-ons.
this.browserStyle = options.browser_style || options.browser_style === null;
this.defaults = {
enabled: true,
title: options.default_title || extension.name,
@ -120,10 +124,17 @@ this.sidebarAction = class extends ExtensionAPI {
}
sidebarUrl(panel) {
let url = `${sidebarURL}?panel=${encodeURIComponent(panel)}`;
if (this.extension.remote) {
return `${sidebarURL}?remote=1&panel=${encodeURIComponent(panel)}`;
url += "&remote=1";
}
return `${sidebarURL}?&panel=${encodeURIComponent(panel)}`;
if (this.browserStyle) {
url += "&browser-style=1";
}
return url;
}
createMenuItem(window, details) {
@ -138,6 +149,7 @@ this.sidebarAction = class extends ExtensionAPI {
broadcaster.setAttribute("group", "sidebar");
broadcaster.setAttribute("label", details.title);
broadcaster.setAttribute("sidebarurl", this.sidebarUrl(details.panel));
// oncommand gets attached to menuitem, so we use the observes attribute to
// get the command id we pass to SidebarUI.
broadcaster.setAttribute("oncommand", "SidebarUI.toggle(this.getAttribute('observes'))");

View File

@ -22,6 +22,10 @@
"$ref": "IconPath",
"optional": true
},
"browser_style": {
"type": "boolean",
"optional": true
},
"default_panel": {
"type": "string",
"format": "strictRelativeUrl",

View File

@ -95,6 +95,7 @@ skip-if = debug || asan # Bug 1354681
[browser_ext_sessions_getRecentlyClosed_tabs.js]
[browser_ext_sessions_restore.js]
[browser_ext_sidebarAction.js]
[browser_ext_sidebarAction_browser_style.js]
[browser_ext_sidebarAction_context.js]
[browser_ext_sidebarAction_contextMenu.js]
[browser_ext_sidebarAction_tabs.js]

View File

@ -0,0 +1,74 @@
/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set sts=2 sw=2 et tw=80: */
"use strict";
function* testSidebarBrowserStyle(sidebarAction, assertMessage) {
function sidebarScript() {
browser.test.onMessage.addListener((msgName, info, assertMessage) => {
if (msgName !== "check-style") {
browser.test.notifyFail("options-ui-browser_style");
}
let style = window.getComputedStyle(document.getElementById("button"));
let buttonBackgroundColor = style.backgroundColor;
let browserStyleBackgroundColor = "rgb(9, 150, 248)";
if (!("browser_style" in info) || info.browser_style) {
browser.test.assertEq(browserStyleBackgroundColor, buttonBackgroundColor, assertMessage);
} else {
browser.test.assertTrue(browserStyleBackgroundColor !== buttonBackgroundColor, assertMessage);
}
browser.test.notifyPass("sidebar-browser-style");
});
browser.test.sendMessage("sidebar-ready");
}
let extension = ExtensionTestUtils.loadExtension({
manifest: {
"sidebar_action": sidebarAction,
},
useAddonManager: "temporary",
files: {
"panel.html": `
<!DOCTYPE html>
<html>
<button id="button" name="button" class="default">Default</button>
<script src="panel.js" type="text/javascript"></script>
</html>`,
"panel.js": sidebarScript,
},
});
let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser);
yield extension.startup();
yield extension.awaitMessage("sidebar-ready");
extension.sendMessage("check-style", sidebarAction, assertMessage);
yield extension.awaitFinish("sidebar-browser-style");
yield extension.unload();
yield BrowserTestUtils.removeTab(tab);
}
add_task(function* test_sidebar_without_setting_browser_style() {
yield testSidebarBrowserStyle({
"default_panel": "panel.html",
}, "Expected correct style when browser_style is excluded");
});
add_task(function* test_sidebar_with_browser_style_set_to_true() {
yield testSidebarBrowserStyle({
"default_panel": "panel.html",
"browser_style": true,
}, "Expected correct style when browser_style is set to `true`");
});
add_task(function* test_sidebar_with_browser_style_set_to_false() {
yield testSidebarBrowserStyle({
"default_panel": "panel.html",
"browser_style": false,
}, "Expected no style when browser_style is set to `false`");
});

View File

@ -11,8 +11,6 @@ const { classes: Cc, interfaces: Ci, results: Cr, utils: Cu } = Components;
const kAutoMigrateEnabledPref = "browser.migrate.automigrate.enabled";
const kUndoUIEnabledPref = "browser.migrate.automigrate.ui.enabled";
const kInPageUIEnabledPref = "browser.migrate.automigrate.inpage.ui.enabled";
const kAutoMigrateBrowserPref = "browser.migrate.automigrate.browser";
const kAutoMigrateImportedItemIds = "browser.migrate.automigrate.imported-items";
@ -28,7 +26,6 @@ Cu.import("resource:///modules/MigrationUtils.jsm");
Cu.import("resource://gre/modules/Preferences.jsm");
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "AsyncShutdown",
"resource://gre/modules/AsyncShutdown.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "LoginHelper",
@ -317,75 +314,54 @@ const AutoMigrate = {
},
/**
* Decide if we need to show [the user] a prompt indicating we automatically
* imported their data.
* Show the user a notification bar indicating we automatically imported
* their data and offering them the possibility of removing it.
* @param target (xul:browser)
* The browser in which we should show the notification.
* @returns {Boolean} return true when need to show the prompt.
*/
async shouldShowMigratePrompt(target) {
async maybeShowUndoNotification(target) {
if (!(await this.canUndo())) {
return false;
return;
}
// The tab might have navigated since we requested the undo state:
let canUndoFromThisPage = ["about:home", "about:newtab"].includes(target.currentURI.spec);
if (!canUndoFromThisPage ||
!Preferences.get(kUndoUIEnabledPref, false)) {
return false;
return;
}
let win = target.ownerGlobal;
let notificationBox = win.gBrowser.getNotificationBox(target);
if (!notificationBox || notificationBox.getNotificationWithValue(kNotificationId)) {
return;
}
// At this stage we're committed to show the prompt - unless we shouldn't,
// in which case we remove the undo prefs (which will cause canUndo() to
// return false from now on.):
if (this.isMigratePromptExpired()) {
if (!this.shouldStillShowUndoPrompt()) {
this._purgeUndoState(this.UNDO_REMOVED_REASON_OFFER_EXPIRED);
this._removeNotificationBars();
return false;
return;
}
let remainingDays = Preferences.get(kAutoMigrateDaysToOfferUndoPref, 0);
Services.telemetry.getHistogramById("FX_STARTUP_MIGRATION_UNDO_OFFERED").add(4 - remainingDays);
return true;
},
/**
* Return the message that denotes the user data is migrated from the other browser.
* @returns {String} imported message with the brand and the browser name
*/
getUndoMigrationMessage() {
let browserName = this.getBrowserUsedForMigration();
if (!browserName) {
browserName = MigrationUtils.getLocalizedString("automigration.undo.unknownbrowser");
}
const kMessageId = "automigration.undo.message2." +
const kMessageId = "automigration.undo.message." +
Preferences.get(kAutoMigrateImportedItemIds, "all");
const kBrandShortName = gBrandBundle.GetStringFromName("brandShortName");
return MigrationUtils.getLocalizedString(kMessageId,
[kBrandShortName, browserName]);
},
let message = MigrationUtils.getLocalizedString(kMessageId,
[browserName, kBrandShortName]);
/**
* Show the user a notification bar indicating we automatically imported
* their data and offering them the possibility of removing it.
* @param target (xul:browser)
* The browser in which we should show the notification.
*/
showUndoNotificationBar(target) {
let isInPage = Preferences.get(kInPageUIEnabledPref, false);
let win = target.ownerGlobal;
let notificationBox = win.gBrowser.getNotificationBox(target);
if (isInPage || !notificationBox || notificationBox.getNotificationWithValue(kNotificationId)) {
return;
}
let message = this.getUndoMigrationMessage();
let buttons = [
{
label: MigrationUtils.getLocalizedString("automigration.undo.keep2.label"),
accessKey: MigrationUtils.getLocalizedString("automigration.undo.keep2.accesskey"),
callback: () => {
this.keepAutoMigration();
this._purgeUndoState(this.UNDO_REMOVED_REASON_OFFER_REJECTED);
this._removeNotificationBars();
},
},
@ -393,21 +369,19 @@ const AutoMigrate = {
label: MigrationUtils.getLocalizedString("automigration.undo.dontkeep2.label"),
accessKey: MigrationUtils.getLocalizedString("automigration.undo.dontkeep2.accesskey"),
callback: () => {
this.undoAutoMigration(win);
this._maybeOpenUndoSurveyTab(win);
this.undo();
},
},
];
notificationBox.appendNotification(
message, kNotificationId, null, notificationBox.PRIORITY_INFO_HIGH, buttons
);
let remainingDays = Preferences.get(kAutoMigrateDaysToOfferUndoPref, 0);
Services.telemetry.getHistogramById("FX_STARTUP_MIGRATION_UNDO_OFFERED").add(4 - remainingDays);
},
/**
* Return true if we have shown the prompt to user several days.
* (defined in kAutoMigrateDaysToOfferUndoPref)
*/
isMigratePromptExpired() {
shouldStillShowUndoPrompt() {
let today = new Date();
// Round down to midnight:
today = new Date(today.getFullYear(), today.getMonth(), today.getDate());
@ -422,10 +396,10 @@ const AutoMigrate = {
Preferences.set(kAutoMigrateDaysToOfferUndoPref, remainingDays);
Preferences.set(kAutoMigrateLastUndoPromptDateMsPref, today.valueOf().toString());
if (remainingDays <= 0) {
return true;
return false;
}
}
return false;
return true;
},
UNDO_REMOVED_REASON_UNDO_USED: 0,
@ -682,22 +656,6 @@ const AutoMigrate = {
QueryInterface: XPCOMUtils.generateQI(
[Ci.nsIObserver, Ci.nsINavBookmarkObserver, Ci.nsISupportsWeakReference]
),
/**
* Undo action called by the UndoNotification or by the newtab
* @param chromeWindow A reference to the window in which to open a link.
*/
undoAutoMigration(chromeWindow) {
this._maybeOpenUndoSurveyTab(chromeWindow);
this.undo();
},
/**
* Keep the automigration result and not prompt anymore
*/
keepAutoMigration() {
this._purgeUndoState(this.UNDO_REMOVED_REASON_OFFER_REJECTED);
},
};
AutoMigrate.init();

View File

@ -1110,7 +1110,6 @@ this.MigrationUtils = Object.freeze({
MIGRATION_ENTRYPOINT_FXREFRESH: 2,
MIGRATION_ENTRYPOINT_PLACES: 3,
MIGRATION_ENTRYPOINT_PASSWORDS: 4,
MIGRATION_ENTRYPOINT_NEWTAB: 5,
_sourceNameToIdMapping: {
"nothing": 1,

View File

@ -149,7 +149,7 @@ const listeners = {
},
mm: {
"AboutHome:MaybeShowMigrateMessage": ["AboutHome"],
"AboutHome:MaybeShowAutoMigrationUndoNotification": ["AboutHome"],
"AboutHome:RequestUpdate": ["AboutHome"],
"Content:Click": ["ContentClick"],
"ContentSearch": ["ContentSearch"],

View File

@ -384,15 +384,26 @@ These should match what Safari and other Apple applications use on OS X Lion. --
<!ENTITY customizeMenu.addToToolbar.accesskey "A">
<!ENTITY customizeMenu.addToPanel.label "Add to Menu">
<!ENTITY customizeMenu.addToPanel.accesskey "M">
<!-- LOCALIZATION NOTE (customizeMenu.addToOverflowMenu.label,
customizeMenu.pinToOverflowMenu.label, customizeMenu.unpinFromOverflowMenu.label)
The overflow menu is the menu that appears if you click the chevron (>> button)
in the location bar. These labels are only used in Photon, where you can put
items into this menu permanently (pinned). -->
<!ENTITY customizeMenu.addToOverflowMenu.label "Add to Overflow Menu">
<!ENTITY customizeMenu.addToOverflowMenu.accesskey "M">
<!ENTITY customizeMenu.moveToToolbar.label "Move to Toolbar">
<!ENTITY customizeMenu.moveToToolbar.accesskey "o">
<!-- LOCALIZATION NOTE (customizeMenu.moveToPanel.accesskey) can appear on the
same context menu as menubarCmd and personalbarCmd, so they should have
different access keys. customizeMenu.moveToToolbar and
<!-- LOCALIZATION NOTE (customizeMenu.moveToPanel.accesskey, customizeMenu.pinToOverflowMenu.accesskey)
can appear on the same context menu as menubarCmd and personalbarCmd,
so they should have different access keys. customizeMenu.moveToToolbar and
customizeMenu.moveToPanel are mutually exclusive, so can share access
keys. -->
<!ENTITY customizeMenu.moveToPanel.label "Move to Menu">
<!ENTITY customizeMenu.moveToPanel.accesskey "o">
<!ENTITY customizeMenu.pinToOverflowMenu.label "Pin to Overflow Menu">
<!ENTITY customizeMenu.pinToOverflowMenu.accesskey "P">
<!ENTITY customizeMenu.unpinFromOverflowMenu.label "Unpin from Overflow Menu">
<!ENTITY customizeMenu.unpinFromOverflowMenu.accesskey "U">
<!ENTITY customizeMenu.removeFromToolbar.label "Remove from Toolbar">
<!ENTITY customizeMenu.removeFromToolbar.accesskey "R">
<!ENTITY customizeMenu.removeFromMenu.label "Remove from Menu">

View File

@ -72,14 +72,14 @@ importedEdgeReadingList=Reading List (From Edge)
128_firefox=Windows and Tabs
# Automigration undo notification.
# %1$S will be replaced with brandShortName, %2$S will be replaced with the name of the browser we imported from
automigration.undo.message2.all = Dive right into %1$S! Import your favorate sites, bookmarks, history and passwords from %2$S.
automigration.undo.message2.bookmarks = Dive right into %1$S! Import your favorate sites and bookmarks from %2$S.
automigration.undo.message2.bookmarks.logins = Dive right into %1$S! Import your favorate sites, bookmarks and passwords from %2$S.
automigration.undo.message2.bookmarks.visits = Dive right into %1$S! Import your favorate sites, bookmarks and history from %2$S.
automigration.undo.message2.logins = Dive right into %1$S! Import your passwords from %2$S.
automigration.undo.message2.logins.visits = Dive right into %1$S! Import your favorate sites, history and passwords from %2$S.
automigration.undo.message2.visits = Dive right into %1$S! Import your favorate sites and history from %2$S.
# %1$S will be replaced with the name of the browser we imported from, %2$S will be replaced with brandShortName
automigration.undo.message.all = Pick up where you left off. Weve imported these sites and your bookmarks, history and passwords from %1$S into %2$S.
automigration.undo.message.bookmarks = Pick up where you left off. Weve imported these sites and your bookmarks from %1$S into %2$S.
automigration.undo.message.bookmarks.logins = Pick up where you left off. Weve imported these sites and your bookmarks and passwords from %1$S into %2$S.
automigration.undo.message.bookmarks.visits = Pick up where you left off. Weve imported these sites and your bookmarks and history from %1$S into %2$S.
automigration.undo.message.logins = Pick up where you left off. Weve imported your passwords from %1$S into %2$S.
automigration.undo.message.logins.visits = Pick up where you left off. Weve imported these sites and your history and passwords from %1$S into %2$S.
automigration.undo.message.visits = Pick up where you left off. Weve imported these sites and your history from %1$S into %2$S.
automigration.undo.keep2.label = OK, Got it
automigration.undo.keep2.accesskey = O
automigration.undo.dontkeep2.label = No Thanks

View File

@ -10,8 +10,8 @@ var Cu = Components.utils;
this.EXPORTED_SYMBOLS = [ "AboutHomeUtils", "AboutHome" ];
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
Cu.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
Components.utils.import("resource://gre/modules/Services.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "AppConstants",
"resource://gre/modules/AppConstants.jsm");
@ -149,12 +149,8 @@ var AboutHome = {
this.sendAboutHomeData(aMessage.target);
break;
case "AboutHome:MaybeShowMigrateMessage":
AutoMigrate.shouldShowMigratePrompt(aMessage.target).then((prompt) => {
if (prompt) {
AutoMigrate.showUndoNotificationBar(aMessage.target);
}
});
case "AboutHome:MaybeShowAutoMigrationUndoNotification":
AutoMigrate.maybeShowUndoNotification(aMessage.target);
break;
}
},

View File

@ -32,16 +32,8 @@ var AboutNewTab = {
}
this.pageListener = new RemotePages("about:newtab");
this.pageListener.addMessageListener("NewTab:Customize", this.customize.bind(this));
this.pageListener.addMessageListener("NewTab:MaybeShowMigrateMessage",
this.maybeShowMigrateMessage.bind(this));
},
maybeShowMigrateMessage({ target }) {
AutoMigrate.shouldShowMigratePrompt(target.browser).then((prompt) => {
if (prompt) {
AutoMigrate.showUndoNotificationBar(target.browser);
}
});
this.pageListener.addMessageListener("NewTab:MaybeShowAutoMigrationUndoNotification",
(msg) => AutoMigrate.maybeShowUndoNotification(msg.target.browser));
},
customize(message) {

View File

@ -1104,6 +1104,15 @@ struct ZoomConstraints {
}
};
struct ScrollableLayerGuidHash
{
std::size_t operator()(const ScrollableLayerGuid& Guid) const
{
return Guid.Hash();
}
};
typedef Maybe<ZoomConstraints> MaybeZoomConstraints;
} // namespace layers

View File

@ -86,7 +86,7 @@ struct APZCTreeManager::TreeBuildingState {
// This map is populated as we place APZCs into the new tree. Its purpose is
// to facilitate re-using the same APZC for different layers that scroll
// together (and thus have the same ScrollableLayerGuid).
std::map<ScrollableLayerGuid, AsyncPanZoomController*> mApzcMap;
std::unordered_map<ScrollableLayerGuid, AsyncPanZoomController*, ScrollableLayerGuidHash> mApzcMap;
};
class APZCTreeManager::CheckerboardFlushObserver : public nsIObserver {
@ -380,7 +380,7 @@ APZCTreeManager::PushStateToWR(wr::WebRenderAPI* aWrApi,
// such as the one below to generate scrollbar transforms. Without this, perf
// could end up being O(n^2) instead of O(n log n) because we'd have to search
// the tree to find the corresponding APZC every time we hit a thumb node.
std::map<ScrollableLayerGuid, HitTestingTreeNode*> httnMap;
std::unordered_map<ScrollableLayerGuid, HitTestingTreeNode*, ScrollableLayerGuidHash> httnMap;
bool activeAnimations = false;
uint64_t lastLayersId = -1;
@ -538,6 +538,8 @@ GetEventRegions(const ScrollNode& aLayer)
return aLayer.GetEventRegions();
}
already_AddRefed<HitTestingTreeNode>
APZCTreeManager::RecycleOrCreateNode(TreeBuildingState& aState,
AsyncPanZoomController* aApzc,

View File

@ -6,7 +6,7 @@
#ifndef mozilla_layers_APZCTreeManager_h
#define mozilla_layers_APZCTreeManager_h
#include <map> // for std::map
#include <unordered_map> // for std::unordered_map
#include "gfxPoint.h" // for gfxPoint
#include "mozilla/Assertions.h" // for MOZ_ASSERT_HELPER2
@ -41,6 +41,7 @@ class CompositorBridgeParent;
class OverscrollHandoffChain;
struct OverscrollHandoffState;
struct FlingHandoffState;
struct ScrollableLayerGuidHash;
class LayerMetricsWrapper;
class InputQueue;
class GeckoContentController;
@ -546,7 +547,7 @@ private:
RefPtr<HitTestingTreeNode> mRootNode;
/* Holds the zoom constraints for scrollable layers, as determined by the
* the main-thread gecko code. */
std::map<ScrollableLayerGuid, ZoomConstraints> mZoomConstraints;
std::unordered_map<ScrollableLayerGuid, ZoomConstraints, ScrollableLayerGuidHash> mZoomConstraints;
/* This tracks the APZC that should receive all inputs for the current input event block.
* This allows touch points to move outside the thing they started on, but still have the
* touch events delivered to the same initial APZC. This will only ever be touched on the

View File

@ -91,6 +91,7 @@ function checkOverridableVirtualCall(entry, location, callee)
"Gecko_AddRefAtom",
"Gecko_ReleaseAtom",
/nsPrincipal::Get/,
/CounterStylePtr::Reset/,
];
if (entry.matches(whitelist))
return;
@ -145,8 +146,10 @@ function treatAsSafeArgument(entry, varName, csuName)
// to be a way to indicate which params are out parameters, either using
// an attribute or a naming convention.
["Gecko_CopyFontFamilyFrom", "dst", null],
["Gecko_SetListStyleType", "aList", null],
["Gecko_CopyListStyleTypeFrom", "aDst", null],
["Gecko_SetCounterStyleToName", "aPtr", null],
["Gecko_SetCounterStyleToSymbols", "aPtr", null],
["Gecko_SetCounterStyleToString", "aPtr", null],
["Gecko_CopyCounterStyle", "aDst", null],
["Gecko_SetMozBinding", "aDisplay", null],
[/ClassOrClassList/, /aClass/, null],
["Gecko_GetAtomAsUTF16", "aLength", null],
@ -213,6 +216,7 @@ function treatAsSafeArgument(entry, varName, csuName)
["Gecko_StyleTransition_SetUnsupportedProperty", "aTransition", null],
["Gecko_AddPropertyToSet", "aPropertySet", null],
["Gecko_CalcStyleDifference", "aAnyStyleChanged", null],
["Gecko_nsStyleSVG_CopyContextProperties", "aDst", null],
];
for (var [entryMatch, varMatch, csuMatch] of whitelist) {
assert(entryMatch || varMatch || csuMatch);
@ -326,7 +330,9 @@ function ignoreCallEdge(entry, callee)
// We manually lock here
if (name == "Gecko_nsFont_InitSystem" ||
name == "Gecko_GetFontMetrics")
name == "Gecko_GetFontMetrics" ||
name == "Gecko_nsStyleFont_FixupNoneGeneric" ||
name == "Gecko_nsStyleFont_FixupMinFontSize")
{
return true;
}

View File

@ -583,8 +583,11 @@ public:
* the language-specific global preference with the per-presentation
* base minimum font size.
*/
int32_t MinFontSize(nsIAtom *aLanguage) const {
const LangGroupFontPrefs *prefs = GetFontPrefsForLang(aLanguage);
int32_t MinFontSize(nsIAtom *aLanguage, bool* aNeedsToCache = nullptr) const {
const LangGroupFontPrefs *prefs = GetFontPrefsForLang(aLanguage, aNeedsToCache);
if (aNeedsToCache && *aNeedsToCache) {
return 0;
}
return std::max(mBaseMinFontSize, prefs->mMinimumFontSize);
}

View File

@ -116,7 +116,7 @@ fuzzy-if(Android,24,1) fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)&&!laye
== 613157-1.html 613157-1-ref.html
fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)&&!layersGPUAccelerated&&!azureSkia,255,6) == 613157-2.html 613157-2-ref.html
== 662288-1.html 662288-1-ref.html
fails-if(styloVsGecko) == 670226-1.html 670226-1-ref.html
fails-if(styloVsGecko||stylo) == 670226-1.html 670226-1-ref.html
== 676245-1.html 676245-1-ref.html
fuzzy-if(skiaContent,1,3) fails-if(styloVsGecko) == 698291-1.html 698291-1-ref.html
== 698706-1.html 698706-1-ref.html
@ -169,7 +169,7 @@ fuzzy-if(Android,254,231) == brackets-2c-rtl.html brackets-2c-rtl-ref.html
== brackets-3a-rtl.html brackets-3a-rtl-ref.html
== brackets-3b-ltr.html brackets-3b-ltr-ref.html
== brackets-3b-rtl.html brackets-3b-rtl-ref.html
fails-if(styloVsGecko) == 1217833-1.html 1217833-1-ref.html
fails-if(styloVsGecko) == 1217833-2.html 1217833-2-ref.html
fails-if(styloVsGecko||stylo) == 1217833-1.html 1217833-1-ref.html
fails-if(styloVsGecko||stylo) == 1217833-2.html 1217833-2-ref.html
== 1231175-1.html 1231175-1-ref.html
== 1366623-1.html 1366623-1-ref.html

View File

@ -94,10 +94,10 @@ fuzzy-if(skiaContent,2,13) == 84400-2.html 84400-2-ref.html
== 97777-2.html 97777-2-ref.html
== 98223-1.html 98223-1-ref.html
== 98223-2.html 98223-2-ref.html
fails-if(styloVsGecko) == 99850-1a.html 99850-1-ref.html
fails-if(styloVsGecko||stylo) == 99850-1a.html 99850-1-ref.html
random == 99850-1b.html 99850-1-ref.html # bug 471629
fails-if(styloVsGecko) == 99850-1c.html 99850-1-ref.html
fails-if(styloVsGecko) == 99850-1d.html 99850-1-ref.html
fails-if(styloVsGecko||stylo) == 99850-1c.html 99850-1-ref.html
fails-if(styloVsGecko||stylo) == 99850-1d.html 99850-1-ref.html
== 105030-1.html 105030-1-ref.html
== 109735-1.html 109735-1-ref.html
== 116882-1.html 116882-1-ref.html
@ -466,7 +466,7 @@ fuzzy-if(skiaContent,4,2) == 346774-1c.html 346774-1-ref.html
== 347348-1.xhtml 347348-1-ref.xhtml
== 347496-1.xhtml 347496-1-ref.xhtml
== 347912-1.html 347912-1-ref.html
fails-if(styloVsGecko) == 348049-1.xhtml 348049-1-ref.xhtml
fails-if(styloVsGecko||stylo) == 348049-1.xhtml 348049-1-ref.xhtml
== 348516-1.html 348516-1-ref.html
== 348516-2.html 348516-2-ref.html
!= 348516-2.html 348516-2-notref.html
@ -789,7 +789,7 @@ skip-if(!winWidget) == 391045.html 391045-ref.html # windows-specific Uniscribe
skip-if(Android) == 391979.html 391979-ref.html
== 391994-1.html 391994-1-ref.html
== 392047.html 392047-ref.html
fails-if(styloVsGecko) == 392435-1.html 392435-1-ref.html
fails-if(styloVsGecko||stylo) == 392435-1.html 392435-1-ref.html
== 393330-1.html 393330-1-ref.html
== 393490-1.html 393490-1-ref.html
== 393517-1.xhtml about:blank # crash test
@ -846,7 +846,7 @@ fails-if(winWidget) fails-if(cocoaWidget) random-if(!cocoaWidget&&!winWidget) !=
== 400171-2c.html 400171-2-ref.html
== 400421-1.html 400421-1-ref.html
== 400813-1.html 400813-1-ref.html
fails-if(styloVsGecko) == 400826-1.html 400826-1-ref.html
fails-if(styloVsGecko||stylo) == 400826-1.html 400826-1-ref.html
== 401946-1.xul about:blank
== 402338-1.html 402338-1-ref.html
== 402567-1.html 402567-1-ref.html
@ -981,7 +981,7 @@ fuzzy-if(Android,11,17) == 413361-1.html 413361-1-ref.html # bug 1128229
== 414123.xhtml 414123-ref.xhtml
== 414638.html 414638-ref.html
== 414851-1.html 414851-1-ref.html
fails-if(styloVsGecko) == 416106-1.xhtml 416106-1-ref.xhtml
fails-if(styloVsGecko||stylo) == 416106-1.xhtml 416106-1-ref.xhtml
== 416752-1.html 416752-1-ref.html
== 417178-1.html 417178-1-ref.html
== 417246-1.html 417246-1-ref.html
@ -1245,7 +1245,7 @@ fuzzy-if(skiaContent,1,12000) == 461512-1.html 461512-1-ref.html
== 467444-1.html 467444-1-ref.html
== 467460-1.html 467460-1-ref.html
== 468473-1.xul 468473-1-ref.xul
fails-if(styloVsGecko) == 468546-1.xhtml 468546-1-ref.xhtml
fails-if(styloVsGecko||stylo) == 468546-1.xhtml 468546-1-ref.xhtml
== 471356-1.html 471356-1-ref.html
== 471594-1.xhtml 471594-1-ref.html
fuzzy(255,15) == 472020-1a.xul 472020-1-ref.xul
@ -1321,8 +1321,8 @@ fails-if(Android) == 481024-1c.html 481024-1-ref.html
!= 481948-2.html 481948-2-ref.html
fails-if(Android) random-if(winWidget) fails-if(gtkWidget&&!styloVsGecko) == 481948-3.html 481948-3-ref.html # questionable test, see bug 488364
== 482398-1.html 482398-1-ref.html
random-if(d2d) fails-if(styloVsGecko) == 482592-1a.xhtml 482592-1-ref.html # bug 586771
random-if(d2d) fails-if(styloVsGecko) == 482592-1b.xhtml 482592-1-ref.html # bug 586771
random-if(d2d) fails-if(styloVsGecko||stylo) == 482592-1a.xhtml 482592-1-ref.html # bug 586771
random-if(d2d) fails-if(styloVsGecko||stylo) == 482592-1b.xhtml 482592-1-ref.html # bug 586771
random-if(winWidget) fuzzy-if(skiaContent,1,5) == 482659-1a.html 482659-1-ref.html
fuzzy-if(skiaContent,1,5) == 482659-1b.html 482659-1-ref.html
fuzzy-if(skiaContent,1,5) == 482659-1c.html 482659-1-ref.html
@ -1364,8 +1364,8 @@ pref(browser.display.focus_ring_width,1) == 491180-2.html 491180-2-ref.html
== 494667-1.html 494667-1-ref.html
== 494667-2.html 494667-2-ref.html
== 495274-1.html 495274-1-ref.html
fails-if(styloVsGecko) == 495354-1a.xhtml 495354-1-ref.xhtml
fails-if(styloVsGecko) == 495354-1b.xhtml 495354-1-ref.xhtml
fails-if(styloVsGecko||stylo) == 495354-1a.xhtml 495354-1-ref.xhtml
fails-if(styloVsGecko||stylo) == 495354-1b.xhtml 495354-1-ref.xhtml
== 495385-1a.html 495385-1-ref.html
== 495385-1b.html 495385-1-ref.html
== 495385-1c.html 495385-1-ref.html
@ -1384,7 +1384,7 @@ pref(dom.use_xbl_scopes_for_remote_xul,true) == 495385-2f.xhtml 495385-2-ref.htm
== 495385-3.html 495385-3-ref.html
== 495385-4.html 495385-4-ref.html
fails-if(styloVsGecko) == 495385-5.html 495385-5-ref.html
fails-if(styloVsGecko) == 496032-1.html 496032-1-ref.html
fails-if(styloVsGecko||stylo) == 496032-1.html 496032-1-ref.html
== 496840-1.html 496840-1-ref.html
fuzzy-if(skiaContent,1,17000) == 498228-1.xul 498228-1-ref.xul
== 501037.html 501037-ref.html
@ -1555,7 +1555,7 @@ needs-focus == 568441.html 568441-ref.html
== 571347-1b.html 571347-1-ref.html
== 571347-2a.html 571347-2-ref.html
== 571347-2b.html 571347-2-ref.html
fails-if(styloVsGecko) == 571347-2c.html 571347-2-ref.html
fails-if(styloVsGecko||stylo) == 571347-2c.html 571347-2-ref.html
== 571347-2d.html 571347-2-ref.html
== 571347-3.html 571347-3-ref.html
== 572598-1.html 572598-ref.html
@ -1587,8 +1587,8 @@ asserts(1-2) asserts-if(styloVsGecko,4) == 582146-1.html about:blank
fuzzy-if(Android,2,48) == 585598-2.xhtml 585598-2-ref.xhtml
== 586400-1.html 586400-1-ref.html
fuzzy-if(d2d,52,1051) == 586683-1.html 586683-1-ref.html
fails-if(styloVsGecko) == 589615-1a.xhtml 589615-1-ref.html
fails-if(styloVsGecko) == 589615-1b.html 589615-1-ref.html
fails-if(styloVsGecko||stylo) == 589615-1a.xhtml 589615-1-ref.html
fails-if(styloVsGecko||stylo) == 589615-1b.html 589615-1-ref.html
== 589672-1.html 589672-1-ref.html
!= 589682-1.html 589682-1-notref.html
pref(dom.meta-viewport.enabled,true) skip-if(Android) == 593243-1.html 593243-1-ref.html # bug 593168
@ -1649,7 +1649,7 @@ fuzzy-if(d2d,5,1) == 622585-1.html 622585-1-ref.html # bug 789402
fuzzy-if(Android,8,300) fuzzy-if(skiaContent,1,40000) == 625409-1.html 625409-1-ref.html
== 627393-1.html about:blank
fuzzy-if(skiaContent,1,500) == 630835-1.html about:blank
fails-if(styloVsGecko) == 631352-1.html 631352-1-ref.html
fails-if(styloVsGecko||stylo) == 631352-1.html 631352-1-ref.html
skip-if(!haveTestPlugin) fails-if(Android) fuzzy-if(winWidget&&!layersGPUAccelerated,102,535) fuzzy-if(skiaContent&&!Android,102,11000) HTTP == 632423-1.html 632423-1-ref.html
skip-if(Android) random-if(winWidget||OSX==1010) == 632781-verybig.html 632781-ref.html
== 632781-normalsize.html 632781-ref.html
@ -1667,7 +1667,7 @@ fuzzy-if(Android,8,500) fuzzy-if(skiaContent,2,1) == 637852-2.html 637852-2-ref.
fuzzy-if(Android,8,500) == 637852-3.html 637852-3-ref.html
== 641770-1.html 641770-1-ref.html
== 641856-1.html 641856-1-ref.html
fails-if(styloVsGecko) == 645491-1.html 645491-1-ref.html
fails-if(styloVsGecko||stylo) == 645491-1.html 645491-1-ref.html
== 645647-1.html 645647-1-ref.html
== 645647-2.html 645647-2-ref.html
== 645768-1.html 645768-1-ref.html
@ -1704,7 +1704,7 @@ fuzzy-if(skiaContent,1,200) == 696307-1.html 696307-1-ref.html
fuzzy-if(skiaContent,1,550) == 696739-1.html 696739-1-ref.html
needs-focus fails-if(styloVsGecko) == 703186-1.html 703186-1-ref.html
needs-focus == 703186-2.html 703186-2-ref.html
needs-focus fails-if(styloVsGecko) != 703186-1.html 703186-2.html
needs-focus fails-if(styloVsGecko||stylo) != 703186-1.html 703186-2.html
== 711359-1.html 711359-1-ref.html
== 712849-1.html 712849-1-ref.html
== 713856-static.html 713856-ref.html
@ -1720,9 +1720,9 @@ fuzzy(2,40000) == 722923-1.html 722923-1-ref.html
== 723484-1.html 723484-1-ref.html
random-if(Android) == 728983-1.html 728983-1-ref.html
== 729143-1.html 729143-1-ref.html
fails-if(styloVsGecko) == 731521-1.html 731521-1-ref.html
fails-if(styloVsGecko||stylo) == 731521-1.html 731521-1-ref.html
needs-focus fails-if(styloVsGecko) == 731726-1.html 731726-1-ref.html
fails-if(styloVsGecko) == 735481-1.html 735481-1-ref.html
fails-if(styloVsGecko||stylo) == 735481-1.html 735481-1-ref.html
fuzzy-if(cocoaWidget,1,300000) fuzzy-if(skiaContent,2,300000) == 745934-1.html 745934-1-ref.html
== 748692-1a.html 748692-1-ref.html
== 748692-1b.html 748692-1-ref.html
@ -1779,11 +1779,11 @@ fuzzy-if(OSX,1,364) fuzzy-if(skiaContent,1,320) == 846144-1.html 846144-1-ref.ht
!= 860370.html 860370-notref.html
== 871338-1.html 871338-1-ref.html
== 875060-1.html 875060-1-ref.html
fails-if(styloVsGecko) == 883987-1a.html 883987-1-ref.html
fails-if(styloVsGecko) == 883987-1b.html 883987-1-ref.html
fails-if(styloVsGecko) == 883987-1c.html 883987-1-ref.html
fails-if(styloVsGecko) == 883987-1d.html 883987-1-ref.html
fails-if(styloVsGecko) == 883987-1e.html 883987-1-ref.html
fails-if(styloVsGecko||stylo) == 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-if(styloVsGecko||stylo) == 883987-1d.html 883987-1-ref.html
fails-if(styloVsGecko||stylo) == 883987-1e.html 883987-1-ref.html
== 883987-1f.html 883987-1-ref.html
== 890495-1.html 890495-1-ref.html
== 894931-1.html 894931-1-ref.html
@ -1811,7 +1811,7 @@ fuzzy-if(skiaContent,1,5) == 956513-1.svg 956513-1-ref.svg
fuzzy-if(skiaContent,1,80) == 961887-1.html 961887-1-ref.html
== 961887-2.html 961887-2-ref.html
== 961887-3.html 961887-3-ref.html
pref(layout.css.overflow-clip-box.enabled,true) fuzzy(50,145) fuzzy-if(asyncPan&&!layersGPUAccelerated,102,3712) fails-if(styloVsGecko) == 966992-1.html 966992-1-ref.html
pref(layout.css.overflow-clip-box.enabled,true) fuzzy(50,145) fuzzy-if(asyncPan&&!layersGPUAccelerated,102,3712) fails-if(styloVsGecko||stylo) == 966992-1.html 966992-1-ref.html
skip-if(Android) == 966510-1.html 966510-1-ref.html # scrollable elements other than the root probably won't work well on android until bug 776030 is fixed
skip-if(Android) == 966510-2.html 966510-2-ref.html # same as above
fuzzy-if(skiaContent,1,123) == 978911-1.svg 978911-1-ref.svg
@ -1952,7 +1952,7 @@ fuzzy-if(skiaContent,1,1) == 1202512-2.html 1202512-2-ref.html
== 1209994-3.html 1209994-3-ref.html
== 1209994-4.html 1209994-4-ref.html
== 1222226-1.html 1222226-1-ref.html
pref(layout.css.overflow-clip-box.enabled,true) fails-if(styloVsGecko) == 1226278.html 1226278-ref.html
pref(layout.css.overflow-clip-box.enabled,true) fails-if(styloVsGecko||stylo) == 1226278.html 1226278-ref.html
== 1230466.html about:blank
random-if(gtkWidget) != 1238243-1.html 1238243-1-notref.html # may fail on Linux, depending on Korean fonts available
== 1238243-2.html 1238243-2-ref.html

View File

@ -31,5 +31,5 @@ fails-if(webrender) == dependent-builtin.html dependent-builtin-ref.ht
== redefine-builtin.html redefine-builtin-ref.html
== redefine-attr-mapping.html redefine-attr-mapping-ref.html
== disclosure-styles.html disclosure-styles-ref.html
fails-if(styloVsGecko) == symbols-function.html symbols-function-ref.html
== symbols-function.html symbols-function-ref.html
== symbols-function-invalid.html symbols-function-invalid-ref.html

View File

@ -5,11 +5,11 @@ fuzzy-if(Android,8,604) == display-contents-acid.html display-contents-acid-ref.
fuzzy-if(Android,8,604) == display-contents-acid-dyn-1.html display-contents-acid-ref.html
fuzzy-if(Android,8,604) == display-contents-acid-dyn-2.html display-contents-acid-ref.html
fuzzy-if(Android,8,604) == display-contents-acid-dyn-3.html display-contents-acid-ref.html
skip-if(styloVsGecko) == display-contents-generated-content.html display-contents-generated-content-ref.html
skip-if(styloVsGecko) == display-contents-generated-content-2.html display-contents-generated-content-ref.html
fails-if(styloVsGecko) == display-contents-style-inheritance-1.html display-contents-style-inheritance-1-ref.html
fails-if(styloVsGecko) == display-contents-style-inheritance-1-stylechange.html display-contents-style-inheritance-1-ref.html
fuzzy-if(winWidget,12,100) skip-if(styloVsGecko) == display-contents-style-inheritance-1-dom-mutations.html display-contents-style-inheritance-1-ref.html
skip-if(styloVsGecko||stylo) == display-contents-generated-content.html display-contents-generated-content-ref.html
skip-if(styloVsGecko||stylo) == display-contents-generated-content-2.html display-contents-generated-content-ref.html
fails-if(styloVsGecko||stylo) == display-contents-style-inheritance-1.html display-contents-style-inheritance-1-ref.html
fails-if(styloVsGecko||stylo) == display-contents-style-inheritance-1-stylechange.html display-contents-style-inheritance-1-ref.html
fuzzy-if(winWidget,12,100) skip-if(styloVsGecko||stylo) == display-contents-style-inheritance-1-dom-mutations.html display-contents-style-inheritance-1-ref.html
== display-contents-tables.xhtml display-contents-tables-ref.xhtml
== display-contents-tables-2.xhtml display-contents-tables-ref.xhtml
== display-contents-tables-3.xhtml display-contents-tables-3-ref.xhtml
@ -17,7 +17,7 @@ fuzzy-if(winWidget,12,100) skip-if(styloVsGecko) == display-contents-style-inher
== display-contents-visibility-hidden-2.html display-contents-visibility-hidden-ref.html
== display-contents-495385-2d.html display-contents-495385-2d-ref.html
fuzzy-if(Android,7,3935) == display-contents-xbl.xhtml display-contents-xbl-ref.html
fuzzy-if(Android,7,1186) pref(dom.webcomponents.enabled,true) skip-if(styloVsGecko) == display-contents-shadow-dom-1.html display-contents-shadow-dom-1-ref.html
fuzzy-if(Android,7,1186) pref(dom.webcomponents.enabled,true) skip-if(styloVsGecko||stylo) == display-contents-shadow-dom-1.html display-contents-shadow-dom-1-ref.html
== display-contents-xbl-2.xul display-contents-xbl-2-ref.xul
asserts(1) asserts-if(styloVsGecko,2) == display-contents-xbl-3.xul display-contents-xbl-3-ref.xul # bug 1089223
skip == display-contents-xbl-4.xul display-contents-xbl-4-ref.xul # fails (not just asserts) due to bug 1089223
@ -29,4 +29,4 @@ asserts(1) asserts-if(styloVsGecko,2) == display-contents-xbl-5.xul display-cont
== display-contents-writing-mode-2.html display-contents-writing-mode-2-ref.html
needs-focus == display-contents-state-change.html display-contents-state-change-ref.html
pref(layout.css.display-flow-root.enabled,true) == display-flow-root-001.html display-flow-root-001-ref.html
pref(layout.css.display-flow-root.enabled,false) fails-if(styloVsGecko) == display-flow-root-001.html display-flow-root-disabled-001-ref.html
pref(layout.css.display-flow-root.enabled,false) fails-if(styloVsGecko||stylo) == display-flow-root-001.html display-flow-root-disabled-001-ref.html

View File

@ -19,19 +19,19 @@ fails-if(!styloVsGecko) skip-if(styloVsGecko) == grid-whitespace-handling-1b.xht
== grid-track-sizing-002.html grid-track-sizing-002-ref.html
== grid-abspos-items-001.html grid-abspos-items-001-ref.html
== grid-abspos-items-002.html grid-abspos-items-002-ref.html
fails-if(styloVsGecko) == grid-abspos-items-003.html grid-abspos-items-003-ref.html
fails-if(styloVsGecko) == grid-abspos-items-004.html grid-abspos-items-004-ref.html
fails-if(styloVsGecko) == grid-abspos-items-005.html grid-abspos-items-005-ref.html
fails-if(styloVsGecko) == grid-abspos-items-006.html grid-abspos-items-006-ref.html
fails-if(styloVsGecko) == grid-abspos-items-007.html grid-abspos-items-007-ref.html
fails-if(styloVsGecko) == grid-abspos-items-008.html grid-abspos-items-008-ref.html
fails-if(styloVsGecko) == grid-abspos-items-009.html grid-abspos-items-009-ref.html
fails-if(styloVsGecko) == grid-abspos-items-010.html grid-abspos-items-010-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-items-003.html grid-abspos-items-003-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-items-004.html grid-abspos-items-004-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-items-005.html grid-abspos-items-005-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-items-006.html grid-abspos-items-006-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-items-007.html grid-abspos-items-007-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-items-008.html grid-abspos-items-008-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-items-009.html grid-abspos-items-009-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-items-010.html grid-abspos-items-010-ref.html
== grid-abspos-items-011.html grid-abspos-items-011-ref.html
== grid-abspos-items-012.html grid-abspos-items-012-ref.html
== grid-abspos-items-013.html grid-abspos-items-013-ref.html
fails-if(styloVsGecko) == grid-abspos-items-014.html grid-abspos-items-014-ref.html
fails-if(styloVsGecko) == grid-abspos-items-015.html grid-abspos-items-015-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-items-014.html grid-abspos-items-014-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-items-015.html grid-abspos-items-015-ref.html
== grid-order-abspos-items-001.html grid-order-abspos-items-001-ref.html
== grid-order-placement-auto-001.html grid-order-placement-auto-001-ref.html
fuzzy-if(skiaContent,1,200) == grid-order-placement-definite-001.html grid-order-placement-definite-001-ref.html
@ -54,30 +54,30 @@ fuzzy-if(winWidget,70,130) fuzzy-if(cocoaWidget,85,180) == grid-col-max-sizing-m
fuzzy-if(winWidget,70,130) fuzzy-if(cocoaWidget,85,180) == grid-col-max-sizing-max-content-002.html grid-col-max-sizing-max-content-002-ref.html
== grid-min-max-content-sizing-001.html grid-min-max-content-sizing-001-ref.html
== grid-min-max-content-sizing-002.html grid-min-max-content-sizing-002-ref.html
fuzzy-if(winWidget,1,36) == grid-auto-min-sizing-definite-001.html grid-auto-min-sizing-definite-001-ref.html
fuzzy-if(winWidget,1,36) fails-if(stylo) == grid-auto-min-sizing-definite-001.html grid-auto-min-sizing-definite-001-ref.html
== grid-auto-min-sizing-intrinsic-001.html grid-auto-min-sizing-intrinsic-001-ref.html
== grid-auto-min-sizing-intrinsic-002.html grid-auto-min-sizing-intrinsic-002-ref.html
== grid-auto-min-sizing-intrinsic-003.html grid-auto-min-sizing-intrinsic-003-ref.html
== grid-auto-min-sizing-intrinsic-004.html grid-auto-min-sizing-intrinsic-004-ref.html
== grid-auto-min-sizing-transferred-size-001.html grid-auto-min-sizing-transferred-size-001-ref.html
== grid-auto-min-sizing-transferred-size-002.html grid-auto-min-sizing-transferred-size-002-ref.html
== grid-auto-min-sizing-transferred-size-003.html grid-auto-min-sizing-transferred-size-003-ref.html
== grid-auto-min-sizing-transferred-size-004.html grid-auto-min-sizing-transferred-size-004-ref.html
fails-if(stylo) == grid-auto-min-sizing-transferred-size-003.html grid-auto-min-sizing-transferred-size-003-ref.html
fails-if(stylo) == grid-auto-min-sizing-transferred-size-004.html grid-auto-min-sizing-transferred-size-004-ref.html
== grid-auto-min-sizing-min-content-min-size-001.html grid-auto-min-sizing-min-content-min-size-001-ref.html
== grid-auto-min-sizing-min-content-min-size-002.html grid-auto-min-sizing-min-content-min-size-002-ref.html
== grid-auto-min-sizing-min-content-min-size-003.html grid-auto-min-sizing-min-content-min-size-003-ref.html
== grid-auto-min-sizing-min-content-min-size-004.html grid-auto-min-sizing-min-content-min-size-004-ref.html
fails-if(stylo) == grid-auto-min-sizing-min-content-min-size-003.html grid-auto-min-sizing-min-content-min-size-003-ref.html
fails-if(stylo) == grid-auto-min-sizing-min-content-min-size-004.html grid-auto-min-sizing-min-content-min-size-004-ref.html
== grid-min-content-min-sizing-transferred-size-001.html grid-min-content-min-sizing-transferred-size-001-ref.html
== grid-min-content-min-sizing-transferred-size-002.html grid-min-content-min-sizing-transferred-size-002-ref.html
== grid-min-content-min-sizing-transferred-size-003.html grid-min-content-min-sizing-transferred-size-003-ref.html
== grid-min-content-min-sizing-transferred-size-004.html grid-min-content-min-sizing-transferred-size-004-ref.html
fails-if(stylo) == grid-min-content-min-sizing-transferred-size-004.html grid-min-content-min-sizing-transferred-size-004-ref.html
skip-if(Android) == grid-auto-min-sizing-percent-001.html grid-auto-min-sizing-percent-001-ref.html # bug 1305716
== grid-track-intrinsic-sizing-001.html grid-track-intrinsic-sizing-001-ref.html
== grid-track-intrinsic-sizing-002.html grid-track-intrinsic-sizing-002-ref.html
== grid-track-intrinsic-sizing-003.html grid-track-intrinsic-sizing-003-ref.html
== grid-track-intrinsic-sizing-004.html grid-track-intrinsic-sizing-004-ref.html
== grid-track-percent-sizing-001.html grid-track-percent-sizing-001-ref.html
fails-if(styloVsGecko) == grid-track-fit-content-sizing-001.html grid-track-fit-content-sizing-001-ref.html
fails-if(stylo) == grid-track-percent-sizing-001.html grid-track-percent-sizing-001-ref.html
fails-if(styloVsGecko||stylo) == grid-track-fit-content-sizing-001.html grid-track-fit-content-sizing-001-ref.html
== grid-track-fit-content-sizing-002.html grid-track-fit-content-sizing-002-ref.html
== grid-max-sizing-flex-001.html grid-max-sizing-flex-001-ref.html
== grid-max-sizing-flex-002.html grid-max-sizing-flex-002-ref.html
@ -85,30 +85,30 @@ fails-if(styloVsGecko) == grid-track-fit-content-sizing-001.html grid-track-fit-
== grid-max-sizing-flex-004.html grid-max-sizing-flex-004-ref.html
== grid-max-sizing-flex-005.html grid-max-sizing-flex-005-ref.html
== grid-max-sizing-flex-006.html grid-max-sizing-flex-006-ref.html
fails-if(styloVsGecko) == grid-max-sizing-flex-007.html grid-max-sizing-flex-007-ref.html
fails-if(styloVsGecko) == grid-max-sizing-flex-008.html grid-max-sizing-flex-008-ref.html
fails-if(styloVsGecko||stylo) == grid-max-sizing-flex-007.html grid-max-sizing-flex-007-ref.html
fails-if(styloVsGecko||stylo) == grid-max-sizing-flex-008.html grid-max-sizing-flex-008-ref.html
== grid-flex-min-sizing-001.html grid-flex-min-sizing-001-ref.html
== grid-flex-min-sizing-002.html grid-flex-min-sizing-002-ref.html
fails-if(styloVsGecko) == grid-item-align-001.html grid-item-align-001-ref.html
fails-if(styloVsGecko) == grid-item-align-002.html grid-item-align-002-ref.html
fails-if(styloVsGecko) == grid-item-align-003.html grid-item-align-003-ref.html
fails-if(styloVsGecko) == grid-item-justify-001.html grid-item-justify-001-ref.html
fails-if(styloVsGecko) == grid-item-justify-002.html grid-item-justify-002-ref.html
fails-if(styloVsGecko) == grid-item-stretch-001.html grid-item-stretch-001-ref.html
fails-if(styloVsGecko) == grid-item-intrinsic-ratio-stretch-001.html grid-item-intrinsic-ratio-stretch-001-ref.html
fails-if(styloVsGecko) == grid-item-intrinsic-ratio-stretch-002.html grid-item-intrinsic-ratio-stretch-002-ref.html
fails-if(styloVsGecko||stylo) == grid-item-align-001.html grid-item-align-001-ref.html
fails-if(styloVsGecko||stylo) == grid-item-align-002.html grid-item-align-002-ref.html
fails-if(styloVsGecko||stylo) == grid-item-align-003.html grid-item-align-003-ref.html
fails-if(styloVsGecko||stylo) == grid-item-justify-001.html grid-item-justify-001-ref.html
fails-if(styloVsGecko||stylo) == grid-item-justify-002.html grid-item-justify-002-ref.html
fails-if(styloVsGecko||stylo) == grid-item-stretch-001.html grid-item-stretch-001-ref.html
fails-if(styloVsGecko||stylo) == grid-item-intrinsic-ratio-stretch-001.html grid-item-intrinsic-ratio-stretch-001-ref.html
fails-if(styloVsGecko||stylo) == grid-item-intrinsic-ratio-stretch-002.html grid-item-intrinsic-ratio-stretch-002-ref.html
fails-if(styloVsGecko) == grid-item-intrinsic-ratio-stretch-003.html grid-item-intrinsic-ratio-stretch-003-ref.html
fails-if(styloVsGecko) == grid-item-intrinsic-ratio-stretch-004.html grid-item-intrinsic-ratio-stretch-004-ref.html
fails-if(styloVsGecko) == grid-item-intrinsic-ratio-stretch-005.html grid-item-intrinsic-ratio-stretch-005-ref.html
fails-if(styloVsGecko) == grid-item-intrinsic-ratio-stretch-006.html grid-item-intrinsic-ratio-stretch-006-ref.html
fails-if(styloVsGecko) == grid-item-intrinsic-ratio-stretch-007.html grid-item-intrinsic-ratio-stretch-007-ref.html
fails-if(styloVsGecko) == grid-item-intrinsic-ratio-normal-001.html grid-item-intrinsic-ratio-normal-001-ref.html
fails-if(styloVsGecko) == grid-item-intrinsic-ratio-normal-002.html grid-item-intrinsic-ratio-normal-002-ref.html
fails-if(styloVsGecko) == grid-item-intrinsic-ratio-normal-003.html grid-item-intrinsic-ratio-normal-003-ref.html
fails-if(styloVsGecko) == grid-item-intrinsic-ratio-normal-004.html grid-item-intrinsic-ratio-normal-004-ref.html
fails-if(styloVsGecko) == grid-item-intrinsic-ratio-normal-005.html grid-item-intrinsic-ratio-normal-005-ref.html
fails-if(styloVsGecko) == grid-item-intrinsic-size-normal-001.html grid-item-intrinsic-size-normal-001-ref.html
fails-if(styloVsGecko) == grid-item-intrinsic-size-normal-002.html grid-item-intrinsic-size-normal-002-ref.html
fails-if(styloVsGecko||stylo) == grid-item-intrinsic-ratio-stretch-004.html grid-item-intrinsic-ratio-stretch-004-ref.html
fails-if(styloVsGecko||stylo) == grid-item-intrinsic-ratio-stretch-005.html grid-item-intrinsic-ratio-stretch-005-ref.html
fails-if(styloVsGecko||stylo) == grid-item-intrinsic-ratio-stretch-006.html grid-item-intrinsic-ratio-stretch-006-ref.html
fails-if(styloVsGecko||stylo) == grid-item-intrinsic-ratio-stretch-007.html grid-item-intrinsic-ratio-stretch-007-ref.html
fails-if(styloVsGecko||stylo) == grid-item-intrinsic-ratio-normal-001.html grid-item-intrinsic-ratio-normal-001-ref.html
fails-if(styloVsGecko||stylo) == grid-item-intrinsic-ratio-normal-002.html grid-item-intrinsic-ratio-normal-002-ref.html
fails-if(styloVsGecko||stylo) == grid-item-intrinsic-ratio-normal-003.html grid-item-intrinsic-ratio-normal-003-ref.html
fails-if(styloVsGecko||stylo) == grid-item-intrinsic-ratio-normal-004.html grid-item-intrinsic-ratio-normal-004-ref.html
fails-if(styloVsGecko||stylo) == grid-item-intrinsic-ratio-normal-005.html grid-item-intrinsic-ratio-normal-005-ref.html
fails-if(styloVsGecko||stylo) == grid-item-intrinsic-size-normal-001.html grid-item-intrinsic-size-normal-001-ref.html
fails-if(styloVsGecko||stylo) == grid-item-intrinsic-size-normal-002.html grid-item-intrinsic-size-normal-002-ref.html
== grid-item-auto-min-size-clamp-001.html grid-item-auto-min-size-clamp-001-ref.html
== grid-item-auto-min-size-clamp-002.html grid-item-auto-min-size-clamp-002-ref.html
== grid-item-auto-min-size-clamp-003.html grid-item-auto-min-size-clamp-003-ref.html
@ -116,50 +116,50 @@ fails-if(styloVsGecko) == grid-item-intrinsic-size-normal-002.html grid-item-int
== grid-item-auto-min-size-clamp-005.html grid-item-auto-min-size-clamp-005-ref.html
== grid-item-auto-min-size-clamp-006.html grid-item-auto-min-size-clamp-006-ref.html
== grid-item-auto-min-size-clamp-007.html grid-item-auto-min-size-clamp-007-ref.html
fails-if(styloVsGecko) == grid-item-overflow-stretch-001.html grid-item-overflow-stretch-001-ref.html
fails-if(styloVsGecko) == grid-item-overflow-stretch-002.html grid-item-overflow-stretch-002-ref.html
fails-if(styloVsGecko) == grid-item-overflow-stretch-003.html grid-item-overflow-stretch-003-ref.html
fails-if(styloVsGecko) == grid-item-overflow-stretch-004.html grid-item-overflow-stretch-004-ref.html
fails-if(styloVsGecko) == grid-item-overflow-stretch-005.html grid-item-overflow-stretch-005-ref.html
fails-if(styloVsGecko) == grid-item-overflow-stretch-006.html grid-item-overflow-stretch-006-ref.html
fails-if(styloVsGecko) == grid-item-canvas-001.html grid-item-canvas-001-ref.html
skip-if(Android) fails-if(styloVsGecko) == grid-item-button-001.html grid-item-button-001-ref.html
fails-if(styloVsGecko) == grid-item-table-stretch-001.html grid-item-table-stretch-001-ref.html
fails-if(styloVsGecko) == grid-item-table-stretch-002.html grid-item-table-stretch-002-ref.html
fails-if(styloVsGecko) == grid-item-table-stretch-003.html grid-item-table-stretch-003-ref.html
fails-if(styloVsGecko) == grid-item-table-stretch-004.html grid-item-table-stretch-004-ref.html
fails-if(styloVsGecko) == grid-item-fieldset-stretch-001.html grid-item-fieldset-stretch-001-ref.html
skip-if(Android) fails-if(styloVsGecko) == grid-item-video-stretch-001.html grid-item-video-stretch-001-ref.html # Huh, Android doesn't have webm support?
skip-if(Android) fails-if(styloVsGecko) == grid-item-video-stretch-002.html grid-item-video-stretch-002-ref.html # Huh, Android doesn't have webm support?
fails-if(styloVsGecko) == grid-item-input-stretch-001.html grid-item-input-stretch-001-ref.html
fails-if(styloVsGecko) == grid-item-self-baseline-001.html grid-item-self-baseline-001-ref.html
fails-if(styloVsGecko||stylo) == grid-item-overflow-stretch-001.html grid-item-overflow-stretch-001-ref.html
fails-if(styloVsGecko||stylo) == grid-item-overflow-stretch-002.html grid-item-overflow-stretch-002-ref.html
fails-if(styloVsGecko||stylo) == grid-item-overflow-stretch-003.html grid-item-overflow-stretch-003-ref.html
fails-if(styloVsGecko||stylo) == grid-item-overflow-stretch-004.html grid-item-overflow-stretch-004-ref.html
fails-if(styloVsGecko||stylo) == grid-item-overflow-stretch-005.html grid-item-overflow-stretch-005-ref.html
fails-if(styloVsGecko||stylo) == grid-item-overflow-stretch-006.html grid-item-overflow-stretch-006-ref.html
fails-if(styloVsGecko||stylo) == grid-item-canvas-001.html grid-item-canvas-001-ref.html
skip-if(Android) fails-if(styloVsGecko||stylo) == grid-item-button-001.html grid-item-button-001-ref.html
fails-if(styloVsGecko||stylo) == grid-item-table-stretch-001.html grid-item-table-stretch-001-ref.html
fails-if(styloVsGecko||stylo) == grid-item-table-stretch-002.html grid-item-table-stretch-002-ref.html
fails-if(styloVsGecko||stylo) == grid-item-table-stretch-003.html grid-item-table-stretch-003-ref.html
fails-if(styloVsGecko||stylo) == grid-item-table-stretch-004.html grid-item-table-stretch-004-ref.html
fails-if(styloVsGecko||stylo) == grid-item-fieldset-stretch-001.html grid-item-fieldset-stretch-001-ref.html
skip-if(Android) fails-if(styloVsGecko||stylo) == grid-item-video-stretch-001.html grid-item-video-stretch-001-ref.html # Huh, Android doesn't have webm support?
skip-if(Android) fails-if(styloVsGecko||stylo) == grid-item-video-stretch-002.html grid-item-video-stretch-002-ref.html # Huh, Android doesn't have webm support?
fails-if(styloVsGecko||stylo) == grid-item-input-stretch-001.html grid-item-input-stretch-001-ref.html
fails-if(styloVsGecko||stylo) == grid-item-self-baseline-001.html grid-item-self-baseline-001-ref.html
random-if(http.oscpu!="Linux\u0020i686") fails-if(styloVsGecko) == grid-item-content-baseline-001.html grid-item-content-baseline-001-ref.html # depends on exact Ahem baseline font metrics which seems to differ between platforms: bug 1310792
random-if(http.oscpu!="Linux\u0020i686") fails-if(styloVsGecko) == grid-item-content-baseline-002.html grid-item-content-baseline-002-ref.html # ditto
random-if(http.oscpu!="Linux\u0020i686") fails-if(styloVsGecko) == grid-item-mixed-baseline-001.html grid-item-mixed-baseline-001-ref.html # ditto
random-if(http.oscpu!="Linux\u0020i686") fails-if(styloVsGecko) == grid-item-mixed-baseline-002.html grid-item-mixed-baseline-002-ref.html # ditto
random-if(http.oscpu!="Linux\u0020i686") fails-if(styloVsGecko) == 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
fails-if(styloVsGecko) == grid-align-content-001.html grid-align-content-001-ref.html
fails-if(styloVsGecko) == grid-justify-content-001.html grid-justify-content-001-ref.html
skip-if(!gtkWidget) fails-if(styloVsGecko||stylo) == grid-item-mixed-baseline-004.html grid-item-mixed-baseline-004-ref.html # ditto
fails-if(styloVsGecko||stylo) == grid-align-content-001.html grid-align-content-001-ref.html
fails-if(styloVsGecko||stylo) == 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
skip-if(Android&&isDebugBuild) == grid-justify-content-003.html grid-justify-content-003-ref.html # Bug 1245884 - slow
skip-if(!gtkWidget) fails-if(styloVsGecko) == grid-container-baselines-001.html grid-container-baselines-001-ref.html
skip-if(!gtkWidget) fails-if(styloVsGecko) == grid-container-baselines-002.html grid-container-baselines-002-ref.html
skip-if(!gtkWidget) fails-if(styloVsGecko) == grid-container-baselines-003.html grid-container-baselines-003-ref.html
skip-if(!gtkWidget) fails-if(styloVsGecko||stylo) == grid-container-baselines-001.html grid-container-baselines-001-ref.html
skip-if(!gtkWidget) fails-if(styloVsGecko||stylo) == grid-container-baselines-002.html grid-container-baselines-002-ref.html
skip-if(!gtkWidget) fails-if(styloVsGecko||stylo) == grid-container-baselines-003.html grid-container-baselines-003-ref.html
== grid-container-baselines-004.html grid-container-baselines-004-ref.html
== grid-container-synthesized-baseline-001-ref.html grid-container-synthesized-baseline-001-ref.html
skip-if(Android&&isDebugBuild) == grid-column-gap-001.html grid-column-gap-001-ref.html # Bug 1245884 - slow
== grid-column-gap-002.html grid-column-gap-002-ref.html
== grid-column-gap-003.html grid-column-gap-003-ref.html
fails-if(styloVsGecko) == grid-column-gap-004.html grid-column-gap-004-ref.html
fails-if(styloVsGecko) == grid-row-gap-001.html grid-row-gap-001-ref.html
fails-if(styloVsGecko) == grid-percent-grid-gap-001.html grid-percent-grid-gap-001-ref.html
fails-if(styloVsGecko||stylo) == grid-row-gap-001.html grid-row-gap-001-ref.html
fails-if(styloVsGecko||stylo) == grid-percent-grid-gap-001.html grid-percent-grid-gap-001-ref.html
skip-if(Android&&isDebugBuild) == grid-row-gap-002.html grid-row-gap-002-ref.html # Bug 1245884 - slow
skip-if(Android&&isDebugBuild) == grid-row-gap-003.html grid-row-gap-003-ref.html # Bug 1245884 - slow
skip-if(Android&&isDebugBuild) == grid-row-gap-004.html grid-row-gap-004-ref.html # Bug 1245884 - slow
fails-if(styloVsGecko) == grid-row-gap-005.html grid-row-gap-005-ref.html
== grid-container-overflow-001.html grid-container-overflow-001-ref.html
fails-if(styloVsGecko) == grid-item-margin-left-auto-001.html grid-item-margin-left-auto-001-ref.html
fails-if(styloVsGecko||stylo) == grid-item-margin-left-auto-001.html grid-item-margin-left-auto-001-ref.html
fails-if(styloVsGecko) == grid-item-margin-left-auto-002.html grid-item-margin-left-auto-002-ref.html
fails-if(styloVsGecko) == grid-item-margin-left-auto-003.html grid-item-margin-left-auto-003-ref.html
fails-if(styloVsGecko) == grid-item-margin-left-auto-004.html grid-item-margin-left-auto-004-ref.html
@ -167,11 +167,11 @@ fails-if(styloVsGecko) == grid-item-margin-left-right-auto-001.html grid-item-ma
fails-if(styloVsGecko) == grid-item-margin-left-right-auto-002.html grid-item-margin-left-right-auto-002-ref.html
fails-if(styloVsGecko) == grid-item-margin-left-right-auto-003.html grid-item-margin-left-right-auto-003-ref.html
fails-if(styloVsGecko) == grid-item-margin-left-right-auto-004.html grid-item-margin-left-right-auto-004-ref.html
fails-if(styloVsGecko) == grid-item-margin-right-auto-001.html grid-item-margin-right-auto-001-ref.html
fails-if(styloVsGecko||stylo) == grid-item-margin-right-auto-001.html grid-item-margin-right-auto-001-ref.html
fails-if(styloVsGecko) == grid-item-margin-right-auto-002.html grid-item-margin-right-auto-002-ref.html
fails-if(styloVsGecko) == grid-item-margin-right-auto-003.html grid-item-margin-right-auto-003-ref.html
fails-if(styloVsGecko) == grid-item-margin-right-auto-004.html grid-item-margin-right-auto-004-ref.html
fails-if(styloVsGecko) == grid-container-min-max-width-height-001.html grid-container-min-max-width-height-001-ref.html
fails-if(styloVsGecko||stylo) == grid-container-min-max-width-height-001.html grid-container-min-max-width-height-001-ref.html
== grid-clamping-001.html grid-clamping-001-ref.html
== grid-clamping-002.html grid-clamping-002-ref.html
== grid-repeat-auto-fill-fit-001.html grid-repeat-auto-fill-fit-001-ref.html
@ -183,8 +183,8 @@ fails-if(styloVsGecko) == grid-container-min-max-width-height-001.html grid-cont
== grid-repeat-auto-fill-fit-007.html grid-repeat-auto-fill-fit-007-ref.html
== grid-repeat-auto-fill-fit-008.html grid-repeat-auto-fill-fit-008-ref.html
== grid-repeat-auto-fill-fit-009.html grid-repeat-auto-fill-fit-009-ref.html
fails-if(styloVsGecko) == grid-repeat-auto-fill-fit-010.html grid-repeat-auto-fill-fit-010-ref.html
fails-if(styloVsGecko) == grid-repeat-auto-fill-fit-011.html grid-repeat-auto-fill-fit-010-ref.html
fails-if(styloVsGecko||stylo) == grid-repeat-auto-fill-fit-010.html grid-repeat-auto-fill-fit-010-ref.html
fails-if(styloVsGecko||stylo) == grid-repeat-auto-fill-fit-011.html grid-repeat-auto-fill-fit-010-ref.html
== grid-item-blockifying-001.html grid-item-blockifying-001-ref.html
== grid-fragmentation-001.html grid-fragmentation-001-ref.html
== grid-fragmentation-002.html grid-fragmentation-002-ref.html

View File

@ -1,10 +1,10 @@
== 290018-1.html 290018-ref.html
== 436261-1.html 436261-ref.html
== 436261-2.html 436261-ref.html
fails-if(styloVsGecko) == 436261-3.html 436261-ref.html
fails-if(styloVsGecko||stylo) == 436261-3.html 436261-ref.html
== 444723-1.html 444723-ref.html
== 444723-2.html 444723-ref.html
fails-if(styloVsGecko) == 445415-1a.xhtml 445415-1-ref.xhtml
fails-if(styloVsGecko||stylo) == 445415-1a.xhtml 445415-1-ref.xhtml
== 445415-1b.xhtml 445415-1-ref.xhtml
== 445415-2a.xhtml 445415-2-ref.xhtml
fails-if(styloVsGecko) == 445415-2b.xhtml 445415-2-ref.xhtml
fails-if(styloVsGecko||stylo) == 445415-2b.xhtml 445415-2-ref.xhtml

View File

@ -16,4 +16,4 @@ fuzzy-if(Android,8,454) == mq_print_maxheight.xhtml mq_print-ref.xhtml
== mq_print_minwidth_updown.xhtml mq_print-ref.xhtml
== scoped-mq-update.html scoped-mq-update-ref.html
fails-if(styloVsGecko) == system-metrics-1.html system-metrics-1-ref.html
fails-if(styloVsGecko||stylo) == system-metrics-1.html system-metrics-1-ref.html

View File

@ -1,5 +1,5 @@
== at-rule-013.html at-rule-013-ref.html
fails-if(styloVsGecko) == invalid-url-handling.xhtml invalid-url-handling-ref.xhtml
fails-if(styloVsGecko||stylo) == invalid-url-handling.xhtml invalid-url-handling-ref.xhtml
== pseudo-elements-1.html pseudo-elements-1-ref.html
== invalid-attr-1.html invalid-attr-1-ref.html
== at-rule-error-handling-import-1.html at-rule-error-handling-ref.html

View File

@ -1,7 +1,7 @@
include input/reftest.list
include textarea/reftest.list
fuzzy-if(skiaContent,1,4) fails-if(styloVsGecko) == css-restrictions.html css-restrictions-ref.html
fuzzy-if(skiaContent,1,4) fails-if(styloVsGecko||stylo) == css-restrictions.html css-restrictions-ref.html
fails-if(styloVsGecko) == css-simple-styling.html css-simple-styling-ref.html
fails-if(styloVsGecko) != css-background.html css-background-ref.html
fuzzy-if(skiaContent,1,180) fails-if(styloVsGecko) == ignore-pseudo-class.html ignore-pseudo-class-ref.html

View File

@ -5,10 +5,10 @@
== box-generation-3.html box-generation-3-ref.html
== box-generation-4.html box-generation-4-ref.html
== box-generation-5.html box-generation-5-ref.html
fails-if(styloVsGecko) == box-properties-1.html box-properties-1-ref.html
fails-if(styloVsGecko) == box-properties-2.html box-properties-2-ref.html
fails-if(styloVsGecko) == box-properties-3.html box-properties-3-ref.html
fails-if(styloVsGecko) == box-properties-4.html box-properties-4-ref.html
fails-if(styloVsGecko||stylo) == box-properties-1.html box-properties-1-ref.html
fails-if(styloVsGecko||stylo) == box-properties-2.html box-properties-2-ref.html
fails-if(styloVsGecko||stylo) == box-properties-3.html box-properties-3-ref.html
fails-if(styloVsGecko||stylo) == box-properties-4.html box-properties-4-ref.html
== dynamic-insertion-1.html dynamic-insertion-1-ref.html
== dynamic-insertion-2.html dynamic-insertion-2-ref.html
fails-if(styloVsGecko) == dynamic-insertion-3.html dynamic-insertion-3-ref.html
@ -22,29 +22,29 @@ test-pref(dom.meta-viewport.enabled,true) test-pref(font.size.inflation.emPerLin
== intra-level-whitespace-3.html intra-level-whitespace-3-ref.html
== intrinsic-isize-1.html intrinsic-isize-1-ref.html
== intrinsic-isize-2.html intrinsic-isize-2-ref.html
fails-if(styloVsGecko) == justification-1.html justification-1-ref.html
fails-if(styloVsGecko||stylo) == justification-1.html justification-1-ref.html
fails-if(styloVsGecko) == justification-2.html justification-2-ref.html
fuzzy-if(winWidget,255,792) == lang-specific-style-1.html lang-specific-style-1-ref.html # bug 1134947
== line-breaking-1.html line-breaking-1-ref.html
fails-if(styloVsGecko) == line-breaking-2.html line-breaking-2-ref.html
fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),3,2) skip-if(styloVsGecko) == line-break-suppression-1.html line-break-suppression-1-ref.html
fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),3,2) skip-if(styloVsGecko) == line-break-suppression-2.html line-break-suppression-2-ref.html
skip-if(styloVsGecko) == line-break-suppression-3.html line-break-suppression-3-ref.html
fails-if(styloVsGecko||stylo) == line-breaking-2.html line-breaking-2-ref.html
fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),3,2) skip-if(styloVsGecko||stylo) == line-break-suppression-1.html line-break-suppression-1-ref.html
fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),3,2) skip-if(styloVsGecko||stylo) == line-break-suppression-2.html line-break-suppression-2-ref.html
skip-if(styloVsGecko||stylo) == line-break-suppression-3.html line-break-suppression-3-ref.html
== line-break-suppression-4.html line-break-suppression-4-ref.html
== line-break-suppression-5.html line-break-suppression-5-ref.html
== line-height-1.html line-height-1-ref.html
== line-height-2.html line-height-2-ref.html
== line-height-3.html line-height-3-ref.html
== line-height-4.html line-height-4-ref.html
test-pref(font.minimum-size.ja,16) fails-if(styloVsGecko) == min-font-size-1.html min-font-size-1-ref.html
test-pref(font.minimum-size.ja,16) fails-if(styloVsGecko||stylo) == min-font-size-1.html min-font-size-1-ref.html
skip-if(styloVsGecko) load nested-ruby-1.html
== no-transform.html no-transform-ref.html
fails-if(styloVsGecko) == relative-positioning-1.html relative-positioning-1-ref.html
fails-if(styloVsGecko||stylo) == relative-positioning-1.html relative-positioning-1-ref.html
== relative-positioning-2.html relative-positioning-2-ref.html
fails-if(styloVsGecko) == ruby-align-1.html ruby-align-1-ref.html
fails-if(styloVsGecko) == ruby-align-1a.html ruby-align-1-ref.html
fails-if(styloVsGecko) == ruby-align-2.html ruby-align-2-ref.html
fails-if(styloVsGecko) == ruby-align-2a.html ruby-align-2-ref.html
fails-if(styloVsGecko||stylo) == ruby-align-1.html ruby-align-1-ref.html
fails-if(styloVsGecko||stylo) == ruby-align-1a.html ruby-align-1-ref.html
fails-if(styloVsGecko||stylo) == ruby-align-2.html ruby-align-2-ref.html
fails-if(styloVsGecko||stylo) == ruby-align-2a.html ruby-align-2-ref.html
== ruby-position-horizontal.html ruby-position-horizontal-ref.html
== ruby-position-vertical-lr.html ruby-position-vertical-lr-ref.html
== ruby-position-vertical-rl.html ruby-position-vertical-rl-ref.html

View File

@ -2,5 +2,5 @@
== attr-case-insensitive-1.html attr-case-insensitive-1-ref.html
== sibling-combinators-on-anon-content-1.xhtml sibling-combinators-on-anon-content-ref.xhtml
== sibling-combinators-on-anon-content-2.xhtml sibling-combinators-on-anon-content-ref.xhtml
fails-if(styloVsGecko) == nth-child-1.html nth-child-ref.html
fails-if(styloVsGecko) == nth-child-2.html nth-child-ref.html
fails-if(styloVsGecko||stylo) == nth-child-1.html nth-child-ref.html
fails-if(styloVsGecko||stylo) == nth-child-2.html nth-child-ref.html

View File

@ -1,15 +1,15 @@
fails-if(stylo) == unit-rem-div-fontsize.html unit-rem-ref.html
fails-if(stylo) == unit-rem-div-width-inner.html unit-rem-ref.html
fails-if(stylo) == unit-rem-div-width-outer.html unit-rem-ref.html
fails-if(stylo) == unit-rem-iframe.html unit-rem-ref-iframe.html
== unit-rem-div-fontsize.html unit-rem-ref.html
== unit-rem-div-width-inner.html unit-rem-ref.html
== unit-rem-div-width-outer.html unit-rem-ref.html
skip-if(styloVsGecko||stylo) == unit-rem-iframe.html unit-rem-ref-iframe.html
== unit-rem-root-fontsize.html unit-rem-ref-root-fontsize.html
== unit-rem-root-fontsize.html unit-rem-ref2-root-fontsize.html
== unit-rem-root-width.html unit-rem-ref-root-width.html
fails-if(stylo) == unit-rem.svg unit-rem-ref.svg
== unit-rem.svg unit-rem-ref.svg
== 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(styloVsGecko) == unit-vh-vw-overflow-scroll.html unit-vh-vw-overflow-scroll-ref.html
fails-if(styloVsGecko) == unit-vh-vw-overflow-scroll-x.html unit-vh-vw-overflow-scroll-x-ref.html
fails-if(styloVsGecko) == unit-vh-vw-overflow-scroll-y.html unit-vh-vw-overflow-scroll-y-ref.html
skip-if(Android) != unit-vh-vw-overflow-auto.html unit-vh-vw-overflow-scroll.html
fails-if(styloVsGecko||stylo) == unit-vh-vw-overflow-scroll.html unit-vh-vw-overflow-scroll-ref.html
fails-if(styloVsGecko||stylo) == unit-vh-vw-overflow-scroll-x.html unit-vh-vw-overflow-scroll-x-ref.html
fails-if(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

View File

@ -49,7 +49,7 @@
== multipleappendwithinput.xhtml multipleappendwithinput-ref.xhtml
== multipleappendwitheditable.xhtml multipleappendwitheditable-ref.xhtml
fails-if(styloVsGecko) == xbl-children-1.xhtml xbl-children-1-ref.xhtml
fails-if(styloVsGecko||stylo) == xbl-children-1.xhtml xbl-children-1-ref.xhtml
== xbl-children-2.xhtml about:blank
== xbl-children-3.xhtml xbl-children-3-ref.html
== xbl-children-4.xhtml about:blank

View File

@ -22,10 +22,10 @@ fails-if(!styloVsGecko) == quote-1d.html quote-1-ref.html
fails-if(!styloVsGecko) == quote-1e.html quote-1-ref.html # bug 509685
== quote-1e.html quote-1b.html
== quote-1f.html quote-1-ref.html
fails-if(!styloVsGecko) fails-if(styloVsGecko) == dynamic-1.html dynamic-1-ref.html # bug 8253
fails-if(!stylo) fails-if(styloVsGecko) == dynamic-1.html dynamic-1-ref.html # bug 8253
random-if(d2d) == dynamic-2.html dynamic-2-ref.html
fails-if(styloVsGecko) asserts-if(styloVsGecko,6) == dynamic-3a.html dynamic-3-ref.html
fails-if(styloVsGecko) asserts-if(styloVsGecko,6) == dynamic-3b.html dynamic-3-ref.html
fails-if(styloVsGecko) asserts-if(styloVsGecko,6) asserts-if(stylo,6) fails-if(stylo) == dynamic-3a.html dynamic-3-ref.html
fails-if(styloVsGecko) asserts-if(styloVsGecko,6) asserts-if(stylo,6) fails-if(stylo) == dynamic-3b.html dynamic-3-ref.html
== 23605-1.html 23605-1-ref.html
== 23605-2.html 23605-2-ref.html
== 23605-3.html 23605-3-ref.html
@ -33,14 +33,14 @@ fails-if(styloVsGecko) asserts-if(styloVsGecko,6) == dynamic-3b.html dynamic-3-r
== 23605-5.html 23605-5-ref.html
== 23605-6.html 23605-6-ref.html
!= 229764-1.html 229764-ref.html
fails-if(styloVsGecko) == 229764-2.html 229764-ref.html
fails-if(styloVsGecko||stylo) == 229764-2.html 229764-ref.html
== 329069-1.html 329069-1-ref.html
fails-if(Android) == 329069-2.html 329069-2-ref.html # Bug 999139
== 329069-3.html 329069-3-ref.html
== 329069-4.html 329069-4-ref.html
HTTP(..) == 329069-5.html 329069-5-ref.html
== 342120-1.xhtml 342120-1-ref.xhtml
fails-if(styloVsGecko) asserts-if(styloVsGecko,6) == 379799-1.html 379799-1-ref.html
fails-if(styloVsGecko) asserts-if(styloVsGecko,6) asserts-if(stylo,6) fails-if(stylo) == 379799-1.html 379799-1-ref.html
== 399941-1.html 399941-1-ref.html
== 399941-2.html 399941-2-ref.html
== 399941-3.html 399941-3-ref.html
@ -51,7 +51,7 @@ fails-if(styloVsGecko) asserts-if(styloVsGecko,6) == 379799-1.html 379799-1-ref.
== 399941-8.html 399941-8-ref.html
== 399941-9.html 399941-9-ref.html
== 429968-1a.html 429968-1-ref.html
fails-if(styloVsGecko) == 429968-1b.html 429968-1-ref.html
fails-if(styloVsGecko||stylo) == 429968-1b.html 429968-1-ref.html
== 429968-2a.html 429968-2-ref.html
== 429968-2b.html 429968-2-ref.html
== 429968-2c.html 429968-2-ref.html

View File

@ -1,11 +1,11 @@
# basic functionality
fails-if(styloVsGecko) == basic-1.html basic-ref.html
fails-if(styloVsGecko||stylo) == basic-1.html basic-ref.html
# handling of out-of-flows when ::first-line happens
== out-of-flow-1a.html out-of-flow-1-ref.html
fails-if(styloVsGecko) == out-of-flow-1b.html out-of-flow-1-ref.html
fails-if(styloVsGecko||stylo) == out-of-flow-1b.html out-of-flow-1-ref.html
== out-of-flow-1c.html out-of-flow-1-ref.html
fails fails-if(styloVsGecko) == out-of-flow-1d.html out-of-flow-1-ref.html # bug 396645
fails-if(!stylo) fails-if(styloVsGecko) == out-of-flow-1d.html out-of-flow-1-ref.html # bug 396645
# parent style context correct
== parent-style-1.html parent-style-1-ref.html
@ -25,13 +25,13 @@ load stress-7.html # assertion/crash test
load stress-10.html # crash test
== stress-11.xhtml stress-11-ref.xhtml
fails-if(styloVsGecko) == border-not-apply.html border-not-apply-ref.html
fails-if(styloVsGecko) == 287088-1.html 287088-1-ref.html
fails-if(styloVsGecko) == 287088-2.html 287088-2-ref.html
fails-if(styloVsGecko||stylo) == border-not-apply.html border-not-apply-ref.html
fails-if(styloVsGecko||stylo) == 287088-1.html 287088-1-ref.html
fails-if(styloVsGecko||stylo) == 287088-2.html 287088-2-ref.html
fails-if(styloVsGecko) == 403177-1.html 403177-1-ref.html
fails-if(styloVsGecko) == 469227-2.html 469227-2-ref.html
fails-if(styloVsGecko) == 469227-3.html 469227-3-ref.html
fails-if(styloVsGecko||stylo) == 469227-2.html 469227-2-ref.html
fails-if(styloVsGecko||stylo) == 469227-3.html 469227-3-ref.html
fails-if(styloVsGecko) == restyle-inside-first-line.html restyle-inside-first-line-ref.html
fails-if(styloVsGecko) == font-styles.html font-styles-ref.html
fuzzy-if(OSX==1010,1,2) fails-if(styloVsGecko) == font-styles-nooverflow.html font-styles-ref.html
fails-if(styloVsGecko||stylo) == restyle-inside-first-line.html restyle-inside-first-line-ref.html
fails-if(styloVsGecko||stylo) == font-styles.html font-styles-ref.html
fuzzy-if(OSX==1010,1,2) fails-if(styloVsGecko||stylo) == font-styles-nooverflow.html font-styles-ref.html

View File

@ -91,8 +91,8 @@ random-if(styloVsGecko) HTTP(..) == media-query-remove-1.html media-query-remove
HTTP(..) != media-query-add-1-ref.html media-query-remove-1-ref.html
HTTP(..) == ahem-metrics-1.html ahem-metrics-1-ref.html
skip-if(styloVsGecko) HTTP(..) == ex-unit-1.html ex-unit-1-ref.html
skip-if(styloVsGecko) HTTP(..) == ex-unit-1-dynamic.html ex-unit-1-ref.html
skip-if(styloVsGecko) fails-if(stylo) HTTP(..) == ex-unit-1.html ex-unit-1-ref.html
skip-if(styloVsGecko||stylo) HTTP(..) == ex-unit-1-dynamic.html ex-unit-1-ref.html
== local-1.html local-1-ref.html
== local-styled-1.html local-styled-1-ref.html

View File

@ -34,11 +34,11 @@ HTTP(..) == font-features-hlig-3.html font-features-noliga.html
# compare font-language-override rendering to lang-tagged rendering
HTTP(..) == font-features-turkish-override-1.html font-features-turkish.html
fails-if(styloVsGecko) HTTP(..) == font-features-turkish-override-2.html font-features-turkish.html
fails-if(styloVsGecko||stylo) HTTP(..) == font-features-turkish-override-2.html font-features-turkish.html
# check use of font-language-override to override explicit lang tag
HTTP(..) == font-features-turkish-override-3.html font-features-ref.html
fails-if(styloVsGecko) HTTP(..) == font-features-turkish-override-4.html font-features-ref.html
fails-if(styloVsGecko||stylo) HTTP(..) == font-features-turkish-override-4.html font-features-ref.html
HTTP(..) == font-features-turkish-override-5.html font-features-turkish.html
# check that last value wins if a feature is repeated
@ -51,7 +51,7 @@ HTTP(..) == font-features-order-4.html font-features-noliga.html
HTTP(..) == font-features-order-5.html font-features-hlig.html
# check priority involving feature settings and font-variant-alternates
fails-if(styloVsGecko) HTTP(..) == alternates-order.html alternates-order-ref.html
fails-if(styloVsGecko||stylo) HTTP(..) == alternates-order.html alternates-order-ref.html
# check that font-specific values line up with @font-face feature settings
HTTP(..) == annotations.html annotations-ref.html
@ -59,7 +59,7 @@ HTTP(..) == annotations.html annotations-ref.html
# font-variant subproperties
# test for specific features being on and others off, based on prop values
# (debug problems with font-variant-debug.html which displays all props)
fails-if(styloVsGecko) HTTP(..) == font-variant-alternates.html font-variant-alternates-ref.html
fails-if(styloVsGecko||stylo) HTTP(..) == font-variant-alternates.html font-variant-alternates-ref.html
HTTP(..) == font-variant-caps.html font-variant-caps-ref.html
HTTP(..) == font-variant-east-asian.html font-variant-east-asian-ref.html
HTTP(..) == font-variant-ligatures.html font-variant-ligatures-ref.html

View File

@ -2,7 +2,7 @@ default-preferences pref(layout.css.font-loading-api.enabled,true)
HTTP(..) == dynamic-insert-1.html dynamic-insert-1-ref.html
HTTP(..) == dynamic-remove-1.html dynamic-remove-1-ref.html
fails-if(styloVsGecko) HTTP(..) == ex-unit-1.html ../font-face/ex-unit-1-ref.html
fails-if(styloVsGecko||stylo) HTTP(..) == ex-unit-1.html ../font-face/ex-unit-1-ref.html
fuzzy-if(skiaContent,2,10) HTTP(..) == multiple-sets-1.html multiple-sets-1-ref.html
HTTP(..) == name-collision.html ../font-face/name-collision-ref.html
HTTP(..) == order-1.html ../font-face/order-1-ref.html

View File

@ -2,7 +2,7 @@ fuzzy-if(skiaContent,2,13) == dynamic-legend-scroll-1.html dynamic-legend-scroll
== fieldset-hidden-1.html fieldset-hidden-1-ref.html
== fieldset-intrinsic-width-1.html fieldset-intrinsic-width-1-ref.html
== fieldset-percentage-padding-1.html fieldset-percentage-padding-1-ref.html
fails-if(styloVsGecko) == fieldset-scroll-1.html fieldset-scroll-1-ref.html
fails-if(styloVsGecko||stylo) == fieldset-scroll-1.html fieldset-scroll-1-ref.html
== fieldset-scrolled-1.html fieldset-scrolled-1-ref.html
== fieldset-overflow-auto-1.html fieldset-overflow-auto-1-ref.html
fuzzy-if(winWidget&&!layersGPUAccelerated,140,276) == positioned-container-1.html positioned-container-1-ref.html
@ -14,8 +14,8 @@ fuzzy-if(winWidget&&!layersGPUAccelerated,140,276) == positioned-container-1.htm
fuzzy-if(skiaContent,1,40768) == abs-pos-child-sizing.html abs-pos-child-sizing-ref.html
== overflow-hidden.html overflow-hidden-ref.html
== legend-rtl.html legend-rtl-ref.html
fails-if(styloVsGecko) == fieldset-grid-001.html fieldset-grid-001-ref.html
fails-if(styloVsGecko) == fieldset-flexbox-001.html fieldset-flexbox-001-ref.html
fails-if(styloVsGecko||stylo) == fieldset-grid-001.html fieldset-grid-001-ref.html
fails-if(styloVsGecko||stylo) == fieldset-flexbox-001.html fieldset-flexbox-001-ref.html
== fieldset-min-width-1a.html fieldset-min-width-1-ref.html
== fieldset-min-width-1b.html fieldset-min-width-1-ref.html
== fieldset-min-width-2a.html fieldset-min-width-2-ref.html

View File

@ -36,7 +36,7 @@ skip-if(Android) == number-max-height-2.html number-max-height-2-ref.html
== number-significant-fractional-digits.html number-significant-fractional-digits-ref.html
# focus
fuzzy-if(skiaContent,2,5) needs-focus skip-if(styloVsGecko) == focus-handling.html focus-handling-ref.html
fuzzy-if(skiaContent,2,5) needs-focus skip-if(styloVsGecko||stylo) == focus-handling.html focus-handling-ref.html
# select
fuzzy-if(skiaContent,1,1) skip-if(styloVsGecko) == number-selected.html number-selected-ref.html

View File

@ -1,4 +1,4 @@
== legend.html legend-ref.html
fuzzy-if(skiaContent,1,7) pref(dom.webcomponents.enabled,true) fails-if(styloVsGecko) == shadow-dom.html shadow-dom-ref.html
fuzzy-if(skiaContent,1,7) pref(dom.webcomponents.enabled,true) fails-if(styloVsGecko||stylo) == shadow-dom.html shadow-dom-ref.html
== 1273433.html 1273433-ref.html
fails-if(styloVsGecko) == 1339287.html 1339287-ref.html
fails-if(styloVsGecko||stylo) == 1339287.html 1339287-ref.html

View File

@ -2,7 +2,7 @@ fuzzy-if(skiaContent,1,10) fails-if(styloVsGecko) HTTP(..) == text-control-basel
fuzzy-if(cocoaWidget,16,64) fuzzy-if(Android,52,64) fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu),104,224) fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),88,400) == display-block-baselines-1.html display-block-baselines-1-ref.html # anti-aliasing issues
== display-block-baselines-2.html display-block-baselines-2-ref.html
fails-if(styloVsGecko) == display-block-baselines-3.html display-block-baselines-3-ref.html
fails-if(styloVsGecko) == display-block-baselines-4.html display-block-baselines-4-ref.html
fails-if(styloVsGecko||stylo) == display-block-baselines-4.html display-block-baselines-4-ref.html
fuzzy-if(Android,4,8) fuzzy-if(skiaContent,7,2) == display-block-baselines-5.html display-block-baselines-5-ref.html
# button element

View File

@ -1,14 +1,14 @@
skip-if(Android) fails-if(styloVsGecko) == resize.html resize-ref.html
# an offset seems to apply to the native resizer on windows so skip this test for now
skip-if(Android) skip-if(winWidget) fuzzy-if(cocoaWidget,1,33) fuzzy-if(skiaContent&&!winWidget&&!Android,5,10) fails-if(styloVsGecko) == resize-background.html resize-background-ref.html
skip-if(Android) fails-if(styloVsGecko) != ltr.html rtl.html
skip-if(Android) skip-if(winWidget) fuzzy-if(cocoaWidget,1,33) fuzzy-if(skiaContent&&!winWidget&&!Android,5,10) fails-if(styloVsGecko||stylo) == resize-background.html resize-background-ref.html
skip-if(Android) fails-if(styloVsGecko||stylo) != ltr.html rtl.html
skip-if(Android) != ltr-scrollbar.html rtl-scrollbar.html
skip-if(Android) != in-ltr-doc-scrollbar.html in-rtl-doc-scrollbar.html
skip-if(Android) fails-if(styloVsGecko) != ltr.html no-resize.html
skip-if(Android) fails-if(xulRuntime.widgetToolkit=="gtk2") fails-if(styloVsGecko) != rtl.html no-resize.html # bug 834724
skip-if(Android) fails-if(styloVsGecko||stylo) != ltr.html no-resize.html
skip-if(Android) fails-if(xulRuntime.widgetToolkit=="gtk2") fails-if(styloVsGecko||stylo) != rtl.html no-resize.html # bug 834724
fuzzy-if(skiaContent,1,1) fails-if(styloVsGecko) == rtl.html rtl-dynamic-attr.html
fuzzy-if(skiaContent,1,1) fails-if(styloVsGecko) == rtl.html rtl-dynamic-style.html
fails-if(styloVsGecko) == rtl.html in-dynamic-rtl-doc.html
fuzzy-if(skiaContent,1,3) fails-if(styloVsGecko) == setvalue-framereconstruction-1.html setvalue-framereconstruction-ref.html
fuzzy-if(asyncPan&&!layersGPUAccelerated,102,4168) fails-if(styloVsGecko) == padding-scrollbar-placement.html padding-scrollbar-placement-ref.html
fuzzy-if(asyncPan&&!layersGPUAccelerated,102,4168) fails-if(styloVsGecko||stylo) == padding-scrollbar-placement.html padding-scrollbar-placement-ref.html
fails-if(styloVsGecko) == various-cols.html various-cols-ref.html

View File

@ -43,7 +43,7 @@ fuzzy(1,1) == image-orientation-explicit.html?180&flip image-orientation-ref.htm
fuzzy(1,1) == image-orientation-explicit.html?270&flip image-orientation-ref.html?270&flip
# Tests for image-orientation used with non-axis-aligned angles:
fuzzy(1,1) fails-if(styloVsGecko) == image-orientation-explicit.html?-45 image-orientation-ref.html?0
fuzzy(1,1) fails-if(styloVsGecko||stylo) == image-orientation-explicit.html?-45 image-orientation-ref.html?0
fuzzy(1,1) == image-orientation-explicit.html?-15 image-orientation-ref.html?0
fuzzy(1,1) == image-orientation-explicit.html?15 image-orientation-ref.html?0
fuzzy(1,1) == image-orientation-explicit.html?45 image-orientation-ref.html?90
@ -55,7 +55,7 @@ fuzzy(1,1) == image-orientation-explicit.html?195 image-orientation-ref.htm
fuzzy(1,1) == image-orientation-explicit.html?225 image-orientation-ref.html?270
fuzzy(1,1) == image-orientation-explicit.html?255 image-orientation-ref.html?270
fuzzy(1,1) == image-orientation-explicit.html?285 image-orientation-ref.html?270
fuzzy(1,1) fails-if(styloVsGecko) == image-orientation-explicit.html?315 image-orientation-ref.html?0
fuzzy(1,1) fails-if(styloVsGecko||stylo) == image-orientation-explicit.html?315 image-orientation-ref.html?0
fuzzy(1,1) == image-orientation-explicit.html?345 image-orientation-ref.html?0
# Tests for image-orientation used on generated content:

View File

@ -11,8 +11,8 @@ fails-if(!styloVsGecko) == dir-9.html dir-9-ref.html # Bug 787215
== dir-10.html dir-10-ref.html
== dir-11.html dir-11-ref.html
== css-spacing-1.html css-spacing-1-ref.html
pref(mathml.disabled,true) fails-if(styloVsGecko) == disabled-scriptlevel-1.html disabled-scriptlevel-1-ref.html
pref(mathml.disabled,true) fails-if(styloVsGecko) == disabled-scriptlevel-1.xhtml disabled-scriptlevel-1-ref.xhtml
pref(mathml.disabled,true) fails-if(styloVsGecko||stylo) == disabled-scriptlevel-1.html disabled-scriptlevel-1-ref.html
pref(mathml.disabled,true) fails-if(styloVsGecko||stylo) == disabled-scriptlevel-1.xhtml disabled-scriptlevel-1-ref.xhtml
== displaystyle-1.html displaystyle-1-ref.html
== displaystyle-2.html displaystyle-2-ref.html
== displaystyle-3.html displaystyle-3-ref.html
@ -294,8 +294,8 @@ fails-if(Android||OSX) == mathvariant-2.html mathvariant-2-ref.html # Bugs 10106
== mathvariant-4.html mathvariant-4-ref.html
== mathvariant-5.html mathvariant-5-ref.html
== dtls-1.html dtls-1-ref.html
fails-if(styloVsGecko) == dtls-2.html dtls-2-ref.html # bug 1366206
fails-if(styloVsGecko) == dtls-3.html dtls-3-ref.html # bug 1366206
fails-if(styloVsGecko||stylo) == dtls-2.html dtls-2-ref.html # bug 1366206
fails-if(styloVsGecko||stylo) == dtls-3.html dtls-3-ref.html # bug 1366206
== ssty-1.html ssty-1-ref.html
== ssty-2.html ssty-2-ref.html
== ssty-3.html ssty-3-ref.html
@ -369,7 +369,7 @@ fuzzy-if(OSX,1,100) fuzzy-if(skiaContent,1,14) == mfrac-D-1.html mfrac-D-1-ref.h
== mfrac-E-1.html mfrac-E-1-ref.html
test-pref(dom.webcomponents.enabled,true) == shadow-dom-1.html shadow-dom-1-ref.html
pref(font.size.inflation.emPerLine,25) == font-inflation-1.html font-inflation-1-ref.html
test-pref(font.minimum-size.x-math,40) fails-if(styloVsGecko) == default-font.html default-font-ref.html
test-pref(font.minimum-size.x-math,40) == default-font.html default-font-ref.html
!= radicalbar-1.html about:blank
!= radicalbar-1a.html about:blank
!= radicalbar-1b.html about:blank

View File

@ -12,7 +12,7 @@ fails-if(styloVsGecko) != textarea-not-blank.html about:blank
# The following tests will fail if the platform does not have native
# theme support (which all platforms should have).
fails-if(!nativeThemePref) != text-input-native.html text-input-nonnative.html
fuzzy-if(skiaContent,2,88) fails-if(styloVsGecko) == text-input-nonnative-when-styled.html text-input-nonnative-when-styled-ref.html
fuzzy-if(skiaContent,2,88) fails-if(styloVsGecko||stylo) == text-input-nonnative-when-styled.html text-input-nonnative-when-styled-ref.html
fails-if(!nativeThemePref) fails-if(styloVsGecko) != textarea-native.html textarea-nonnative.html
fuzzy-if(skiaContent,2,53) fails-if(styloVsGecko) == textarea-nonnative-when-styled.html textarea-nonnative-when-styled-ref.html
fails-if(!nativeThemePref) != button-native.html button-nonnative.html

View File

@ -74,4 +74,4 @@ fuzzy-if(skiaContent,1,23) == resize-reflow-001.html resize-reflow-001.ref.html
# == table-caption-splitaftercaption-10.html blank.html # bug 672654
# == table-caption-splitaftercaption-11.html blank.html # bug 672654
== column-balancing-break-inside-avoid-2.html column-balancing-break-inside-avoid-2-ref.html
fails-if(styloVsGecko) == combobox-page-break-inside.html combobox-page-break-inside-ref.html
fails-if(styloVsGecko||stylo) == combobox-page-break-inside.html combobox-page-break-inside-ref.html

View File

@ -179,5 +179,5 @@ fuzzy-if(skiaContent,1,145) == rounded-background-color-width-left-6.html rounde
== iframe-1.html iframe-1-ref.html
fails-if(styloVsGecko) == viewport-units-rounding-1.html viewport-units-rounding-1-ref.html
fails-if(styloVsGecko||stylo) == viewport-units-rounding-1.html viewport-units-rounding-1-ref.html
== viewport-units-rounding-2.html about:blank

View File

@ -23,7 +23,7 @@
== 626395-2c.html 626395-2-ref.html
== 626395-2d.html 626395-2-ref.html
== 652178-1.html 652178-1-ref.html
fails-if(styloVsGecko) == 115199-1.html 115199-1-ref.html
fails-if(styloVsGecko||stylo) == 115199-1.html 115199-1-ref.html
== 115199-2a.html 115199-2-ref.html
== 115199-2b.html 115199-2-ref.html
== 652178-1.html 652178-1-ref2.html

View File

@ -1,57 +1,57 @@
fails-if(styloVsGecko) == scoped-style-001.html scoped-style-001-ref.html
fails-if(styloVsGecko) == scoped-style-002.html scoped-style-002-ref.html
fails-if(styloVsGecko) == scoped-style-003.html scoped-style-003-ref.html
fails-if(styloVsGecko) == scoped-style-004.html scoped-style-004-ref.html
fails-if(styloVsGecko) == scoped-style-005.html scoped-style-005-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-001.html scoped-style-001-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-002.html scoped-style-002-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-003.html scoped-style-003-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-004.html scoped-style-004-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-005.html scoped-style-005-ref.html
== scoped-style-006.html scoped-style-006-ref.html
== scoped-style-007.html scoped-style-007-ref.html
fails-if(styloVsGecko) == scoped-style-008.html scoped-style-008-ref.html
fails-if(styloVsGecko) == scoped-style-009.html scoped-style-009-ref.html
fails-if(styloVsGecko) == scoped-style-010.html scoped-style-010-ref.html
fails-if(styloVsGecko) == scoped-style-011.html scoped-style-011-ref.html
fails-if(styloVsGecko) == scoped-style-012.html scoped-style-012-ref.html
fails-if(styloVsGecko) == scoped-style-013.html scoped-style-013-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-008.html scoped-style-008-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-009.html scoped-style-009-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-010.html scoped-style-010-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-011.html scoped-style-011-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-012.html scoped-style-012-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-013.html scoped-style-013-ref.html
== scoped-style-014.html scoped-style-014-ref.html
fails-if(styloVsGecko) == scoped-style-015.html scoped-style-015-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-015.html scoped-style-015-ref.html
== scoped-style-016.html scoped-style-016-ref.html
fails-if(styloVsGecko) == scoped-style-017.html scoped-style-017-ref.html
fails-if(styloVsGecko) == scoped-style-018.html scoped-style-018-ref.html
fails-if(styloVsGecko) == scoped-style-019.svg scoped-style-019-ref.svg
fails-if(styloVsGecko||stylo) == scoped-style-017.html scoped-style-017-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-018.html scoped-style-018-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-019.svg scoped-style-019-ref.svg
== scoped-style-020.html scoped-style-020-ref.html
== scoped-style-021.html scoped-style-021-ref.html
== scoped-style-022.html scoped-style-022-ref.html
fails-if(styloVsGecko) == scoped-style-023.html scoped-style-023-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-023.html scoped-style-023-ref.html
== scoped-style-024.html scoped-style-024-ref.html
== scoped-style-important-001.html scoped-style-important-001-ref.html
fails-if(styloVsGecko) == scoped-style-important-002.html scoped-style-important-002-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-important-002.html scoped-style-important-002-ref.html
== scoped-style-important-003.html scoped-style-important-003-ref.html
== scoped-style-important-004.html scoped-style-important-004-ref.html
== scoped-style-important-005.html scoped-style-important-005-ref.html
== scoped-style-important-006.html scoped-style-important-006-ref.html
== scoped-style-important-007.html scoped-style-important-007-ref.html
fails-if(styloVsGecko) == scoped-style-dynamic-001.html scoped-style-dynamic-001-ref.html
fails-if(styloVsGecko) == scoped-style-dynamic-002.html scoped-style-dynamic-002-ref.html
fails-if(styloVsGecko) == scoped-style-dynamic-003.html scoped-style-dynamic-003-ref.html
fails-if(styloVsGecko) == scoped-style-dynamic-004.html scoped-style-dynamic-004-ref.html
asserts-if(styloVsGecko,1) == scoped-style-dynamic-005.html scoped-style-dynamic-005-ref.html
skip-if(styloVsGecko) == scoped-style-dynamic-006.html scoped-style-dynamic-006-ref.html
fails-if(styloVsGecko) == scoped-style-dynamic-007.html scoped-style-dynamic-007-ref.html
fails-if(styloVsGecko) == scoped-style-dynamic-008.html scoped-style-dynamic-008-ref.html
skip-if(styloVsGecko) == scoped-style-dynamic-009.html scoped-style-dynamic-009-ref.html
asserts-if(styloVsGecko,1) == scoped-style-dynamic-010.html scoped-style-dynamic-010-ref.html
fails-if(styloVsGecko) == scoped-style-dynamic-011.html scoped-style-dynamic-011-ref.html
asserts-if(styloVsGecko,1) == scoped-style-dynamic-012.svg scoped-style-dynamic-012-ref.svg
fails-if(styloVsGecko) asserts-if(styloVsGecko,1) == scoped-style-dynamic-013.svg scoped-style-dynamic-013-ref.svg
asserts-if(styloVsGecko,1) == scoped-style-dynamic-014.svg scoped-style-dynamic-014-ref.svg
fails-if(styloVsGecko) asserts-if(styloVsGecko,1) == scoped-style-dynamic-015.svg scoped-style-dynamic-015-ref.svg
fails-if(styloVsGecko) == scoped-style-import.html scoped-style-import-ref.html
fails-if(styloVsGecko) == scoped-style-media.html scoped-style-media-ref.html
fails-if(styloVsGecko) == scoped-style-namespace.html scoped-style-namespace-ref.html
fails-if(styloVsGecko) == scoped-style-charset.html scoped-style-charset-ref.html
fails-if(styloVsGecko) == scoped-style-document.html scoped-style-document-ref.html
fails-if(styloVsGecko) HTTP(..) == scoped-style-font-face.html scoped-style-font-face-ref.html
fails-if(styloVsGecko) == scoped-style-keyframes.html scoped-style-keyframes-ref.html
fails-if(styloVsGecko) == scoped-style-supports.html scoped-style-supports-ref.html
pref(layout.css.scope-pseudo.enabled,true) fails-if(styloVsGecko) == scoped-style-pseudo-001.html scoped-style-pseudo-001-ref.html
pref(layout.css.scope-pseudo.enabled,true) fails-if(styloVsGecko) == scoped-style-pseudo-002.html scoped-style-pseudo-002-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-dynamic-001.html scoped-style-dynamic-001-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-dynamic-002.html scoped-style-dynamic-002-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-dynamic-003.html scoped-style-dynamic-003-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-dynamic-004.html scoped-style-dynamic-004-ref.html
asserts-if(styloVsGecko,1) asserts-if(stylo,1) == scoped-style-dynamic-005.html scoped-style-dynamic-005-ref.html
skip-if(styloVsGecko) asserts-if(stylo,1) fails-if(stylo) == scoped-style-dynamic-006.html scoped-style-dynamic-006-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-dynamic-007.html scoped-style-dynamic-007-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-dynamic-008.html scoped-style-dynamic-008-ref.html
skip-if(styloVsGecko) asserts-if(stylo,1) fails-if(stylo) == scoped-style-dynamic-009.html scoped-style-dynamic-009-ref.html
asserts-if(styloVsGecko,1) asserts-if(stylo,1) == scoped-style-dynamic-010.html scoped-style-dynamic-010-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-dynamic-011.html scoped-style-dynamic-011-ref.html
asserts-if(styloVsGecko,1) asserts-if(stylo,1) == scoped-style-dynamic-012.svg scoped-style-dynamic-012-ref.svg
fails-if(styloVsGecko) asserts-if(styloVsGecko,1) asserts-if(stylo,1) fails-if(stylo) == scoped-style-dynamic-013.svg scoped-style-dynamic-013-ref.svg
asserts-if(styloVsGecko,1) asserts-if(stylo,1) == scoped-style-dynamic-014.svg scoped-style-dynamic-014-ref.svg
fails-if(styloVsGecko) asserts-if(styloVsGecko,1) asserts-if(stylo,1) fails-if(stylo) == scoped-style-dynamic-015.svg scoped-style-dynamic-015-ref.svg
fails-if(styloVsGecko||stylo) == scoped-style-import.html scoped-style-import-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-media.html scoped-style-media-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-namespace.html scoped-style-namespace-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-charset.html scoped-style-charset-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-document.html scoped-style-document-ref.html
fails-if(styloVsGecko||stylo) HTTP(..) == scoped-style-font-face.html scoped-style-font-face-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-keyframes.html scoped-style-keyframes-ref.html
fails-if(styloVsGecko||stylo) == scoped-style-supports.html scoped-style-supports-ref.html
pref(layout.css.scope-pseudo.enabled,true) fails-if(styloVsGecko||stylo) == scoped-style-pseudo-001.html scoped-style-pseudo-001-ref.html
pref(layout.css.scope-pseudo.enabled,true) fails-if(styloVsGecko||stylo) == scoped-style-pseudo-002.html scoped-style-pseudo-002-ref.html
pref(layout.css.scope-pseudo.enabled,true) == scoped-style-pseudo-003.html scoped-style-pseudo-003-ref.html

View File

@ -57,30 +57,30 @@ fuzzy(1,2) fuzzy-if(azureSkia,1,40000) == canvas-drawImage-alpha-2.html canvas-d
# Context paint tests (this feature is currently not part of any spec.)
# context-fill:
== context-fill-01.html blue100x100-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) == context-fill-01.html lime100x100-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) fails-if(stylo) == context-fill-01.html lime100x100-ref.html
== context-fill-02.html transparent100x100-w-border-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) == context-fill-02.html lime100x100-w-border-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) == context-fill-03.html lime100x100-50pct-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) fails-if(stylo) == context-fill-02.html lime100x100-w-border-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) fails-if(stylo) == context-fill-03.html lime100x100-50pct-ref.html
# fuzz because on win8 the r & b components are off by one
fails-if(styloVsGecko) fuzzy-if(winWidget,1,10000) test-pref(svg.context-properties.content.enabled,true) == context-fill-04.html lime100x100-50pct-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) == context-fill-05.html context-fill-or-stroke-05-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) == context-fill-06.html lime100x100-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) == context-fill-07.html context-fill-07-ref.html
fails-if(styloVsGecko) fuzzy-if(winWidget,1,10000) test-pref(svg.context-properties.content.enabled,true) fails-if(stylo) == context-fill-04.html lime100x100-50pct-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) fails-if(stylo) == context-fill-05.html context-fill-or-stroke-05-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) fails-if(stylo) == context-fill-06.html lime100x100-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) fails-if(stylo) == context-fill-07.html context-fill-07-ref.html
test-pref(svg.context-properties.content.enabled,true) == context-fill-08.html blue100x100-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) == context-fill-bg-image-01.html blue100x100-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) fails-if(stylo) == context-fill-bg-image-01.html blue100x100-ref.html
# context-stroke:
== context-stroke-01.html blue100x100-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) == context-stroke-01.html lime100x100-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) fails-if(stylo) == context-stroke-01.html lime100x100-ref.html
== context-stroke-02.html transparent100x100-w-border-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) == context-stroke-02.html lime100x100-w-border-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) == context-stroke-03.html lime100x100-50pct-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) fails-if(stylo) == context-stroke-02.html lime100x100-w-border-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) fails-if(stylo) == context-stroke-03.html lime100x100-50pct-ref.html
# fuzz because on win8 the r & b components are off by one
fails-if(styloVsGecko) fuzzy-if(winWidget,1,10000) test-pref(svg.context-properties.content.enabled,true) == context-stroke-04.html lime100x100-50pct-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) == context-stroke-05.html context-fill-or-stroke-05-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) == context-stroke-06.html lime100x100-ref.html
fails-if(styloVsGecko) fuzzy-if(winWidget,1,10000) test-pref(svg.context-properties.content.enabled,true) fails-if(stylo) == context-stroke-04.html lime100x100-50pct-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) fails-if(stylo) == context-stroke-05.html context-fill-or-stroke-05-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) fails-if(stylo) == context-stroke-06.html lime100x100-ref.html
test-pref(svg.context-properties.content.enabled,true) == context-stroke-07.html context-stroke-07-ref.html
test-pref(svg.context-properties.content.enabled,true) == context-stroke-08.html blue100x100-border-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) == context-stroke-bg-image-01.html blue100x100-border-ref.html
fails-if(styloVsGecko) test-pref(svg.context-properties.content.enabled,true) fails-if(stylo) == context-stroke-bg-image-01.html blue100x100-border-ref.html
# Simple <img> tests
== img-simple-1.html lime100x100-ref.html

View File

@ -10,7 +10,7 @@ default-preferences pref(layout.css.filters.enabled,true)
skip-if(d2d) == blur-cap-large-radius-on-software.html blur-cap-large-radius-on-software-ref.html
== blur-em-radius.html blur-em-radius-ref.html
== blur-invalid-radius.html blur-invalid-radius-ref.html
fails-if(stylo) == blur-rem-radius.html blur-rem-radius-ref.html
== blur-rem-radius.html blur-rem-radius-ref.html
== blur-zero-radius.html blur-zero-radius-ref.html
== blur-zoomed-page.html blur-zoomed-page-ref.html
== brightness.html brightness-ref.html

View File

@ -95,9 +95,9 @@ default-preferences
fuzzy-if(skiaContent,1,320) == conditions-08.svg conditions-08-ref.svg
== conditions-09.svg conditions-09-ref.svg
fails-if(styloVsGecko) == currentColor-01.svg pass.svg
fails-if(styloVsGecko) == currentColor-02.svg pass.svg
fails-if(styloVsGecko) == currentColor-03.svg pass.svg
fails-if(styloVsGecko||stylo) == currentColor-01.svg pass.svg
fails-if(styloVsGecko||stylo) == currentColor-02.svg pass.svg
fails-if(styloVsGecko||stylo) == currentColor-03.svg pass.svg
== data-uri-with-filter-01.xhtml data-uri-with-filter-01-ref.svg
== data-uri-with-gradient-01.xhtml data-uri-with-gradient-01-ref.svg
@ -289,7 +289,7 @@ fuzzy(1,5000) == mask-opacity-01.svg mask-opacity-01-ref.svg
fuzzy-if(d2d||skiaContent,1,6400) == mask-type-01.svg mask-type-01-ref.svg
fuzzy-if(d2d||skiaContent,1,6400) == mask-type-02.svg mask-type-01-ref.svg
fuzzy-if(d2d||skiaContent,1,6400) == mask-type-03.svg mask-type-01-ref.svg
fuzzy-if(d2d||skiaContent,1,6400) fails-if(styloVsGecko) == mask-type-04.svg mask-type-01-ref.svg
fuzzy-if(d2d||skiaContent,1,6400) fails-if(styloVsGecko||stylo) == mask-type-04.svg mask-type-01-ref.svg
== mask-use-element-01.svg pass.svg
!= nested-mask-mode.svg about:blank

View File

@ -5,8 +5,8 @@
random == enveloped-tree-1.xhtml enveloped-tree-1-ref.xhtml # bug 470868
fuzzy-if(cocoaWidget&&layersGPUAccelerated,1,3) fuzzy-if(skiaContent,1,810) == promoted-tree-1.xhtml promoted-tree-1-ref.xhtml
random == moved-tree-1.xhtml moved-tree-1-ref.xhtml # bug 470868
random-if(cocoaWidget||d2d) fails-if(styloVsGecko) == deferred-anim-1.xhtml deferred-anim-1-ref.xhtml # bug 470868, bug 585484
random-if(cocoaWidget&&layersGPUAccelerated) fails-if(styloVsGecko) == deferred-tree-1.xhtml deferred-tree-1-ref.xhtml # bug 470868
random-if(cocoaWidget||d2d) fails-if(styloVsGecko||stylo) == deferred-anim-1.xhtml deferred-anim-1-ref.xhtml # bug 470868, bug 585484
random-if(cocoaWidget&&layersGPUAccelerated) fails-if(styloVsGecko||stylo) == deferred-tree-1.xhtml deferred-tree-1-ref.xhtml # bug 470868
random-if(cocoaWidget&&layersGPUAccelerated) fuzzy-if(skiaContent,1,530) == deferred-tree-2a.xhtml deferred-tree-2-ref.xhtml # bug 470868
random-if(cocoaWidget&&layersGPUAccelerated) fuzzy-if(skiaContent,1,530) == deferred-tree-2b.xhtml deferred-tree-2-ref.xhtml # bug 470868
fuzzy-if(cocoaWidget&&layersGPUAccelerated,1,16) fuzzy-if(skiaContent,1,410) == deferred-tree-3a.xhtml deferred-tree-3-ref.xhtml

View File

@ -1,32 +1,32 @@
# Tests related to SVG Animation (using SMIL) that use event timing.
fails-if(styloVsGecko) == event-begin-1.svg green-box-ref.svg
fails-if(styloVsGecko) == event-begin-offset-1.svg green-box-ref.svg
fails-if(styloVsGecko) == event-begin-offset-2.svg green-box-ref.svg
fails-if(styloVsGecko) == event-begin-timeevent-1.svg green-box-ref.svg
fails-if(styloVsGecko) == event-begin-timeevent-2.svg green-box-ref.svg
random-if(Android) fails-if(styloVsGecko) == event-begin-timeevent-3.svg green-box-ref.svg
fails-if(styloVsGecko) == event-begin-load-1.svg green-box-ref.svg
fails-if(styloVsGecko) == event-bubble-1.svg green-box-ref.svg
fails-if(styloVsGecko) == event-custom-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-begin-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-begin-offset-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-begin-offset-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-begin-timeevent-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-begin-timeevent-2.svg green-box-ref.svg
random-if(Android) fails-if(styloVsGecko||stylo) == event-begin-timeevent-3.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-begin-load-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-bubble-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-custom-1.svg green-box-ref.svg
== event-end-1.svg green-box-ref.svg
fails-if(styloVsGecko) == event-end-2.svg green-box-ref.svg
fails-if(styloVsGecko) == event-end-open-1.svg green-box-ref.svg
fails-if(styloVsGecko) == event-end-trimmed-1.svg green-box-ref.svg
fails-if(styloVsGecko) == event-preventDefault-1.svg green-box-ref.svg
fails-if(styloVsGecko) == event-seek-1.svg green-box-ref.svg
fails-if(styloVsGecko) == event-target-default-1.svg green-box-ref.svg
fails-if(styloVsGecko) == event-target-default-2.svg green-box-ref.svg
fails-if(styloVsGecko) == event-target-id-change-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-end-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-end-open-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-end-trimmed-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-preventDefault-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-seek-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-target-default-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-target-default-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-target-id-change-1.svg green-box-ref.svg
== event-target-id-change-2.svg green-box-ref.svg
== event-target-id-change-3.svg green-box-ref.svg
fails-if(styloVsGecko) == event-target-xlink-change-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-target-xlink-change-1.svg green-box-ref.svg
== event-target-xlink-change-2.svg green-box-ref.svg
fails-if(styloVsGecko) == event-target-xlink-change-3.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-target-xlink-change-3.svg green-box-ref.svg
== event-target-xlink-change-4.svg green-box-ref.svg
== event-target-surgery-1.svg green-box-ref.svg
== event-target-surgery-2.svg green-box-ref.svg
fails-if(styloVsGecko) == event-target-surgery-3.svg green-box-ref.svg
fails-if(styloVsGecko) == event-target-non-svg-1.xhtml green-box-ref.xhtml
fails-if(styloVsGecko) == accesskey-entity-1.svg green-box-ref.svg
fails-if(styloVsGecko) == accesskey-entity-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-target-surgery-3.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == event-target-non-svg-1.xhtml green-box-ref.xhtml
fails-if(styloVsGecko||stylo) == accesskey-entity-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == accesskey-entity-2.svg green-box-ref.svg

View File

@ -75,9 +75,9 @@ include event/reftest.list
== anim-indefinite-to-4.svg anim-standard-ref.svg
fails-if(!styloVsGecko) == anim-fillcolor-1.svg anim-standard-ref.svg # bug 436296
fails-if(styloVsGecko) == anim-fillopacity-1none.svg anim-standard-ref.svg
fails-if(styloVsGecko) == anim-fillopacity-1css.svg anim-standard-ref.svg
fails-if(styloVsGecko) == anim-fillopacity-1xml.svg anim-standard-ref.svg
fails-if(styloVsGecko||stylo) == anim-fillopacity-1none.svg anim-standard-ref.svg
fails-if(styloVsGecko||stylo) == anim-fillopacity-1css.svg anim-standard-ref.svg
fails-if(styloVsGecko||stylo) == anim-fillopacity-1xml.svg anim-standard-ref.svg
fuzzy-if(skiaContent,1,3600) == anim-opacity-01.svg lime.svg
@ -156,23 +156,23 @@ skip-if(styloVsGecko) == anim-view-01.svg#view lime.svg # bug 1354406
== anim-use-href-01.svg lime.svg
# animate the class attribute
fails-if(styloVsGecko) == anim-class-01.svg lime.svg
fails-if(styloVsGecko) == anim-class-02.svg lime.svg
fails-if(styloVsGecko) == anim-class-03.svg lime.svg
fails-if(styloVsGecko) == anim-class-04.svg anim-class-04-ref.svg
fails-if(styloVsGecko||stylo) == anim-class-01.svg lime.svg
fails-if(styloVsGecko||stylo) == anim-class-02.svg lime.svg
fails-if(styloVsGecko||stylo) == anim-class-03.svg lime.svg
fails-if(styloVsGecko||stylo) == anim-class-04.svg anim-class-04-ref.svg
# animate with some paint server values
fails-if(styloVsGecko) == anim-paintserver-1.svg anim-paintserver-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-paintserver-1.svg anim-paintserver-1-ref.svg
# animate attributes on text content children
== anim-text-attr-01.svg anim-text-attr-01-ref.svg
# animate where the base value is non-interpolatable but will be replaced anyway
fails-if(styloVsGecko) == anim-fill-overpaintserver-1.svg lime.svg
fails-if(styloVsGecko) == anim-fill-overpaintserver-2.svg lime.svg
fails-if(styloVsGecko||stylo) == anim-fill-overpaintserver-1.svg lime.svg
fails-if(styloVsGecko||stylo) == anim-fill-overpaintserver-2.svg lime.svg
# animate where we fallback from 'additive' animation to non-additive
fails-if(styloVsGecko) == anim-additive-fallback-1.svg anim-standard-ref.svg
fails-if(styloVsGecko||stylo) == anim-additive-fallback-1.svg anim-standard-ref.svg
== anim-remove-1.svg anim-standard-ref.svg
== anim-remove-2.svg anim-standard-ref.svg
@ -183,7 +183,7 @@ fails-if(styloVsGecko) == anim-additive-fallback-1.svg anim-standard-ref.svg
== anim-remove-7.svg anim-standard-ref.svg
== anim-remove-8css.svg anim-standard-ref.svg
== anim-remove-8xml.svg anim-standard-ref.svg
fails-if(styloVsGecko) == anim-remove-9.svg anim-standard-ref.svg
fails-if(styloVsGecko||stylo) == anim-remove-9.svg anim-standard-ref.svg
== anim-retarget-1.svg anim-standard-ref.svg
== anim-retarget-2.svg anim-standard-ref.svg
== anim-retarget-3.svg anim-standard-ref.svg
@ -248,18 +248,18 @@ fuzzy-if(cocoaWidget&&layersGPUAccelerated,1,2) == anim-gradient-attr-presence-0
== freeze-applied-late-4.svg anim-standard-ref.svg
== frozen-to-anim-1.svg lime.svg
fails-if(styloVsGecko) == inactivate-with-active-unchanged-1.svg anim-standard-ref.svg
fails-if(styloVsGecko) == inactivate-with-active-unchanged-2.svg anim-standard-ref.svg
fails-if(styloVsGecko||stylo) == inactivate-with-active-unchanged-1.svg anim-standard-ref.svg
fails-if(styloVsGecko||stylo) == inactivate-with-active-unchanged-2.svg anim-standard-ref.svg
fails-if(styloVsGecko) == mapped-attr-long-url-1.svg lime.svg
fails-if(styloVsGecko) == mapped-attr-long-url-2.svg lime.svg
fails-if(styloVsGecko||stylo) == mapped-attr-long-url-1.svg lime.svg
fails-if(styloVsGecko||stylo) == mapped-attr-long-url-2.svg lime.svg
== min-1.svg lime.svg
fails-if(styloVsGecko) == smil-transitions-interaction-1a.svg lime.svg
fails-if(styloVsGecko) == smil-transitions-interaction-1b.svg lime.svg
fails-if(styloVsGecko) == smil-transitions-interaction-2a.svg lime.svg
fails-if(styloVsGecko) == smil-transitions-interaction-2b.svg lime.svg
fails-if(styloVsGecko||stylo) == smil-transitions-interaction-1a.svg lime.svg
fails-if(styloVsGecko||stylo) == smil-transitions-interaction-1b.svg lime.svg
fails-if(styloVsGecko||stylo) == smil-transitions-interaction-2a.svg lime.svg
fails-if(styloVsGecko||stylo) == smil-transitions-interaction-2b.svg lime.svg
== smil-transitions-interaction-3a.svg lime.svg
== smil-transitions-interaction-3b.svg lime.svg
== smil-transitions-interaction-4a.svg lime.svg
@ -269,19 +269,19 @@ fails-if(styloVsGecko) == smil-transitions-interaction-2b.svg lime.svg
== filtered-instance-time-1.svg anim-standard-ref.svg
# Test animation using defs element
fails-if(styloVsGecko) == anim-defs-gradient-property.svg lime.svg
fails-if(styloVsGecko||stylo) == anim-defs-gradient-property.svg lime.svg
== anim-defs-gradient-attribute.svg lime.svg
fails-if(styloVsGecko) == anim-defs-fill.svg lime.svg
fails-if(styloVsGecko||stylo) == anim-defs-fill.svg lime.svg
== anim-defs-width.svg lime.svg
# Test animation that changes 'display' attribute
fails-if(styloVsGecko) == anim-display.svg lime.svg
fails-if(styloVsGecko) == anim-display-in-g-element.svg lime.svg
fails-if(styloVsGecko||stylo) == anim-display.svg lime.svg
fails-if(styloVsGecko||stylo) == anim-display-in-g-element.svg lime.svg
# Test animation that change 'display' style value to 'none'
== anim-change-display-none-for-ancestor-elem.html lime.html
== anim-change-display-none-for-target-elem.html lime.html
== anim-change-display-none-for-dynamically-appended-elem.html lime.html
fails-if(styloVsGecko) == anim-change-display-block-for-dynamically-appended-elem.html anim-standard-ref.html
fails-if(styloVsGecko||stylo) == anim-change-display-block-for-dynamically-appended-elem.html anim-standard-ref.html
pref(layout.css.clip-path-shapes.enabled,true) fuzzy(63,146) == anim-clipPath-viewBox.svg anim-clipPath-viewBox-ref.svg

View File

@ -1,3 +1,3 @@
# Tests for repeat behaviour
fails-if(styloVsGecko) == indefinite-repeat-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == indefinite-repeat-1.svg green-box-ref.svg
== init-repeat-1.svg init-repeat-1-ref.svg

View File

@ -1,8 +1,8 @@
# Tests for restart behaviour
== reset-1.svg reset-1-ref.svg
== reset-2.svg green-box-ref.svg
fails-if(styloVsGecko) == reset-3.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == reset-3.svg green-box-ref.svg
== reset-4.svg green-box-ref.svg
# reset-5.svg is no longer valid and has been removed
fails-if(styloVsGecko) == reset-6.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == reset-6.svg green-box-ref.svg
== reset-7.svg green-box-ref.svg

View File

@ -4,46 +4,46 @@
# (when it's implemented)
# 'color' property, from/to/by with named colors & hex values
fails-if(styloVsGecko) == anim-css-color-1-by-ident-hex.svg anim-css-fill-1-ref.svg
fails-if(styloVsGecko) == anim-css-color-1-from-by-hex-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-color-1-from-by-ident-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-color-1-from-to-hex-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-color-1-from-to-ident-ident.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-color-1-to-ident-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-color-1-to-ident-ident.svg anim-css-fill-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-color-1-by-ident-hex.svg anim-css-fill-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-color-1-from-by-hex-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-color-1-from-by-ident-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-color-1-from-to-hex-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-color-1-from-to-ident-ident.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-color-1-to-ident-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-color-1-to-ident-ident.svg anim-css-fill-1-ref.svg
# 'color' property, paced calcMode
fails-if(styloVsGecko) == anim-css-color-2-paced-rgb.svg anim-css-fill-2-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-color-2-paced-rgb.svg anim-css-fill-2-ref.svg
# 'color' property, animating *by* a named color
fuzzy-if(skiaContent,1,580) fails-if(styloVsGecko) == anim-css-color-3-by-ident-ident.svg anim-css-fill-3-ref.svg
fuzzy-if(skiaContent,1,580) fails-if(styloVsGecko) == anim-css-color-3-from-by-ident-ident.svg anim-css-fill-3-ref.svg
fuzzy-if(skiaContent,1,580) fails-if(styloVsGecko) == anim-css-color-3-from-by-rgb-ident.svg anim-css-fill-3-ref.svg
fuzzy-if(skiaContent,1,580) fails-if(styloVsGecko||stylo) == anim-css-color-3-by-ident-ident.svg anim-css-fill-3-ref.svg
fuzzy-if(skiaContent,1,580) fails-if(styloVsGecko||stylo) == anim-css-color-3-from-by-ident-ident.svg anim-css-fill-3-ref.svg
fuzzy-if(skiaContent,1,580) fails-if(styloVsGecko||stylo) == anim-css-color-3-from-by-rgb-ident.svg anim-css-fill-3-ref.svg
# 'fill' property, from/to/by with named colors & hex values
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-fill-1-by-ident-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-fill-1-from-by-hex-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-fill-1-from-by-ident-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-fill-1-from-to-hex-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-fill-1-from-to-ident-ident.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-fill-1-to-ident-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-fill-1-to-ident-ident.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-fill-1-by-ident-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-fill-1-from-by-hex-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-fill-1-from-by-ident-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-fill-1-from-to-hex-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-fill-1-from-to-ident-ident.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-fill-1-to-ident-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-fill-1-to-ident-ident.svg anim-css-fill-1-ref.svg
# 'fill' property, from/to/by, with 'currentColor' keyword
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-fill-1-by-ident-curcol.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-fill-1-from-by-curcol-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-fill-1-from-by-hex-curcol.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-fill-1-from-to-curcol-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-fill-1-from-to-hex-curcol.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-fill-1-to-ident-curcol.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-fill-1-by-ident-curcol.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-fill-1-from-by-curcol-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-fill-1-from-by-hex-curcol.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-fill-1-from-to-curcol-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-fill-1-from-to-hex-curcol.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-fill-1-to-ident-curcol.svg anim-css-fill-1-ref.svg
# 'fill' property, paced calcMode
fails-if(styloVsGecko) == anim-css-fill-2-paced-rgb.svg anim-css-fill-2-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-fill-2-paced-rgb.svg anim-css-fill-2-ref.svg
# 'fill' property, animating *by* a named color
fuzzy-if(skiaContent,1,580) fails-if(styloVsGecko) == anim-css-fill-3-by-ident-ident.svg anim-css-fill-3-ref.svg
fuzzy-if(skiaContent,1,580) fails-if(styloVsGecko) == anim-css-fill-3-from-by-ident-ident.svg anim-css-fill-3-ref.svg
fuzzy-if(skiaContent,1,580) fails-if(styloVsGecko) == anim-css-fill-3-from-by-rgb-ident.svg anim-css-fill-3-ref.svg
fuzzy-if(skiaContent,1,580) fails-if(styloVsGecko||stylo) == anim-css-fill-3-by-ident-ident.svg anim-css-fill-3-ref.svg
fuzzy-if(skiaContent,1,580) fails-if(styloVsGecko||stylo) == anim-css-fill-3-from-by-ident-ident.svg anim-css-fill-3-ref.svg
fuzzy-if(skiaContent,1,580) fails-if(styloVsGecko||stylo) == anim-css-fill-3-from-by-rgb-ident.svg anim-css-fill-3-ref.svg
# check handling of overflowing color values
# NOTE: The second test fails because we compute "from + by" as the animation
@ -51,23 +51,23 @@ fuzzy-if(skiaContent,1,580) fails-if(styloVsGecko) == anim-css-fill-3-from-by-rg
# the clamped value for interpolation. That's earlier than the SVG spec wants
# us to clamp -- we're only supposed to clamp *final presentation values*.
# (Reference: SVG 1.1 Appendix F.4)
fails-if(styloVsGecko) == anim-css-fill-overflow-1-by.svg anim-css-fill-overflow-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-fill-overflow-1-by.svg anim-css-fill-overflow-1-ref.svg
fails == anim-css-fill-overflow-1-from-by.svg anim-css-fill-overflow-1-ref.svg
# 'fill-opacity' property
fuzzy-if(skiaContent,1,885) fails-if(styloVsGecko) == anim-css-fillopacity-1-by.svg anim-css-fillopacity-1-ref.svg
fuzzy-if(skiaContent,1,210) fails-if(styloVsGecko) == anim-css-fillopacity-1-from-by.svg anim-css-fillopacity-1-ref.svg
fails-if(styloVsGecko) == anim-css-fillopacity-1-from-to.svg anim-css-fillopacity-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko) == anim-css-fillopacity-1-to.svg anim-css-fillopacity-1-ref.svg
fails-if(styloVsGecko) == anim-css-fillopacity-2-paced.svg anim-css-fillopacity-2-ref.svg
fuzzy-if(skiaContent,1,885) fails-if(styloVsGecko||stylo) == anim-css-fillopacity-1-by.svg anim-css-fillopacity-1-ref.svg
fuzzy-if(skiaContent,1,210) fails-if(styloVsGecko||stylo) == anim-css-fillopacity-1-from-by.svg anim-css-fillopacity-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-fillopacity-1-from-to.svg anim-css-fillopacity-1-ref.svg
fuzzy-if(skiaContent,1,550) fails-if(styloVsGecko||stylo) == anim-css-fillopacity-1-to.svg anim-css-fillopacity-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-fillopacity-2-paced.svg anim-css-fillopacity-2-ref.svg
fails == anim-css-fillopacity-3-clamp-big.svg anim-css-fillopacity-3-ref.svg # bug 501188
fuzzy-if(skiaContent,1,365) fails-if(styloVsGecko) == anim-css-fillopacity-3-clamp-small.svg anim-css-fillopacity-3-ref.svg
fuzzy-if(skiaContent,1,365) fails-if(styloVsGecko||stylo) == anim-css-fillopacity-3-clamp-small.svg anim-css-fillopacity-3-ref.svg
# 'font' shorthand property
fails-if(styloVsGecko) == anim-css-font-1.svg anim-css-font-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-font-1.svg anim-css-font-1-ref.svg
# 'font-size' property, from/by/to with pixel values only
fails-if(styloVsGecko) == anim-css-fontsize-1-from-by-px-px.svg anim-css-fontsize-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-fontsize-1-from-by-px-px.svg anim-css-fontsize-1-ref.svg
== anim-css-fontsize-1-from-to-px-px.svg anim-css-fontsize-1-ref.svg
# 'font-size' property (accepts unitless values)
@ -81,63 +81,63 @@ fails-if(styloVsGecko) == anim-css-fontsize-1-from-by-px-px.svg anim-css-font
== anim-mapped-fontsize-1-from-to-px-no.svg anim-css-fontsize-1-ref.svg
# 'font-size' property, from/by/to with percent values
fails-if(styloVsGecko) == anim-css-fontsize-1-from-by-pct-pct.svg anim-css-fontsize-1-ref.svg
fails-if(styloVsGecko) == anim-css-fontsize-1-from-by-pct-px.svg anim-css-fontsize-1-ref.svg
fails-if(styloVsGecko) == anim-css-fontsize-1-from-by-px-pct.svg anim-css-fontsize-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-fontsize-1-from-by-pct-pct.svg anim-css-fontsize-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-fontsize-1-from-by-pct-px.svg anim-css-fontsize-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-fontsize-1-from-by-px-pct.svg anim-css-fontsize-1-ref.svg
== anim-css-fontsize-1-from-to-pct-pct.svg anim-css-fontsize-1-ref.svg
== anim-css-fontsize-1-from-to-pct-px.svg anim-css-fontsize-1-ref.svg
== anim-css-fontsize-1-from-to-px-pct.svg anim-css-fontsize-1-ref.svg
# 'font-size' property, with negative addition
fails-if(styloVsGecko) == anim-css-fontsize-2-from-by-px-px.svg anim-css-fontsize-2-ref.svg
fails-if(styloVsGecko) == anim-css-fontsize-2-from-by-px-em.svg anim-css-fontsize-2-ref.svg
fails-if(styloVsGecko) == anim-css-fontsize-2-from-by-em-em.svg anim-css-fontsize-2-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-fontsize-2-from-by-px-px.svg anim-css-fontsize-2-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-fontsize-2-from-by-px-em.svg anim-css-fontsize-2-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-fontsize-2-from-by-em-em.svg anim-css-fontsize-2-ref.svg
# 'stroke-dasharray' property, from/to with pixel values only
skip-if(!styloVsGecko) == anim-css-strokedasharray-1.svg anim-css-strokedasharray-1-ref.svg
# 'stroke-width' property, from/by/to with pixel values only
fails-if(styloVsGecko) == anim-css-strokewidth-1-by-px-px.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko) == anim-css-strokewidth-1-from-by-px-px.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-by-px-px.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-from-by-px-px.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-to-px-px.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko) == anim-css-strokewidth-1-to-px-px.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-to-px-px.svg anim-css-strokewidth-1-ref.svg
# 'stroke-width' property, from/by/to with unitless values only
fails-if(styloVsGecko) == anim-css-strokewidth-1-by-no-no.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko) == anim-css-strokewidth-1-from-by-no-no.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-by-no-no.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-from-by-no-no.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-to-no-no.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko) == anim-css-strokewidth-1-to-no-no.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-to-no-no.svg anim-css-strokewidth-1-ref.svg
# 'stroke-width' property, from/by/to with percent values
# XXXdholbert the mixed pct + px tests fail right now, because we need calc()
# in order to interpolate between pct and non-pct values, and we don't yet
# support calc() for stroke-width & other SVG-specific properties (Bug 594933).
fails-if(styloVsGecko) == anim-css-strokewidth-1-by-pct-pct.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-by-pct-pct.svg anim-css-strokewidth-1-ref.svg
fails == anim-css-strokewidth-1-by-pct-px.svg anim-css-strokewidth-1-ref.svg
fails == anim-css-strokewidth-1-by-px-pct.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko) == anim-css-strokewidth-1-from-by-pct-pct.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-from-by-pct-pct.svg anim-css-strokewidth-1-ref.svg
fails-if(!styloVsGecko) == anim-css-strokewidth-1-from-by-pct-px.svg anim-css-strokewidth-1-ref.svg
fails-if(!styloVsGecko) == anim-css-strokewidth-1-from-by-px-pct.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-to-pct-pct.svg anim-css-strokewidth-1-ref.svg
fails-if(!styloVsGecko) fails-if(styloVsGecko) == anim-css-strokewidth-1-from-to-pct-px.svg anim-css-strokewidth-1-ref.svg
fails-if(!styloVsGecko) fails-if(styloVsGecko) == anim-css-strokewidth-1-from-to-px-pct.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko) == anim-css-strokewidth-1-to-pct-pct.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-to-pct-pct.svg anim-css-strokewidth-1-ref.svg
fails-if(!styloVsGecko) == anim-css-strokewidth-1-to-pct-px.svg anim-css-strokewidth-1-ref.svg
fails-if(!styloVsGecko) == anim-css-strokewidth-1-to-px-pct.svg anim-css-strokewidth-1-ref.svg
# 'stroke-width' property, from/by/to with em values
fails-if(styloVsGecko) == anim-css-strokewidth-1-by-px-em.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko) == anim-css-strokewidth-1-by-em-em.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko) == anim-css-strokewidth-1-by-em-px.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko) == anim-css-strokewidth-1-from-by-px-em.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko) == anim-css-strokewidth-1-from-by-em-em.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko) == anim-css-strokewidth-1-from-by-em-px.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-by-px-em.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-by-em-em.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-by-em-px.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-from-by-px-em.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-from-by-em-em.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-from-by-em-px.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-to-px-em.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-to-em-em.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-to-em-px.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko) == anim-css-strokewidth-1-to-px-em.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko) == anim-css-strokewidth-1-to-em-em.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko) == anim-css-strokewidth-1-to-em-px.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-to-px-em.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-to-em-em.svg anim-css-strokewidth-1-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-1-to-em-px.svg anim-css-strokewidth-1-ref.svg
# 'stroke-width' property, values-array & paced calc-mode support
== anim-css-strokewidth-2-values-em-em.svg anim-css-strokewidth-2-ref.svg
@ -147,10 +147,10 @@ fuzzy-if(skiaContent,1,360) == anim-css-strokewidth-2-values-px-px.svg anim-c
== anim-css-strokewidth-3-paced.svg anim-css-strokewidth-3-ref.svg
# 'stroke-width' property, negative addition
fails-if(styloVsGecko) == anim-css-strokewidth-4-from-by-px-px.svg anim-css-strokewidth-4-ref.svg
fails-if(styloVsGecko) == anim-css-strokewidth-4-from-by-px-em.svg anim-css-strokewidth-4-ref.svg
fails-if(styloVsGecko) == anim-css-strokewidth-4-from-by-em-em.svg anim-css-strokewidth-4-ref.svg
fuzzy-if(skiaContent,1,170) fails-if(styloVsGecko) == anim-css-strokewidth-4-from-by-no-no.svg anim-css-strokewidth-4-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-4-from-by-px-px.svg anim-css-strokewidth-4-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-4-from-by-px-em.svg anim-css-strokewidth-4-ref.svg
fails-if(styloVsGecko||stylo) == anim-css-strokewidth-4-from-by-em-em.svg anim-css-strokewidth-4-ref.svg
fuzzy-if(skiaContent,1,170) fails-if(styloVsGecko||stylo) == anim-css-strokewidth-4-from-by-no-no.svg anim-css-strokewidth-4-ref.svg
# check correct handling of "!important" values
== important-set-1.svg anim-standard-ref.svg

View File

@ -1,48 +1,48 @@
# Tests related to SVG Animation (using SMIL) that use syncbase timing.
# New intervals
fails-if(styloVsGecko) == new-interval-simple-1.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-simple-2.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-negative-offset-1.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-negative-offset-2.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-negative-offset-3.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-negative-offset-4.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-negative-syncbase-1.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-restart-1.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-restart-2.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-restart-3.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-early-end-1.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-early-end-2.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-early-end-3.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-simple-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-simple-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-negative-offset-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-negative-offset-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-negative-offset-3.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-negative-offset-4.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-negative-syncbase-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-restart-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-restart-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-restart-3.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-early-end-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-early-end-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-early-end-3.svg green-box-ref.svg
== new-interval-early-end-4.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-early-end-5.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-early-end-6.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-early-end-5.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-early-end-6.svg green-box-ref.svg
== new-interval-early-end-7.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-doubly-dependent-1.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-doubly-dependent-2.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-doubly-dependent-3.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-triply-dependent-1.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-triply-dependent-2.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-end-negative-1.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-end-negative-2.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-end-dep-1.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-chain-1.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-chain-2.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-sample-order-1.svg green-box-ref.svg
fails-if(styloVsGecko) == new-interval-freeze-begin-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-doubly-dependent-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-doubly-dependent-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-doubly-dependent-3.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-triply-dependent-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-triply-dependent-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-end-negative-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-end-negative-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-end-dep-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-chain-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-chain-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-sample-order-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == new-interval-freeze-begin-1.svg green-box-ref.svg
# Changing intervals
fails-if(styloVsGecko) == changed-interval-simple-1.svg green-box-ref.svg
fails-if(styloVsGecko) == changed-interval-simple-2.svg green-box-ref.svg
fails-if(styloVsGecko) == changed-interval-simple-3.svg green-box-ref.svg
fails-if(styloVsGecko) == changed-interval-simple-4.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == changed-interval-simple-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == changed-interval-simple-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == changed-interval-simple-3.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == changed-interval-simple-4.svg green-box-ref.svg
== changed-interval-simple-5.svg green-box-ref.svg
fails-if(styloVsGecko) == changed-interval-resolved-1.svg green-box-ref.svg
fails-if(styloVsGecko) == changed-interval-resolved-2.svg green-box-ref.svg
fails-if(styloVsGecko) == changed-interval-sort-1.svg green-box-ref.svg
fails-if(styloVsGecko) == changed-interval-change-spec-1.svg green-box-ref.svg
fails-if(styloVsGecko) == changed-interval-change-spec-2.svg green-box-ref.svg
fails-if(styloVsGecko) == changed-interval-change-spec-3.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == changed-interval-resolved-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == changed-interval-resolved-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == changed-interval-sort-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == changed-interval-change-spec-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == changed-interval-change-spec-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == changed-interval-change-spec-3.svg green-box-ref.svg
== changed-interval-change-spec-4.svg green-box-ref.svg
# Deleted intervals
@ -53,47 +53,47 @@ fails-if(styloVsGecko) == changed-interval-change-spec-3.svg green-box-ref.svg
== deleted-interval-simple-5.svg green-box-ref.svg
# Trimmed intervals
fails-if(styloVsGecko) == trimmed-interval-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == trimmed-interval-1.svg green-box-ref.svg
# Cyclic dependencies
fails-if(styloVsGecko) == cycle-ok-1.svg green-box-ref.svg
fails-if(styloVsGecko) == cycle-ok-2.svg green-box-ref.svg
fails-if(styloVsGecko) == cycle-ok-3.svg green-box-ref.svg
fails-if(styloVsGecko) == cycle-ok-4.svg green-box-ref.svg
fails-if(styloVsGecko) == cycle-ok-5.svg green-box-ref.svg
fails-if(styloVsGecko) == cycle-self-ref-1.svg green-box-ref.svg
fails-if(styloVsGecko) == cycle-self-ref-2.svg green-box-ref.svg
fails-if(styloVsGecko) == cycle-self-ref-3.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == cycle-ok-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == cycle-ok-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == cycle-ok-3.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == cycle-ok-4.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == cycle-ok-5.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == cycle-self-ref-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == cycle-self-ref-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == cycle-self-ref-3.svg green-box-ref.svg
== cycle-self-ref-4.svg green-box-ref.svg
fails-if(styloVsGecko) == cycle-self-ref-5.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == cycle-self-ref-5.svg green-box-ref.svg
== cycle-invalid-1.svg green-box-ref.svg
fails-if(styloVsGecko) == cycle-invalid-2.svg green-box-ref.svg
fails-if(styloVsGecko) == cycle-invalid-3.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == cycle-invalid-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == cycle-invalid-3.svg green-box-ref.svg
== cycle-invalid-4.svg green-box-ref.svg
fails-if(styloVsGecko) == cycle-change-1.svg green-box-ref.svg
fails-if(styloVsGecko) == cycle-change-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == cycle-change-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == cycle-change-2.svg green-box-ref.svg
== cycle-delete-1.svg green-box-ref.svg
fails-if(styloVsGecko) == cycle-recursion-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == cycle-recursion-1.svg green-box-ref.svg
== cycle-recursion-2.svg green-box-ref.svg
# Animation sandwich priority
fails-if(styloVsGecko) == sandwich-priority-1.svg green-box-ref.svg
fails-if(styloVsGecko) == sandwich-priority-2.svg green-box-ref.svg
fails-if(styloVsGecko) == sandwich-priority-3.svg green-box-ref.svg
fails-if(styloVsGecko) == sandwich-priority-4.svg green-box-ref.svg
fails-if(styloVsGecko) == sandwich-priority-5.svg green-box-ref.svg
fails-if(styloVsGecko) == sandwich-priority-6.svg green-box-ref.svg
fails-if(styloVsGecko) == sandwich-priority-7.svg green-box-ref.svg
fails-if(styloVsGecko) == sandwich-priority-8.svg green-box-ref.svg
fails-if(styloVsGecko) == sandwich-priority-9.svg green-box-ref.svg
fails-if(styloVsGecko) == sandwich-priority-10.svg green-box-ref.svg
fails-if(styloVsGecko) == sandwich-priority-11.svg green-box-ref.svg
fails-if(styloVsGecko) == sandwich-priority-12.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == sandwich-priority-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == sandwich-priority-2.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == sandwich-priority-3.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == sandwich-priority-4.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == sandwich-priority-5.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == sandwich-priority-6.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == sandwich-priority-7.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == sandwich-priority-8.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == sandwich-priority-9.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == sandwich-priority-10.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == sandwich-priority-11.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == sandwich-priority-12.svg green-box-ref.svg
# Cross-time container dependencies
fails-if(styloVsGecko) == cross-container-1.xhtml green-box-ref.xhtml
fails-if(styloVsGecko||stylo) == cross-container-1.xhtml green-box-ref.xhtml
== cross-container-2.xhtml green-box-ref.xhtml
fails-if(styloVsGecko) == cross-container-3.xhtml green-box-ref.xhtml
fails-if(styloVsGecko||stylo) == cross-container-3.xhtml green-box-ref.xhtml
# Filtering
fails-if(styloVsGecko) == filtered-interval-1.svg green-box-ref.svg
fails-if(styloVsGecko||stylo) == filtered-interval-1.svg green-box-ref.svg

View File

@ -147,8 +147,8 @@ fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)||/^Windows\x20NT\x206\.[12]/
== ignore-text-align-2.svg ignore-text-align-2-ref.svg
# pseudo-elements
fails-if(styloVsGecko) == pseudo-first-line.svg pseudo-first-line-ref.svg
fails-if(styloVsGecko) == pseudo-first-line-2.svg pseudo-first-line-2-ref.svg
fails-if(styloVsGecko||stylo) == pseudo-first-line.svg pseudo-first-line-ref.svg
fails-if(styloVsGecko||stylo) == pseudo-first-line-2.svg pseudo-first-line-2-ref.svg
== pseudo-first-letter.svg pseudo-first-letter-ref.svg
== pseudo-first-letter-2.svg pseudo-first-letter-2-ref.svg
== ignore-before-after.svg ignore-prop-ref.svg

View File

@ -9,4 +9,4 @@
== tab-size-negative.html tab-size-initial.html
== tab-size-change-1a.html tab-size-change-1-ref.html
== tab-size-change-1b.html tab-size-change-1-ref.html
fuzzy-if(winWidget,100,1000) fails-if(styloVsGecko) == tab-size-length.html tab-size-length-ref.html
fuzzy-if(winWidget,100,1000) fails-if(styloVsGecko||stylo) == tab-size-length.html tab-size-length-ref.html

View File

@ -1,14 +1,14 @@
== ellipsis-font-fallback.html ellipsis-font-fallback-ref.html
== line-clipping.html line-clipping-ref.html
fuzzy-if(Android,16,244) HTTP(..) == marker-basic.html marker-basic-ref.html # Bug 1128229
HTTP(..) == marker-string.html marker-string-ref.html
fails-if(stylo) HTTP(..) == marker-string.html marker-string-ref.html
skip-if(Android) HTTP(..) == bidi-simple.html bidi-simple-ref.html # Fails on Android due to anti-aliasing
skip-if(!gtkWidget) fuzzy-if(gtkWidget,2,289) HTTP(..) == bidi-simple-scrolled.html bidi-simple-scrolled-ref.html # Fails on Windows and OSX due to anti-aliasing
fuzzy-if(Android,24,4000) fuzzy-if(cocoaWidget,1,40) fuzzy-if(asyncPan&&!layersGPUAccelerated,140,1836) HTTP(..) == scroll-rounding.html scroll-rounding-ref.html # bug 760264
fuzzy(2,453) fuzzy-if(skiaContent,9,2100) fails-if(gtkWidget) HTTP(..) == anonymous-block.html anonymous-block-ref.html # gtkWidget:bug 1309103
HTTP(..) == false-marker-overlap.html false-marker-overlap-ref.html
HTTP(..) == visibility-hidden.html visibility-hidden-ref.html
fuzzy-if(asyncPan&&!layersGPUAccelerated,102,1724) fuzzy-if(gtkWidget,10,8) HTTP(..) == block-padding.html block-padding-ref.html
fuzzy-if(asyncPan&&!layersGPUAccelerated,102,1724) fuzzy-if(gtkWidget,10,8) skip-if(stylo) HTTP(..) == block-padding.html block-padding-ref.html
HTTP(..) == quirks-decorations.html quirks-decorations-ref.html
HTTP(..) == quirks-line-height.html quirks-line-height-ref.html
HTTP(..) == standards-decorations.html standards-decorations-ref.html

View File

@ -326,7 +326,7 @@ fails-if(!cocoaWidget&&!styloVsGecko) != osx-font-smoothing.html osx-font-smooth
fails-if(!cocoaWidget&&!styloVsGecko) != 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) == text-align-unsafe.html text-align-unsafe-ref.html
pref(layout.css.text-align-unsafe-value.enabled,true) fails-if(styloVsGecko||stylo) == text-align-unsafe.html text-align-unsafe-ref.html
# stray control chars should be visible by default, bug 1099557
fails-if(styloVsGecko) != control-chars-01a.html control-chars-01-notref.html

View File

@ -140,4 +140,4 @@ pref(svg.transform-box.enabled,true) == transform-box-svg-3a.svg pass.svg
== animate-layer-scale-inherit-3.html animate-layer-scale-inherit-1-ref.html
# 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,22,180) skip-if(stylo) == table-overflowed-by-animation.html table-overflowed-by-animation-ref.html # bug 1365851 for stylo
fuzzy-if(d2d,1,5) fuzzy-if(skiaContent,22,180) skip-if(styloVsGecko||stylo) == table-overflowed-by-animation.html table-overflowed-by-animation-ref.html

View File

@ -45,8 +45,6 @@ skip css-values-3/vh-support-transform-translate.html
css-values-3/calc-in-calc.html
fails-if(stylo) css-values-3/vh-support-atviewport.html
# bug 1367947
fails-if(stylo) css-values-3/vh-em-inherit.html
#### CSS Writing Modes 3 #############################################

View File

@ -219,20 +219,20 @@ fails-if(!styloVsGecko) == css-values-3/attr-px-invalid-cast.html css-values-3/r
== css-values-3/attr-px-invalid-fallback.html css-values-3/reference/200-200-green.html
fails-if(!styloVsGecko) == css-values-3/attr-px-valid.html css-values-3/reference/200-200-green.html
== css-values-3/calc-in-calc.html css-values-3/reference/all-green.html
fails == css-values-3/calc-in-media-queries-001.html css-values-3/reference/all-green.html
fails == css-values-3/calc-in-media-queries-002.html css-values-3/reference/all-green.html
fails-if(!stylo) == css-values-3/calc-in-media-queries-001.html css-values-3/reference/all-green.html
fails-if(!stylo) == css-values-3/calc-in-media-queries-002.html css-values-3/reference/all-green.html
== css-values-3/calc-invalid-range-clamping.html css-values-3/reference/200-200-green.html
== css-values-3/calc-parenthesis-stack.html css-values-3/reference/all-green.html
fuzzy-if(OSX,40,6) == css-values-3/ch-unit-001.html css-values-3/reference/ch-unit-001-ref.html
== css-values-3/initial-background-color.html css-values-3/reference/all-green.html
== css-values-3/vh-calc-support-pct.html css-values-3/reference/all-green.html
== css-values-3/vh-calc-support.html css-values-3/reference/all-green.html
fails-if(stylo) == css-values-3/vh-em-inherit.html css-values-3/reference/all-green.html
== css-values-3/vh-em-inherit.html css-values-3/reference/all-green.html
== css-values-3/vh-inherit.html css-values-3/reference/all-green.html
== css-values-3/vh-interpolate-pct.html css-values-3/reference/all-green.html
== css-values-3/vh-interpolate-px.html css-values-3/reference/all-green.html
== css-values-3/vh-interpolate-vh.html css-values-3/reference/all-green.html
fails-if(styloVsGecko) == css-values-3/vh-support-atviewport.html css-values-3/reference/all-green.html
fails-if(styloVsGecko||stylo) == css-values-3/vh-support-atviewport.html css-values-3/reference/all-green.html
== css-values-3/vh-support-margin.html css-values-3/reference/all-green.html
skip == css-values-3/vh-support-transform-origin.html css-values-3/reference/all-green.html
skip == css-values-3/vh-support-transform-translate.html css-values-3/reference/all-green.html
@ -1032,10 +1032,10 @@ needs-focus == selectors-4/focus-within-004.html selectors-4/focus-within-001-re
needs-focus == selectors-4/focus-within-005.html selectors-4/focus-within-001-ref.html
needs-focus == selectors-4/focus-within-006.html selectors-4/focus-within-001-ref.html
fails-if(!styloVsGecko) needs-focus == selectors-4/focus-within-shadow-001.html selectors-4/focus-within-shadow-001-ref.html
pref(dom.webcomponents.enabled,true) needs-focus skip-if(styloVsGecko) == selectors-4/focus-within-shadow-002.html selectors-4/focus-within-shadow-001-ref.html
pref(dom.webcomponents.enabled,true) needs-focus skip-if(styloVsGecko) == selectors-4/focus-within-shadow-003.html selectors-4/focus-within-shadow-001-ref.html
pref(dom.webcomponents.enabled,true) needs-focus skip-if(styloVsGecko) == selectors-4/focus-within-shadow-004.html selectors-4/focus-within-shadow-001-ref.html
pref(dom.webcomponents.enabled,true) needs-focus skip-if(styloVsGecko) == selectors-4/focus-within-shadow-005.html selectors-4/focus-within-shadow-001-ref.html
pref(dom.webcomponents.enabled,true) needs-focus skip-if(styloVsGecko||stylo) == selectors-4/focus-within-shadow-002.html selectors-4/focus-within-shadow-001-ref.html
pref(dom.webcomponents.enabled,true) needs-focus skip-if(styloVsGecko||stylo) == selectors-4/focus-within-shadow-003.html selectors-4/focus-within-shadow-001-ref.html
pref(dom.webcomponents.enabled,true) needs-focus skip-if(styloVsGecko||stylo) == selectors-4/focus-within-shadow-004.html selectors-4/focus-within-shadow-001-ref.html
pref(dom.webcomponents.enabled,true) needs-focus skip-if(styloVsGecko||stylo) == selectors-4/focus-within-shadow-005.html selectors-4/focus-within-shadow-001-ref.html
== selectors-4/of-type-selectors.xhtml selectors-4/of-type-selectors-ref.xhtml
== selectors-4/selector-required.html selectors-4/selector-required-ref.html
== selectors-4/selectors-dir-selector-ltr-001.html selectors-4/selectors-dir-selector-ref.html

View File

@ -50,28 +50,28 @@
== flex-abspos-staticpos-margin-001.html flex-abspos-staticpos-margin-001-ref.html
== flex-abspos-staticpos-margin-002.html flex-abspos-staticpos-margin-002-ref.html
fails-if(styloVsGecko) == grid-abspos-staticpos-align-self-001.html grid-abspos-staticpos-align-self-001-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-staticpos-align-self-001.html grid-abspos-staticpos-align-self-001-ref.html
== grid-abspos-staticpos-align-self-002.html grid-abspos-staticpos-align-self-002-ref.html
fails-if(styloVsGecko) == grid-abspos-staticpos-align-self-img-001.html grid-abspos-staticpos-align-self-img-001-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-staticpos-align-self-img-001.html grid-abspos-staticpos-align-self-img-001-ref.html
== grid-abspos-staticpos-align-self-img-002.html grid-abspos-staticpos-align-self-img-002-ref.html
fails-if(styloVsGecko) == grid-abspos-staticpos-align-self-rtl-001.html grid-abspos-staticpos-align-self-rtl-001-ref.html
fails-if(styloVsGecko) == grid-abspos-staticpos-align-self-rtl-002.html grid-abspos-staticpos-align-self-rtl-002-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-staticpos-align-self-rtl-001.html grid-abspos-staticpos-align-self-rtl-001-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-staticpos-align-self-rtl-002.html grid-abspos-staticpos-align-self-rtl-002-ref.html
== grid-abspos-staticpos-align-self-rtl-003.html grid-abspos-staticpos-align-self-rtl-003-ref.html
== grid-abspos-staticpos-align-self-rtl-004.html grid-abspos-staticpos-align-self-rtl-004-ref.html
fails-if(styloVsGecko) == grid-abspos-staticpos-align-self-vertWM-001.html grid-abspos-staticpos-align-self-vertWM-001-ref.html
fails-if(styloVsGecko) == grid-abspos-staticpos-align-self-vertWM-002.html grid-abspos-staticpos-align-self-vertWM-002-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-staticpos-align-self-vertWM-001.html grid-abspos-staticpos-align-self-vertWM-001-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-staticpos-align-self-vertWM-002.html grid-abspos-staticpos-align-self-vertWM-002-ref.html
== grid-abspos-staticpos-align-self-vertWM-003.html grid-abspos-staticpos-align-self-vertWM-003-ref.html
== grid-abspos-staticpos-align-self-vertWM-004.html grid-abspos-staticpos-align-self-vertWM-004-ref.html
fails-if(styloVsGecko) == grid-abspos-staticpos-justify-self-001.html grid-abspos-staticpos-justify-self-001-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-staticpos-justify-self-001.html grid-abspos-staticpos-justify-self-001-ref.html
== grid-abspos-staticpos-justify-self-002.html grid-abspos-staticpos-justify-self-002-ref.html
fails-if(styloVsGecko) == grid-abspos-staticpos-justify-self-img-001.html grid-abspos-staticpos-justify-self-img-001-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-staticpos-justify-self-img-001.html grid-abspos-staticpos-justify-self-img-001-ref.html
== grid-abspos-staticpos-justify-self-img-002.html grid-abspos-staticpos-justify-self-img-002-ref.html
fails-if(styloVsGecko) == grid-abspos-staticpos-justify-self-rtl-001.html grid-abspos-staticpos-justify-self-rtl-001-ref.html
fails-if(styloVsGecko) == grid-abspos-staticpos-justify-self-rtl-002.html grid-abspos-staticpos-justify-self-rtl-002-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-staticpos-justify-self-rtl-001.html grid-abspos-staticpos-justify-self-rtl-001-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-staticpos-justify-self-rtl-002.html grid-abspos-staticpos-justify-self-rtl-002-ref.html
== grid-abspos-staticpos-justify-self-rtl-003.html grid-abspos-staticpos-justify-self-rtl-003-ref.html
== grid-abspos-staticpos-justify-self-rtl-004.html grid-abspos-staticpos-justify-self-rtl-004-ref.html
fails-if(styloVsGecko) == grid-abspos-staticpos-justify-self-vertWM-001.html grid-abspos-staticpos-justify-self-vertWM-001-ref.html
fails-if(styloVsGecko) == grid-abspos-staticpos-justify-self-vertWM-002.html grid-abspos-staticpos-justify-self-vertWM-002-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-staticpos-justify-self-vertWM-001.html grid-abspos-staticpos-justify-self-vertWM-001-ref.html
fails-if(styloVsGecko||stylo) == grid-abspos-staticpos-justify-self-vertWM-002.html grid-abspos-staticpos-justify-self-vertWM-002-ref.html
== grid-abspos-staticpos-justify-self-vertWM-003.html grid-abspos-staticpos-justify-self-vertWM-003-ref.html
== grid-abspos-staticpos-justify-self-vertWM-004.html grid-abspos-staticpos-justify-self-vertWM-004-ref.html

View File

@ -1,3 +1,3 @@
# Tests for list-style-type
fails-if(styloVsGecko||webrender) == list-style-type-string-001a.html list-style-type-string-001-ref.html
fails-if(styloVsGecko||webrender) == list-style-type-string-001b.html list-style-type-string-001-ref.html
fails-if(webrender) == list-style-type-string-001a.html list-style-type-string-001-ref.html
fails-if(webrender) == list-style-type-string-001b.html list-style-type-string-001-ref.html

View File

@ -1,9 +1,9 @@
# Tests for inlinizing block-level boxes
skip-if(styloVsGecko) == ruby-inlinize-blocks-001.html ruby-inlinize-blocks-001-ref.html
fails-if(styloVsGecko) == ruby-inlinize-blocks-002.html ruby-inlinize-blocks-002-ref.html
skip-if(styloVsGecko||stylo) == ruby-inlinize-blocks-001.html ruby-inlinize-blocks-001-ref.html
fails-if(styloVsGecko||stylo) == ruby-inlinize-blocks-002.html ruby-inlinize-blocks-002-ref.html
== ruby-inlinize-blocks-003.html ruby-inlinize-blocks-003-ref.html
skip-if(styloVsGecko) == ruby-inlinize-blocks-004.html ruby-inlinize-blocks-004-ref.html
skip-if(styloVsGecko) == ruby-inlinize-blocks-005.html ruby-inlinize-blocks-005-ref.html
skip-if(styloVsGecko||stylo) == ruby-inlinize-blocks-004.html ruby-inlinize-blocks-004-ref.html
skip-if(styloVsGecko||stylo) == ruby-inlinize-blocks-005.html ruby-inlinize-blocks-005-ref.html
# Tests for autohiding base-identical annotations
== ruby-autohide-001.html ruby-autohide-001-ref.html
@ -12,8 +12,8 @@ skip-if(styloVsGecko) == ruby-inlinize-blocks-005.html ruby-inlinize-blocks-005-
== ruby-autohide-004.html ruby-autohide-001-ref.html
# Tests for ruby with text-combine-upright
fails-if(styloVsGecko) == ruby-text-combine-upright-001a.html ruby-text-combine-upright-001-ref.html
fails-if(styloVsGecko) == ruby-text-combine-upright-001b.html ruby-text-combine-upright-001-ref.html
fails-if(styloVsGecko||stylo) == ruby-text-combine-upright-001a.html ruby-text-combine-upright-001-ref.html
fails-if(styloVsGecko||stylo) == ruby-text-combine-upright-001b.html ruby-text-combine-upright-001-ref.html
== ruby-text-combine-upright-002a.html ruby-text-combine-upright-002-ref.html
== ruby-text-combine-upright-002b.html ruby-text-combine-upright-002-ref.html

View File

@ -1,4 +1,4 @@
== ruby-text-decoration-01.html ruby-text-decoration-01-ref.html
fails-if(stylo) == ruby-text-decoration-01.html ruby-text-decoration-01-ref.html
== text-decoration-propagation-01.html text-decoration-propagation-01-ref.html
# text-emphasis-style
@ -128,4 +128,4 @@ fuzzy-if(gtkWidget,3,4) == text-emphasis-line-height-002b.html text-emphasis-lin
== text-emphasis-line-height-004c.html text-emphasis-line-height-004-ref.html
== text-emphasis-line-height-004d.html text-emphasis-line-height-004-ref.html
# END tests from support/generate-text-emphasis-line-height-tests.py
fuzzy-if(gtkWidget,3,4) fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),43,1) fails-if(styloVsGecko) == text-emphasis-line-height-001z.html text-emphasis-line-height-001-ref.html
fuzzy-if(gtkWidget,3,4) fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),43,1) fails-if(styloVsGecko||stylo) == text-emphasis-line-height-001z.html text-emphasis-line-height-001-ref.html

View File

@ -4,16 +4,16 @@ pref(dom.webcomponents.enabled,true) == basic-shadow-2.html basic-shadow-2-ref.h
pref(dom.webcomponents.enabled,true) == basic-shadow-3.html basic-shadow-3-ref.html
pref(dom.webcomponents.enabled,true) == basic-shadow-4.html basic-shadow-4-ref.html
pref(dom.webcomponents.enabled,true) == basic-insertion-point-1.html basic-insertion-point-1-ref.html
pref(dom.webcomponents.enabled,true) skip-if(styloVsGecko) == basic-insertion-point-2.html basic-insertion-point-2-ref.html
pref(dom.webcomponents.enabled,true) skip-if(styloVsGecko||stylo) == basic-insertion-point-2.html basic-insertion-point-2-ref.html
pref(dom.webcomponents.enabled,true) == adjacent-insertion-points-1.html adjacent-insertion-points-1-ref.html
pref(dom.webcomponents.enabled,true) == adjacent-insertion-points-2.html adjacent-insertion-points-2-ref.html
pref(dom.webcomponents.enabled,true) == fallback-content-1.html fallback-content-1-ref.html
pref(dom.webcomponents.enabled,true) == remove-insertion-point-1.html remove-insertion-point-1-ref.html
pref(dom.webcomponents.enabled,true) == nested-insertion-point-1.html nested-insertion-point-1-ref.html
pref(dom.webcomponents.enabled,true) skip-if(styloVsGecko) == basic-shadow-element-1.html basic-shadow-element-1-ref.html
pref(dom.webcomponents.enabled,true) skip-if(styloVsGecko) == nested-shadow-element-1.html nested-shadow-element-1-ref.html
pref(dom.webcomponents.enabled,true) skip-if(styloVsGecko) == update-dist-node-descendants-1.html update-dist-node-descendants-1-ref.html
pref(dom.webcomponents.enabled,true) skip-if(styloVsGecko) == input-transition-1.html input-transition-1-ref.html
pref(dom.webcomponents.enabled,true) skip-if(styloVsGecko||stylo) == basic-shadow-element-1.html basic-shadow-element-1-ref.html
pref(dom.webcomponents.enabled,true) skip-if(styloVsGecko||stylo) == nested-shadow-element-1.html nested-shadow-element-1-ref.html
pref(dom.webcomponents.enabled,true) skip-if(styloVsGecko||stylo) == update-dist-node-descendants-1.html update-dist-node-descendants-1-ref.html
pref(dom.webcomponents.enabled,true) skip-if(styloVsGecko||stylo) == input-transition-1.html input-transition-1-ref.html
pref(dom.webcomponents.enabled,true) == dynamic-insertion-point-distribution-1.html dynamic-insertion-point-distribution-1-ref.html
pref(dom.webcomponents.enabled,true) == dynamic-insertion-point-distribution-2.html dynamic-insertion-point-distribution-2-ref.html
pref(dom.webcomponents.enabled,true) == remove-append-shadow-host-1.html remove-append-shadow-host-1-ref.html

View File

@ -12,7 +12,7 @@ default-preferences pref(layout.css.prefixes.webkit,true)
== webkit-gradient-linear-1b.html webkit-gradient-linear-1-ref.html
== webkit-gradient-linear-1c.html webkit-gradient-linear-1-ref.html
== webkit-gradient-linear-1d.html webkit-gradient-linear-1-ref.html
fails-if(styloVsGecko) == webkit-gradient-linear-2.html webkit-gradient-linear-2-ref.html
fails-if(styloVsGecko||stylo) == webkit-gradient-linear-2.html webkit-gradient-linear-2-ref.html
# Tests for -webkit-gradient(radial, ...)
== webkit-gradient-radial-1a.html webkit-gradient-radial-1-ref.html

View File

@ -107,7 +107,7 @@ HTTP(..) == 1127488-align-right-vertical-lr-ltr.html 1127488-align-bottom-left-r
== 1133945-1-vertical-align.html 1133945-1-vertical-align-ref.html
skip-if(Android) == 1134744-radio-checkbox-baseline-1.html 1134744-radio-checkbox-baseline-1-ref.html # Disabled on Android until bug 1352238 is fixed.
== 1134849-orthogonal-inline.html 1134849-orthogonal-inline-ref.html
fails-if(styloVsGecko) == 1135361-ruby-justify-1.html 1135361-ruby-justify-1-ref.html # bug 1136067
fails-if(styloVsGecko||stylo) == 1135361-ruby-justify-1.html 1135361-ruby-justify-1-ref.html # bug 1136067
fuzzy-if(winWidget,255,163) fuzzy-if(skiaContent,159,111) == 1136557-1-nested-spans.html 1136557-1-nested-spans-ref.html
fuzzy-if(winWidget,255,221) fuzzy-if(skiaContent,159,111) == 1136557-2-nested-spans.html 1136557-2-nested-spans-ref.html
fuzzy-if(winWidget,255,236) == 1136557-3-nested-spans.html 1136557-3-nested-spans-ref.html

View File

@ -1701,16 +1701,31 @@ AnonymousCounterStyle::AnonymousCounterStyle(const nsSubstring& aContent)
mSymbols.AppendElement(aContent);
}
static nsTArray<nsString>
CollectSymbolsFromCSSValueList(const nsCSSValueList* aList)
{
nsTArray<nsString> symbols;
for (const nsCSSValueList* item = aList; item; item = item->mNext) {
item->mValue.GetStringValue(*symbols.AppendElement());
}
symbols.Compact();
return symbols;
}
AnonymousCounterStyle::AnonymousCounterStyle(const nsCSSValue::Array* aParams)
: AnonymousCounterStyle(
aParams->Item(0).GetIntValue(),
CollectSymbolsFromCSSValueList(aParams->Item(1).GetListValue()))
{
}
AnonymousCounterStyle::AnonymousCounterStyle(uint8_t aSystem,
nsTArray<nsString> aSymbols)
: CounterStyle(NS_STYLE_LIST_STYLE_CUSTOM)
, mSingleString(false)
, mSystem(aParams->Item(0).GetIntValue())
, mSystem(aSystem)
, mSymbols(Move(aSymbols))
{
for (const nsCSSValueList* item = aParams->Item(1).GetListValue();
item; item = item->mNext) {
item->mValue.GetStringValue(*mSymbols.AppendElement());
}
mSymbols.Compact();
}
/* virtual */ void

View File

@ -104,6 +104,7 @@ class AnonymousCounterStyle final : public CounterStyle
{
public:
explicit AnonymousCounterStyle(const nsSubstring& aContent);
AnonymousCounterStyle(uint8_t aSystem, nsTArray<nsString> aSymbols);
explicit AnonymousCounterStyle(const nsCSSValue::Array* aValue);
virtual void GetStyleName(nsAString& aResult) override;
@ -150,8 +151,18 @@ public:
CounterStylePtr(const CounterStylePtr& aOther)
: mRaw(aOther.mRaw)
{
if (IsAnonymous()) {
AsAnonymous()->AddRef();
switch (GetType()) {
case eCounterStyle:
break;
case eAnonymousCounterStyle:
AsAnonymous()->AddRef();
break;
case eUnresolvedAtom:
AsAtom()->AddRef();
break;
case eMask:
MOZ_ASSERT_UNREACHABLE("Unknown type");
break;
}
}
CounterStylePtr(CounterStylePtr&& aOther)
@ -169,18 +180,36 @@ public:
}
return *this;
}
CounterStylePtr& operator=(CounterStylePtr&& aOther)
{
if (this != &aOther) {
Reset();
mRaw = aOther.mRaw;
aOther.mRaw = 0;
}
return *this;
}
CounterStylePtr& operator=(decltype(nullptr))
{
Reset();
return *this;
}
CounterStylePtr& operator=(already_AddRefed<nsIAtom> aAtom)
{
Reset();
if (nsIAtom* raw = aAtom.take()) {
AssertPointerAligned(raw);
mRaw = reinterpret_cast<uintptr_t>(raw) | eUnresolvedAtom;
}
return *this;
}
CounterStylePtr& operator=(AnonymousCounterStyle* aCounterStyle)
{
Reset();
if (aCounterStyle) {
CounterStyle* raw = do_AddRef(aCounterStyle).take();
AssertPointerAligned(raw);
mRaw = reinterpret_cast<uintptr_t>(raw) | kAnonymousFlag;
mRaw = reinterpret_cast<uintptr_t>(raw) | eAnonymousCounterStyle;
}
return *this;
}
@ -190,7 +219,7 @@ public:
if (aCounterStyle) {
MOZ_ASSERT(!aCounterStyle->AsAnonymous());
AssertPointerAligned(aCounterStyle);
mRaw = reinterpret_cast<uintptr_t>(aCounterStyle);
mRaw = reinterpret_cast<uintptr_t>(aCounterStyle) | eCounterStyle;
}
return *this;
}
@ -205,42 +234,75 @@ public:
bool operator!=(const CounterStylePtr& aOther) const
{ return mRaw != aOther.mRaw; }
bool IsResolved() const { return !IsUnresolved(); }
inline void Resolve(CounterStyleManager* aManager);
private:
CounterStyle* Get() const
{
return reinterpret_cast<CounterStyle*>(mRaw & ~kAnonymousFlag);
MOZ_ASSERT(IsResolved());
return reinterpret_cast<CounterStyle*>(mRaw & ~eMask);
}
void AssertPointerAligned(CounterStyle* aPointer)
template<typename T>
void AssertPointerAligned(T* aPointer)
{
// This can be checked at compile time via
// > static_assert(alignof(CounterStyle) >= 2);
// > static_assert(alignof(CounterStyle) >= 4);
// > static_assert(alignof(nsIAtom) >= 4);
// but MSVC2015 doesn't support using alignof on an abstract class.
// Once we move to MSVC2017, we can replace this runtime check with
// the compile time check above.
MOZ_ASSERT(!(reinterpret_cast<uintptr_t>(aPointer) & kAnonymousFlag));
MOZ_ASSERT(!(reinterpret_cast<uintptr_t>(aPointer) & eMask));
}
bool IsAnonymous() const { return !!(mRaw & kAnonymousFlag); }
enum Type : uintptr_t {
eCounterStyle = 0,
eAnonymousCounterStyle = 1,
eUnresolvedAtom = 2,
eMask = 3,
};
Type GetType() const { return static_cast<Type>(mRaw & eMask); }
bool IsUnresolved() const { return GetType() == eUnresolvedAtom; }
bool IsAnonymous() const { return GetType() == eAnonymousCounterStyle; }
nsIAtom* AsAtom()
{
MOZ_ASSERT(IsUnresolved());
return reinterpret_cast<nsIAtom*>(mRaw & ~eMask);
}
AnonymousCounterStyle* AsAnonymous()
{
MOZ_ASSERT(IsAnonymous());
return static_cast<AnonymousCounterStyle*>(
reinterpret_cast<CounterStyle*>(mRaw & ~kAnonymousFlag));
reinterpret_cast<CounterStyle*>(mRaw & ~eMask));
}
void Reset()
{
if (IsAnonymous()) {
AsAnonymous()->Release();
switch (GetType()) {
case eCounterStyle:
break;
case eAnonymousCounterStyle:
AsAnonymous()->Release();
break;
case eUnresolvedAtom:
AsAtom()->Release();
break;
case eMask:
MOZ_ASSERT_UNREACHABLE("Unknown type");
break;
}
mRaw = 0;
}
// mRaw contains the pointer, and its last bit is used for the flag.
// If the flag is set, this pointer owns an AnonymousCounterStyle,
// otherwise, it is a weak pointer referring a named counter style
// mRaw contains the pointer, and its last two bits are used for type
// of the pointer.
// If the type is eUnresolvedAtom, the pointer owns a reference to an
// nsIAtom, and it needs to be resolved to a counter style before use.
// If the type is eAnonymousCounterStyle, it owns a reference to an
// anonymous counter style.
// Otherwise it is a weak pointer referring a named counter style
// managed by CounterStyleManager.
static const uintptr_t kAnonymousFlag = 1;
uintptr_t mRaw;
};
@ -295,6 +357,14 @@ private:
nsTArray<CounterStyle*> mRetiredStyles;
};
void
CounterStylePtr::Resolve(CounterStyleManager* aManager)
{
if (IsUnresolved()) {
*this = aManager->BuildCounterStyle(AsAtom());
}
}
} // namespace mozilla
#endif /* !defined(mozilla_CounterStyleManager_h_) */

View File

@ -1159,15 +1159,33 @@ Gecko_CopyImageOrientationFrom(nsStyleVisibility* aDst,
}
void
Gecko_SetListStyleType(nsStyleList* aList, nsIAtom* aName)
Gecko_SetCounterStyleToName(CounterStylePtr* aPtr, nsIAtom* aName)
{
aList->SetListStyleType(aName);
*aPtr = already_AddRefed<nsIAtom>(aName);
}
void
Gecko_CopyListStyleTypeFrom(nsStyleList* aDst, const nsStyleList* aSrc)
Gecko_SetCounterStyleToSymbols(CounterStylePtr* aPtr, uint8_t aSymbolsType,
nsACString const* const* aSymbols,
uint32_t aSymbolsCount)
{
aDst->CopyListStyleTypeFrom(*aSrc);
nsTArray<nsString> symbols(aSymbolsCount);
for (uint32_t i = 0; i < aSymbolsCount; i++) {
symbols.AppendElement(NS_ConvertUTF8toUTF16(*aSymbols[i]));
}
*aPtr = new AnonymousCounterStyle(aSymbolsType, Move(symbols));
}
void
Gecko_SetCounterStyleToString(CounterStylePtr* aPtr, const nsACString* aSymbol)
{
*aPtr = new AnonymousCounterStyle(NS_ConvertUTF8toUTF16(*aSymbol));
}
void
Gecko_CopyCounterStyle(CounterStylePtr* aDst, const CounterStylePtr* aSrc)
{
*aDst = *aSrc;
}
already_AddRefed<css::URLValue>
@ -1724,6 +1742,21 @@ Gecko_nsStyleSVG_CopyDashArray(nsStyleSVG* aDst, const nsStyleSVG* aSrc)
aDst->mStrokeDasharray = aSrc->mStrokeDasharray;
}
void
Gecko_nsStyleSVG_SetContextPropertiesLength(nsStyleSVG* aSvg, uint32_t aLen)
{
aSvg->mContextProps.Clear();
aSvg->mContextProps.SetLength(aLen);
}
void
Gecko_nsStyleSVG_CopyContextProperties(nsStyleSVG* aDst, const nsStyleSVG* aSrc)
{
aDst->mContextProps = aSrc->mContextProps;
aDst->mContextPropsBits = aSrc->mContextPropsBits;
}
css::URLValue*
Gecko_NewURLValue(ServoBundledURI aURI)
{
@ -1989,6 +2022,26 @@ Gecko_nsStyleFont_FixupNoneGeneric(nsStyleFont* aFont,
aFont->mGenericID, defaultVariableFont);
}
void
Gecko_nsStyleFont_FixupMinFontSize(nsStyleFont* aFont,
RawGeckoPresContextBorrowed aPresContext)
{
nscoord minFontSize;
bool needsCache = false;
{
AutoReadLock guard(*sServoLangFontPrefsLock);
minFontSize = aPresContext->MinFontSize(aFont->mLanguage, &needsCache);
}
if (needsCache) {
AutoWriteLock guard(*sServoLangFontPrefsLock);
minFontSize = aPresContext->MinFontSize(aFont->mLanguage, nullptr);
}
nsRuleNode::ApplyMinFontSize(aFont, aPresContext, minFontSize);
}
void
FontSizePrefs::CopyFrom(const LangGroupFontPrefs& prefs)
{

View File

@ -274,8 +274,16 @@ void Gecko_CopyImageOrientationFrom(nsStyleVisibility* aDst,
const nsStyleVisibility* aSrc);
// Counter style.
void Gecko_SetListStyleType(nsStyleList* style_struct, nsIAtom* name);
void Gecko_CopyListStyleTypeFrom(nsStyleList* dst, const nsStyleList* src);
// This function takes an already addrefed nsIAtom
void Gecko_SetCounterStyleToName(mozilla::CounterStylePtr* ptr, nsIAtom* name);
void Gecko_SetCounterStyleToSymbols(mozilla::CounterStylePtr* ptr,
uint8_t symbols_type,
nsACString const* const* symbols,
uint32_t symbols_count);
void Gecko_SetCounterStyleToString(mozilla::CounterStylePtr* ptr,
const nsACString* symbol);
void Gecko_CopyCounterStyle(mozilla::CounterStylePtr* dst,
const mozilla::CounterStylePtr* src);
// background-image style.
void Gecko_SetNullImageValue(nsStyleImage* image);
@ -442,6 +450,8 @@ void Gecko_nsStyleSVGPaint_Reset(nsStyleSVGPaint* paint);
void Gecko_nsStyleSVG_SetDashArrayLength(nsStyleSVG* svg, uint32_t len);
void Gecko_nsStyleSVG_CopyDashArray(nsStyleSVG* dst, const nsStyleSVG* src);
void Gecko_nsStyleSVG_SetContextPropertiesLength(nsStyleSVG* svg, uint32_t len);
void Gecko_nsStyleSVG_CopyContextProperties(nsStyleSVG* dst, const nsStyleSVG* src);
mozilla::css::URLValue* Gecko_NewURLValue(ServoBundledURI uri);
NS_DECL_THREADSAFE_FFI_REFCOUNTING(mozilla::css::URLValue, CSSURLValue);
@ -497,6 +507,8 @@ void Gecko_nsStyleFont_SetLang(nsStyleFont* font, nsIAtom* atom);
void Gecko_nsStyleFont_CopyLangFrom(nsStyleFont* aFont, const nsStyleFont* aSource);
void Gecko_nsStyleFont_FixupNoneGeneric(nsStyleFont* font,
RawGeckoPresContextBorrowed pres_context);
void Gecko_nsStyleFont_FixupMinFontSize(nsStyleFont* font,
RawGeckoPresContextBorrowed pres_context);
FontSizePrefs Gecko_GetBaseSize(nsIAtom* lang);
struct GeckoFontMetrics

View File

@ -129,6 +129,7 @@ whitelist-types = [
"mozilla::StyleGrid.*",
"mozilla::UpdateAnimationsTasks",
"mozilla::LookAndFeel",
"mozilla::gfx::FontVariation",
".*ThreadSafe.*Holder",
"AnonymousContent",
"AudioContext",
@ -259,7 +260,8 @@ opaque-types = [
"std::namespace::atomic___base", "std::atomic__My_base",
"std::atomic",
"std::atomic___base",
"mozilla::gfx::.*",
# We want everything but FontVariation to be opaque but we don't have negative regexes ;_;
"mozilla::gfx::(.{0,12}|.{14,}|([^F][^o][^n][^t][^V][^a][^r][^i][^a][^t][^i][^o][^n]))",
"FallibleTArray",
"mozilla::dom::Sequence",
"mozilla::dom::Optional",
@ -344,6 +346,7 @@ structs-types = [
"TraversalRestyleBehavior",
"TraversalRootBehavior",
"ComputedTimingFunction_BeforeFlag",
"CounterStylePtr",
"FontFamilyList",
"FontFamilyType",
"FontSizePrefs",

View File

@ -443,6 +443,30 @@ nsRuleNode::FixupNoneGeneric(nsFont* aFont,
}
}
/* static */
void
nsRuleNode::ApplyMinFontSize(nsStyleFont* aFont,
const nsPresContext* aPresContext,
nscoord aMinFontSize)
{
nscoord fontSize = aFont->mSize;
// enforce the user' specified minimum font-size on the value that we expose
// (but don't change font-size:0, since that would unhide hidden text)
if (fontSize > 0) {
if (aMinFontSize < 0) {
aMinFontSize = 0;
} else {
aMinFontSize = (aMinFontSize * aFont->mMinFontSizeRatio) / 100;
}
if (fontSize < aMinFontSize && !aPresContext->IsChrome()) {
// override the minimum font-size constraint
fontSize = aMinFontSize;
}
}
aFont->mFont.size = fontSize;
}
static nsSize CalcViewportUnitsScale(nsPresContext* aPresContext)
{
// The caller is making use of viewport units, so notify the pres context
@ -4041,23 +4065,8 @@ nsRuleNode::SetFont(nsPresContext* aPresContext, nsStyleContext* aContext,
NS_ASSERTION(aFont->mScriptUnconstrainedSize <= aFont->mSize,
"scriptminsize should never be making things bigger");
nscoord fontSize = aFont->mSize;
// enforce the user' specified minimum font-size on the value that we expose
// (but don't change font-size:0, since that would unhide hidden text)
if (fontSize > 0) {
nscoord minFontSize = aPresContext->MinFontSize(aFont->mLanguage);
if (minFontSize < 0) {
minFontSize = 0;
} else {
minFontSize = (minFontSize * aFont->mMinFontSizeRatio) / 100;
}
if (fontSize < minFontSize && !aPresContext->IsChrome()) {
// override the minimum font-size constraint
fontSize = minFontSize;
}
}
aFont->mFont.size = fontSize;
nsRuleNode::ApplyMinFontSize(aFont, aPresContext,
aPresContext->MinFontSize(aFont->mLanguage));
// font-size-adjust: number, none, inherit, initial, -moz-system-font
const nsCSSValue* sizeAdjustValue = aRuleData->ValueForFontSizeAdjust();

View File

@ -820,6 +820,14 @@ public:
uint8_t aGenericFontID,
const nsFont* aDefaultVariableFont);
/**
* For an nsStyleFont with mSize set, apply minimum font size constraints
* from preferences, as well as -moz-min-font-size-ratio.
*/
static void ApplyMinFontSize(nsStyleFont* aFont,
const nsPresContext* aPresContext,
nscoord aMinFontSize);
// Transition never returns null; on out of memory it'll just return |this|.
nsRuleNode* Transition(nsIStyleRule* aRule, mozilla::SheetType aLevel,
bool aIsImportantRule);

View File

@ -1061,6 +1061,17 @@ enum class StyleGridTrackBreadth : uint8_t {
#define NS_STYLE_CONTEXT_PROPERTY_FILL (1 << 0)
#define NS_STYLE_CONTEXT_PROPERTY_STROKE (1 << 1)
/*
* -moz-window-shadow
* Also used in widget code
*/
#define NS_STYLE_WINDOW_SHADOW_NONE 0
#define NS_STYLE_WINDOW_SHADOW_DEFAULT 1
#define NS_STYLE_WINDOW_SHADOW_MENU 2
#define NS_STYLE_WINDOW_SHADOW_TOOLTIP 3
#define NS_STYLE_WINDOW_SHADOW_SHEET 4
// dominant-baseline
#define NS_STYLE_DOMINANT_BASELINE_AUTO 0
#define NS_STYLE_DOMINANT_BASELINE_USE_SCRIPT 1

View File

@ -603,7 +603,7 @@ nsStyleList::nsStyleList(const nsPresContext* aContext)
{
MOZ_COUNT_CTOR(nsStyleList);
if (aContext->StyleSet()->IsServo()) {
mListStyleType = nsGkAtoms::disc;
mCounterStyle = do_AddRef(nsGkAtoms::disc);
} else {
mCounterStyle = aContext->
CounterStyleManager()->BuildCounterStyle(nsGkAtoms::disc);
@ -619,7 +619,6 @@ nsStyleList::~nsStyleList()
nsStyleList::nsStyleList(const nsStyleList& aSource)
: mListStylePosition(aSource.mListStylePosition)
, mListStyleImage(aSource.mListStyleImage)
, mListStyleType(aSource.mListStyleType)
, mCounterStyle(aSource.mCounterStyle)
, mQuotes(aSource.mQuotes)
, mImageRegion(aSource.mImageRegion)
@ -636,12 +635,7 @@ nsStyleList::FinishStyle(nsPresContext* aPresContext)
if (mListStyleImage && !mListStyleImage->IsResolved()) {
mListStyleImage->Resolve(aPresContext);
}
if (mListStyleType) {
MOZ_ASSERT(!mCounterStyle);
mCounterStyle = aPresContext->
CounterStyleManager()->BuildCounterStyle(mListStyleType);
mListStyleType = nullptr;
}
mCounterStyle.Resolve(aPresContext->CounterStyleManager());
}
void
@ -709,8 +703,7 @@ nsStyleList::CalcDifference(const nsStyleList& aNewData) const
return nsChangeHint_ReconstructFrame;
}
if (DefinitelyEqualImages(mListStyleImage, aNewData.mListStyleImage) &&
(mCounterStyle == aNewData.mCounterStyle ||
mListStyleType != aNewData.mListStyleType)) {
mCounterStyle == aNewData.mCounterStyle) {
if (mImageRegion.IsEqualInterior(aNewData.mImageRegion)) {
return nsChangeHint(0);
}
@ -3797,8 +3790,7 @@ CounterFunction::operator==(const CounterFunction& aOther) const
{
return mIdent == aOther.mIdent &&
mSeparator == aOther.mSeparator &&
mCounterStyle == aOther.mCounterStyle &&
mCounterStyleName == aOther.mCounterStyleName;
mCounterStyle == aOther.mCounterStyle;
}
nsStyleContentData&
@ -3840,13 +3832,8 @@ nsStyleContentData::Resolve(nsPresContext* aPresContext)
break;
case eStyleContentType_Counter:
case eStyleContentType_Counters: {
CounterFunction* counters = mContent.mCounters;
if (counters->mCounterStyleName) {
MOZ_ASSERT(!counters->mCounterStyle);
counters->mCounterStyle = aPresContext->CounterStyleManager()->
BuildCounterStyle(counters->mCounterStyleName);
counters->mCounterStyleName = nullptr;
}
mContent.mCounters->
mCounterStyle.Resolve(aPresContext->CounterStyleManager());
break;
}
default:

View File

@ -1468,19 +1468,6 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleList
already_AddRefed<nsIURI> GetListStyleImageURI() const;
// The following two methods are called from Servo code to maintain
// list-style-type off main thread.
void SetListStyleType(nsIAtom* aType)
{
mListStyleType = aType;
mCounterStyle = nullptr;
}
void CopyListStyleTypeFrom(const nsStyleList& aOther)
{
mListStyleType = aOther.mListStyleType;
mCounterStyle = aOther.mCounterStyle;
}
const nsStyleQuoteValues::QuotePairArray& GetQuotePairs() const;
void SetQuotesInherit(const nsStyleList* aOther);
@ -1491,12 +1478,6 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleList
uint8_t mListStylePosition; // [inherited]
RefPtr<nsStyleImageRequest> mListStyleImage; // [inherited]
// mCounterStyle is the actual field for computed list-style-type.
// mListStyleType is only used when we are off the main thread, so we
// cannot safely construct CounterStyle object. FinishStyle() will
// use it to setup mCounterStyle and then clear it. At any time, only
// one of the following two fields should be non-null.
nsCOMPtr<nsIAtom> mListStyleType;
mozilla::CounterStylePtr mCounterStyle; // [inherited]
private:
@ -3048,10 +3029,7 @@ public:
nsString mIdent;
// This is only used when it is a counters() function.
nsString mSeparator;
// One and only one of mCounterStyle and mCounterStyleName must be
// non-null at any time.
mozilla::CounterStylePtr mCounterStyle;
nsCOMPtr<nsIAtom> mCounterStyleName;
NS_INLINE_DECL_THREADSAFE_REFCOUNTING(CounterFunction)
@ -3067,7 +3045,7 @@ public:
{
MOZ_ASSERT(mType == eStyleContentType_Counter ||
mType == eStyleContentType_Counters);
MOZ_ASSERT(mContent.mCounters->mCounterStyle,
MOZ_ASSERT(mContent.mCounters->mCounterStyle.IsResolved(),
"Counter style should have been resolved");
return mContent.mCounters;
}

View File

@ -53,10 +53,6 @@ to mochitest command.
* test_transitions_and_reframes.html `pseudo-element`: bug 1366422 [4]
* Events:
* test_animations_event_order.html [2]
* symbols() function and string value on list-style-type bug 1363596
* test_value_storage.html `symbols(` [30]
* ... `list-style-type` [8]
* ... `'list-style'` [18]
* Unimplemented \@font-face descriptors:
* test_font_face_parser.html `font-language-override`: bug 1355364 [8]
* keyword values should be preserved in \@font-face bug 1355368

View File

@ -715,7 +715,7 @@ function BuildConditionSandbox(aURL) {
#endif
#ifdef MOZ_STYLO
sandbox.stylo = prefs.getBoolPref("layout.css.servo.enabled", false);
sandbox.stylo = prefs.getBoolPref("layout.css.servo.enabled", false) && !gCompareStyloToGecko;
sandbox.styloVsGecko = gCompareStyloToGecko;
#else
sandbox.stylo = false;

View File

@ -414,6 +414,15 @@ pref("ui.bookmark.mobilefolder.enabled", true);
pref("ui.bookmark.mobilefolder.enabled", false);
#endif
#if MOZ_UPDATE_CHANNEL == nightly
pref("mma.enabled", true);
#elif MOZ_UPDATE_CHANNEL == beta
pref("mma.enabled", true);
#else
pref("mma.enabled", true);
#endif
pref("ui.touch.radius.enabled", false);
pref("ui.touch.radius.leftmm", 3);
pref("ui.touch.radius.topmm", 5);

View File

@ -10,18 +10,40 @@ import android.app.Application;
import android.content.Context;
import org.mozilla.gecko.MmaConstants;
import org.mozilla.gecko.PrefsHelper;
public class MmaDelegate {
private static final String ENABLE_PREF = "mma.enabled";
private static MmaInterface mmaHelper = MmaConstants.getMma();
private static final String[] prefs = { ENABLE_PREF };
public static void init(Application application) {
mmaHelper.init(application);
setupPrefHandler(application);
}
public void start(Context context) {
mmaHelper.start(context);
public static void stop() {
mmaHelper.stop();
}
private static void setupPrefHandler(final Application application) {
PrefsHelper.PrefHandler handler = new PrefsHelper.PrefHandlerBase() {
@Override
public void prefValue(String pref, boolean value) {
if (pref.equals(ENABLE_PREF)) {
if (value) {
mmaHelper.init(application);
} else {
mmaHelper.stop();
}
}
}
};
PrefsHelper.addObserver(prefs, handler);
}
}

View File

@ -19,4 +19,5 @@ public interface MmaInterface {
void track(String leanplumEvent, double value);
void stop();
}

Some files were not shown because too many files have changed in this diff Show More