merge mozilla-central to autoland. r=merge a=merge

This commit is contained in:
Sebastian Hengst 2017-07-15 16:35:44 +02:00
Родитель 75746a851c 186c6d7165
Коммит 33f28b9e2b
65 изменённых файлов: 543 добавлений и 293 удалений

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

@ -4992,7 +4992,7 @@ var CombinedStopReload = {
},
switchToStop(aRequest, aWebProgress) {
if (!this._initialized)
if (!this._initialized || !this._shouldSwitch(aRequest))
return;
let shouldAnimate = AppConstants.MOZ_PHOTON_ANIMATIONS &&
@ -5010,7 +5010,8 @@ var CombinedStopReload = {
},
switchToReload(aRequest, aWebProgress) {
if (!this._initialized)
if (!this._initialized || !this._shouldSwitch(aRequest) ||
!this.reload.hasAttribute("displaystop"))
return;
let shouldAnimate = AppConstants.MOZ_PHOTON_ANIMATIONS &&
@ -5047,6 +5048,19 @@ var CombinedStopReload = {
}, 650, this);
},
_shouldSwitch(aRequest) {
if (!aRequest ||
!aRequest.originalURI ||
aRequest.originalURI.spec.startsWith("about:reader"))
return true;
if (aRequest.originalURI.schemeIs("chrome") ||
aRequest.originalURI.schemeIs("about"))
return false;
return true;
},
_cancelTransition() {
if (this._timer) {
clearTimeout(this._timer);

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

@ -0,0 +1,7 @@
"use strict";
module.exports = {
"extends": [
"plugin:mozilla/browser-test"
]
};

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

@ -0,0 +1,6 @@
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>POST Search</ShortName>
<Url type="text/html" method="POST" template="http://mochi.test:8888/browser/browser/base/content/test/about/print_postdata.sjs">
<Param name="searchterms" value="{searchTerms}"/>
</Url>
</OpenSearchDescription>

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

@ -0,0 +1,21 @@
[DEFAULT]
support-files =
aboutHome_content_script.js
head.js
healthreport_pingData.js
healthreport_testRemoteCommands.html
print_postdata.sjs
searchSuggestionEngine.sjs
searchSuggestionEngine.xml
test_bug959531.html
POSTSearchEngine.xml
[browser_aboutCertError.js]
[browser_aboutStopReload.js]
[browser_aboutNetError.js]
[browser_aboutSupport.js]
[browser_aboutSupport_newtab_security_state.js]
[browser_aboutHealthReport.js]
skip-if = os == "linux" # Bug 924307
[browser_aboutHome.js]
[browser_aboutHome_wrapsCorrectly.js]

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

@ -3,8 +3,8 @@
*/
const CHROME_BASE = "chrome://mochitests/content/browser/browser/base/content/test/general/";
const HTTPS_BASE = "https://example.com/browser/browser/base/content/test/general/";
const CHROME_BASE = "chrome://mochitests/content/browser/browser/base/content/test/about/";
const HTTPS_BASE = "https://example.com/browser/browser/base/content/test/about/";
const TELEMETRY_LOG_PREF = "toolkit.telemetry.log.level";
const telemetryOriginalLogPref = Preferences.get(TELEMETRY_LOG_PREF, null);

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

@ -12,7 +12,7 @@ XPCOMUtils.defineLazyModuleGetter(this, "AppConstants",
"resource://gre/modules/AppConstants.jsm");
const TEST_CONTENT_HELPER = "chrome://mochitests/content/browser/browser/base/" +
"content/test/general/aboutHome_content_script.js";
"content/test/about/aboutHome_content_script.js";
var gRightsVersion = Services.prefs.getIntPref("browser.rights.version");
registerCleanupFunction(function() {
@ -269,7 +269,7 @@ add_task(async function() {
resolve();
};
Services.obs.addObserver(searchObserver, "browser-search-engine-modified");
Services.search.addEngine("http://test:80/browser/browser/base/content/test/general/POSTSearchEngine.xml",
Services.search.addEngine("http://test:80/browser/browser/base/content/test/about/POSTSearchEngine.xml",
null, null, false);
});
});
@ -280,7 +280,7 @@ add_task(async function() {
await BrowserTestUtils.withNewTab({ gBrowser, url: "about:home" }, async function(browser) {
let promise = BrowserTestUtils.browserLoaded(browser);
browser.loadURI("https://example.com/browser/browser/base/content/test/general/test_bug959531.html");
browser.loadURI("https://example.com/browser/browser/base/content/test/about/test_bug959531.html");
await promise;
await ContentTask.spawn(browser, null, async function() {

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

@ -0,0 +1,90 @@
async function waitForNoAnimation(elt) {
return BrowserTestUtils.waitForCondition(() => !elt.hasAttribute("animate"));
}
async function getAnimatePromise(elt) {
return BrowserTestUtils.waitForAttribute("animate", elt)
.then(() => Assert.ok(true, `${elt.id} should animate`));
}
function stopReloadMutationCallback() {
Assert.ok(false, "stop-reload's animate attribute should not have been mutated");
}
add_task(async function checkDontShowStopOnNewTab() {
let stopReloadContainer = document.getElementById("stop-reload-button");
let stopReloadContainerObserver = new MutationObserver(stopReloadMutationCallback);
await waitForNoAnimation(stopReloadContainer);
stopReloadContainerObserver.observe(stopReloadContainer, { attributeFilter: ["animate"]});
let tab = await BrowserTestUtils.openNewForegroundTab({gBrowser,
opening: "about:home",
waitForStateStop: true});
await BrowserTestUtils.removeTab(tab);
Assert.ok(true, "Test finished: stop-reload does not animate when navigating to local URI on new tab");
stopReloadContainerObserver.disconnect();
});
add_task(async function checkDontShowStopFromLocalURI() {
let stopReloadContainer = document.getElementById("stop-reload-button");
let stopReloadContainerObserver = new MutationObserver(stopReloadMutationCallback);
let tab = await BrowserTestUtils.openNewForegroundTab({gBrowser,
opening: "about:home",
waitForStateStop: true});
await waitForNoAnimation(stopReloadContainer);
stopReloadContainerObserver.observe(stopReloadContainer, { attributeFilter: ["animate"]});
await BrowserTestUtils.loadURI(tab.linkedBrowser, "about:mozilla");
await BrowserTestUtils.removeTab(tab);
Assert.ok(true, "Test finished: stop-reload does not animate when navigating between local URIs");
stopReloadContainerObserver.disconnect();
});
add_task(async function checkDontShowStopFromNonLocalURI() {
let stopReloadContainer = document.getElementById("stop-reload-button");
let stopReloadContainerObserver = new MutationObserver(stopReloadMutationCallback);
let tab = await BrowserTestUtils.openNewForegroundTab({gBrowser,
opening: "https://example.com",
waitForStateStop: true});
await waitForNoAnimation(stopReloadContainer);
stopReloadContainerObserver.observe(stopReloadContainer, { attributeFilter: ["animate"]});
await BrowserTestUtils.loadURI(tab.linkedBrowser, "about:mozilla");
await BrowserTestUtils.removeTab(tab);
Assert.ok(true, "Test finished: stop-reload does not animate when navigating to local URI from non-local URI");
stopReloadContainerObserver.disconnect();
});
add_task(async function checkDoShowStopOnNewTab() {
let stopReloadContainer = document.getElementById("stop-reload-button");
let animatePromise = getAnimatePromise(stopReloadContainer);
await waitForNoAnimation(stopReloadContainer);
let tab = await BrowserTestUtils.openNewForegroundTab({gBrowser,
opening: "https://example.com",
waitForStateStop: true});
await animatePromise;
await waitForNoAnimation(stopReloadContainer);
await BrowserTestUtils.removeTab(tab);
info("Test finished: stop-reload animates when navigating to non-local URI on new tab");
});
add_task(async function checkDoShowStopFromLocalURI() {
let stopReloadContainer = document.getElementById("stop-reload-button");
await waitForNoAnimation(stopReloadContainer);
let tab = await BrowserTestUtils.openNewForegroundTab({gBrowser,
opening: "about:home",
waitForStateStop: true});
let animatePromise = getAnimatePromise(stopReloadContainer);
BrowserTestUtils.loadURI(tab.linkedBrowser, "https://example.com");
await animatePromise;
await waitForNoAnimation(stopReloadContainer);
await BrowserTestUtils.removeTab(tab);
info("Test finished: stop-reload animates when navigating local URI from non-local URI");
});

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

@ -0,0 +1,155 @@
/* eslint-env mozilla/frame-script */
function waitForCondition(condition, nextTest, errorMsg, retryTimes) {
retryTimes = typeof retryTimes !== "undefined" ? retryTimes : 30;
var tries = 0;
var interval = setInterval(function() {
if (tries >= retryTimes) {
ok(false, errorMsg);
moveOn();
}
var conditionPassed;
try {
conditionPassed = condition();
} catch (e) {
ok(false, e + "\n" + e.stack);
conditionPassed = false;
}
if (conditionPassed) {
moveOn();
}
tries++;
}, 100);
var moveOn = function() { clearInterval(interval); nextTest(); };
}
function promiseWaitForCondition(aConditionFn) {
return new Promise(resolve => {
waitForCondition(aConditionFn, resolve, "Condition didn't pass.");
});
}
function whenTabLoaded(aTab, aCallback) {
promiseTabLoadEvent(aTab).then(aCallback);
}
function promiseTabLoaded(aTab) {
return new Promise(resolve => {
whenTabLoaded(aTab, resolve);
});
}
/**
* Waits for a load (or custom) event to finish in a given tab. If provided
* load an uri into the tab.
*
* @param tab
* The tab to load into.
* @param [optional] url
* The url to load, or the current url.
* @return {Promise} resolved when the event is handled.
* @resolves to the received event
* @rejects if a valid load event is not received within a meaningful interval
*/
function promiseTabLoadEvent(tab, url) {
info("Wait tab event: load");
function handle(loadedUrl) {
if (loadedUrl === "about:blank" || (url && loadedUrl !== url)) {
info(`Skipping spurious load event for ${loadedUrl}`);
return false;
}
info("Tab event received: load");
return true;
}
let loaded = BrowserTestUtils.browserLoaded(tab.linkedBrowser, false, handle);
if (url)
BrowserTestUtils.loadURI(tab.linkedBrowser, url);
return loaded;
}
/**
* Waits for the next top-level document load in the current browser. The URI
* of the document is compared against aExpectedURL. The load is then stopped
* before it actually starts.
*
* @param aExpectedURL
* The URL of the document that is expected to load.
* @param aStopFromProgressListener
* Whether to cancel the load directly from the progress listener. Defaults to true.
* If you're using this method to avoid hitting the network, you want the default (true).
* However, the browser UI will behave differently for loads stopped directly from
* the progress listener (effectively in the middle of a call to loadURI) and so there
* are cases where you may want to avoid stopping the load directly from within the
* progress listener callback.
* @return promise
*/
function waitForDocLoadAndStopIt(aExpectedURL, aBrowser = gBrowser.selectedBrowser, aStopFromProgressListener = true) {
function content_script(contentStopFromProgressListener) {
let { interfaces: Ci, utils: Cu } = Components;
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
let wp = docShell.QueryInterface(Ci.nsIWebProgress);
function stopContent(now, uri) {
if (now) {
/* Hammer time. */
content.stop();
/* Let the parent know we're done. */
sendAsyncMessage("Test:WaitForDocLoadAndStopIt", { uri });
} else {
setTimeout(stopContent.bind(null, true, uri), 0);
}
}
let progressListener = {
onStateChange(webProgress, req, flags, status) {
dump("waitForDocLoadAndStopIt: onStateChange " + flags.toString(16) + ": " + req.name + "\n");
if (webProgress.isTopLevel &&
flags & Ci.nsIWebProgressListener.STATE_START) {
wp.removeProgressListener(progressListener);
let chan = req.QueryInterface(Ci.nsIChannel);
dump(`waitForDocLoadAndStopIt: Document start: ${chan.URI.spec}\n`);
stopContent(contentStopFromProgressListener, chan.originalURI.spec);
}
},
QueryInterface: XPCOMUtils.generateQI(["nsISupportsWeakReference"])
};
wp.addProgressListener(progressListener, wp.NOTIFY_STATE_WINDOW);
/**
* As |this| is undefined and we can't extend |docShell|, adding an unload
* event handler is the easiest way to ensure the weakly referenced
* progress listener is kept alive as long as necessary.
*/
addEventListener("unload", function() {
try {
wp.removeProgressListener(progressListener);
} catch (e) { /* Will most likely fail. */ }
});
}
return new Promise((resolve, reject) => {
function complete({ data }) {
is(data.uri, aExpectedURL, "waitForDocLoadAndStopIt: The expected URL was loaded");
mm.removeMessageListener("Test:WaitForDocLoadAndStopIt", complete);
resolve();
}
let mm = aBrowser.messageManager;
mm.loadFrameScript("data:,(" + content_script.toString() + ")(" + aStopFromProgressListener + ");", true);
mm.addMessageListener("Test:WaitForDocLoadAndStopIt", complete);
info("waitForDocLoadAndStopIt: Waiting for URL: " + aExpectedURL);
});
}
function promiseDisableOnboardingTours() {
return SpecialPowers.pushPrefEnv({set: [["browser.onboarding.enabled", false]]});
}

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

@ -0,0 +1,22 @@
const CC = Components.Constructor;
const BinaryInputStream = CC("@mozilla.org/binaryinputstream;1",
"nsIBinaryInputStream",
"setInputStream");
function handleRequest(request, response) {
response.setHeader("Content-Type", "text/plain", false);
if (request.method == "GET") {
response.write(request.queryString);
} else {
var body = new BinaryInputStream(request.bodyInputStream);
var avail;
var bytes = [];
while ((avail = body.available()) > 0)
Array.prototype.push.apply(bytes, body.readByteArray(avail));
var data = String.fromCharCode.apply(null, bytes);
response.bodyOutputStream.write(data, data.length);
}
}

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

@ -0,0 +1,9 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
function handleRequest(req, resp) {
let suffixes = ["foo", "bar"];
let data = [req.queryString, suffixes.map(s => req.queryString + s)];
resp.setHeader("Content-Type", "application/json", false);
resp.write(JSON.stringify(data));
}

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

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Any copyright is dedicated to the Public Domain.
- http://creativecommons.org/publicdomain/zero/1.0/ -->
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>browser_searchSuggestionEngine searchSuggestionEngine.xml</ShortName>
<Url type="application/x-suggestions+json" method="GET" template="http://mochi.test:8888/browser/browser/base/content/test/about/searchSuggestionEngine.sjs?{searchTerms}"/>
<Url type="text/html" method="GET" template="http://mochi.test:8888/" rel="searchform"/>
</SearchPlugin>

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

@ -11,7 +11,6 @@ support-files =
alltabslistener.html
app_bug575561.html
app_subframe_bug575561.html
aboutHome_content_script.js
audio.ogg
browser_bug479408_sample.html
browser_bug678392-1.html
@ -49,8 +48,6 @@ support-files =
file_fullscreen-window-open.html
file_with_link_to_http.html
head.js
healthreport_pingData.js
healthreport_testRemoteCommands.html
moz.png
navigating_window_with_download.html
offlineQuotaNotification.cacheManifest
@ -68,7 +65,6 @@ support-files =
test_bug462673.html
test_bug628179.html
test_bug839103.html
test_bug959531.html
test_process_flags_chrome.html
title_test.svg
unknownContentType_file.pif
@ -91,22 +87,6 @@ support-files =
!/toolkit/mozapps/extensions/test/xpinstall/theme.xpi
!/toolkit/mozapps/extensions/test/xpinstall/slowinstall.sjs
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_aboutCertError.js]
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_aboutNetError.js]
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_aboutSupport.js]
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_aboutSupport_newtab_security_state.js]
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_aboutHealthReport.js]
skip-if = os == "linux" # Bug 924307
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_aboutHome.js]
skip-if = true # Bug 1374537
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_aboutHome_wrapsCorrectly.js]
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.
[browser_addKeywordSearch.js]
# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD.

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

@ -359,84 +359,6 @@ function promiseHistoryClearedState(aURIs, aShouldBeCleared) {
});
}
/**
* Waits for the next top-level document load in the current browser. The URI
* of the document is compared against aExpectedURL. The load is then stopped
* before it actually starts.
*
* @param aExpectedURL
* The URL of the document that is expected to load.
* @param aStopFromProgressListener
* Whether to cancel the load directly from the progress listener. Defaults to true.
* If you're using this method to avoid hitting the network, you want the default (true).
* However, the browser UI will behave differently for loads stopped directly from
* the progress listener (effectively in the middle of a call to loadURI) and so there
* are cases where you may want to avoid stopping the load directly from within the
* progress listener callback.
* @return promise
*/
function waitForDocLoadAndStopIt(aExpectedURL, aBrowser = gBrowser.selectedBrowser, aStopFromProgressListener = true) {
function content_script(contentStopFromProgressListener) {
let { interfaces: Ci, utils: Cu } = Components;
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
let wp = docShell.QueryInterface(Ci.nsIWebProgress);
function stopContent(now, uri) {
if (now) {
/* Hammer time. */
content.stop();
/* Let the parent know we're done. */
sendAsyncMessage("Test:WaitForDocLoadAndStopIt", { uri });
} else {
setTimeout(stopContent.bind(null, true, uri), 0);
}
}
let progressListener = {
onStateChange(webProgress, req, flags, status) {
dump("waitForDocLoadAndStopIt: onStateChange " + flags.toString(16) + ": " + req.name + "\n");
if (webProgress.isTopLevel &&
flags & Ci.nsIWebProgressListener.STATE_START) {
wp.removeProgressListener(progressListener);
let chan = req.QueryInterface(Ci.nsIChannel);
dump(`waitForDocLoadAndStopIt: Document start: ${chan.URI.spec}\n`);
stopContent(contentStopFromProgressListener, chan.originalURI.spec);
}
},
QueryInterface: XPCOMUtils.generateQI(["nsISupportsWeakReference"])
};
wp.addProgressListener(progressListener, wp.NOTIFY_STATE_WINDOW);
/**
* As |this| is undefined and we can't extend |docShell|, adding an unload
* event handler is the easiest way to ensure the weakly referenced
* progress listener is kept alive as long as necessary.
*/
addEventListener("unload", function() {
try {
wp.removeProgressListener(progressListener);
} catch (e) { /* Will most likely fail. */ }
});
}
return new Promise((resolve, reject) => {
function complete({ data }) {
is(data.uri, aExpectedURL, "waitForDocLoadAndStopIt: The expected URL was loaded");
mm.removeMessageListener("Test:WaitForDocLoadAndStopIt", complete);
resolve();
}
let mm = aBrowser.messageManager;
mm.loadFrameScript("data:,(" + content_script.toString() + ")(" + aStopFromProgressListener + ");", true);
mm.addMessageListener("Test:WaitForDocLoadAndStopIt", complete);
info("waitForDocLoadAndStopIt: Waiting for URL: " + aExpectedURL);
});
}
/**
* Waits for the next load to complete in any browser or the given browser.
* If a <tabbrowser> is given it waits for a load in any of its browsers.
@ -829,7 +751,3 @@ function getCertExceptionDialog(aLocation) {
}
return undefined;
}
function promiseDisableOnboardingTours() {
return SpecialPowers.pushPrefEnv({set: [["browser.onboarding.enabled", false]]});
}

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

@ -38,7 +38,6 @@ const startupPhases = {
"resource://gre/modules/Services.jsm",
// Bugs to fix: Probably loaded too early, needs investigation.
"resource://gre/modules/AsyncPrefs.jsm", // bug 1369460
"resource://gre/modules/RemotePageManager.jsm", // bug 1369466
])
}},
@ -66,6 +65,9 @@ const startupPhases = {
]),
modules: new Set([
"resource:///modules/AboutNewTab.jsm",
"resource:///modules/BrowserUITelemetry.jsm",
"resource:///modules/BrowserUsageTelemetry.jsm",
"resource:///modules/ContentCrashHandlers.jsm",
"resource:///modules/DirectoryLinksProvider.jsm",
"resource://gre/modules/NewTabUtils.jsm",
"resource://gre/modules/PageThumbs.jsm",
@ -92,6 +94,7 @@ const startupPhases = {
"resource://gre/modules/BookmarkHTMLUtils.jsm",
"resource://gre/modules/Bookmarks.jsm",
"resource://gre/modules/ContextualIdentityService.jsm",
"resource://gre/modules/CrashSubmit.jsm",
"resource://gre/modules/FxAccounts.jsm",
"resource://gre/modules/FxAccountsStorage.jsm",
"resource://gre/modules/PlacesSyncUtils.jsm",
@ -109,6 +112,7 @@ const startupPhases = {
// be blacklisted here.
"before becoming idle": {blacklist: {
modules: new Set([
"resource://gre/modules/AsyncPrefs.jsm",
"resource://gre/modules/LoginManagerContextMenu.jsm",
"resource://gre/modules/Task.jsm",
]),

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

@ -15,6 +15,7 @@ MOCHITEST_CHROME_MANIFESTS += [
]
BROWSER_CHROME_MANIFESTS += [
'content/test/about/browser.ini',
'content/test/alerts/browser.ini',
'content/test/captivePortal/browser.ini',
'content/test/contextMenu/browser.ini',

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

@ -12,7 +12,6 @@ const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/AppConstants.jsm");
Cu.import("resource://gre/modules/AsyncPrefs.jsm");
XPCOMUtils.defineLazyServiceGetter(this, "WindowsUIUtils", "@mozilla.org/windows-ui-utils;1", "nsIWindowsUIUtils");
XPCOMUtils.defineLazyGetter(this, "WeaveService", () =>
@ -24,7 +23,7 @@ XPCOMUtils.defineLazyModuleGetter(this, "ContextualIdentityService",
// lazy module getters
/* global AboutHome:false, AboutNewTab:false, AddonManager:false, AppMenuNotifications:false,
AsyncShutdown:false, AutoCompletePopup:false, BookmarkHTMLUtils:false,
AsyncPrefs: false, AsyncShutdown:false, AutoCompletePopup:false, BookmarkHTMLUtils:false,
BookmarkJSONUtils:false, BrowserUITelemetry:false, BrowserUsageTelemetry:false,
ContentClick:false, ContentPrefServiceParent:false, ContentSearch:false,
DateTimePickerHelper:false, DirectoryLinksProvider:false,
@ -54,6 +53,7 @@ let initializedModules = {};
["AboutNewTab", "resource:///modules/AboutNewTab.jsm"],
["AddonManager", "resource://gre/modules/AddonManager.jsm"],
["AppMenuNotifications", "resource://gre/modules/AppMenuNotifications.jsm"],
["AsyncPrefs", "resource://gre/modules/AsyncPrefs.jsm"],
["AsyncShutdown", "resource://gre/modules/AsyncShutdown.jsm"],
["AutoCompletePopup", "resource://gre/modules/AutoCompletePopup.jsm"],
["BookmarkHTMLUtils", "resource://gre/modules/BookmarkHTMLUtils.jsm"],
@ -143,6 +143,12 @@ const listeners = {
"ContentPrefs:AddObserverForName": ["ContentPrefServiceParent"],
"ContentPrefs:RemoveObserverForName": ["ContentPrefServiceParent"],
// PLEASE KEEP THIS LIST IN SYNC WITH THE LISTENERS ADDED IN ContentPrefServiceParent.init
// PLEASE KEEP THIS LIST IN SYNC WITH THE LISTENERS ADDED IN AsyncPrefs.init
"AsyncPrefs:SetPref": ["AsyncPrefs"],
"AsyncPrefs:ResetPref": ["AsyncPrefs"],
// PLEASE KEEP THIS LIST IN SYNC WITH THE LISTENERS ADDED IN AsyncPrefs.init
"FeedConverter:addLiveBookmark": ["Feeds"],
"WCCR:setAutoHandler": ["Feeds"],
"webrtc:UpdateGlobalIndicators": ["webrtcUI"],
@ -318,7 +324,7 @@ BrowserGlue.prototype = {
this._onAppDefaults();
break;
case "final-ui-startup":
this._finalUIStartup();
this._beforeUIStartup();
break;
case "browser-delayed-startup-finished":
this._onFirstWindowLoaded(subject);
@ -584,13 +590,13 @@ BrowserGlue.prototype = {
_onAppDefaults: function BG__onAppDefaults() {
// apply distribution customizations (prefs)
// other customizations are applied in _finalUIStartup()
// other customizations are applied in _beforeUIStartup()
this._distributionCustomizer.applyPrefDefaults();
},
// runs on startup, before the first command line handler is invoked
// (i.e. before the first window is opened)
_finalUIStartup: function BG__finalUIStartup() {
_beforeUIStartup: function BG__beforeUIStartup() {
// check if we're in safe mode
if (Services.appinfo.inSafeMode) {
Services.ww.openWindow(null, "chrome://browser/content/safeMode.xul",
@ -607,8 +613,6 @@ BrowserGlue.prototype = {
listeners.init();
SessionStore.init();
BrowserUsageTelemetry.init();
BrowserUITelemetry.init();
if (AppConstants.INSTALL_COMPACT_THEMES) {
let vendorShortName = gBrandBundle.GetStringFromName("vendorShortName");
@ -635,12 +639,6 @@ BrowserGlue.prototype = {
});
}
TabCrashHandler.init();
if (AppConstants.MOZ_CRASHREPORTER) {
PluginCrashReporter.init();
UnsubmittedCrashHandler.init();
}
Services.obs.notifyObservers(null, "browser-ui-startup-complete");
},
@ -899,6 +897,11 @@ BrowserGlue.prototype = {
}
}
TabCrashHandler.init();
if (AppConstants.MOZ_CRASHREPORTER) {
PluginCrashReporter.init();
}
ProcessHangMonitor.init();
// A channel for "remote troubleshooting" code...
@ -1050,6 +1053,9 @@ BrowserGlue.prototype = {
// All initial windows have opened.
_onWindowsRestored: function BG__onWindowsRestored() {
BrowserUsageTelemetry.init();
BrowserUITelemetry.init();
if (AppConstants.MOZ_DEV_EDITION) {
this._createExtraDefaultProfile();
}
@ -1163,6 +1169,13 @@ BrowserGlue.prototype = {
}
}
if (AppConstants.MOZ_CRASHREPORTER) {
UnsubmittedCrashHandler.init();
Services.tm.idleDispatchToMainThread(function() {
UnsubmittedCrashHandler.checkForUnsubmittedCrashReports();
});
}
// Let's load the contextual identities.
Services.tm.idleDispatchToMainThread(() => {
ContextualIdentityService.load();

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

@ -207,17 +207,21 @@ this.BrowserUITelemetry = {
UITelemetry.addSimpleMeasureFunction("syncstate",
this.getSyncState.bind(this));
Services.obs.addObserver(this, "sessionstore-windows-restored");
Services.obs.addObserver(this, "browser-delayed-startup-finished");
Services.obs.addObserver(this, "autocomplete-did-enter-text");
CustomizableUI.addListener(this);
// Register existing windows
let browserEnum = Services.wm.getEnumerator("navigator:browser");
while (browserEnum.hasMoreElements()) {
this._registerWindow(browserEnum.getNext());
}
Services.obs.addObserver(this, "browser-delayed-startup-finished");
this._gatherFirstWindowMeasurements();
},
observe(aSubject, aTopic, aData) {
switch (aTopic) {
case "sessionstore-windows-restored":
this._gatherFirstWindowMeasurements();
break;
case "browser-delayed-startup-finished":
this._registerWindow(aSubject);
break;

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

@ -23,7 +23,6 @@ XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils",
const MAX_UNIQUE_VISITED_DOMAINS = 100;
// Observed topic names.
const WINDOWS_RESTORED_TOPIC = "sessionstore-windows-restored";
const TAB_RESTORING_TOPIC = "SSTabRestoring";
const TELEMETRY_SUBSESSIONSPLIT_TOPIC = "internal-telemetry-after-subsession-split";
const DOMWINDOW_OPENED_TOPIC = "domwindowopened";
@ -311,8 +310,8 @@ let urlbarListener = {
let BrowserUsageTelemetry = {
init() {
Services.obs.addObserver(this, WINDOWS_RESTORED_TOPIC);
urlbarListener.init();
this._setupAfterRestore();
},
/**
@ -333,15 +332,11 @@ let BrowserUsageTelemetry = {
uninit() {
Services.obs.removeObserver(this, DOMWINDOW_OPENED_TOPIC);
Services.obs.removeObserver(this, TELEMETRY_SUBSESSIONSPLIT_TOPIC);
Services.obs.removeObserver(this, WINDOWS_RESTORED_TOPIC);
urlbarListener.uninit();
},
observe(subject, topic, data) {
switch (topic) {
case WINDOWS_RESTORED_TOPIC:
this._setupAfterRestore();
break;
case DOMWINDOW_OPENED_TOPIC:
this._onWindowOpen(subject);
break;

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

@ -577,7 +577,6 @@ this.UnsubmittedCrashHandler = {
this.prefs.clearUserPref("suppressUntilDate");
}
Services.obs.addObserver(this, "browser-delayed-startup-finished");
Services.obs.addObserver(this, "profile-before-change");
}
},
@ -604,26 +603,11 @@ this.UnsubmittedCrashHandler = {
this.showingNotification = false;
}
try {
Services.obs.removeObserver(this, "browser-delayed-startup-finished");
} catch (e) {
// The browser-delayed-startup-finished observer might have already
// fired and removed itself, so if this fails, it's okay.
if (e.result != Cr.NS_ERROR_FAILURE) {
throw e;
}
}
Services.obs.removeObserver(this, "profile-before-change");
},
observe(subject, topic, data) {
switch (topic) {
case "browser-delayed-startup-finished": {
Services.obs.removeObserver(this, topic);
this.checkForUnsubmittedCrashReports();
break;
}
case "profile-before-change": {
this.uninit();
break;

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

@ -170,6 +170,7 @@ skip-if = e10s || true # bug 1113935
[browser_dbg_break-on-next.js]
[browser_dbg_break-on-next-console.js]
[browser_dbg_break-on-dom-01.js]
skip-if = true # bug 1368908
[browser_dbg_break-on-dom-02.js]
[browser_dbg_break-on-dom-03.js]
[browser_dbg_break-on-dom-04.js]

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

@ -836,6 +836,10 @@ WorkerTarget.prototype = {
return this._workerClient;
},
get activeConsole() {
return this.client._clients.get(this.form.consoleActor);
},
get client() {
return this._workerClient.client;
},

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

@ -190,11 +190,11 @@ public:
mFocusState.ReceiveFocusChangingEvent();
APZ_KEY_LOG("Marking input with type=%d as focus changing with seq=%" PRIu64 "\n",
(int)mEvent.mInputType,
static_cast<int>(mEvent.mInputType),
mFocusState.LastAPZProcessedEvent());
} else {
APZ_KEY_LOG("Marking input with type=%d as non focus changing with seq=%" PRIu64 "\n",
(int)mEvent.mInputType,
static_cast<int>(mEvent.mInputType),
mFocusState.LastAPZProcessedEvent());
}

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

@ -46,7 +46,7 @@ FocusState::Update(uint64_t aRootLayerTreeId,
FS_LOG("Update with rlt=%" PRIu64 ", olt=%" PRIu64 ", ft=(%d, %" PRIu64 ")\n",
aRootLayerTreeId,
aOriginatingLayersId,
(int)aState.mType,
static_cast<int>(aState.mType),
aState.mSequenceNumber);
// Update the focus tree with the latest target

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

@ -117,8 +117,9 @@ FocusTarget::FocusTarget(nsIPresShell* aRootPresShell,
// The globally focused element for scrolling is in a remote layer tree
if (rfp) {
FT_LOG("Creating reflayer target with seq=%" PRIu64 ", lt=%" PRIu64 "\n",
FT_LOG("Creating reflayer target with seq=%" PRIu64 ", kl=%d, lt=%" PRIu64 "\n",
aFocusSequenceNumber,
mFocusHasKeyEventListeners,
rfp->GetLayersId());
mType = FocusTarget::eRefLayer;
@ -126,8 +127,9 @@ FocusTarget::FocusTarget(nsIPresShell* aRootPresShell,
return;
}
FT_LOG("Creating nil target with seq=%" PRIu64 " (remote browser missing layers id)\n",
aFocusSequenceNumber);
FT_LOG("Creating nil target with seq=%" PRIu64 ", kl=%d (remote browser missing layers id)\n",
aFocusSequenceNumber,
mFocusHasKeyEventListeners);
mType = FocusTarget::eNone;
return;
@ -136,8 +138,9 @@ FocusTarget::FocusTarget(nsIPresShell* aRootPresShell,
// If the focus isn't on a remote browser then check for scrollable targets
if (IsEditableNode(scrollTarget) ||
IsEditableNode(presShell->GetDocument())) {
FT_LOG("Creating nil target with seq=%" PRIu64 " (disabling for editable node)\n",
aFocusSequenceNumber);
FT_LOG("Creating nil target with seq=%" PRIu64 ", kl=%d (disabling for editable node)\n",
aFocusSequenceNumber,
mFocusHasKeyEventListeners);
mType = FocusTarget::eNone;
return;
@ -160,8 +163,9 @@ FocusTarget::FocusTarget(nsIPresShell* aRootPresShell,
mData.mScrollTargets.mVertical =
nsLayoutUtils::FindIDForScrollableFrame(vertical);
FT_LOG("Creating scroll target with seq=%" PRIu64 ", h=%" PRIu64 ", v=%" PRIu64 "\n",
FT_LOG("Creating scroll target with seq=%" PRIu64 ", kl=%d, h=%" PRIu64 ", v=%" PRIu64 "\n",
aFocusSequenceNumber,
mFocusHasKeyEventListeners,
mData.mScrollTargets.mHorizontal,
mData.mScrollTargets.mVertical);
}

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

@ -518,7 +518,7 @@ private:
DECL_OVERRIDE_PREF(Live, "layers.advanced.background-color", LayersAllowBackgroundColorLayers, gfxPrefs::OverrideBase_WebRender());
DECL_OVERRIDE_PREF(Live, "layers.advanced.background-image", LayersAllowBackgroundImage, gfxPrefs::OverrideBase_WebRendest());
DECL_GFX_PREF(Live, "layers.advanced.basic-layer.enabled", LayersAdvancedBasicLayerEnabled, bool, false);
DECL_OVERRIDE_PREF(Live, "layers.advanced.border-layers", LayersAllowBorderLayers, gfxPrefs::OverrideBase_WebRender());
DECL_OVERRIDE_PREF(Live, "layers.advanced.border-layers", LayersAllowBorderLayers, gfxPrefs::OverrideBase_WebRendest());
DECL_OVERRIDE_PREF(Live, "layers.advanced.boxshadow-inset-layers", LayersAllowInsetBoxShadow, gfxPrefs::OverrideBase_WebRender());
DECL_OVERRIDE_PREF(Live, "layers.advanced.boxshadow-outer-layers", LayersAllowOuterBoxShadow, gfxPrefs::OverrideBase_WebRender());
DECL_OVERRIDE_PREF(Live, "layers.advanced.bullet-layers", LayersAllowBulletLayers, gfxPrefs::OverrideBase_WebRender());

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

@ -478,6 +478,16 @@ js::Nursery::renderProfileJSON(JSONPrinter& json) const
}
json.beginObject();
json.property("reason", JS::gcreason::ExplainReason(previousGC.reason));
json.property("bytes_tenured", previousGC.tenuredBytes);
json.floatProperty("promotion_rate",
100.0 * previousGC.tenuredBytes / double(previousGC.nurseryUsedBytes), 2);
json.property("nursery_bytes", previousGC.nurseryUsedBytes);
json.property("new_nursery_bytes", numChunks() * ChunkSize);
json.beginObjectProperty("timings");
#define EXTRACT_NAME(name, text) #name,
static const char* names[] = {
FOR_EACH_NURSERY_PROFILE_TIME(EXTRACT_NAME)
@ -488,6 +498,8 @@ FOR_EACH_NURSERY_PROFILE_TIME(EXTRACT_NAME)
for (auto time : profileDurations_)
json.property(names[i++], time, json.MICROSECONDS);
json.endObject(); // timings value
json.endObject();
}
@ -753,6 +765,10 @@ js::Nursery::doCollection(JS::gcreason::Reason reason,
#endif
endProfile(ProfileKey::CheckHashTables);
previousGC.reason = reason;
previousGC.nurseryUsedBytes = initialNurserySize;
previousGC.tenuredBytes = mover.tenuredSize;
// Calculate and return the promotion rate.
return mover.tenuredSize / double(initialNurserySize);
}

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

@ -353,6 +353,12 @@ class Nursery
ProfileDurations totalDurations_;
uint64_t minorGcCount_;
struct {
JS::gcreason::Reason reason;
uint64_t nurseryUsedBytes;
uint64_t tenuredBytes;
} previousGC;
/*
* The set of externally malloced buffers potentially kept live by objects
* stored in the nursery. Any external buffers that do not belong to a

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

@ -7170,6 +7170,9 @@ PresShell::HandleEvent(nsIFrame* aFrame,
// Update the latest focus sequence number with this new sequence number
if (mAPZFocusSequenceNumber < aEvent->mFocusSequenceNumber) {
mAPZFocusSequenceNumber = aEvent->mFocusSequenceNumber;
// Schedule an empty transaction to transmit this focus update
aFrame->SchedulePaint(nsIFrame::PAINT_COMPOSITE_ONLY);
}
if (sPointerEventEnabled) {

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

@ -2372,12 +2372,6 @@ nsDisplayItem* nsDisplayList::RemoveBottom() {
void nsDisplayList::DeleteAll() {
nsDisplayItem* item;
while ((item = RemoveBottom()) != nullptr) {
#ifdef NIGHTLY_BUILD
if (XRE_IsContentProcess()) {
mozilla::Telemetry::Accumulate(mozilla::Telemetry::DISPLAY_ITEM_USAGE_COUNT,
item->GetType());
}
#endif
item->~nsDisplayItem();
}
}

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

@ -23,14 +23,14 @@ fuzzy-if(skiaContent,1,342) == percent-2.html percent-2-ref.html
fuzzy-if(skiaContent,1,343) == percent-3.html percent-3-ref.html
# more serious tests, using SVG reference
fuzzy-if(skiaContent,17,58) fuzzy-if(webrender,168,74) == border-circle-2.html border-circle-2-ref.xhtml
fuzzy-if(skiaContent,17,58) fuzzy-if(webrender,16,59) == border-circle-2.html border-circle-2-ref.xhtml
fuzzy-if(gtkWidget,14,280) fuzzy-if(cocoaWidget,4,582) fuzzy-if(Android,36,264) fuzzy-if(d2d,51,323) fuzzy-if(winWidget&&!d2d,16,377) fuzzy-if(skiaContent,63,398) == curved-stripe-border.html curved-stripe-border-ref.svg # bug 459945
# Corners
fuzzy-if(skiaContent,17,47) fuzzy-if(webrender,166-166,58-58) == corner-1.html corner-1-ref.svg # bottom corners different radius than top corners
fuzzy-if(gtkWidget,23,5) fuzzy-if(winWidget&&!d2d,23,5) fuzzy-if(d2d,32,8) fuzzy-if(Android,10,8) fuzzy-if(skiaContent,18,49) fuzzy-if(webrender,164-164,57-57) == corner-2.html corner-2-ref.svg # right corners different radius than left corners; see bug 500804
fuzzy-if(gtkWidget,3,10) fuzzy-if(winWidget&&!d2d,3,10) fuzzy-if(d2d,15,32) fuzzy-if(Android,3,15) fuzzy-if(skiaContent,18,90) fails-if(webrender) == corner-3.html corner-3-ref.svg
fuzzy-if(skiaContent,12,83) fuzzy-if(webrender,79-79,110-110) == corner-4.html corner-4-ref.svg
fuzzy-if(skiaContent,17,47) == corner-1.html corner-1-ref.svg # bottom corners different radius than top corners
fuzzy-if(gtkWidget,23,5) fuzzy-if(winWidget&&!d2d,23,5) fuzzy-if(d2d,32,8) fuzzy-if(Android,10,8) fuzzy-if(skiaContent,18,49) == corner-2.html corner-2-ref.svg # right corners different radius than left corners; see bug 500804
fuzzy-if(gtkWidget,3,10) fuzzy-if(winWidget&&!d2d,3,10) fuzzy-if(d2d,15,32) fuzzy-if(Android,3,15) fuzzy-if(skiaContent,18,90) fuzzy-if(webrender,18-18,91-91) == corner-3.html corner-3-ref.svg
fuzzy-if(skiaContent,12,83) == corner-4.html corner-4-ref.svg
# Test that radii too long are reduced
== border-reduce-height.html border-reduce-height-ref.html
@ -40,7 +40,7 @@ skip-if(!webrender) pref(layers.advanced.border-layers,1) == border-reduce-heigh
fails-if(!styloVsGecko) == clipping-1.html clipping-1-ref.html # background color should completely fill box; bug 466572
!= clipping-2.html about:blank # background color clipped to inner/outer border, can't get
# great tests for this due to antialiasing problems described in bug 466572
fuzzy-if(skiaContent,17,62) fuzzy-if(webrender,168,74) == clipping-3.html clipping-3-ref.xhtml # edge of border-radius clips an underlying object's background
fuzzy-if(skiaContent,17,62) == clipping-3.html clipping-3-ref.xhtml # edge of border-radius clips an underlying object's background
# Tests for clipping the contents of replaced elements and overflow!=visible
!= clipping-4-ref.html clipping-4-notref.html
@ -48,11 +48,11 @@ fuzzy-if(true,1,20) fuzzy-if(d2d,64,196) fuzzy-if(cocoaWidget,1,180) fuzzy-if(An
fuzzy-if(Android,5,54) fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),1,10) fuzzy-if(skiaContent,1,172) == clipping-4-image.html clipping-4-ref.html
fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),1,10) fuzzy-if(skiaContent,1,77) == clipping-4-overflow-hidden.html clipping-4-ref.html
== clipping-5-canvas.html clipping-5-refc.html
fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),1,5) fuzzy-if(webrender,1,97) == clipping-5-image.html clipping-5-refi.html
fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),1,5) == clipping-5-image.html clipping-5-refi.html
fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),1,5) fuzzy-if(skiaContent,1,77) == clipping-5-overflow-hidden.html clipping-5-ref.html
fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),1,5) fuzzy-if(Android,5,21) fuzzy-if(skiaContent,1,97) == clipping-5-refi.html clipping-5-ref.html
fuzzy-if(true,1,7) fuzzy-if(d2d,48,94) fuzzy-if(cocoaWidget,1,99) fuzzy-if(Android,99,115) fuzzy-if(skiaContent,1,77) == clipping-5-refc.html clipping-5-ref.html # bug 732535
fuzzy-if(winWidget,105,71) fuzzy-if(Android,8,469) fuzzy-if(skiaContent,7,58) fuzzy-if(d3d11&&advancedLayers,120,319) == clipping-6.html clipping-6-ref.html # PaintedLayer and MaskLayer with transforms that aren't identical
fuzzy-if(winWidget,105,71) fuzzy-if(Android,8,469) fuzzy-if(skiaContent,7,58) fuzzy-if(d3d11&&advancedLayers,120,319) fuzzy-if(webrender,7-7,62-62) == clipping-6.html clipping-6-ref.html # PaintedLayer and MaskLayer with transforms that aren't identical
fuzzy-if(true,2,29) fuzzy-if(d2d,46,50) fuzzy-if(Android,255,586) fuzzy-if(skiaContent,28,96) == clipping-7.html clipping-7-ref.html # ColorLayer and MaskLayer with transforms that aren't identical. Reference image rendered without using layers (which causes fuzzy failures).
fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),1,5) == clipping-and-zindex-1.html clipping-and-zindex-1-ref.html
fuzzy-if(cocoaWidget,1,4) fuzzy-if(d3d11&&advancedLayers,30,3) == intersecting-clipping-1-canvas.html intersecting-clipping-1-refc.html
@ -76,7 +76,7 @@ fails-if(Android) fuzzy-if(asyncPan&&!layersGPUAccelerated,12,12) fuzzy-if(brows
fails-if(Android) == scrollbar-clamping-2.html scrollbar-clamping-2-ref.html
# Test for bad corner joins.
fuzzy-if(true,1,1) == corner-joins-1.xhtml corner-joins-1-ref.xhtml
fuzzy-if(true,1,1) fuzzy-if(webrender,13-13,913-913) == corner-joins-1.xhtml corner-joins-1-ref.xhtml
fuzzy(255,20) random-if(winWidget) fuzzy-if(skiaContent,255,610) HTTP(..) == corner-joins-2.xhtml corner-joins-2-ref.xhtml
fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)||/^Windows\x20NT\x206\.2/.test(http.oscpu),1,20) fuzzy-if(d2d,64,157) fuzzy-if(Android,166,400) fuzzy-if(skiaContent,58,145) == scroll-1.html scroll-1-ref.html # see bug 732535 #Bug 959166
@ -88,8 +88,8 @@ fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)||/^Windows\x20NT\x206\.2/.te
== iframe-1.html iframe-1-ref.html
# Test for antialiasing gaps between background and border
fuzzy-if(gtkWidget,1,9) fuzzy-if(winWidget&&!d2d,1,9) fuzzy-if(d2d,5,40) fuzzy-if(Android||skiaContent,1,9) fuzzy-if(webrender,5,55) == curved-border-background-nogap.html curved-border-background-nogap-ref.html
fuzzy-if(gtkWidget,1,9) fuzzy-if(winWidget&&!d2d,1,9) fuzzy-if(d2d,5,40) fuzzy-if(Android||skiaContent,1,9) == curved-border-background-nogap.html curved-border-background-nogap-ref.html
== color-layer-1a.html color-layer-1-ref.html
fuzzy-if(webrender,1,98) == corner-split.html corner-split-ref.svg # bug 1185636
== corner-split.html corner-split-ref.svg # bug 1185636

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

@ -39,8 +39,8 @@ fuzzy(13,9445) fuzzy-if(d2d,13,10926) fuzzy-if(webrender,14,14307) == boxshadow-
== overflow-not-scrollable-2.html overflow-not-scrollable-2-ref.html
fuzzy-if(webrender,1,655) == 611574-1.html 611574-1-ref.html
fuzzy-if(webrender,4,144) == 611574-2.html 611574-2-ref.html
fuzzy-if(winWidget,5,30) fuzzy-if(skiaContent,16,10) fuzzy-if(webrender,162,120) == fieldset.html fieldset-ref.html # minor anti-aliasing problem on Windows
fuzzy-if(winWidget,5,30) fuzzy-if(skiaContent,16,10) fuzzy-if(webrender,165,120) == fieldset-inset.html fieldset-inset-ref.html # minor anti-aliasing problem on Windows
fuzzy-if(winWidget,5,30) fuzzy-if(skiaContent,16,10) == fieldset.html fieldset-ref.html # minor anti-aliasing problem on Windows
fuzzy-if(winWidget,5,30) fuzzy-if(skiaContent,16,10) == fieldset-inset.html fieldset-inset-ref.html # minor anti-aliasing problem on Windows
== 1178575.html 1178575-ref.html
== 1178575-2.html 1178575-2-ref.html
fuzzy(159,2) fails-if(!dwrite&&!styloVsGecko) == 1212823-1.html 1212823-1-ref.html

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

@ -689,7 +689,7 @@ fails-if(Android) != 376532-3.html 376532-3-ref.html
fuzzy-if(skiaContent,1,500) == 379316-1.html 379316-1-ref.html
fails-if(Android) random-if(cocoaWidget) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy-if(winWidget,1,180) fuzzy-if(gtkWidget,1,191) fuzzy-if(skiaContent,8,500) == 379316-2.html 379316-2-ref.html # bug 379786
== 379328-1.html 379328-1-ref.html
fuzzy-if(webrender,1,5) == 379349-1a.xhtml 379349-1-ref.xhtml
== 379349-1a.xhtml 379349-1-ref.xhtml
# fuzzy because of different border rendering approach in bug 1185636
fuzzy(37,20) == 379349-1b.xhtml 379349-1-ref.xhtml
fuzzy(37,20) == 379349-1c.xhtml 379349-1-ref.xhtml
@ -973,8 +973,8 @@ fails-if(!styloVsGecko) == 413027-3.html 413027-3-ref.html
== 413292-1.html 413292-1-ref.html
fuzzy-if(Android,11,17) fuzzy-if(webrender,0-1,0-10) == 413361-1.html 413361-1-ref.html # bug 1128229
== 413840-background-unchanged.html 413840-background-unchanged-ref.html
fuzzy-if(webrender,1,8) == 413840-ltr-offsets.html 413840-ltr-offsets-ref.html
fuzzy-if(webrender,1,8) == 413840-rtl-offsets.html 413840-rtl-offsets-ref.html
== 413840-ltr-offsets.html 413840-ltr-offsets-ref.html
== 413840-rtl-offsets.html 413840-rtl-offsets-ref.html
== 413840-pushed-line-bullet.html 413840-pushed-line-bullet-ref.html
== 413840-bullet-first-line.html 413840-bullet-first-line-ref.html
== 413982.html 413982-ref.html
@ -1173,7 +1173,7 @@ fails-if(usesRepeatResampling) == 446100-1e.html about:blank
fails-if(usesRepeatResampling) fails-if(Android) == 446100-1g.html about:blank
== 446100-1h.html about:blank
== 447749-1.html 447749-1-ref.html
fuzzy(127,2) fails-if(webrender) == 448193.html 448193-ref.html # reference hardcodes gecko's 3d border colors, which webrender doesn't match
fuzzy(127,2) == 448193.html 448193-ref.html
fails-if(styloVsGecko) != 449149-1a.html about:blank
fails-if(styloVsGecko) != 449149-1b.html about:blank
# Retry the above with XBL scopes
@ -1196,10 +1196,10 @@ test-pref(dom.use_xbl_scopes_for_remote_xul,true) fails-if(styloVsGecko) != 4491
== 455280-1.xhtml 455280-1-ref.xhtml
== 455826-1.html 455826-1-ref.html
fails-if(cocoaWidget) fails-if(Android) == 456147.xul 456147-ref.html # bug 458047
fuzzy-if(Android,11,41) fuzzy-if(winWidget||gtkWidget,4,6) fuzzy-if(d2d,4,69) fuzzy-if(skiaContent,42,150) fuzzy-if(webrender,53-53,799-799) == 456219-1a.html 456219-1-ref.html # bug 1128229
fuzzy-if(Android,11,41) fuzzy-if(winWidget||gtkWidget,4,6) fuzzy-if(d2d,4,69) fuzzy-if(skiaContent,42,150) fuzzy-if(webrender,53-53,799-799) == 456219-1b.html 456219-1-ref.html # bug 1128229
fuzzy-if(Android,11,41) fuzzy-if(winWidget||gtkWidget,4,6) fuzzy-if(d2d,4,69) fuzzy-if(skiaContent,42,150) fuzzy-if(webrender,53-53,799-799) == 456219-1c.html 456219-1-ref.html # bug 1128229
fuzzy-if(skiaContent,1,45) fuzzy-if(webrender,43-43,8-8) == 456219-2.html 456219-2-ref.html
fuzzy-if(Android,11,41) fuzzy-if(winWidget||gtkWidget,4,6) fuzzy-if(d2d,4,69) fuzzy-if(skiaContent,42,150) == 456219-1a.html 456219-1-ref.html # bug 1128229
fuzzy-if(Android,11,41) fuzzy-if(winWidget||gtkWidget,4,6) fuzzy-if(d2d,4,69) fuzzy-if(skiaContent,42,150) fuzzy-if(webrender,24-24,155-155) == 456219-1b.html 456219-1-ref.html # bug 1128229
fuzzy-if(Android,11,41) fuzzy-if(winWidget||gtkWidget,4,6) fuzzy-if(d2d,4,69) fuzzy-if(skiaContent,42,150) fuzzy-if(webrender,24-24,155-155) == 456219-1c.html 456219-1-ref.html # bug 1128229
fuzzy-if(skiaContent,1,45) == 456219-2.html 456219-2-ref.html
== 456330-1.gif 456330-1-ref.png
== 456484-1.html 456484-1-ref.html
== 457398-1.html 457398-1-ref.html
@ -1227,13 +1227,13 @@ fuzzy-if(skiaContent,1,5) == 459443-1.html 459443-1-ref.html
== 459613-1.html 459613-1-ref.html
== 460012-1.html 460012-1-ref.html
== 461266-1.html 461266-1-ref.html
fuzzy-if(skiaContent,1,12000) fails-if(webrender) == 461512-1.html 461512-1-ref.html # reference hardcodes gecko's 3d border colors, which webrender doesn't match
fuzzy-if(skiaContent,1,12000) == 461512-1.html 461512-1-ref.html
== 462844-1.html 462844-ref.html
== 462844-2.html 462844-ref.html
== 462844-3.html 462844-ref.html
== 462844-4.html 462844-ref.html
== 463204-1.html 463204-1-ref.html
fuzzy-if(webrender,16,3425) == 463217-1.xul 463217-1-ref.xul
== 463217-1.xul 463217-1-ref.xul
== 463952-1.html 463952-1-ref.html
== 464811-1.html 464811-1-ref.html
== 465574-1.html 465574-1-ref.html # bug 421436
@ -1611,7 +1611,7 @@ fails-if(!haveTestPlugin) HTTP == 599476.html 599476-ref.html
== 600974-3.html 600974-1-ref.html
== 602200-1.html 602200-1-ref.html
== 602200-2.html 602200-2-ref.html
fuzzy-if(Android,8,20) fails-if(webrender) == 602200-3.html 602200-3-ref.html # mishandled transform
fuzzy-if(Android,8,20) == 602200-3.html 602200-3-ref.html
== 602200-4.html 602200-4-ref.html
== 603423-1.html 603423-1-ref.html
== 604737.html 604737-ref.html
@ -1664,7 +1664,7 @@ HTTP(..) == 635639-2.html 635639-2-ref.html
random == 637597-1.html 637597-1-ref.html # bug 637597 was never really fixed!
fuzzy-if(Android,8,500) == 637852-1.html 637852-1-ref.html
fuzzy-if(Android,8,500) fuzzy-if(skiaContent,2,1) fuzzy-if(webrender,3,19) == 637852-2.html 637852-2-ref.html
fuzzy-if(Android,8,500) fails-if(webrender) == 637852-3.html 637852-3-ref.html
fuzzy-if(Android,8,500) == 637852-3.html 637852-3-ref.html
fails-if(webrender&&asyncPan) == 641770-1.html 641770-1-ref.html # bug 1374326 for webrender+APZ
== 641856-1.html 641856-1-ref.html
== 645491-1.html 645491-1-ref.html
@ -1937,7 +1937,7 @@ skip-if(!Android) fails-if(Android) == 1133905-6-vh-rtl.html 1133905-ref-vh-rtl.
== 1151306-1.html 1151306-1-ref.html
== 1153845-1.html 1153845-1-ref.html
== 1155828-1.html 1155828-1-ref.html
fuzzy-if(skiaContent,7,84) fails-if(webrender) == 1156129-1.html 1156129-1-ref.html
fuzzy-if(skiaContent,7,84) == 1156129-1.html 1156129-1-ref.html
pref(dom.use_xbl_scopes_for_remote_xul,true) HTTP(..) == 1157127-1.html 1157127-1-ref.html
fuzzy-if(Android,6,6) == 1169331-1.html 1169331-1-ref.html
fuzzy(1,74) fails-if(gtkWidget&&!styloVsGecko) == 1174332-1.html 1174332-1-ref.html # bug 1312658
@ -1984,7 +1984,7 @@ fuzzy-if(Android,27,874) fuzzy-if(gtkWidget,14,29) == 1313772.xhtml 1313772-ref.
fuzzy(2,320000) == 1315113-1.html 1315113-1-ref.html
fuzzy(2,20000) == 1315113-2.html 1315113-2-ref.html
== 1315632-1.html 1315632-1-ref.html
fuzzy(2,40000) fuzzy-if(webrender,27,700) == 1316719-1a.html 1316719-1-ref.html
fuzzy(2,40000) fuzzy-if(webrender,26,691) == 1316719-1a.html 1316719-1-ref.html
fuzzy(2,40000) fuzzy-if(webrender,26,691) == 1316719-1b.html 1316719-1-ref.html
fuzzy(2,40000) == 1316719-1c.html 1316719-1-ref.html
pref(layers.advanced.background-color,1) skip-if(!webrender) fuzzy-if(webrender,27,700) == 1316719-1a.html 1316719-1-ref.html

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

@ -5,7 +5,7 @@
== min-width-1a.html pref-width-1-ref.html
== min-width-1b.html min-width-1-ref.html
== min-width-1c.html min-width-1-ref.html
fuzzy-if(webrender,1-1,15-15) == min-width-2.html min-width-2-ref.html
fuzzy-if(webrender,1-1,35-35) == min-width-2.html min-width-2-ref.html
== column-balancing-overflow-000.html column-balancing-overflow-000.ref.html
== column-balancing-overflow-001.html column-balancing-overflow-000.ref.html
== column-balancing-overflow-002.html column-balancing-overflow-002.ref.html

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

@ -1,7 +1,7 @@
default-preferences pref(layout.css.box-decoration-break.enabled,true)
== box-decoration-break-1.html box-decoration-break-1-ref.html
fuzzy(1,20) fuzzy-if(skiaContent,1,700) fuzzy-if(webrender,4-4,3320-3320) == box-decoration-break-with-inset-box-shadow-1.html box-decoration-break-with-inset-box-shadow-1-ref.html
fuzzy(1,20) fuzzy-if(skiaContent,1,700) fuzzy-if(webrender,4-4,3273-3273) == box-decoration-break-with-inset-box-shadow-1.html box-decoration-break-with-inset-box-shadow-1-ref.html
fuzzy(16,460) fuzzy-if(Android,10,3673) fuzzy-if(skiaContent,57,374) == box-decoration-break-with-outset-box-shadow-1.html box-decoration-break-with-outset-box-shadow-1-ref.html
random-if(!gtkWidget) HTTP(..) == box-decoration-break-border-image.html box-decoration-break-border-image-ref.html
== box-decoration-break-block-border-padding.html box-decoration-break-block-border-padding-ref.html

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

@ -52,7 +52,7 @@ skip-if(Android) fuzzy-if(winWidget,1,32) == grid-placement-auto-implicit-001.ht
== grid-item-dir-001.html grid-item-dir-001-ref.html
fuzzy-if(winWidget,70,130) fuzzy-if(cocoaWidget,85,180) == grid-col-max-sizing-max-content-001.html grid-col-max-sizing-max-content-001-ref.html
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
fuzzy-if(webrender,1-1,2-2) == grid-min-max-content-sizing-001.html grid-min-max-content-sizing-001-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
== grid-auto-min-sizing-intrinsic-001.html grid-auto-min-sizing-intrinsic-001-ref.html
@ -138,7 +138,7 @@ random-if(http.oscpu!="Linux\u0020i686") == grid-item-content-baseline-002.html
random-if(http.oscpu!="Linux\u0020i686") == grid-item-mixed-baseline-001.html grid-item-mixed-baseline-001-ref.html # ditto
random-if(http.oscpu!="Linux\u0020i686") == grid-item-mixed-baseline-002.html grid-item-mixed-baseline-002-ref.html # ditto
random-if(http.oscpu!="Linux\u0020i686") == grid-item-mixed-baseline-003.html grid-item-mixed-baseline-003-ref.html # ditto
skip-if(!gtkWidget) fuzzy-if(webrender,8,528) == grid-item-mixed-baseline-004.html grid-item-mixed-baseline-004-ref.html # ditto
skip-if(!gtkWidget) == grid-item-mixed-baseline-004.html grid-item-mixed-baseline-004-ref.html # ditto
== grid-align-content-001.html grid-align-content-001-ref.html
== grid-justify-content-001.html grid-justify-content-001-ref.html
skip-if(Android&&isDebugBuild) == grid-justify-content-002.html grid-justify-content-002-ref.html # Bug 1245884 - slow
@ -188,8 +188,8 @@ skip-if(Android&&isDebugBuild) == grid-row-gap-004.html grid-row-gap-004-ref.htm
== 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
fuzzy-if(webrender,8,3478) == grid-fragmentation-003.html grid-fragmentation-003-ref.html
fuzzy-if(webrender,8,2130) == grid-fragmentation-004.html grid-fragmentation-004-ref.html
== grid-fragmentation-003.html grid-fragmentation-003-ref.html
== grid-fragmentation-004.html grid-fragmentation-004-ref.html
== grid-fragmentation-005.html grid-fragmentation-005-ref.html
== grid-fragmentation-006.html grid-fragmentation-006-ref.html
== grid-fragmentation-007.html grid-fragmentation-007-ref.html
@ -214,7 +214,7 @@ asserts(0-10) == grid-fragmentation-015.html grid-fragmentation-015-ref.html # b
== grid-fragmentation-026.html grid-fragmentation-026-ref.html
== grid-fragmentation-027.html grid-fragmentation-025-ref.html
== grid-fragmentation-028.html grid-fragmentation-028-ref.html
fuzzy-if(webrender,1-1,2-2) == grid-fragmentation-029.html grid-fragmentation-029-ref.html
== grid-fragmentation-029.html grid-fragmentation-029-ref.html
== grid-fragmentation-030.html grid-fragmentation-030-ref.html
== grid-fragmentation-031.html grid-fragmentation-031-ref.html
@ -224,8 +224,8 @@ fuzzy-if(webrender,1-1,2-2) == grid-fragmentation-029.html grid-fragmentation-02
== grid-fragmentation-dyn4-001.html grid-fragmentation-001-ref.html
== grid-fragmentation-dyn1-002.html grid-fragmentation-002-ref.html
== grid-fragmentation-dyn3-002.html grid-fragmentation-002-ref.html
fuzzy-if(webrender,8,3478) == grid-fragmentation-dyn3-003.html grid-fragmentation-003-ref.html
fuzzy-if(webrender,8,3478) == grid-fragmentation-dyn4-004.html grid-fragmentation-004-ref.html
== grid-fragmentation-dyn3-003.html grid-fragmentation-003-ref.html
== grid-fragmentation-dyn4-004.html grid-fragmentation-004-ref.html
== grid-fragmentation-dyn4-005.html grid-fragmentation-005-ref.html
== grid-fragmentation-dyn5-005.html grid-fragmentation-005-ref.html
== grid-fragmentation-dyn1-006.html grid-fragmentation-006-ref.html
@ -275,8 +275,8 @@ asserts(1-10) == grid-fragmentation-dyn4-021.html grid-fragmentation-021-ref.htm
== grid-fragmentation-dyn3-028.html grid-fragmentation-028-ref.html
== grid-fragmentation-dyn4-028.html grid-fragmentation-028-ref.html
== grid-fragmentation-dyn5-028.html grid-fragmentation-028-ref.html
fuzzy-if(webrender,1-1,2-2) == grid-fragmentation-dyn1-029.html grid-fragmentation-029-ref.html
fuzzy-if(webrender,1-1,2-2) == grid-fragmentation-dyn2-029.html grid-fragmentation-029-ref.html
== grid-fragmentation-dyn1-029.html grid-fragmentation-029-ref.html
== grid-fragmentation-dyn2-029.html grid-fragmentation-029-ref.html
== grid-fragmentation-dyn2-030.html grid-fragmentation-030-ref.html
== grid-fragmentation-dyn2-031.html grid-fragmentation-031-ref.html
== bug1306106.html bug1306106-ref.html

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

@ -3,7 +3,7 @@ fuzzy-if(cocoaWidget,16,64) fuzzy-if(Android,52,64) fuzzy-if(winWidget,88,400) =
== display-block-baselines-2.html display-block-baselines-2-ref.html
== display-block-baselines-3.html display-block-baselines-3-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) fuzzy-if(webrender,1,16) == display-block-baselines-5.html display-block-baselines-5-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
include button/reftest.list

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

@ -11,11 +11,11 @@ fails-if(azureSkia) fails-if(cocoaWidget) skip-if(styloVsGecko) == canvas-outsid
== element-paint-repeated.html element-paint-repeated-ref.html
== element-paint-recursion.html element-paint-recursion-ref.html
HTTP(..) == element-paint-continuation.html element-paint-continuation-ref.html
fails-if(webrender) == element-paint-transform-01.html element-paint-transform-01-ref.html
== element-paint-transform-01.html element-paint-transform-01-ref.html
random-if(d2d) == element-paint-transform-02.html element-paint-transform-02-ref.html # bug 587133
fuzzy-if(d2d&&/^Windows\x20NT\x206\.1/.test(http.oscpu),16,90) == element-paint-background-size-01.html element-paint-background-size-01-ref.html
== element-paint-background-size-02.html element-paint-background-size-02-ref.html
fuzzy-if(skiaContent,255,4) fails-if(webrender) == element-paint-transform-repeated.html element-paint-transform-repeated-ref.html
fuzzy-if(skiaContent,255,4) == element-paint-transform-repeated.html element-paint-transform-repeated-ref.html
fuzzy-if(d2d,255,24) == element-paint-transform-03.html element-paint-transform-03-ref.html
fuzzy-if(asyncPan,2,140) fuzzy-if(skiaContent,3,106) == element-paint-native-widget.html element-paint-native-widget-ref.html # in -ref the scrollframe is active and layerized differently with APZ
fails-if(usesRepeatResampling) == element-paint-subimage-sampling-restriction.html about:blank

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

@ -46,15 +46,15 @@ pref(layout.animated-image-layers.enabled,true) skip-if(Android||gtkWidget) == t
# All the tests marked with random-if(webrender) are specific to "layers" and therefore not really valid with WebRender enabled.
# We are marking them random-if so that we ensure they don't crash, but allow any non-crash result.
random-if(webrender) != scroll-inactive-layers.html about:blank
random-if(webrender) != scroll-inactive-layers-2.html about:blank
random-if(webrender) != inactive-layertree-visible-region-1.html about:blank
random-if(webrender) != inactive-layertree-visible-region-2.html about:blank
random-if(webrender) != transform-floating-point-invalidation.html about:blank
random-if(webrender) != transform-floating-point-invalidation.html?reverse about:blank
random-if(webrender) != nudge-to-integer-invalidation.html about:blank
random-if(webrender) != nudge-to-integer-invalidation.html?reverse about:blank
random-if(webrender) skip-if(styloVsGecko) != clipped-animated-transform-1.html about:blank # Bug 1352628 (styloVsGecko)
fails-if(webrender) != scroll-inactive-layers.html about:blank
fails-if(webrender) != scroll-inactive-layers-2.html about:blank
fails-if(webrender) != inactive-layertree-visible-region-1.html about:blank
fails-if(webrender) != inactive-layertree-visible-region-2.html about:blank
fails-if(webrender) != transform-floating-point-invalidation.html about:blank
fails-if(webrender) != transform-floating-point-invalidation.html?reverse about:blank
fails-if(webrender) != nudge-to-integer-invalidation.html about:blank
fails-if(webrender) != nudge-to-integer-invalidation.html?reverse about:blank
fails-if(webrender) skip-if(styloVsGecko) != clipped-animated-transform-1.html about:blank # Bug 1352628 (styloVsGecko)
random-if(webrender) != paintedlayer-recycling-1.html about:blank
random-if(webrender) != paintedlayer-recycling-2.html about:blank
pref(layers.single-tile.enabled,false) random-if(webrender) != paintedlayer-recycling-3.html about:blank
@ -73,8 +73,8 @@ random-if(webrender) != layer-splitting-6.html about:blank
random-if(webrender) != layer-splitting-7.html about:blank
fuzzy-if(gtkWidget,2,4) fuzzy-if(asyncPan,2,3955) fuzzy-if(OSX,179,30) fuzzy-if(skiaContent,16,3230) == image-scrolling-zoom-1.html image-scrolling-zoom-1-ref.html
!= image-scrolling-zoom-1-ref.html image-scrolling-zoom-1-notref.html
pref(layers.single-tile.enabled,false) random-if(webrender) != fast-scrolling.html about:blank
random-if(webrender) == background-position-1.html background-position-1-ref.html
pref(layers.single-tile.enabled,false) fails-if(webrender) != fast-scrolling.html about:blank
fails-if(webrender) == background-position-1.html background-position-1-ref.html
== background-position-2a.html background-position-2-ref.html
== background-position-2b.html background-position-2-ref.html
== background-position-2c.html background-position-2-ref.html

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

@ -29,9 +29,9 @@ random-if(webrender) skip-if(!asyncPan) != pull-background-displayport-6.html ab
fuzzy(2,30150) == opacity-blending.html opacity-blending-ref.html
fuzzy(16,5) fails-if(webrender) == mask-layer-transform.html mask-layer-transform-ref.html
fuzzy-if(gtkWidget,1,17) fuzzy-if(Android,3,4) == forced-bg-color-outside-visible-region.html forced-bg-color-outside-visible-region-ref.html
random-if(webrender) != layerize-over-fixed-bg-1.html about:blank
skip-if(!asyncPan) random-if(webrender) != fixed-pos-scrolled-clip-layerize.html about:blank
skip-if(!asyncPan) random-if(webrender) == fixed-pos-scrolled-clip-opacity-layerize.html fixed-pos-scrolled-clip-opacity-inside-layerize.html
!= layerize-over-fixed-bg-1.html about:blank
skip-if(!asyncPan) != fixed-pos-scrolled-clip-layerize.html about:blank
skip-if(!asyncPan) == fixed-pos-scrolled-clip-opacity-layerize.html fixed-pos-scrolled-clip-opacity-inside-layerize.html
# These tests check whether the GPU process is working. We expect it to work if:
# E10S is enabled, and

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

@ -204,7 +204,7 @@ fails fails-if(styloVsGecko) random-if(webrender) == reftest-opaque-layer-wait-f
fails-if(!styloVsGecko) fails-if(styloVsGecko) random-if(webrender) != reftest-opaque-layer-wait-fail.html about:blank
# reftest-assigned-layer
random-if(webrender) != reftest-assigned-layer-pass.html about:blank
!= reftest-assigned-layer-pass.html about:blank
fails-if(!styloVsGecko) fails-if(styloVsGecko) != reftest-assigned-layer-fail-1.html about:blank
fails-if(!styloVsGecko) fails-if(styloVsGecko) != reftest-assigned-layer-fail-2.html about:blank
fails-if(!styloVsGecko) fails-if(styloVsGecko) != reftest-assigned-layer-fail-3.html about:blank

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

@ -321,7 +321,7 @@ fuzzy-if(skiaContent,1,10000) == opacity-and-transform-01.svg opacity-and-transf
fuzzy-if(Android,8,200) == outer-svg-border-and-padding-01.svg outer-svg-border-and-padding-01-ref.svg
fuzzy-if(skiaContent,7,175) fuzzy-if(skiaContent&&webrender,7-7,154-154) == outline.html outline-ref.html
fuzzy-if(skiaContent,7,175) fuzzy-if(skiaContent&&webrender,1,225) == outline.html outline-ref.html
== overflow-on-outer-svg-01.svg overflow-on-outer-svg-01-ref.svg
== overflow-on-outer-svg-02a.xhtml overflow-on-outer-svg-02-ref.xhtml

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

@ -47,13 +47,13 @@ fuzzy-if(d2d,1,16359) fuzzy-if(skiaContent,1,17000) == border-collapse-opacity-t
fuzzy-if(d2d,1,11000) fuzzy-if(skiaContent,1,11000) == border-collapse-opacity-table-row.html border-collapse-opacity-table-row-ref.html
fuzzy-if(d2d||skiaContent,1,60000) == border-collapse-opacity-table.html border-collapse-opacity-table-ref.html
fuzzy-if(d2d,1,2478) fuzzy-if(skiaContent,1,2500) == border-separate-opacity-table-cell.html border-separate-opacity-table-cell-ref.html
fuzzy-if(d2d,1,38000) fuzzy-if(webrender,1,38000) == border-separate-opacity-table-column-group.html border-separate-opacity-table-column-group-ref.html # bug 424274
fuzzy-if(d2d,1,13000) fuzzy-if(webrender,1,13000) == border-separate-opacity-table-column.html border-separate-opacity-table-column-ref.html # bug 424274
fuzzy-if(d2d,1,38000) == border-separate-opacity-table-column-group.html border-separate-opacity-table-column-group-ref.html # bug 424274
fuzzy-if(d2d,1,13000) == border-separate-opacity-table-column.html border-separate-opacity-table-column-ref.html # bug 424274
fuzzy-if(d2d,1,37170) fuzzy-if(skiaContent,1,38000) == border-separate-opacity-table-row-group.html border-separate-opacity-table-row-group-ref.html
fuzzy-if(d2d,1,12390) fuzzy-if(skiaContent,1,13000) == border-separate-opacity-table-row.html border-separate-opacity-table-row-ref.html
fuzzy-if(d2d||skiaContent,1,95000) == border-separate-opacity-table.html border-separate-opacity-table-ref.html
!= scrollable-rowgroup-collapse-background.html scrollable-rowgroup-collapse-notref.html
!= scrollable-rowgroup-collapse-border.html scrollable-rowgroup-collapse-notref.html
!= scrollable-rowgroup-collapse-background.html scrollable-rowgroup-collapse-notref.html
!= scrollable-rowgroup-collapse-border.html scrollable-rowgroup-collapse-notref.html
!= scrollable-rowgroup-separate-background.html scrollable-rowgroup-separate-notref.html
== scrollable-rowgroup-separate-border.html scrollable-rowgroup-separate-notref.html # scrolling rowgroups were removed in bug 28800
== empty-cells-default-1.html empty-cells-default-1-ref.html

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

@ -23,39 +23,38 @@
== frame_above_rules_all.html frame_above_rules_all_ref.html
== frame_above_rules_cols.html frame_above_rules_cols_ref.html
== frame_above_rules_groups.html frame_above_rules_groups_ref.html
# All these webrender-fails are due to hardcoded 3D border colors, which webrender doesn't match gecko on. See webrender issue 1280.
fails-if(webrender) == frame_above_rules_none.html frame_above_rules_none_ref.html
== frame_above_rules_none.html frame_above_rules_none_ref.html
== frame_above_rules_rows.html frame_above_rules_rows_ref.html
== frame_below_rules_all.html frame_below_rules_all_ref.html
== frame_below_rules_cols.html frame_below_rules_cols_ref.html
== frame_below_rules_groups.html frame_below_rules_groups_ref.html
fails-if(webrender) == frame_below_rules_none.html frame_below_rules_none_ref.html
== frame_below_rules_none.html frame_below_rules_none_ref.html
== frame_below_rules_rows.html frame_below_rules_rows_ref.html
== frame_border_rules_all.html frame_border_rules_all_ref.html
== frame_border_rules_cols.html frame_border_rules_cols_ref.html
== frame_border_rules_groups.html frame_border_rules_groups_ref.html
fails-if(webrender) == frame_border_rules_none.html frame_border_rules_none_ref.html
== frame_border_rules_none.html frame_border_rules_none_ref.html
== frame_border_rules_rows.html frame_border_rules_rows_ref.html
== frame_box_rules_all.html frame_box_rules_all_ref.html
== frame_box_rules_cols.html frame_box_rules_cols_ref.html
== frame_box_rules_groups.html frame_box_rules_groups_ref.html
fails-if(webrender) == frame_box_rules_none.html frame_box_rules_none_ref.html
== frame_box_rules_none.html frame_box_rules_none_ref.html
== frame_box_rules_none-collapse.html frame_box_rules_none-collapse-ref.html
== frame_box_rules_rows.html frame_box_rules_rows_ref.html
== frame_hsides_rules_all.html frame_hsides_rules_all_ref.html
== frame_hsides_rules_cols.html frame_hsides_rules_cols_ref.html
== frame_hsides_rules_groups.html frame_hsides_rules_groups_ref.html
fails-if(webrender) == frame_hsides_rules_none.html frame_hsides_rules_none_ref.html
== frame_hsides_rules_none.html frame_hsides_rules_none_ref.html
== frame_hsides_rules_rows.html frame_hsides_rules_rows_ref.html
== frame_lhs_rules_all.html frame_lhs_rules_all_ref.html
== frame_lhs_rules_cols.html frame_lhs_rules_cols_ref.html
== frame_lhs_rules_groups.html frame_lhs_rules_groups_ref.html
fails-if(webrender) == frame_lhs_rules_none.html frame_lhs_rules_none_ref.html
== frame_lhs_rules_none.html frame_lhs_rules_none_ref.html
== frame_lhs_rules_rows.html frame_lhs_rules_rows_ref.html
== frame_rhs_rules_all.html frame_rhs_rules_all_ref.html
== frame_rhs_rules_cols.html frame_rhs_rules_cols_ref.html
== frame_rhs_rules_groups.html frame_rhs_rules_groups_ref.html
fails-if(webrender) == frame_rhs_rules_none.html frame_rhs_rules_none_ref.html
== frame_rhs_rules_none.html frame_rhs_rules_none_ref.html
== frame_rhs_rules_rows.html frame_rhs_rules_rows_ref.html
== frame_void_rules_all.html frame_void_rules_all_ref.html
== frame_void_rules_cols.html frame_void_rules_cols_ref.html
@ -65,7 +64,7 @@ fails-if(webrender) == frame_rhs_rules_none.html frame_rhs_rules_none_ref.html
== frame_vsides_rules_all.html frame_vsides_rules_all_ref.html
== frame_vsides_rules_cols.html frame_vsides_rules_cols_ref.html
== frame_vsides_rules_groups.html frame_vsides_rules_groups_ref.html
fails-if(webrender) == frame_vsides_rules_none.html frame_vsides_rules_none_ref.html
== frame_vsides_rules_none.html frame_vsides_rules_none_ref.html
== frame_vsides_rules_rows.html frame_vsides_rules_rows_ref.html
== borderhandling-1.html borderhandling-ref.html
== borderhandling-2.html borderhandling-ref.html
@ -100,9 +99,9 @@ fails-if(webrender) == frame_vsides_rules_none.html frame_vsides_rules_none_ref.
# Fuzzy because for some reason the corner beveling is antialiased differently.
# So get 40 pixels of fuzz, 20 at each beveled corner (because the border width
# is 20px).
fuzzy(255,40) fails-if(webrender) == border-style-outset-becomes-groove.html border-style-outset-becomes-groove-ref.html
fuzzy(255,40) == border-style-outset-becomes-groove.html border-style-outset-becomes-groove-ref.html
# Fuzzy because for some reason the corner beveling is antialiased differently.
# So get 40 pixels of fuzz, 20 at each beveled corner (because the border width
# is 20px).
fuzzy(255,40) fails-if(webrender) == border-style-inset-becomes-ridge.html border-style-inset-becomes-ridge-ref.html
fuzzy(255,40) == border-style-inset-becomes-ridge.html border-style-inset-becomes-ridge-ref.html
fuzzy(2,11000) == 1324524.html 1324524-ref.html

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

@ -52,9 +52,9 @@ random == rotate-1f.html rotate-1-ref.html
!= origin-1b.html origin-1-ref.html
# -transform-origin: We should get the same images when using equivalent
# -transform-origins.
fuzzy-if(webrender,1,10) == origin-2a.html origin-2-ref.html
fuzzy-if(webrender,1,10) == origin-2b.html origin-2-ref.html
fuzzy-if(webrender,1,10) == origin-2c.html origin-2-ref.html
== origin-2a.html origin-2-ref.html
== origin-2b.html origin-2-ref.html
== origin-2c.html origin-2-ref.html
# "Translate" with percentages should be indistinguishable from translate with
# equivalent values.
== percent-1a.html percent-1-ref.html

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

@ -262,12 +262,12 @@ fuzzy(106,354) css-multicol-1/multicol-rule-double-000.xht
fails-if(OSX||winWidget) css-multicol-1/multicol-rule-fraction-001.xht
fails-if(OSX||winWidget) css-multicol-1/multicol-rule-fraction-002.xht
fails-if(!styloVsGecko) css-multicol-1/multicol-rule-fraction-003.xht
fuzzy(127,500) css-multicol-1/multicol-rule-groove-000.xht
fuzzy(127,500) fails-if(webrender) css-multicol-1/multicol-rule-groove-000.xht
fuzzy(94,256) css-multicol-1/multicol-rule-hidden-000.xht
fuzzy(127,500) css-multicol-1/multicol-rule-inset-000.xht
fuzzy(127,500) css-multicol-1/multicol-rule-outset-000.xht
fuzzy(127,500) fails-if(webrender) css-multicol-1/multicol-rule-inset-000.xht
fuzzy(127,500) fails-if(webrender) css-multicol-1/multicol-rule-outset-000.xht
fails-if(!styloVsGecko) css-multicol-1/multicol-rule-px-001.xht
fuzzy(127,500) css-multicol-1/multicol-rule-ridge-000.xht
fuzzy(127,500) fails-if(webrender) css-multicol-1/multicol-rule-ridge-000.xht
fuzzy(106,354) css-multicol-1/multicol-rule-solid-000.xht
fails-if(!styloVsGecko) css-multicol-1/multicol-rule-stacking-001.xht
fails-if(webrender) css-multicol-1/multicol-rule-style-groove-001.xht

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

@ -135,15 +135,15 @@ fuzzy(106,354) == css-multicol-1/multicol-rule-double-000.xht css-multicol-1/mul
fails-if(OSX||winWidget) == css-multicol-1/multicol-rule-fraction-001.xht css-multicol-1/multicol-rule-fraction-001-ref.xht
fails-if(OSX||winWidget) == css-multicol-1/multicol-rule-fraction-002.xht css-multicol-1/multicol-rule-fraction-002-ref.xht
fails-if(!styloVsGecko) == css-multicol-1/multicol-rule-fraction-003.xht css-multicol-1/multicol-rule-fraction-3-ref.xht
fuzzy(127,500) == css-multicol-1/multicol-rule-groove-000.xht css-multicol-1/multicol-rule-groove-000-ref.xht
fuzzy(127,500) fails-if(webrender) == css-multicol-1/multicol-rule-groove-000.xht css-multicol-1/multicol-rule-groove-000-ref.xht
fuzzy(94,256) == css-multicol-1/multicol-rule-hidden-000.xht css-multicol-1/multicol-rule-hidden-000-ref.xht
fuzzy(127,500) == css-multicol-1/multicol-rule-inset-000.xht css-multicol-1/multicol-rule-ridge-000-ref.xht
fuzzy(127,500) fails-if(webrender) == css-multicol-1/multicol-rule-inset-000.xht css-multicol-1/multicol-rule-ridge-000-ref.xht
fuzzy(255,2808) == css-multicol-1/multicol-rule-large-001.xht css-multicol-1/multicol-rule-large-001-ref.xht
fuzzy(94,256) == css-multicol-1/multicol-rule-none-000.xht css-multicol-1/multicol-rule-hidden-000-ref.xht
fuzzy(127,500) == css-multicol-1/multicol-rule-outset-000.xht css-multicol-1/multicol-rule-groove-000-ref.xht
fuzzy(127,500) fails-if(webrender) == css-multicol-1/multicol-rule-outset-000.xht css-multicol-1/multicol-rule-groove-000-ref.xht
== css-multicol-1/multicol-rule-percent-001.xht css-multicol-1/multicol-containing-002-ref.xht
fails-if(!styloVsGecko) == css-multicol-1/multicol-rule-px-001.xht css-multicol-1/multicol-rule-ref.xht
fuzzy(127,500) == css-multicol-1/multicol-rule-ridge-000.xht css-multicol-1/multicol-rule-ridge-000-ref.xht
fuzzy(127,500) fails-if(webrender) == css-multicol-1/multicol-rule-ridge-000.xht css-multicol-1/multicol-rule-ridge-000-ref.xht
== css-multicol-1/multicol-rule-samelength-001.xht css-multicol-1/multicol-rule-samelength-001-ref.xht
== css-multicol-1/multicol-rule-shorthand-001.xht css-multicol-1/multicol-rule-samelength-001-ref.xht
fuzzy(106,354) == css-multicol-1/multicol-rule-solid-000.xht css-multicol-1/multicol-rule-solid-000-ref.xht

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

@ -1,13 +1,13 @@
# background-repeat round/space test cases
fuzzy-if(webrender,1,83) == background-repeat-space-1a.html background-repeat-space-1-ref.html
fuzzy-if(webrender,1,83) == background-repeat-space-1b.html background-repeat-space-1-ref.html
fuzzy-if(webrender,1,83) == background-repeat-space-1c.html background-repeat-space-1-ref.html
== background-repeat-space-1a.html background-repeat-space-1-ref.html
== background-repeat-space-1b.html background-repeat-space-1-ref.html
== background-repeat-space-1c.html background-repeat-space-1-ref.html
== background-repeat-space-2.html background-repeat-space-2-ref.html
fuzzy-if(webrender,1,96) == background-repeat-space-3.html background-repeat-space-3-ref.html
fuzzy-if(webrender,1,91) == background-repeat-space-4.html background-repeat-space-4-ref.html
fuzzy-if(webrender,1,27) == background-repeat-space-5.html background-repeat-space-5-ref.html
fuzzy-if(webrender,1,2544) == background-repeat-space-6.html background-repeat-space-6-ref.html
fuzzy-if(webrender,1,43) == background-repeat-space-7.html background-repeat-space-7-ref.html
== background-repeat-space-3.html background-repeat-space-3-ref.html
== background-repeat-space-4.html background-repeat-space-4-ref.html
== background-repeat-space-5.html background-repeat-space-5-ref.html
== background-repeat-space-6.html background-repeat-space-6-ref.html
== background-repeat-space-7.html background-repeat-space-7-ref.html
== background-repeat-space-8.html background-repeat-space-8-ref.html
== background-repeat-space-9.html background-repeat-space-9-ref.html
== background-repeat-space-10.html background-repeat-space-10-ref.html

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

@ -833,6 +833,7 @@ function RecordResult()
clearTimeout(gFailureTimeout);
gFailureReason = null;
gFailureTimeout = null;
gCurrentURL = null;
if (gCurrentTestType == TYPE_SCRIPT) {
var error = '';

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

@ -11,7 +11,6 @@ var Cr = Components.results;
Cu.import("resource://gre/modules/AddonManager.jsm");
Cu.import("resource://gre/modules/AppConstants.jsm");
Cu.import("resource://gre/modules/AsyncPrefs.jsm");
Cu.import("resource://gre/modules/DelayedInit.jsm");
Cu.import("resource://gre/modules/Messaging.jsm");
Cu.import("resource://gre/modules/Services.jsm");

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

@ -7,6 +7,9 @@ const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "AsyncPrefs",
"resource://gre/modules/AsyncPrefs.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "ContentPrefServiceParent",
"resource://gre/modules/ContentPrefServiceParent.jsm");
@ -39,6 +42,8 @@ PromptFactory.prototype = {
case "profile-after-change": {
// ContentPrefServiceParent is needed for e10s file picker.
ContentPrefServiceParent.init();
// AsyncPrefs is needed for reader mode.
AsyncPrefs.init();
Services.mm.addMessageListener("GeckoView:Prompt", this);
break;
}

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

@ -13209,15 +13209,6 @@
"keyed": true,
"description": "Measures the number of milliseconds we spend waiting for sync message manager IPC messages to finish sending, keyed by message name. Note: only messages that wait for more than 500 microseconds are included in this probe."
},
"DISPLAY_ITEM_USAGE_COUNT": {
"record_in_processes": ["main", "content"],
"alert_emails": ["mchang@mozilla.com", "gfx-telemetry-alerts@mozilla.com"],
"bug_numbers": [1353521],
"expires_in_version": "56",
"kind": "enumerated",
"n_values": 99,
"description": "Count of which layout display items are being created. Display items are created by layout to determine what content to render. A full description is above the class definition for nsDisplayItem. The list of types is kept in nsDisplayItemTypes.h."
},
"TIMEOUT_EXECUTION_FG_MS":
{
"record_in_processes": ["main", "content"],

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

@ -865,7 +865,8 @@ namespace {
class KeyedHistogram {
public:
KeyedHistogram(const nsACString &name, const nsACString &expiration,
KeyedHistogram(ProcessID processType, const nsACString &name,
const nsACString &expiration,
uint32_t histogramType, uint32_t min, uint32_t max,
uint32_t bucketCount, uint32_t dataset);
nsresult GetHistogram(const nsCString& name, Histogram** histogram, bool subsession);
@ -895,6 +896,7 @@ private:
JSContext* cx,
JS::Handle<JSObject*> obj);
const ProcessID mProcessType;
const nsCString mName;
const nsCString mExpiration;
const uint32_t mHistogramType;
@ -905,7 +907,8 @@ private:
mozilla::Atomic<bool, mozilla::Relaxed> mRecordingEnabled;
};
KeyedHistogram::KeyedHistogram(const nsACString &name,
KeyedHistogram::KeyedHistogram(ProcessID processType,
const nsACString &name,
const nsACString &expiration,
uint32_t histogramType,
uint32_t min, uint32_t max,
@ -914,6 +917,7 @@ KeyedHistogram::KeyedHistogram(const nsACString &name,
#if !defined(MOZ_WIDGET_ANDROID)
, mSubsessionMap()
#endif
, mProcessType(processType)
, mName(name)
, mExpiration(expiration)
, mHistogramType(histogramType)
@ -947,6 +951,7 @@ KeyedHistogram::GetHistogram(const nsCString& key, Histogram** histogram,
}
#endif
histogramName.Append(mName);
histogramName.Append(SuffixForProcessType(mProcessType));
histogramName.AppendLiteral(KEYED_HISTOGRAM_NAME_SEPARATOR);
histogramName.Append(key);
@ -1857,7 +1862,7 @@ void TelemetryHistogram::InitializeGlobalState(bool canRecordBase,
const nsDependentCString id(h.id());
const nsDependentCString expiration(h.expiration());
gKeyedHistograms.Put(id, new KeyedHistogram(id, expiration, h.histogramType,
gKeyedHistograms.Put(id, new KeyedHistogram(ProcessID::Parent, id, expiration, h.histogramType,
h.min, h.max, h.bucketCount, h.dataset));
if (XRE_IsParentProcess()) {
// We must create registered child keyed histograms as well or else the
@ -1866,19 +1871,19 @@ void TelemetryHistogram::InitializeGlobalState(bool canRecordBase,
nsCString contentId(id);
contentId.AppendLiteral(CONTENT_HISTOGRAM_SUFFIX);
gKeyedHistograms.Put(contentId,
new KeyedHistogram(id, expiration, h.histogramType,
new KeyedHistogram(ProcessID::Content, id, expiration, h.histogramType,
h.min, h.max, h.bucketCount, h.dataset));
nsCString gpuId(id);
gpuId.AppendLiteral(GPU_HISTOGRAM_SUFFIX);
gKeyedHistograms.Put(gpuId,
new KeyedHistogram(id, expiration, h.histogramType,
new KeyedHistogram(ProcessID::Gpu, id, expiration, h.histogramType,
h.min, h.max, h.bucketCount, h.dataset));
nsCString extensionId(id);
extensionId.AppendLiteral(EXTENSION_HISTOGRAM_SUFFIX);
gKeyedHistograms.Put(extensionId,
new KeyedHistogram(id, expiration, h.histogramType,
new KeyedHistogram(ProcessID::Extension, id, expiration, h.histogramType,
h.min, h.max, h.bucketCount, h.dataset));
}
}

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

@ -125,6 +125,8 @@ add_task(async function() {
allLinear.add(20);
let allChildLinear = Telemetry.getHistogramById("TELEMETRY_TEST_ALL_CHILD_PROCESSES");
allChildLinear.add(20);
let countKeyed = Telemetry.getKeyedHistogramById("TELEMETRY_TEST_KEYED_COUNT");
countKeyed.add("a");
const payload = TelemetrySession.getPayload("test-ping");
Assert.ok("processes" in payload, "Should have processes section");
@ -160,6 +162,7 @@ add_task(async function() {
Assert.ok(!("TELEMETRY_TEST_ALL_CHILD_PROCESSES" in mainHs), "Should not have all-child process histogram in main process payload");
Assert.ok("TELEMETRY_TEST_FLAG_MAIN_PROCESS" in mainHs, "Should have main process histogram in main process payload");
Assert.equal(mainHs.TELEMETRY_TEST_FLAG_MAIN_PROCESS.sum, 1, "Should have correct value");
Assert.equal(mainKhs.TELEMETRY_TEST_KEYED_COUNT.a.sum, 1, "Should have correct value in parent");
do_test_finished();
});

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

@ -101,12 +101,10 @@ if (kInChildProcess) {
}
}
},
init() {
Services.cpmm.addMessageListener("AsyncPrefs:PrefSetFinished", this);
Services.cpmm.addMessageListener("AsyncPrefs:PrefResetFinished", this);
},
};
Services.cpmm.addMessageListener("AsyncPrefs:PrefSetFinished", AsyncPrefs);
Services.cpmm.addMessageListener("AsyncPrefs:PrefResetFinished", AsyncPrefs);
} else {
AsyncPrefs = {
methodForType: {
@ -172,11 +170,10 @@ if (kInChildProcess) {
},
init() {
// PLEASE KEEP THIS LIST IN SYNC WITH THE LISTENERS ADDED IN nsBrowserGlue
Services.ppmm.addMessageListener("AsyncPrefs:SetPref", this);
Services.ppmm.addMessageListener("AsyncPrefs:ResetPref", this);
// PLEASE KEEP THIS LIST IN SYNC WITH THE LISTENERS ADDED IN nsBrowserGlue
}
};
}
AsyncPrefs.init();

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

@ -164,8 +164,8 @@ GCMinorMarkerPayload::StreamPayload(SpliceableJSONWriter& aWriter,
MOZ_ASSERT(mTimingData);
StreamCommonProps("GCMinor", aWriter, aProcessStartTime, aUniqueStacks);
if (mTimingData) {
aWriter.SplicedJSONProperty("nurseryTimings", mTimingData.get());
aWriter.SplicedJSONProperty("nursery", mTimingData.get());
} else {
aWriter.NullProperty("nurseryTimings");
aWriter.NullProperty("nursery");
}
}

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

@ -1318,16 +1318,6 @@ GfxInfo::GetGfxDriverInfo()
(nsAString&) GfxDriverInfo::GetDeviceVendor(VendorAMD), GfxDriverInfo::allDevices,
nsIGfxInfo::FEATURE_DX_INTEROP2, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION,
DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions, "DX_INTEROP2_AMD_CRASH");
////////////////////////////////////
// FEATURE_ADVANCED_LAYERS
// bug 1377866
APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Windows,
(nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel),
(GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(IntelHDGraphicsToSandyBridge),
nsIGfxInfo::FEATURE_ADVANCED_LAYERS, nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions, "FEATURE_FAILURE_BUG_1377866");
}
return *mDriverInfo;
}