Merge mozilla-central to mozilla-inbound

This commit is contained in:
Carsten "Tomcat" Book 2017-02-15 12:43:50 +01:00
commit 8c454e1c69
136 changed files with 817 additions and 680 deletions

View File

@ -132,23 +132,25 @@ const Frame = Class({
extends: EventTarget,
setup: function(contentFrame) {
// This ID should be unique for this loader across all processes
ns(this).id = runtime.processID + ":" + FRAME_ID++;
let priv = ns(this);
ns(this).contentFrame = contentFrame;
ns(this).messageManager = contentFrame;
ns(this).domListeners = [];
priv.id = runtime.processID + ":" + FRAME_ID++;
priv.contentFrame = contentFrame;
priv.messageManager = contentFrame;
priv.domListeners = [];
tabMap.set(contentFrame.docShell, this);
ns(this).messageReceived = messageReceived.bind(this);
ns(this).messageManager.addMessageListener('sdk/remote/frame/message', ns(this).messageReceived);
priv.messageReceived = messageReceived.bind(this);
priv.messageManager.addMessageListener('sdk/remote/frame/message', priv.messageReceived);
this.port = new EventTarget();
definePort(this, 'sdk/remote/frame/message');
ns(this).messageManager.sendAsyncMessage('sdk/remote/frame/attach', {
priv.messageManager.sendAsyncMessage('sdk/remote/frame/attach', {
loaderID,
frameID: ns(this).id,
frameID: priv.id,
processID: runtime.processID
});
@ -156,14 +158,16 @@ const Frame = Class({
},
dispose: function() {
let priv = ns(this);
emit(this, 'detach', this);
for (let listener of ns(this).domListeners)
ns(this).contentFrame.removeEventListener(...listener.args);
for (let listener of priv.domListeners)
priv.contentFrame.removeEventListener(...listener.args);
ns(this).messageManager.removeMessageListener('sdk/remote/frame/message', ns(this).messageReceived);
tabMap.delete(ns(this).contentFrame.docShell);
ns(this).contentFrame = null;
priv.messageManager.removeMessageListener('sdk/remote/frame/message', priv.messageReceived);
tabMap.delete(priv.contentFrame.docShell);
priv.contentFrame = null;
},
get content() {
@ -191,23 +195,27 @@ const Frame = Class({
},
addEventListener: function(...args) {
let priv = ns(this);
let listener = listenerFor(...args);
if (arrayContainsListener(ns(this).domListeners, listener))
if (arrayContainsListener(priv.domListeners, listener))
return;
listener.registeredCallback = makeFrameEventListener(this, listener.callback);
ns(this).domListeners.push(listener);
ns(this).contentFrame.addEventListener(...listener.args);
priv.domListeners.push(listener);
priv.contentFrame.addEventListener(...listener.args);
},
removeEventListener: function(...args) {
let listener = getListenerFromArray(ns(this).domListeners, listenerFor(...args));
let priv = ns(this);
let listener = getListenerFromArray(priv.domListeners, listenerFor(...args));
if (!listener)
return;
removeListenerFromArray(ns(this).domListeners, listener);
ns(this).contentFrame.removeEventListener(...listener.args);
removeListenerFromArray(priv.domListeners, listener);
priv.contentFrame.removeEventListener(...listener.args);
}
});
@ -233,12 +241,10 @@ const FrameList = Class({
},
getFrameForWindow: function(window) {
for (let frame of this) {
if (frame.content == window)
return frame;
}
let docShell = window.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIDocShell);
return null;
return tabMap.get(docShell) || null;
},
addEventListener: function(...args) {

View File

@ -360,10 +360,13 @@ this.ExtensionsUI = {
callback: resolve,
};
let icon = addon.isWebExtension ?
addon.iconURL || DEFAULT_EXTENSION_ICON :
"chrome://browser/skin/addons/addon-install-installed.svg";
let options = {
hideClose: true,
timeout: Date.now() + 30000,
popupIconURL: addon.iconURL || DEFAULT_EXTENSION_ICON,
popupIconURL: icon,
eventCallback(topic) {
if (topic == "showing") {
let doc = this.browser.ownerDocument;

View File

@ -23,18 +23,24 @@ def rustc_info(rustc):
@checking('cargo version', lambda info: info.version)
@imports('re')
def cargo_info(cargo):
# |cargo --version| doesn't have pleasant-to-parse output like rustc
# does. So we have to resort to regexes.
out = check_cmd_output(cargo, '--version').splitlines()[0]
VERSION_FORMAT = r'^cargo (\d\.\d+\.\d+).*'
out = check_cmd_output(cargo, '--version', '--verbose').splitlines()
info = dict((s.strip() for s in line.split(':', 1)) for line in out[1:])
version = info.get('release')
# Older versions of cargo didn't support --verbose, in which case, they
# only output a not-really-pleasant-to-parse output. Fortunately, they
# don't error out, so we can just try some regexp matching on the output
# we already got.
if version is None:
VERSION_FORMAT = r'^cargo (\d\.\d+\.\d+).*'
m = re.search(VERSION_FORMAT, out)
# Fail fast if cargo changes its output on us.
if not m:
die('Could not determine cargo version from output: %s', out)
m = re.search(VERSION_FORMAT, out[0])
# Fail fast if cargo changes its output on us.
if not m:
die('Could not determine cargo version from output: %s', out)
version = m.group(1)
return namespace(
version=Version(m.group(1)),
version=Version(version),
)
@depends_if(cargo)

View File

@ -12,19 +12,19 @@
<body class="theme-sidebar devtools-monospace" role="application" empty="true">
<div id="global-toolbar" class="theme-toolbar">
<span id="all-animations-label" class="label"></span>
<button id="toggle-all" standalone="true" class="devtools-button pause-button"></button>
<button id="toggle-all" class="devtools-button pause-button"></button>
</div>
<div id="timeline-toolbar" class="theme-toolbar">
<button id="rewind-timeline" standalone="true" class="devtools-button"></button>
<button id="pause-resume-timeline" standalone="true" class="devtools-button pause-button paused"></button>
<span id="timeline-rate" standalone="true" class="devtools-button"></span>
<button id="rewind-timeline" class="devtools-button"></button>
<button id="pause-resume-timeline" class="devtools-button pause-button paused"></button>
<span id="timeline-rate" class="devtools-button"></span>
<span id="timeline-current-time" class="label"></span>
</div>
<div id="players"></div>
<div id="error-message">
<p id="error-type"></p>
<p id="error-hint"></p>
<button id="element-picker" standalone="true" class="devtools-button"></button>
<button id="element-picker" data-standalone="true" class="devtools-button"></button>
</div>
<script type="application/javascript;version=1.8" src="animation-controller.js"></script>
<script type="application/javascript;version=1.8" src="animation-panel.js"></script>

View File

@ -200,11 +200,11 @@ var AnimationsPanel = {
},
onPickerStarted: function () {
this.pickerButtonEl.setAttribute("checked", "true");
this.pickerButtonEl.classList.add("checked");
},
onPickerStopped: function () {
this.pickerButtonEl.removeAttribute("checked");
this.pickerButtonEl.classList.remove("checked");
},
onToggleAllClicked: function () {

View File

@ -1455,7 +1455,7 @@ Inspector.prototype = {
},
onEyeDropperButtonClicked: function () {
this.eyeDropperButton.hasAttribute("checked")
this.eyeDropperButton.classList.contains("checked")
? this.hideEyeDropper()
: this.showEyeDropper();
},
@ -1473,7 +1473,7 @@ Inspector.prototype = {
},
onEyeDropperDone: function () {
this.eyeDropperButton.removeAttribute("checked");
this.eyeDropperButton.classList.remove("checked");
this.stopEyeDropperListeners();
},
@ -1489,7 +1489,7 @@ Inspector.prototype = {
}
this.telemetry.toolOpened("toolbareyedropper");
this.eyeDropperButton.setAttribute("checked", "true");
this.eyeDropperButton.classList.add("checked");
this.startEyeDropperListeners();
return this.inspector.pickColorFromPage(this.toolbox, {copyOnSelect: true})
.catch(e => console.error(e));
@ -1506,7 +1506,7 @@ Inspector.prototype = {
return null;
}
this.eyeDropperButton.removeAttribute("checked");
this.eyeDropperButton.classList.remove("checked");
this.stopEyeDropperListeners();
return this.inspector.cancelPickColorFromPage()
.catch(e => console.error(e));

View File

@ -1372,12 +1372,12 @@ CssRuleView.prototype = {
*/
_onTogglePseudoClassPanel: function () {
if (this.pseudoClassPanel.hidden) {
this.pseudoClassToggle.setAttribute("checked", "true");
this.pseudoClassToggle.classList.add("checked");
this.hoverCheckbox.setAttribute("tabindex", "0");
this.activeCheckbox.setAttribute("tabindex", "0");
this.focusCheckbox.setAttribute("tabindex", "0");
} else {
this.pseudoClassToggle.removeAttribute("checked");
this.pseudoClassToggle.classList.remove("checked");
this.hoverCheckbox.setAttribute("tabindex", "-1");
this.activeCheckbox.setAttribute("tabindex", "-1");
this.focusCheckbox.setAttribute("tabindex", "-1");

View File

@ -230,10 +230,9 @@ module.exports = createClass({
_renderInitial(onSnapshotClick) {
return this._renderHeapView("initial", dom.button(
{
className: "devtools-toolbarbutton take-snapshot",
className: "devtools-button take-snapshot",
onClick: onSnapshotClick,
"data-standalone": true,
"data-text-only": true,
},
L10N.getStr("take-snapshot")
));

View File

@ -271,7 +271,7 @@ module.exports = createClass({
dom.button(
{
id: "import-snapshot",
className: "devtools-toolbarbutton import-snapshot devtools-button",
className: "import-snapshot devtools-button",
onClick: onImportClick,
title: L10N.getStr("import-snapshot"),
}

View File

@ -41,7 +41,7 @@ const RequestListEmptyNotice = createClass({
button(
{
id: "requests-menu-reload-notice-button",
className: "devtools-toolbarbutton",
className: "devtools-button",
"data-standalone": true,
onClick: this.props.onReloadClick,
},

View File

@ -66,7 +66,7 @@ function Toolbar({
.replace("#4", getTimeWithDecimals(millis / 1000));
const buttons = requestFilterTypes.entrySeq().map(([type, checked]) => {
let classList = ["menu-filter-button"];
let classList = ["devtools-button"];
checked && classList.push("checked");
return (

View File

@ -24,7 +24,7 @@ const Rep = createFactory(REPS.Rep);
// Components
const PropertiesView = createFactory(require("./properties-view"));
const { a, div, input, textarea } = DOM;
const { a, button, div, input, textarea } = DOM;
const EDIT_AND_RESEND = L10N.getStr("netmonitor.summary.editAndResend");
const RAW_HEADERS = L10N.getStr("netmonitor.summary.rawHeaders");
const RAW_HEADERS_REQUEST = L10N.getStr("netmonitor.summary.rawHeaders.requestHeaders");
@ -162,18 +162,14 @@ const HeadersPanel = createClass({
readOnly: true,
value: `${status} ${statusText}`,
}),
NetMonitorController.supportsCustomRequest && input({
className: "tool-button",
NetMonitorController.supportsCustomRequest && button({
className: "devtools-button",
onClick: cloneSelectedRequest,
type: "button",
value: EDIT_AND_RESEND,
}),
input({
className: "tool-button",
}, EDIT_AND_RESEND),
button({
className: "devtools-button",
onClick: this.toggleRawHeaders,
type: "button",
value: RAW_HEADERS,
}),
}, RAW_HEADERS),
)
);
}

View File

@ -30,13 +30,13 @@ add_task(function* () {
wait = waitForDOM(document, ".raw-headers-container textarea", 2);
EventUtils.sendMouseEvent({ type: "click" },
document.querySelectorAll(".headers-summary .tool-button")[1]);
document.querySelectorAll(".headers-summary .devtools-button")[1]);
yield wait;
testShowRawHeaders(getSortedRequests(gStore.getState()).get(0));
EventUtils.sendMouseEvent({ type: "click" },
document.querySelectorAll(".headers-summary .tool-button")[1]);
document.querySelectorAll(".headers-summary .devtools-button")[1]);
testHideRawHeaders(document);

View File

@ -85,14 +85,14 @@ describe("FilterButtons::toggleFilter:", () => {
store.dispatch(Actions.toggleRequestFilterType("xhr"));
store.dispatch(Actions.toggleRequestFilterType("js"));
asExpected(wrapper, expectXHRJSTypes, `when xhr, js is toggled`);
asExpected(wrapper, expectXHRJSTypes, "when xhr, js is toggled");
});
function asExpected(wrapper, expectTypes, description) {
for (let type of Object.keys(expectTypes)) {
let checked = expectTypes[type] ? "checked" : "not checked";
let className = expectTypes[type] ?
"menu-filter-button checked": "menu-filter-button";
"devtools-button checked" : "devtools-button";
it(`'${type}' button is ${checked} ${description}`, () => {
expect(wrapper.find(`#requests-menu-filter-${type}-button`).html())
.toBe(`<button id="requests-menu-filter-${type}-button" class="` + className +

View File

@ -397,7 +397,7 @@ function testFilterButtons(monitor, filterType) {
let doc = monitor.panelWin.document;
let target = doc.querySelector("#requests-menu-filter-" + filterType + "-button");
ok(target, `Filter button '${filterType}' was found`);
let buttons = [...doc.querySelectorAll(".menu-filter-button")];
let buttons = [...doc.querySelectorAll("#requests-menu-filter-buttons button")];
ok(buttons.length > 0, "More than zero filter buttons were found");
// Only target should be checked.
@ -415,7 +415,7 @@ function testFilterButtons(monitor, filterType) {
*/
function testFilterButtonsCustom(aMonitor, aIsChecked) {
let doc = aMonitor.panelWin.document;
let buttons = doc.querySelectorAll(".menu-filter-button");
let buttons = doc.querySelectorAll("#requests-menu-filter-buttons button");
for (let i = 0; i < aIsChecked.length; i++) {
let button = buttons[i];
if (aIsChecked[i]) {

View File

@ -105,31 +105,31 @@
<hbox id="performance-toolbar-controls-detail-views"
class="devtools-toolbarbutton-group">
<toolbarbutton id="select-waterfall-view"
class="devtools-toolbarbutton devtools-button"
class="devtools-toolbarbutton"
label="&performanceUI.toolbar.waterfall;"
hidden="true"
data-view="waterfall"
tooltiptext="&performanceUI.toolbar.waterfall.tooltiptext;" />
<toolbarbutton id="select-js-calltree-view"
class="devtools-toolbarbutton devtools-button"
class="devtools-toolbarbutton"
label="&performanceUI.toolbar.js-calltree;"
hidden="true"
data-view="js-calltree"
tooltiptext="&performanceUI.toolbar.js-calltree.tooltiptext;" />
<toolbarbutton id="select-js-flamegraph-view"
class="devtools-toolbarbutton devtools-button"
class="devtools-toolbarbutton"
label="&performanceUI.toolbar.js-flamegraph;"
hidden="true"
data-view="js-flamegraph"
tooltiptext="&performanceUI.toolbar.js-flamegraph.tooltiptext;" />
<toolbarbutton id="select-memory-calltree-view"
class="devtools-toolbarbutton devtools-button"
class="devtools-toolbarbutton"
label="&performanceUI.toolbar.memory-calltree;"
hidden="true"
data-view="memory-calltree"
tooltiptext="&performanceUI.toolbar.allocations.tooltiptext;" />
<toolbarbutton id="select-memory-flamegraph-view"
class="devtools-toolbarbutton devtools-button"
class="devtools-toolbarbutton"
label="&performanceUI.toolbar.memory-flamegraph;"
hidden="true"
data-view="memory-flamegraph" />

View File

@ -245,49 +245,33 @@ checkbox:-moz-focusring {
.devtools-button {
-moz-appearance: none;
background: transparent;
min-height: 18px;
text-shadow: none;
border: none;
border-radius: 0;
border: 1px solid var(--toolbarbutton-border-color);
border-radius: 2px;
color: var(--theme-body-color);
transition: background 0.05s ease-in-out;
}
.devtools-menulist,
.devtools-toolbarbutton {
-moz-box-align: center;
min-width: 78px;
text-shadow: none;
padding: 1px;
margin: 2px 1px;
margin: 1px;
/* Button text should not wrap on multiple lines */
white-space: nowrap;
}
.devtools-toolbarbutton:not([label]) > .toolbarbutton-icon,
.devtools-button::before {
.devtools-button:empty::before {
width: 16px;
height: 16px;
margin: 0 3px;
transition: opacity 0.05s ease-in-out;
}
/* HTML buttons */
.devtools-button {
margin: 2px 1px;
padding: 1px;
min-width: 32px;
/* The icon is absolutely positioned in the button using ::before */
position: relative;
}
.devtools-button::before {
.devtools-button:empty::before {
content: "";
display: block;
position: absolute;
offset-inline-start: 50%;
offset-block-start: 50%;
margin-block-start: -8px;
margin-inline-start: -8px;
display: inline-block;
background-size: cover;
background-repeat: no-repeat;
transition: opacity 0.05s ease-in-out;
vertical-align: middle;
}
.devtools-button:-moz-focusring {
@ -299,74 +283,19 @@ checkbox:-moz-focusring {
.devtools-button[data-standalone],
.devtools-toolbarbutton[standalone],
.devtools-toolbarbutton[data-standalone] {
border-width: 1px;
border-style: solid;
min-height: 32px;
background-color: var(--theme-toolbar-background);
border-color: rgba(138,161,180,0.2) !important;
min-height: 30px;
}
.devtools-toolbarbutton[standalone], .devtools-toolbarbutton[data-standalone] {
margin-inline-end: 5px;
}
.devtools-toolbarbutton[label][standalone] {
min-height: 2em;
}
.devtools-menulist,
.devtools-toolbarbutton,
.devtools-button {
border-color: var(--toolbar-button-border-color);
}
/* Icon button styles */
.devtools-toolbarbutton:not([label]),
.devtools-toolbarbutton[text-as-image] {
min-width: 32px;
}
.devtools-toolbarbutton:not([label]) > .toolbarbutton-text {
display: none;
}
.devtools-toolbarbutton > .toolbarbutton-icon {
margin: 0;
}
/* Menu button styles (eg. web console filters) */
.devtools-toolbarbutton[type=menu-button] > .toolbarbutton-menubutton-button {
-moz-appearance: none;
color: inherit;
border-width: 0;
-moz-box-orient: horizontal;
padding: 0;
}
.devtools-toolbarbutton[type=menu-button] {
padding: 0 1px;
-moz-box-align: stretch;
}
.devtools-toolbarbutton > .toolbarbutton-menubutton-button > .toolbarbutton-icon {
margin-inline-end: 4px;
}
.devtools-menulist > .menulist-dropmarker {
-moz-appearance: none;
display: -moz-box;
list-style-image: url("chrome://devtools/skin/images/dropmarker.svg");
-moz-box-align: center;
min-width: 16px;
}
.devtools-toolbarbutton[type=menu] > .toolbarbutton-menu-dropmarker,
.devtools-toolbarbutton[type=menu-button] > .toolbarbutton-menubutton-dropmarker {
-moz-appearance: none !important;
list-style-image: url("chrome://devtools/skin/images/dropmarker.svg");
-moz-box-align: center;
padding: 0 3px;
}
/* Icon-only buttons */
.devtools-button:empty::before,
.devtools-toolbarbutton:not([label]):not([disabled]) > image {
@ -375,8 +304,6 @@ checkbox:-moz-focusring {
.devtools-button:hover:empty:not(:disabled):before,
.devtools-button.checked:empty::before,
.devtools-button[checked]:empty::before,
.devtools-button[open]:empty::before,
.devtools-toolbarbutton:not([label]):not([disabled=true]):hover > image,
.devtools-toolbarbutton:not([label])[checked=true] > image,
.devtools-toolbarbutton:not([label])[open=true] > image {
@ -384,77 +311,54 @@ checkbox:-moz-focusring {
}
.devtools-button:disabled,
.devtools-button[disabled],
.devtools-toolbarbutton[disabled] {
opacity: 0.5 !important;
}
.devtools-button[checked]:empty::before,
.devtools-button[open]:empty::before,
.devtools-button.checked::before,
.devtools-toolbarbutton:not([label])[checked=true] > image,
.devtools-toolbarbutton:not([label])[open=true] > image {
filter: var(--checked-icon-filter);
}
/* Checked/opened icon button background */
.theme-firebug .devtools-button[checked]:empty,
.theme-firebug .devtools-button[open]:empty,
.theme-firebug .devtools-button.checked,
.theme-firebug .devtools-toolbarbutton:not([label])[checked=true],
.theme-firebug .devtools-toolbarbutton:not([label])[open=true] {
/* Button states */
.devtools-toolbarbutton[label]:not([type=menu-button]),
.devtools-toolbarbutton[standalone],
.devtools-button[data-standalone],
.devtools-button:not(:empty) {
background: var(--toolbarbutton-background);
padding: 0 5px;
}
.devtools-toolbarbutton:not([label]):hover,
.devtools-button:empty:not(:disabled):hover {
background: var(--toolbarbutton-background);
}
.devtools-button:not(:empty):not(:disabled):hover,
.devtools-toolbarbutton[label]:not(:-moz-any([checked=true],[disabled])):hover,
.devtools-button:empty:not(:disabled):-moz-any(:hover:active,.checked),
.devtools-toolbarbutton:not([label]):-moz-any([checked],[open],:hover:active) {
background: var(--toolbarbutton-hover-background);
border-color: var(--toolbarbutton-hover-border-color);
}
.devtools-button:not(:empty):not(.checked):not(:disabled):hover:active,
.devtools-toolbarbutton:not(:-moz-any([checked=true],[disabled]))[label]:hover:active {
background-color: var(--theme-selection-background-semitransparent);
}
.devtools-toolbarbutton:not([disabled])[label][checked=true],
.devtools-toolbarbutton:not([disabled])[label][open],
.devtools-button:not(:empty).checked,
.theme-firebug .devtools-toolbarbutton:-moz-any([checked],[open]),
.theme-firebug .devtools-button.checked:empty {
background: var(--toolbarbutton-checked-background);
border-color: var(--toolbarbutton-checked-border-color);
color: var(--toolbarbutton-checked-color);
}
/* Icon-and-text buttons */
.devtools-toolbarbutton.icon-and-text .toolbarbutton-text {
margin-inline-start: .5em !important;
font-weight: 600;
}
/* Text-only buttons */
.theme-light .devtools-toolbarbutton[label]:not([text-as-image]):not([type=menu-button]),
.theme-light .devtools-toolbarbutton[data-text-only],
.theme-light .devtools-button:not(:empty) {
background-color: var(--toolbar-tab-hover);
}
.theme-dark .devtools-toolbarbutton[label]:not([text-as-image]):not([type=menu-button]),
.theme-dark .devtools-toolbarbutton[data-text-only],
.theme-dark .devtools-button:not(:empty) {
background-color: rgba(0, 0, 0, .2); /* Splitter */
}
/* Text-only button states */
.theme-dark .devtools-button:not(:empty):not(:disabled):hover,
.theme-dark .devtools-toolbarbutton:not(:-moz-any([checked=true],[disabled],[text-as-image]))[label]:hover {
background: rgba(0, 0, 0, .3); /* Splitters */
}
.theme-light .devtools-button:not(:empty):not(:disabled):hover,
.theme-light .devtools-toolbarbutton:not(:-moz-any([checked=true],[disabled],[text-as-image]))[label]:hover {
background: rgba(170, 170, 170, .3); /* Splitters */
}
.theme-dark .devtools-button:not(:empty):not(:disabled):hover:active,
.theme-dark .devtools-toolbarbutton:not(:-moz-any([checked=true],[disabled],[text-as-image]))[label]:hover:active {
background: rgba(0, 0, 0, .4); /* Splitters */
}
.theme-light .devtools-button:not(:empty):not(:disabled):hover:active,
.theme-light .devtools-toolbarbutton:not(:-moz-any([checked=true],[disabled],[text-as-image]))[label]:hover:active {
background: var(--toolbar-tab-hover-active);
}
.theme-dark .devtools-toolbarbutton:not([disabled])[label][checked=true],
.theme-dark .devtools-toolbarbutton:not([disabled])[label][open],
.theme-dark .devtools-button:not(:empty)[checked=true] {
background: var(--theme-selection-background-semitransparent);
color: var(--theme-selection-color);
}
.theme-light .devtools-toolbarbutton:not([disabled])[label][checked=true],
.theme-light .devtools-toolbarbutton:not([disabled])[label][open],
.theme-light .devtools-button:not(:empty)[checked=true] {
background: rgba(76, 158, 217, .3); /* Select highlight blue */
}
/* Icons */
:root {
--clear-icon-url: url("chrome://devtools/skin/images/clear.svg");
}
@ -487,36 +391,6 @@ checkbox:-moz-focusring {
margin-inline-start: 1px;
}
/*
* Filter buttons
* @TODO : Fix when https://bugzilla.mozilla.org/show_bug.cgi?id=1255116 lands
*/
.menu-filter-button {
-moz-appearance: none;
background: var(--toolbarbutton-background);
border: var(--toolbarbutton-border);
border-radius: 2px;
min-width: 0;
padding: 0 5px;
margin: 2px;
color: var(--theme-body-color);
}
.menu-filter-button:hover {
background: var(--toolbarbutton-hover-background);
border: var(--toolbarbutton-hover-border);
}
.menu-filter-button:hover:active {
background-color: var(--theme-selection-background-semitransparent);
}
.menu-filter-button:not(:active).checked {
background: var(--toolbarbutton-checked-background);
border: var(--toolbarbutton-checked-border);
color: var(--toolbarbutton-checked-color);
}
/* Text input */
.devtools-textinput,

View File

@ -154,7 +154,6 @@
.theme-firebug #toolbox-tab-options {
margin-inline-end: 4px;
background-color: white;
}
.theme-firebug #toolbox-tab-options::before {
@ -172,9 +171,6 @@
border: none;
}
.theme-firebug #command-button-pick {
top: 6px;
}
/* Toolbar */
.theme-firebug .theme-toolbar,
@ -192,7 +188,7 @@
/* Space around toolbar buttons */
.theme-firebug .devtools-toolbar {
padding: 3px;
padding: 2px 3px;
}
/* The height is the same for all toolbars and side panels tabs */
@ -218,33 +214,6 @@
font-family: var(--proportional-font-family);
}
/* Toolbar Buttons */
.theme-firebug .theme-toolbar button,
.theme-firebug .devtools-button,
.theme-firebug toolbarbutton {
margin: 1px;
border-radius: 2px;
color: var(--theme-body-color);
line-height: var(--theme-toolbar-font-size);
font-size: var(--theme-toolbar-font-size);
}
.theme-firebug .theme-toolbar button,
.theme-firebug .devtools-button {
border-width: 1px !important;
min-width: 24px;
}
.theme-firebug .devtools-toolbarbutton {
min-width: 24px;
}
.theme-firebug #element-picker {
min-height: 21px;
}
/* Make sure the toolbar buttons shrink nicely. */
#toolbox-buttons-end {

View File

@ -111,10 +111,7 @@
#requests-menu-reload-notice-button {
font-size: inherit;
min-height: 26px;
padding-left: 10px;
padding-right: 10px;
margin: 0 5px;
background-color: var(--theme-toolbar-background);
}
/* Network requests table */
@ -780,11 +777,6 @@
font: message-box;
}
.custom-request-panel .devtools-button {
margin: 3px 1px;
min-width: 78px;
}
.custom-header,
.custom-method-and-url,
.custom-request,
@ -1223,43 +1215,10 @@
align-items: center;
}
.headers-summary .tool-button {
.headers-summary .devtools-button {
margin-inline-end: 6px;
}
.tool-button {
background: transparent;
border: none;
border-color: var(--toolbar-button-border-color);
color: var(--theme-body-color);
min-height: 18px;
transition: background 0.05s ease-in-out;
}
.theme-light .tool-button {
background-color: var(--toolbar-tab-hover);
}
.theme-light .tool-button:hover {
background-color: rgba(170, 170, 170, 0.3);
}
.theme-light .tool-button:hover:active {
background-color: var(--toolbar-tab-hover-active);
}
.theme-dark .tool-button {
background-color: rgba(0, 0, 0, 0.2);
}
.theme-dark .tool-button:hover {
background-color: rgba(0, 0, 0, 0.3);
}
.theme-dark .tool-button:hover:active {
background-color: rgba(0, 0, 0, 0.4);
}
.headers-summary .requests-menu-status-icon {
min-width: 10px;
}

View File

@ -16,12 +16,11 @@
--tool-options-image: url(chrome://devtools/skin/images/tool-options.svg);
--icon-filter: none;
--checked-icon-filter: url(chrome://devtools/skin/images/filters.svg#checked-icon-state);
--toolbar-button-border-color: rgba(170, 170, 170, .5);
}
.theme-dark {
--toolbar-tab-hover: hsla(206, 37%, 4%, .2);
--toolbar-tab-hover-active: hsla(206, 37%, 4%, .4);
--toolbar-tab-hover: rgba(110,120,130,0.1);
--toolbar-tab-hover-active: rgba(110,120,130,0.2);
--searchbox-background-color: #4d4222;
--searchbox-border-color: #d99f2b;
--searcbox-no-match-background-color: #402325;
@ -31,7 +30,6 @@
--tool-options-image: url(chrome://devtools/skin/images/tool-options.svg);
--icon-filter: invert(1);
--checked-icon-filter: url(chrome://devtools/skin/images/filters.svg#dark-theme-checked-icon-state);
--toolbar-button-border-color: rgba(0, 0, 0, .4);
}
.theme-firebug {
@ -39,7 +37,6 @@
--tool-options-image: url(chrome://devtools/skin/images/firebug/tool-options.svg);
--icon-filter: none;
--checked-icon-filter: none;
--toolbar-button-border-color: rgba(170, 170, 170, .5);
}

View File

@ -167,7 +167,7 @@
border: none;
margin: 0;
margin-inline-start: 10px;
opacity: 0.6;
opacity: 0.8;
max-height: 16px;
width: 16px; /* Prevents collapse during theme switching */
vertical-align: text-top;
@ -194,10 +194,7 @@
margin: 0 4px;
}
.devtools-tab:hover > img {
opacity: 0.8;
}
.devtools-tab:hover > img,
.devtools-tab:active > img,
.devtools-tab.selected > img {
opacity: 1;
@ -237,9 +234,6 @@
/* The options tab is special - it doesn't have the same parent
as the other tabs (toolbox-option-container vs toolbox-tabs) */
#toolbox-option-container .devtools-tab:not(.selected) {
background-color: transparent;
}
#toolbox-option-container .devtools-tab {
border-color: transparent;
border-width: 0;
@ -255,14 +249,6 @@
#toolbox-controls, #toolbox-dock-buttons {
display: flex;
}
#toolbox-controls > button,
#toolbox-dock-buttons > button {
-moz-appearance: none;
border: none;
margin: 0 4px;
min-width: 16px;
width: 16px;
}
/* Save space in Firebug theme */
.theme-firebug #toolbox-controls button {
@ -315,43 +301,20 @@
/* Command buttons */
.command-button {
.command-button,
#toolbox-controls > button,
#toolbox-dock-buttons > button {
/* !important is needed to override .devtools-button rules in common.css */
padding: 0 !important;
margin: 0 !important;
border: none !important;
border-radius: 0 !important;
position: relative;
min-width: 28px;
}
.command-button::before {
opacity: 0.7;
}
.command-button:hover {
background-color: var(--toolbar-tab-hover);
}
.theme-light .command-button:hover {
background-color: inherit;
}
.command-button:hover:active,
.command-button.checked:not(:hover) {
background-color: var(--toolbar-tab-hover-active)
}
.theme-light .command-button:hover:active,
.theme-light .command-button.checked:not(:hover) {
background-color: inherit;
}
.command-button:hover::before {
opacity: 0.85;
}
.command-button:hover:active::before,
.command-button.checked::before,
.command-button.open::before {
opacity: 1;
#command-button-pick {
min-width: 32px;
}
/* Command button images */

View File

@ -195,10 +195,10 @@
/* Toolbar buttons */
--toolbarbutton-background: transparent linear-gradient(rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.2)) no-repeat;
--toolbarbutton-hover-background: transparent;
--toolbarbutton-hover-border-color: var(--theme-splitter-color);
--toolbarbutton-checked-background: linear-gradient(rgba(0, 0, 0, 0.1), transparent);
--toolbarbutton-checked-color: var(--theme-body-color);
--toolbarbutton-hover-border: 1px solid var(--theme-splitter-color);
--toolbarbutton-checked-border: var(--toolbarbutton-hover-border);
--toolbarbutton-checked-border-color: var(--toolbarbutton-hover-border-color);
}
:root.theme-firebug[platform="win"] {
@ -217,12 +217,11 @@
--theme-focus-outline: 1px dotted var(--theme-focus-outline-color);
--theme-focus-box-shadow-textbox: 0 0 0 1px var(--theme-textbox-box-shadow);
--toolbarbutton-background: rgba(128,128,128,0.1);
--toolbarbutton-hover-background: rgba(128,128,128,0.2);
--toolbarbutton-background: rgba(110,120,130,0.1);
--toolbarbutton-border-color: transparent;
--toolbarbutton-hover-background: rgba(110,120,130,0.2);
--toolbarbutton-hover-border-color: var(--toolbarbutton-border-color);
--toolbarbutton-checked-background: var(--theme-selection-background);
--toolbarbutton-checked-color: var(--theme-selection-color);
--toolbarbutton-border: 1px solid transparent;
--toolbarbutton-hover-border: var(--toolbarbutton-border);
--toolbarbutton-checked-border: var(--toolbarbutton-border);
--toolbarbutton-checked-border-color: var(--toolbarbutton-border-color);
}

View File

@ -612,6 +612,42 @@ a.learn-more-link.webconsole-learn-more-link {
filter: url(images/filters.svg#checked-icon-state) brightness(0.9);
}
/* Old console frontend filters */
.devtools-toolbarbutton[type=menu-button] > .toolbarbutton-menubutton-button {
-moz-appearance: none;
color: inherit;
border-width: 0;
-moz-box-orient: horizontal;
padding: 0;
}
.devtools-toolbarbutton[type=menu-button] {
padding: 0 1px;
-moz-box-align: stretch;
--toolbarbutton-checked-color: var(--theme-body-color);
--toolbarbutton-checked-background: var(--theme-selection-background-semitransparent);
}
.devtools-toolbarbutton > .toolbarbutton-menubutton-button > .toolbarbutton-icon {
margin-inline-end: 4px;
}
.devtools-menulist > .menulist-dropmarker {
-moz-appearance: none;
display: -moz-box;
list-style-image: url("chrome://devtools/skin/images/dropmarker.svg");
-moz-box-align: center;
min-width: 16px;
}
.devtools-toolbarbutton[type=menu] > .toolbarbutton-menu-dropmarker,
.devtools-toolbarbutton[type=menu-button] > .toolbarbutton-menubutton-dropmarker {
-moz-appearance: none !important;
list-style-image: url("chrome://devtools/skin/images/dropmarker.svg");
-moz-box-align: center;
padding: 0 3px;
}
@media (max-width: 500px) {
.message > .timestamp {
display: none;

View File

@ -29,7 +29,7 @@ const FilterButton = createClass({
const {active, label, filterKey} = this.props;
let classList = [
"menu-filter-button",
"devtools-button",
filterKey,
];
if (active) {

View File

@ -20,7 +20,7 @@ describe("FilterButton component:", () => {
it("displays as active when turned on", () => {
const wrapper = render(FilterButton(props));
expect(wrapper.html()).toBe(
"<button aria-pressed=\"true\" class=\"menu-filter-button error checked\">" +
"<button aria-pressed=\"true\" class=\"devtools-button error checked\">" +
"Error</button>"
);
});
@ -29,7 +29,7 @@ describe("FilterButton component:", () => {
const inactiveProps = Object.assign({}, props, { active: false });
const wrapper = render(FilterButton(inactiveProps));
expect(wrapper.html()).toBe(
"<button aria-pressed=\"false\" class=\"menu-filter-button error\">Error</button>"
"<button aria-pressed=\"false\" class=\"devtools-button error\">Error</button>"
);
});
});

View File

@ -64,7 +64,7 @@ function* getFilterButtons(hud) {
});
ok(filterBar, "Filter bar is shown when filter icon is clicked.");
return filterBar.querySelectorAll(".menu-filter-button");
return filterBar.querySelectorAll(".devtools-button");
}
function filterIsEnabled(button) {

View File

@ -10,6 +10,6 @@ asserts(0-1) load 436900-2.html # bug 566159
load 500328-1.html
load 514779-1.xhtml
load 614499-1.html
asserts-if(stylo,1) load 678872-1.html # bug 1324683
load 678872-1.html
skip-if(Android) pref(dom.disable_open_during_load,false) load 914521.html
pref(browser.send_pings,true) load 1257730-1.html

View File

@ -9,7 +9,7 @@ pref(dom.animations-api.core.enabled,true) load 1216842-6.html # bug 1334036
skip-if(stylo) pref(dom.animations-api.core.enabled,true) load 1272475-1.html # bug 1324693 and bug 1332657
skip-if(stylo) pref(dom.animations-api.core.enabled,true) load 1272475-2.html # bug 1324693 and bug 1332657
pref(dom.animations-api.core.enabled,true) load 1278485-1.html
asserts-if(stylo,10) pref(dom.animations-api.core.enabled,true) load 1277272-1.html # bug 1324694
pref(dom.animations-api.core.enabled,true) load 1277272-1.html
pref(dom.animations-api.core.enabled,true) load 1290535-1.html
pref(dom.animations-api.core.enabled,true) load 1304886-1.html
pref(dom.animations-api.core.enabled,true) load 1322382-1.html

View File

@ -79,7 +79,7 @@ load 472593-1.html
load 473284.xul
load 474041-1.svg
load 476526.html
asserts-if(stylo,1) load 483818-1.html # bug 1324683
load 483818-1.html
load 490760-1.xhtml
load 493281-1.html
load 493281-2.html
@ -183,7 +183,7 @@ load 847127.html
load 849601.html
load 849727.html
load 849732.html
asserts-if(stylo,17) load 851353-1.html # bug 1324699
load 851353-1.html
load 852381.html
load 863950.html
load 864448.html

View File

@ -2293,7 +2293,7 @@ nsDocument::ResetStylesheetsToURI(nsIURI* aURI)
RemoveStyleSheetsFromStyleSets(*sheetService->AuthorStyleSheets(), SheetType::Doc);
}
} else {
NS_ERROR("stylo: nsStyleSheetService doesn't handle ServoStyleSheets yet");
NS_WARNING("stylo: nsStyleSheetService doesn't handle ServoStyleSheets yet");
}
mStyleSetFilled = false;

View File

@ -5,6 +5,7 @@
#include "WebGLQuery.h"
#include "gfxPrefs.h"
#include "GLContext.h"
#include "mozilla/dom/WebGL2RenderingContextBinding.h"
#include "nsContentUtils.h"

View File

@ -158,8 +158,8 @@ skip-if(!winWidget) pref(webgl.disable-angle,true) == webgl-color-test.html?nati
fails asserts-if(stylo,1) == stroketext-shadow.html stroketext-shadow.html # bug 1324700
# focus rings
pref(canvas.focusring.enabled,true) skip-if(cocoaWidget) skip-if(winWidget) asserts-if(stylo,6) needs-focus == drawFocusIfNeeded.html drawFocusIfNeeded.html # bug 1324671
pref(canvas.customfocusring.enabled,true) skip-if(Android||cocoaWidget||winWidget) fuzzy-if(gtkWidget,64,410) asserts-if(stylo,6) needs-focus == drawCustomFocusRing.html drawCustomFocusRing.html # bug 1324671
pref(canvas.focusring.enabled,true) skip-if(cocoaWidget) skip-if(winWidget) needs-focus == drawFocusIfNeeded.html drawFocusIfNeeded.html
pref(canvas.customfocusring.enabled,true) skip-if(Android||cocoaWidget||winWidget) fuzzy-if(gtkWidget,64,410) needs-focus == drawCustomFocusRing.html drawCustomFocusRing.html
# Check that captureStream() displays in a local video element
== capturestream.html capturestream.html

View File

@ -54,7 +54,7 @@ load 738744.xhtml
load 741218.json
load 741250.xhtml
load 795221-1.html
asserts-if(stylo,1) load 795221-2.html # bug 1324702
load 795221-2.html
load 795221-3.html
load 795221-4.html
load 795221-5.xml
@ -63,7 +63,7 @@ load 819745.html
load 828180.html
pref(dom.experimental_forms,true) load 828472.html
load 837033.html
asserts-if(stylo,3) load 838256-1.html # bug 1324671
load 838256-1.html
load 862084.html
load 865147.html
load 877910.html

View File

@ -51,7 +51,7 @@ function waitUntilEnded(video) {
Log(video.token, "Waiting for ended");
if (video.ended) {
ok(true, video.token + " already ended");
return Promise.success();
return Promise.resolve();
}
return once(video, 'ended', () => { ok(true, video.token + " ended"); });

View File

@ -4,7 +4,7 @@ load 466607-1.html
load 466945-1.html
load 468763-1.html
load 474744-1.html
asserts-if(stylo,8) HTTP load 481136-1.html # bug 1324671 # needs to be HTTP to recognize the ogg as an audio file?
HTTP load 481136-1.html # needs to be HTTP to recognize the ogg as an audio file?
load 492286-1.xhtml
load 493915-1.html
load 495794-1.html
@ -71,7 +71,7 @@ load 995289.html
load 1012609.html
load 1015662.html
load 1020205.html
asserts-if(stylo,8) skip-if(Android) test-pref(media.navigator.permission.disabled,true) load 1028458.html # bug 1324671 # bug 1048863
skip-if(Android) test-pref(media.navigator.permission.disabled,true) load 1028458.html # bug 1048863
load 1041466.html
load 1045650.html
load 1080986.html

View File

@ -4,9 +4,9 @@ load 780790.html
load 791270.html
load 791278.html
load 791330.html
asserts-if(stylo,16) load 799419.html # bug 1324671
load 799419.html
load 802982.html
asserts-if(stylo,48) load 812785.html # bug 1324671
load 812785.html
load 834100.html
load 836349.html
load 837324.html

View File

@ -309,6 +309,11 @@ UDPSocketParent::ConnectInternal(const nsCString& aHost, const uint16_t& aPort)
nsresult rv;
UDPSOCKET_LOG(("%s: %s:%u", __FUNCTION__, nsCString(aHost).get(), aPort));
if (!mSocket) {
return NS_ERROR_NOT_AVAILABLE;
}
PRNetAddr prAddr;
memset(&prAddr, 0, sizeof(prAddr));
PR_InitializeNetAddr(PR_IpAddrAny, aPort, &prAddr);
@ -332,7 +337,11 @@ mozilla::ipc::IPCResult
UDPSocketParent::RecvOutgoingData(const UDPData& aData,
const UDPSocketAddr& aAddr)
{
MOZ_ASSERT(mSocket);
if (!mSocket) {
NS_WARNING("sending socket is closed");
FireInternalError(__LINE__);
return IPC_OK();
}
nsresult rv;
if (mFilter) {

View File

@ -29,7 +29,7 @@ load 594653-1.svg
load 596796-1.svg
load 605345-1.svg
load 606101-1.svg
asserts-if(stylo,1) load 608295-1.html # bug 1324689
load 608295-1.html
load 608549-1.svg
load 611927-1.svg
load 615002-1.svg

View File

@ -7699,7 +7699,9 @@ HTMLEditRules::RemoveEmptyNodes()
if (idx != skipList.NoIndex) {
// This node is on our skip list. Skip processing for this node, and
// replace its value in the skip list with the value of its parent
skipList[idx] = parent;
if (parent) {
skipList[idx] = parent;
}
} else {
bool bIsCandidate = false;
bool bIsEmptyNode = false;
@ -7746,7 +7748,7 @@ HTMLEditRules::RemoveEmptyNodes()
}
}
if (!bIsEmptyNode) {
if (!bIsEmptyNode && parent) {
// put parent on skip list
skipList.AppendElement(*parent);
}

View File

@ -217,6 +217,7 @@ skip-if = toolkit == 'android'
[test_bug1248185.html]
[test_bug1258085.html]
[test_bug1268736.html]
[test_bug1270235.html]
[test_bug1306532.html]
subsuite = clipboard
skip-if = toolkit == 'android'

View File

@ -0,0 +1,46 @@
<!DOCTYPE html>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=1270235
-->
<head>
<title>Test for Bug 1270235</title>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
</script>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1270235">Mozilla Bug 1270235</a>
<p id="display"></p>
<div id="content" style="display: none;"></div>
<div id="edit1" contenteditable="true"><p>AB</p></div>
<script type="application/javascript">
SimpleTest.waitForExplicitFinish();
SimpleTest.waitForFocus(()=>{
let element = document.getElementById('edit1');
element.focus();
let textNode = element.firstChild.firstChild;
let node = textNode.splitText(0);
node.parentNode.removeChild(node);
ok(!node.parentNode, 'parent must be null');
let newRange = document.createRange();
newRange.setStart(node, 0);
newRange.setEnd(node, 0);
let selection = document.getSelection();
selection.removeAllRanges();
selection.addRange(newRange);
ok(selection.isCollapsed, 'isCollapsed must be true');
// Don't crash by user input
synthesizeKey("X", {});
SimpleTest.finish();
});
</script>
</body>
</html>

View File

@ -102,7 +102,7 @@ fails == dynamic-overflow-change.html dynamic-overflow-change.html
fails == 694880-1.html 694880-1.html
fails == 694880-2.html 694880-2.html
fails == 694880-3.html 694880-3.html
fails asserts-if(stylo,1) == 388980-1.html 388980-1.html # bug 1324683
fails == 388980-1.html 388980-1.html
fails needs-focus == spellcheck-superscript-1.html spellcheck-superscript-1.html
fails == spellcheck-superscript-2.html spellcheck-superscript-2.html
== 824080-1.html 824080-1.html
@ -134,5 +134,5 @@ fails needs-focus pref(layout.accessiblecaret.enabled,false) pref(layout.accessi
== spellcheck-contenteditable-property-dynamic-override-inherit.html spellcheck-contenteditable-property-dynamic-override-inherit.html
# == 911201.html 911201.html
fails needs-focus == 969773.html 969773.html
fails asserts-if(stylo,2) == 997805.html 997805.html # bug 1324671
fails asserts-if(stylo,1) == 1088158.html 1088158.html # bug 1324671
fails == 997805.html 997805.html
fails == 1088158.html 1088158.html

View File

@ -19,6 +19,7 @@
// without having a dependency on that type. This is used for DrawTargetSkia
// to be able to hold on to a GLContext.
#include "mozilla/GenericRefCounted.h"
#include "mozilla/MemoryReporting.h"
// This RefPtr class isn't ideal for usage in Azure, as it doesn't allow T**
// outparams using the &-operator. But it will have to do as there's no easy

View File

@ -3,6 +3,8 @@
* 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/. */
#include "gfxPrefs.h"
namespace mozilla {
namespace gfx {

View File

@ -10,6 +10,7 @@
#include "2D.h"
#include <cairo-ft.h>
#include "mozilla/UniquePtr.h"
namespace mozilla {
namespace gfx {

View File

@ -9,6 +9,7 @@
#include "nsDebug.h"
#include "nsIWidget.h"
#include "gfxPlatform.h"
#include "gfxPrefs.h"
#include "gfxWindowsSurface.h"
#include "gfxCrashReporterUtils.h"

View File

@ -7,6 +7,7 @@
#include <cstring>
#include "CompositorTypes.h"
#include "gfxPrefs.h"
#include "GLContext.h"
#include "GLBlitHelper.h"
#include "GLReadTexImageHelper.h"

View File

@ -3,7 +3,10 @@
/* 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/. */
#include "GPUProcessManager.h"
#include "gfxPrefs.h"
#include "GPUProcessHost.h"
#include "GPUProcessListener.h"
#include "mozilla/MemoryReportingProcess.h"

View File

@ -2210,8 +2210,14 @@ void AsyncPanZoomController::HandlePanningWithTouchAction(double aAngle) {
// Handling of cross sliding will need to be added in this method after touch-action released
// enabled by default.
MOZ_ASSERT(GetCurrentTouchBlock());
RefPtr<const OverscrollHandoffChain> overscrollHandoffChain =
GetCurrentInputBlock()->GetOverscrollHandoffChain();
bool canScrollHorizontal = !mX.IsAxisLocked() &&
overscrollHandoffChain->CanScrollInDirection(this, ScrollDirection::HORIZONTAL);
bool canScrollVertical = !mY.IsAxisLocked() &&
overscrollHandoffChain->CanScrollInDirection(this, ScrollDirection::VERTICAL);
if (GetCurrentTouchBlock()->TouchActionAllowsPanningXY()) {
if (mX.CanScrollNow() && mY.CanScrollNow()) {
if (canScrollHorizontal && canScrollVertical) {
if (IsCloseToHorizontal(aAngle, gfxPrefs::APZAxisLockAngle())) {
mY.SetAxisLocked(true);
SetState(PANNING_LOCKED_X);
@ -2221,7 +2227,7 @@ void AsyncPanZoomController::HandlePanningWithTouchAction(double aAngle) {
} else {
SetState(PANNING);
}
} else if (mX.CanScrollNow() || mY.CanScrollNow()) {
} else if (canScrollHorizontal || canScrollVertical) {
SetState(PANNING);
} else {
SetState(NOTHING);

View File

@ -7,6 +7,7 @@
#include "HitTestingTreeNode.h"
#include "AsyncPanZoomController.h" // for AsyncPanZoomController
#include "gfxPrefs.h"
#include "LayersLogging.h" // for Stringify
#include "mozilla/gfx/Point.h" // for Point4D
#include "mozilla/layers/APZThreadUtils.h" // for AssertOnCompositorThread

View File

@ -12,6 +12,7 @@
*/
#include "APZTestCommon.h"
#include "gfxPrefs.h"
class APZCBasicTester : public APZCTesterBase {
public:

View File

@ -14,6 +14,7 @@
#include "APZTestCommon.h"
#include "gfxPlatform.h"
#include "gfxPrefs.h"
class APZCTreeManagerTester : public APZCTesterBase {
protected:

View File

@ -22,6 +22,7 @@
#include "mozilla/layers/APZCTreeManager.h"
#include "mozilla/layers/LayerMetricsWrapper.h"
#include "mozilla/layers/APZThreadUtils.h"
#include "mozilla/TypedEnumBits.h"
#include "mozilla/UniquePtr.h"
#include "apz/src/AsyncPanZoomController.h"
#include "apz/src/HitTestingTreeNode.h"
@ -255,6 +256,21 @@ public:
EXPECT_EQ(FLING, mState);
}
void AssertAxisLocked(ScrollDirection aDirection) const {
ReentrantMonitorAutoEnter lock(mMonitor);
switch (aDirection) {
case ScrollDirection::NONE:
EXPECT_EQ(PANNING, mState);
break;
case ScrollDirection::HORIZONTAL:
EXPECT_EQ(PANNING_LOCKED_X, mState);
break;
case ScrollDirection::VERTICAL:
EXPECT_EQ(PANNING_LOCKED_Y, mState);
break;
}
}
void AdvanceAnimationsUntilEnd(const TimeDuration& aIncrement = TimeDuration::FromMilliseconds(10)) {
while (AdvanceAnimations(mcc->Time())) {
mcc->AdvanceBy(aIncrement);
@ -288,6 +304,18 @@ public:
mcc = new NiceMock<MockContentControllerDelayed>();
}
enum class PanOptions {
None = 0,
KeepFingerDown = 0x1,
/*
* Do not adjust the touch-start coordinates to overcome the touch-start
* tolerance threshold. If this option is passed, it's up to the caller
* to pass in coordinates that are sufficient to overcome the touch-start
* tolerance *and* cause the desired amount of scrolling.
*/
ExactCoordinates = 0x2
};
template<class InputReceiver>
void Tap(const RefPtr<InputReceiver>& aTarget, const ScreenIntPoint& aPoint,
TimeDuration aTapLength,
@ -302,7 +330,7 @@ public:
void Pan(const RefPtr<InputReceiver>& aTarget,
const ScreenIntPoint& aTouchStart,
const ScreenIntPoint& aTouchEnd,
bool aKeepFingerDown = false,
PanOptions aOptions = PanOptions::None,
nsTArray<uint32_t>* aAllowedTouchBehaviors = nullptr,
nsEventStatus (*aOutEventStatuses)[4] = nullptr,
uint64_t* aOutInputBlockId = nullptr);
@ -314,7 +342,7 @@ public:
*/
template<class InputReceiver>
void Pan(const RefPtr<InputReceiver>& aTarget, int aTouchStartY,
int aTouchEndY, bool aKeepFingerDown = false,
int aTouchEndY, PanOptions aOptions = PanOptions::None,
nsTArray<uint32_t>* aAllowedTouchBehaviors = nullptr,
nsEventStatus (*aOutEventStatuses)[4] = nullptr,
uint64_t* aOutInputBlockId = nullptr);
@ -350,6 +378,8 @@ protected:
RefPtr<MockContentControllerDelayed> mcc;
};
MOZ_MAKE_ENUM_CLASS_BITWISE_OPERATORS(APZCTesterBase::PanOptions)
template<class InputReceiver>
void
APZCTesterBase::Tap(const RefPtr<InputReceiver>& aTarget,
@ -399,7 +429,7 @@ void
APZCTesterBase::Pan(const RefPtr<InputReceiver>& aTarget,
const ScreenIntPoint& aTouchStart,
const ScreenIntPoint& aTouchEnd,
bool aKeepFingerDown,
PanOptions aOptions,
nsTArray<uint32_t>* aAllowedTouchBehaviors,
nsEventStatus (*aOutEventStatuses)[4],
uint64_t* aOutInputBlockId)
@ -410,7 +440,19 @@ APZCTesterBase::Pan(const RefPtr<InputReceiver>& aTarget,
// them.
gfxPrefs::SetAPZTouchStartTolerance(1.0f / 1000.0f);
gfxPrefs::SetAPZTouchMoveTolerance(0.0f);
const int OVERCOME_TOUCH_TOLERANCE = 1;
int overcomeTouchToleranceX = 0;
int overcomeTouchToleranceY = 0;
if (!(aOptions & PanOptions::ExactCoordinates)) {
// Have the direction of the adjustment to overcome the touch tolerance
// match the direction of the entire gesture, otherwise we run into
// trouble such as accidentally activating the axis lock.
if (aTouchStart.x != aTouchEnd.x) {
overcomeTouchToleranceX = 1;
}
if (aTouchStart.y != aTouchEnd.y) {
overcomeTouchToleranceY = 1;
}
}
const TimeDuration TIME_BETWEEN_TOUCH_EVENT = TimeDuration::FromMilliseconds(50);
@ -423,7 +465,8 @@ APZCTesterBase::Pan(const RefPtr<InputReceiver>& aTarget,
// Make sure the move is large enough to not be handled as a tap
nsEventStatus status = TouchDown(aTarget,
ScreenIntPoint(aTouchStart.x, aTouchStart.y + OVERCOME_TOUCH_TOLERANCE),
ScreenIntPoint(aTouchStart.x + overcomeTouchToleranceX,
aTouchStart.y + overcomeTouchToleranceY),
mcc->Time(), aOutInputBlockId);
if (aOutEventStatuses) {
(*aOutEventStatuses)[0] = status;
@ -455,7 +498,7 @@ APZCTesterBase::Pan(const RefPtr<InputReceiver>& aTarget,
mcc->AdvanceBy(TIME_BETWEEN_TOUCH_EVENT);
if (!aKeepFingerDown) {
if (!(aOptions & PanOptions::KeepFingerDown)) {
status = TouchUp(aTarget, aTouchEnd, mcc->Time());
} else {
status = nsEventStatus_eIgnore;
@ -472,13 +515,13 @@ APZCTesterBase::Pan(const RefPtr<InputReceiver>& aTarget,
template<class InputReceiver>
void
APZCTesterBase::Pan(const RefPtr<InputReceiver>& aTarget,
int aTouchStartY, int aTouchEndY, bool aKeepFingerDown,
int aTouchStartY, int aTouchEndY, PanOptions aOptions,
nsTArray<uint32_t>* aAllowedTouchBehaviors,
nsEventStatus (*aOutEventStatuses)[4],
uint64_t* aOutInputBlockId)
{
Pan(aTarget, ScreenIntPoint(10, aTouchStartY), ScreenIntPoint(10, aTouchEndY),
aKeepFingerDown, aAllowedTouchBehaviors, aOutEventStatuses, aOutInputBlockId);
aOptions, aAllowedTouchBehaviors, aOutEventStatuses, aOutInputBlockId);
}
template<class InputReceiver>
@ -491,7 +534,7 @@ APZCTesterBase::PanAndCheckStatus(const RefPtr<InputReceiver>& aTarget,
uint64_t* aOutInputBlockId)
{
nsEventStatus statuses[4]; // down, move, move, up
Pan(aTarget, aTouchStartY, aTouchEndY, false, aAllowedTouchBehaviors, &statuses, aOutInputBlockId);
Pan(aTarget, aTouchStartY, aTouchEndY, PanOptions::None, aAllowedTouchBehaviors, &statuses, aOutInputBlockId);
EXPECT_EQ(nsEventStatus_eConsumeDoDefault, statuses[0]);
@ -510,7 +553,7 @@ APZCTesterBase::ApzcPanNoFling(const RefPtr<TestAsyncPanZoomController>& aApzc,
int aTouchStartY, int aTouchEndY,
uint64_t* aOutInputBlockId)
{
Pan(aApzc, aTouchStartY, aTouchEndY, false, nullptr, nullptr, aOutInputBlockId);
Pan(aApzc, aTouchStartY, aTouchEndY, PanOptions::None, nullptr, nullptr, aOutInputBlockId);
aApzc->CancelAnimation();
}

View File

@ -13,6 +13,7 @@
*/
#include "APZTestCommon.h"
#include "gfxPrefs.h"
/* The InputReceiver template parameter used in the helper functions below needs
* to be a class that implements functions with the signatures:

View File

@ -6,6 +6,7 @@
#include "APZCBasicTester.h"
#include "APZTestCommon.h"
#include "gfxPrefs.h"
#include "InputUtils.h"
TEST_F(APZCBasicTester, Overzoom) {
@ -344,7 +345,7 @@ TEST_F(APZCBasicTester, OverScrollPanningAbort) {
// the pan does not end.
int touchStart = 500;
int touchEnd = 10;
Pan(apzc, touchStart, touchEnd, true); // keep finger down
Pan(apzc, touchStart, touchEnd, PanOptions::KeepFingerDown);
EXPECT_TRUE(apzc->IsOverscrolled());
// Check that calling CancelAnimation() while the user is still panning

View File

@ -6,6 +6,7 @@
#include "APZCBasicTester.h"
#include "APZTestCommon.h"
#include "gfxPrefs.h"
class APZCGestureDetectorTester : public APZCBasicTester {
public:
@ -235,7 +236,7 @@ protected:
uint64_t blockId = 0;
// Start the fling down.
Pan(apzc, touchStart, touchEnd, false, nullptr, nullptr, &blockId);
Pan(apzc, touchStart, touchEnd, PanOptions::None, nullptr, nullptr, &blockId);
apzc->ConfirmTarget(blockId);
apzc->ContentReceivedInputBlock(blockId, false);

View File

@ -6,6 +6,7 @@
#include "APZCTreeManagerTester.h"
#include "APZTestCommon.h"
#include "gfxPrefs.h"
#include "InputUtils.h"
class APZHitTestingTester : public APZCTreeManagerTester {

View File

@ -126,6 +126,18 @@ protected:
EXPECT_LE(childVelocityAfterFling2,
childVelocityAfterFling1 * kAcceleration * kAcceleration / 4);
}
void TestCrossApzcAxisLock() {
SCOPED_GFX_PREF(APZAxisLockMode, int32_t, 1);
CreateScrollHandoffLayerTree1();
RefPtr<TestAsyncPanZoomController> childApzc = ApzcOf(layers[1]);
Pan(childApzc, ScreenIntPoint(10, 60), ScreenIntPoint(15, 90),
PanOptions::KeepFingerDown | PanOptions::ExactCoordinates);
childApzc->AssertAxisLocked(ScrollDirection::VERTICAL);
}
};
// Here we test that if the processing of a touch block is deferred while we
@ -217,7 +229,7 @@ TEST_F(APZScrollHandoffTester, StuckInOverscroll_Bug1073250) {
TestAsyncPanZoomController* child = ApzcOf(layers[1]);
// Pan, causing the parent APZC to overscroll.
Pan(manager, 10, 40, true /* keep finger down */);
Pan(manager, 10, 40, PanOptions::KeepFingerDown);
EXPECT_FALSE(child->IsOverscrolled());
EXPECT_TRUE(rootApzc->IsOverscrolled());
@ -255,7 +267,7 @@ TEST_F(APZScrollHandoffTester, StuckInOverscroll_Bug1231228) {
TestAsyncPanZoomController* child = ApzcOf(layers[1]);
// Pan, causing the parent APZC to overscroll.
Pan(manager, 60, 90, true /* keep finger down */);
Pan(manager, 60, 90, PanOptions::KeepFingerDown);
EXPECT_FALSE(child->IsOverscrolled());
EXPECT_TRUE(rootApzc->IsOverscrolled());
@ -289,7 +301,7 @@ TEST_F(APZScrollHandoffTester, StuckInOverscroll_Bug1240202a) {
TestAsyncPanZoomController* child = ApzcOf(layers[1]);
// Pan, causing the parent APZC to overscroll.
Pan(manager, 60, 90, true /* keep finger down */);
Pan(manager, 60, 90, PanOptions::KeepFingerDown);
EXPECT_FALSE(child->IsOverscrolled());
EXPECT_TRUE(rootApzc->IsOverscrolled());
@ -322,7 +334,7 @@ TEST_F(APZScrollHandoffTester, StuckInOverscroll_Bug1240202b) {
TestAsyncPanZoomController* child = ApzcOf(layers[1]);
// Pan, causing the parent APZC to overscroll.
Pan(manager, 60, 90, true /* keep finger down */);
Pan(manager, 60, 90, PanOptions::KeepFingerDown);
EXPECT_FALSE(child->IsOverscrolled());
EXPECT_TRUE(rootApzc->IsOverscrolled());
@ -519,3 +531,13 @@ TEST_F(APZScrollHandoffTester, ImmediateHandoffDisallowed_Fling) {
// Verify that the parent scrolled from the fling.
EXPECT_GT(parentApzc->GetFrameMetrics().GetScrollOffset().y, 10);
}
TEST_F(APZScrollHandoffTester, CrossApzcAxisLock_NoTouchAction) {
SCOPED_GFX_PREF(TouchActionEnabled, bool, false);
TestCrossApzcAxisLock();
}
TEST_F(APZScrollHandoffTester, CrossApzcAxisLock_TouchAction) {
SCOPED_GFX_PREF(TouchActionEnabled, bool, true);
TestCrossApzcAxisLock();
}

View File

@ -6,6 +6,7 @@
#include "APZCTreeManagerTester.h"
#include "APZTestCommon.h"
#include "gfxPrefs.h"
#include "InputUtils.h"
class APZCSnappingTester : public APZCTreeManagerTester

View File

@ -6,6 +6,7 @@
#include "WebRenderBorderLayer.h"
#include "WebRenderLayersLogging.h"
#include "gfxPrefs.h"
#include "mozilla/gfx/Rect.h"
#include "mozilla/webrender/webrender_ffi.h"
#include "mozilla/layers/WebRenderBridgeChild.h"

View File

@ -6,6 +6,7 @@
#include "WebRenderCanvasLayer.h"
#include "AsyncCanvasRenderer.h"
#include "gfxPrefs.h"
#include "gfxUtils.h"
#include "GLContext.h"
#include "GLScreenBuffer.h"

View File

@ -6,6 +6,7 @@
#include "WebRenderColorLayer.h"
#include "WebRenderLayersLogging.h"
#include "gfxPrefs.h"
#include "mozilla/webrender/webrender_ffi.h"
#include "mozilla/webrender/WebRenderTypes.h"
#include "mozilla/layers/WebRenderBridgeChild.h"

View File

@ -6,6 +6,7 @@
#include "WebRenderContainerLayer.h"
#include <inttypes.h>
#include "gfxPrefs.h"
#include "mozilla/layers/WebRenderBridgeChild.h"
#include "mozilla/webrender/WebRenderTypes.h"
#include "WebRenderLayersLogging.h"

View File

@ -6,6 +6,7 @@
#include "WebRenderImageLayer.h"
#include "WebRenderLayersLogging.h"
#include "gfxPrefs.h"
#include "mozilla/layers/ImageClient.h"
#include "mozilla/layers/TextureClientRecycleAllocator.h"
#include "mozilla/layers/TextureWrapperImage.h"

View File

@ -6,6 +6,7 @@
#include "WebRenderLayerManager.h"
#include "apz/src/AsyncPanZoomController.h"
#include "gfxPrefs.h"
#include "WebRenderLayersLogging.h"
#include "mozilla/dom/TabChild.h"
#include "mozilla/layers/APZCTreeManager.h"

View File

@ -9,6 +9,7 @@
#include "mozilla/ArrayUtils.h"
#include "mozilla/layers/WebRenderBridgeChild.h"
#include "mozilla/webrender/WebRenderTypes.h"
#include "gfxPrefs.h"
#include "gfxUtils.h"
namespace mozilla {

View File

@ -4,7 +4,9 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "WebRenderTextLayer.h"
#include "WebRenderLayersLogging.h"
#include "gfxPrefs.h"
#include "mozilla/webrender/WebRenderTypes.h"
#include "mozilla/layers/WebRenderBridgeChild.h"

View File

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

View File

@ -199,12 +199,6 @@ VRControllerHost::GetPose()
return mPose;
}
void
VRControllerHost::SetHand(dom::GamepadHand aHand)
{
mControllerInfo.mHand = aHand;
}
dom::GamepadHand
VRControllerHost::GetHand()
{

View File

@ -95,7 +95,6 @@ public:
uint64_t GetButtonPressed();
void SetPose(const dom::GamepadPoseState& aPose);
const dom::GamepadPoseState& GetPose();
virtual void SetHand(dom::GamepadHand aHand);
dom::GamepadHand GetHand();
protected:

View File

@ -832,13 +832,16 @@ VRDisplayOculus::NotifyVSync()
mDisplayInfo.mIsConnected = (ovr == ovrSuccess && sessionStatus.HmdPresent);
}
VRControllerOculus::VRControllerOculus()
VRControllerOculus::VRControllerOculus(dom::GamepadHand aHand)
: VRControllerHost(VRDeviceType::Oculus)
{
MOZ_COUNT_CTOR_INHERITED(VRControllerOculus, VRControllerHost);
mControllerInfo.mControllerName.AssignLiteral("Oculus Touch");
mControllerInfo.mControllerName.AssignLiteral("Oculus Touch (");
mControllerInfo.mControllerName.AppendPrintf("%s%s",
GamepadHandValues::strings[uint32_t(aHand)].value,
")");
mControllerInfo.mMappingType = GamepadMappingType::_empty;
mControllerInfo.mHand = GamepadHand::_empty;
mControllerInfo.mHand = aHand;
mControllerInfo.mNumButtons = kNumOculusButton;
mControllerInfo.mNumAxes = static_cast<uint32_t>(
OculusControllerAxisType::NumVRControllerAxisType);;
@ -856,16 +859,6 @@ VRControllerOculus::SetAxisMove(uint32_t aAxis, float aValue)
mAxisMove[aAxis] = aValue;
}
void
VRControllerOculus::SetHand(dom::GamepadHand aHand)
{
VRControllerHost::SetHand(aHand);
mControllerInfo.mControllerName.AssignLiteral("Oculus Touch (");
mControllerInfo.mControllerName.AppendPrintf("%s%s",
GamepadHandValues::strings[uint32_t(aHand)].value,
")");
}
VRControllerOculus::~VRControllerOculus()
{
MOZ_COUNT_DTOR_INHERITED(VRControllerOculus, VRControllerHost);
@ -979,19 +972,55 @@ VRSystemManagerOculus::HandleInput()
for (uint32_t i = 0; i < mOculusController.Length(); ++i) {
controller = mOculusController[i];
HandleButtonPress(controller->GetIndex(), inputState.Buttons);
HandleButtonPress(i, inputState.Buttons);
axis = static_cast<uint32_t>(OculusControllerAxisType::IndexTrigger);
HandleAxisMove(controller->GetIndex(), axis, inputState.IndexTrigger[i]);
HandleAxisMove(i, axis, inputState.IndexTrigger[i]);
axis = static_cast<uint32_t>(OculusControllerAxisType::HandTrigger);
HandleAxisMove(controller->GetIndex(), axis, inputState.HandTrigger[i]);
HandleAxisMove(i, axis, inputState.HandTrigger[i]);
axis = static_cast<uint32_t>(OculusControllerAxisType::ThumbstickXAxis);
HandleAxisMove(controller->GetIndex(), axis, inputState.Thumbstick[i].x);
HandleAxisMove(i, axis, inputState.Thumbstick[i].x);
axis = static_cast<uint32_t>(OculusControllerAxisType::ThumbstickYAxis);
HandleAxisMove(controller->GetIndex(), axis, -inputState.Thumbstick[i].y);
HandleAxisMove(i, axis, -inputState.Thumbstick[i].y);
// Start to process pose
ovrTrackingState state = ovr_GetTrackingState(mSession, 0.0, false);
ovrPoseStatef& pose(state.HandPoses[i]);
GamepadPoseState poseState;
if (state.HandStatusFlags[i] & ovrStatus_OrientationTracked) {
poseState.flags |= GamepadCapabilityFlags::Cap_Orientation;
poseState.orientation[0] = pose.ThePose.Orientation.x;
poseState.orientation[1] = pose.ThePose.Orientation.y;
poseState.orientation[2] = pose.ThePose.Orientation.z;
poseState.orientation[3] = pose.ThePose.Orientation.w;
poseState.angularVelocity[0] = pose.AngularVelocity.x;
poseState.angularVelocity[1] = pose.AngularVelocity.y;
poseState.angularVelocity[2] = pose.AngularVelocity.z;
poseState.flags |= GamepadCapabilityFlags::Cap_AngularAcceleration;
poseState.angularAcceleration[0] = pose.AngularAcceleration.x;
poseState.angularAcceleration[1] = pose.AngularAcceleration.y;
poseState.angularAcceleration[2] = pose.AngularAcceleration.z;
}
if (state.HandStatusFlags[i] & ovrStatus_PositionTracked) {
poseState.flags |= GamepadCapabilityFlags::Cap_Position;
poseState.position[0] = pose.ThePose.Position.x;
poseState.position[1] = pose.ThePose.Position.y;
poseState.position[2] = pose.ThePose.Position.z;
poseState.linearVelocity[0] = pose.LinearVelocity.x;
poseState.linearVelocity[1] = pose.LinearVelocity.y;
poseState.linearVelocity[2] = pose.LinearVelocity.z;
poseState.flags |= GamepadCapabilityFlags::Cap_LinearAcceleration;
poseState.linearAcceleration[0] = pose.LinearAcceleration.x;
poseState.linearAcceleration[1] = pose.LinearAcceleration.y;
poseState.linearAcceleration[2] = pose.LinearAcceleration.z;
}
HandlePoseTracking(i, poseState, controller);
}
}
@ -1051,7 +1080,10 @@ VRSystemManagerOculus::HandlePoseTracking(uint32_t aControllerIdx,
const GamepadPoseState& aPose,
VRControllerHost* aController)
{
// TODO: Bug 1305891
if (aPose != aController->GetPose()) {
aController->SetPose(aPose);
NewPoseState(aControllerIdx, aPose);
}
}
void
@ -1096,7 +1128,7 @@ VRSystemManagerOculus::ScanForControllers()
if (newControllerCount != mControllerCount) {
// controller count is changed, removing the existing gamepads first.
for (uint32_t i = 0; i < mOculusController.Length(); ++i) {
RemoveGamepad(mOculusController[i]->GetIndex());
RemoveGamepad(i);
}
mControllerCount = 0;
@ -1114,9 +1146,8 @@ VRSystemManagerOculus::ScanForControllers()
hand = GamepadHand::Right;
break;
}
RefPtr<VRControllerOculus> oculusController = new VRControllerOculus();
RefPtr<VRControllerOculus> oculusController = new VRControllerOculus(hand);
oculusController->SetIndex(mControllerCount);
oculusController->SetHand(hand);
mOculusController.AppendElement(oculusController);
// Not already present, add it.

View File

@ -97,10 +97,9 @@ protected:
class VRControllerOculus : public VRControllerHost
{
public:
explicit VRControllerOculus();
explicit VRControllerOculus(dom::GamepadHand aHand);
float GetAxisMove(uint32_t aAxis);
void SetAxisMove(uint32_t aAxis, float aValue);
virtual void SetHand(dom::GamepadHand aHand) override;
protected:
virtual ~VRControllerOculus();

View File

@ -420,13 +420,13 @@ VRDisplayOpenVR::NotifyVSync()
PollEvents();
}
VRControllerOpenVR::VRControllerOpenVR()
VRControllerOpenVR::VRControllerOpenVR(dom::GamepadHand aHand)
: VRControllerHost(VRDeviceType::OpenVR)
{
MOZ_COUNT_CTOR_INHERITED(VRControllerOpenVR, VRControllerHost);
mControllerInfo.mControllerName.AssignLiteral("OpenVR Gamepad");
mControllerInfo.mMappingType = GamepadMappingType::_empty;
mControllerInfo.mHand = GamepadHand::_empty;
mControllerInfo.mHand = aHand;
mControllerInfo.mNumButtons = gNumOpenVRButtonMask;
mControllerInfo.mNumAxes = gNumOpenVRAxis;
}
@ -733,10 +733,9 @@ VRSystemManagerOpenVR::ScanForControllers()
hand = GamepadHand::Right;
break;
}
RefPtr<VRControllerOpenVR> openVRController = new VRControllerOpenVR();
RefPtr<VRControllerOpenVR> openVRController = new VRControllerOpenVR(hand);
openVRController->SetIndex(mControllerCount);
openVRController->SetTrackedIndex(trackedDevice);
openVRController->SetHand(hand);
mOpenVRController.AppendElement(openVRController);
// Not already present, add it.

View File

@ -72,7 +72,7 @@ protected:
class VRControllerOpenVR : public VRControllerHost
{
public:
explicit VRControllerOpenVR();
explicit VRControllerOpenVR(dom::GamepadHand aHand);
void SetTrackedIndex(uint32_t aTrackedIndex);
uint32_t GetTrackedIndex();

View File

@ -7,6 +7,7 @@
#include <cstdlib>
#include "gfxPrefs.h"
#include "nsDirectoryServiceDefs.h"
#include "nsIDirectoryService.h"
#include "nsIFile.h"

View File

@ -39,18 +39,18 @@ load 648206-1.html
load 705875.html
load 720305-1.html
load 723465.html
asserts-if(stylo,1) load 732870.html # bug 1324683
asserts-if(stylo,1) load 751995.html # bug 1324683
asserts-if(stylo,1) load 761831.html # bug 1324683
asserts(0-1) asserts-if(stylo,10) load 752038.html # We may hit bug 645229 here. # bug 1324683
asserts(1) asserts-if(stylo,3) load 753162.html # We hit bug 675518 or bug 680086 here. # bug 1324683
asserts-if(stylo,1) load 754311.html # bug 1324683
asserts(0-1) asserts-if(stylo,2) load 786142.html # We may hit bug 645229 here. # bug 1324683
load 732870.html
load 751995.html
load 761831.html
asserts(0-1) load 752038.html # We may hit bug 645229 here.
asserts(1) load 753162.html # We hit bug 675518 or bug 680086 here.
load 754311.html
asserts(0-1) load 786142.html # We may hit bug 645229 here.
load 797583.html
load 806751.html
load 833856.html
asserts-if(stylo,1) load 851418.html # bug 1324683
load 851418.html
load 854139.html
load 854604.html
pref(dom.use_xbl_scopes_for_remote_xul,true) load 898939.html
asserts-if(stylo,1) pref(security.fileuri.strict_origin_policy,false) load 938297.html # bug 1324683
pref(security.fileuri.strict_origin_policy,false) load 938297.html

View File

@ -9,13 +9,13 @@ load 89358-1.html
load 90205-1.html
skip-if(cocoaWidget&&browserIsRemote) load 99776-1.html # Bug 849747
load 118931-1.html
asserts-if(stylo,1) load 121533-1.html # bug 1324683
load 121533-1.html
load 123049-1.html
load 123946-1.html
load 128855-1.html
load 133410-1.html
asserts-if(stylo,1) load 143862-1a.html # bug 1324683
asserts-if(stylo,1) load 143862-1b.html # bug 1324683
load 143862-1a.html
load 143862-1b.html
load 143862-1c.html
load 143862-2.html
load 147320-1.html
@ -277,7 +277,7 @@ skip-if(stylo) load 455623-1.html # bug 1323652
load 457362-1.xhtml
load 457514.html
asserts(0-1) load 460389-1.html # bug 780985
asserts-if(stylo,1) load 462392.html # bug 1324683
load 462392.html
load 466763-1.html
load 467881-1.html
load 468491-1.html

View File

@ -55,15 +55,15 @@ load 639733.xhtml
load 669767.html
load 682684.xhtml
load 865602.html
asserts-if(stylo,6) load 893332-1.html # bug 1324671
asserts-if(stylo,1) load 944198.html # bug 1324671
load 893332-1.html
load 944198.html
skip-if(stylo) load 949891.xhtml # bug 1323693
load 959311.html
load 960277-2.html
load 997709-1.html
load 1102791.html
skip-if(stylo) load 1140216.html # bug 1323693
asserts-if(stylo,9) load 1182414.html # bug 1324687
load 1182414.html
load 1212688.html
load 1228670.xhtml
asserts-if(stylo,4-5) load 1279354.html # bug 1324671
load 1279354.html

View File

@ -1,7 +1,7 @@
load 25888-1.html
load 25888-2.html
load 37757-1.html
asserts-if(stylo,1) load 225868-1.html # bug 1324683
load 225868-1.html
load 255468.xhtml
load 255982-1.html
load 255982-2.html
@ -365,7 +365,7 @@ load 499138.html
asserts-if(stylo,1) load 499857-1.html # bug 1324665
load 499862-1.html
asserts(0-3) load 499885-1.xhtml # Bug 1220265
asserts-if(stylo,8) load 501535-1.html # bug 1324671
load 501535-1.html
load 503961-1.xhtml
load 503961-2.html
load 505912-1.html
@ -537,7 +537,7 @@ asserts-if(Android,2) asserts-if(Android&&asyncPan,4) asserts-if(!Android,4) ass
load 847211-1.html
load 849603.html
asserts(0-12) load 850931.html # bug 569193
asserts-if(stylo,8) load 851396-1.html # bug 1324671
load 851396-1.html
load 854263-1.html
load 862185.html
asserts-if(stylo,1) load 862947-1.html # bug 1324704
@ -626,11 +626,11 @@ load text-overflow-bug666751-2.html
load text-overflow-bug670564.xhtml
load text-overflow-bug671796.xhtml
load text-overflow-bug713610.html
asserts-if(stylo,5) load text-overflow-form-elements.html # bug 1324671
asserts-if(stylo,1) load text-overflow-iframe.html # bug 1324671
load text-overflow-form-elements.html
load text-overflow-iframe.html
asserts-if(Android,2-4) asserts-if(!Android,4) asserts-if(stylo,0) load 1225005.html # bug 682647 and bug 448083
load 1233191.html
asserts-if(stylo,1-16) load 1271765.html # bug 1324684
asserts-if(stylo,0-15) load 1271765.html # bug 1324684
asserts(2) load 1272983-1.html # bug 1324654 # bug 586628
asserts(2) load 1272983-2.html # bug 1324654 # bug 586628
load 1275059.html

View File

@ -8,6 +8,7 @@
#include "nsBulletFrame.h"
#include "gfx2DGlue.h"
#include "gfxPrefs.h"
#include "gfxUtils.h"
#include "mozilla/gfx/2D.h"
#include "mozilla/gfx/PathHelpers.h"

View File

@ -9,6 +9,7 @@
#include "nsTextFrame.h"
#include "gfx2DGlue.h"
#include "gfxPrefs.h"
#include "gfxUtils.h"
#include "mozilla/Attributes.h"
#include "mozilla/DebugOnly.h"

View File

@ -201,8 +201,8 @@ fails == 210094-1b.html 210094-1b.html
fails == 210094-1c.html 210094-1c.html
fails == 210876-1.html 210876-1.html
== 211931-1.html 211931-1.html
fails asserts-if(stylo,1) == 212563-1.html 212563-1.html # bug 1324683
asserts-if(stylo,1) == 212563-2.html 212563-2.html # bug 1324683
fails == 212563-1.html 212563-1.html
== 212563-2.html 212563-2.html
fails == 213834-1.html 213834-1.html
fails == 214077-1a.html 214077-1a.html
fails == 214077-1b.html 214077-1b.html
@ -1160,7 +1160,7 @@ fails == 444015-1.html 444015-1.html
fails == 444928-1.html 444928-1.html
fails == 444928-2.html 444928-2.html
fails == 444928-3.html 444928-3.html
fails random asserts-if(stylo,2) == 445004-1.html 445004-1.html # bug 1324683
fails random == 445004-1.html 445004-1.html
== 445142-1a.html 445142-1a.html
== 445142-1b.html 445142-1b.html
== 445142-1c.html 445142-1c.html
@ -1176,11 +1176,11 @@ fails-if(usesRepeatResampling) fails-if(Android) == 446100-1g.html 446100-1g.htm
== 446100-1h.html 446100-1h.html
fails == 447749-1.html 447749-1.html
fuzzy(127,2) == 448193.html 448193.html
fails asserts-if(stylo,8) == 449149-1a.html 449149-1a.html # bug 1324671
fails asserts-if(stylo,8) == 449149-1b.html 449149-1b.html # bug 1324671
fails == 449149-1a.html 449149-1a.html
fails == 449149-1b.html 449149-1b.html
# Retry the above with XBL scopes
fails test-pref(dom.use_xbl_scopes_for_remote_xul,true) asserts-if(stylo,8) == 449149-1a.html 449149-1a.html # bug 1324671
fails test-pref(dom.use_xbl_scopes_for_remote_xul,true) asserts-if(stylo,8) == 449149-1b.html 449149-1b.html # bug 1324671
fails test-pref(dom.use_xbl_scopes_for_remote_xul,true) == 449149-1a.html 449149-1a.html
fails test-pref(dom.use_xbl_scopes_for_remote_xul,true) == 449149-1b.html 449149-1b.html
== 449149-2.html 449149-2.html
== 449171-1.html 449171-1.html
fails == 449362-1.html 449362-1.html
@ -1327,8 +1327,8 @@ fails == 482592-1a.xhtml 482592-1a.xhtml
fails == 482592-1b.xhtml 482592-1b.xhtml
== 482659-1a.html 482659-1a.html
== 482659-1b.html 482659-1b.html
asserts-if(stylo,1) == 482659-1c.html 482659-1c.html # bug 1324683
asserts-if(stylo,1) == 482659-1d.html 482659-1d.html # bug 1324683
== 482659-1c.html 482659-1c.html
== 482659-1d.html 482659-1d.html
== 483565.xul 483565.xul
asserts-if(stylo,4) == 484256-1.html 484256-1.html # bug 1324661
asserts-if(stylo,4) == 484256-2.html 484256-2.html # bug 1324661
@ -1362,7 +1362,7 @@ pref(browser.display.focus_ring_width,1) == 491180-2.html 491180-2.html
== 491323-1.xul 491323-1.xul
== 492239-1.xul 492239-1.xul
== 492661-1.html 492661-1.html
asserts-if(stylo,1) == 493968-1.html 493968-1.html # bug 1324702
== 493968-1.html 493968-1.html
== 494667-1.html 494667-1.html
== 494667-2.html 494667-2.html
== 495274-1.html 495274-1.html
@ -1403,7 +1403,7 @@ fails == 502795-1.html 502795-1.html
# Reftest for bug 503531 marked as failing; should be re-enabled when
# bug 607548 gets resolved.
# needs-focus fails == 503531-1.html 503531-1.html
asserts-if(stylo,1) == 504032-1.html 504032-1.html # bug 1324702
== 504032-1.html 504032-1.html
== 505743-1.html 505743-1.html
fails == 506481-1.html 506481-1.html
fails == 507187-1.html 507187-1.html
@ -1767,7 +1767,7 @@ fails == 827799-1.html 827799-1.html
== 841192-1.html 841192-1.html
fails == 844178.html 844178.html
== 846144-1.html 846144-1.html
asserts-if(stylo,1) == 847850-1.html 847850-1.html # bug 1324671
== 847850-1.html 847850-1.html
fails == 848421-1.html 848421-1.html
fails == 849407-1.html 849407-1.html
== 849996-1.html 849996-1.html
@ -1808,7 +1808,7 @@ fails == 960277-1.html 960277-1.html
== 961887-1.html 961887-1.html
== 961887-2.html 961887-2.html
== 961887-3.html 961887-3.html
fails asserts-if(stylo,1) == 966992-1.html 966992-1.html # bug 1324671
fails == 966992-1.html 966992-1.html
fails == 966510-1.html 966510-1.html
fails == 966510-2.html 966510-2.html
fuzzy-if(skiaContent,1,123) == 978911-1.svg 978911-1.svg

View File

@ -11,19 +11,19 @@
# == placeholder-simple.html placeholder-simple.html
# needs-focus == placeholder-focus.html placeholder-focus.html
fails asserts-if(stylo,2) needs-focus == placeholder-blur.html placeholder-blur.html # bug 1324671
fails asserts-if(stylo,2) == placeholder-value.html placeholder-value.html # bug 1324671
fails needs-focus == placeholder-blur.html placeholder-blur.html
fails == placeholder-value.html placeholder-value.html
fails == placeholder-empty-string.html placeholder-empty-string.html
fails == placeholder-add.html placeholder-add.html
fails asserts-if(stylo,2) == placeholder-removal.html placeholder-removal.html # bug 1324671
fails asserts-if(stylo,2) == placeholder-value-set.html placeholder-value-set.html # bug 1324671
fails asserts-if(stylo,2) == placeholder-value-unset.html placeholder-value-unset.html # bug 1324671
fails asserts-if(stylo,2) == placeholder-value-reset.html placeholder-value-reset.html # bug 1324671
fails asserts-if(stylo,2) == placeholder-type-change-1.html placeholder-type-change-1.html # bug 1324671
fails asserts-if(stylo,2) == placeholder-type-change-2.html placeholder-type-change-2.html # bug 1324671
fails asserts-if(stylo,1) == placeholdershown.html placeholdershown.html # bug 1324671
fails asserts-if(stylo,2) == css-display.html css-display.html # bug 1324671
fails == placeholder-removal.html placeholder-removal.html
fails == placeholder-value-set.html placeholder-value-set.html
fails == placeholder-value-unset.html placeholder-value-unset.html
fails == placeholder-value-reset.html placeholder-value-reset.html
fails == placeholder-type-change-1.html placeholder-type-change-1.html
fails == placeholder-type-change-2.html placeholder-type-change-2.html
fails == placeholdershown.html placeholdershown.html
fails == css-display.html css-display.html
# We can't check except by verifying that the output is different.
# Same reasons as focus issues explained above.
fails asserts-if(stylo,2) == css-opacity.html css-opacity.html # bug 1324671
fails asserts-if(stylo,2) == css-text-align.html css-text-align.html # bug 1324671
fails == css-opacity.html css-opacity.html
fails == css-text-align.html css-text-align.html

View File

@ -2,7 +2,7 @@
include input/reftest-stylo.list
include textarea/reftest-stylo.list
fails asserts-if(stylo,4) == css-restrictions.html css-restrictions.html # bug 1324671
fails asserts-if(stylo,4) == css-simple-styling.html css-simple-styling.html # bug 1324671
fails == css-restrictions.html css-restrictions.html
fails == css-simple-styling.html css-simple-styling.html
# == css-background.html css-background.html
fails asserts-if(stylo,2) == ignore-pseudo-class.html ignore-pseudo-class.html # bug 1324671
fails == ignore-pseudo-class.html ignore-pseudo-class.html

View File

@ -11,17 +11,17 @@
# == placeholder-simple.html placeholder-simple.html
# needs-focus == placeholder-focus.html placeholder-focus.html
fails asserts-if(stylo,2) needs-focus == placeholder-blur.html placeholder-blur.html # bug 1324671
fails asserts-if(stylo,2) == placeholder-value.html placeholder-value.html # bug 1324671
fails needs-focus == placeholder-blur.html placeholder-blur.html
fails == placeholder-value.html placeholder-value.html
fails == placeholder-empty-string.html placeholder-empty-string.html
fails == placeholder-add.html placeholder-add.html
fails asserts-if(stylo,2) == placeholder-removal.html placeholder-removal.html # bug 1324671
fails asserts-if(stylo,2) == placeholder-value-set.html placeholder-value-set.html # bug 1324671
fails asserts-if(stylo,2) == placeholder-value-unset.html placeholder-value-unset.html # bug 1324671
fails asserts-if(stylo,2) == placeholder-value-reset.html placeholder-value-reset.html # bug 1324671
fails asserts-if(stylo,1) == placeholdershown.html placeholdershown.html # bug 1324671
fails == placeholder-removal.html placeholder-removal.html
fails == placeholder-value-set.html placeholder-value-set.html
fails == placeholder-value-unset.html placeholder-value-unset.html
fails == placeholder-value-reset.html placeholder-value-reset.html
fails == placeholdershown.html placeholdershown.html
# == css-resize.html css-resize.html
fails asserts-if(stylo,2) == css-display.html css-display.html # bug 1324671
fails == css-display.html css-display.html
# We can't check except by verifying that the output is different.
# Same reasons as focus issues explained above.
fails asserts-if(stylo,2) == css-opacity.html css-opacity.html # bug 1324671
fails == css-opacity.html css-opacity.html

View File

@ -39,4 +39,4 @@ fails == disabled-6.html disabled-6.html
# == width-auto-size-rtl.html width-auto-size-rtl.html
# == width-exact-fit-rtl.html width-exact-fit-rtl.html
fails == display-grid-flex-columnset.html display-grid-flex-columnset.html
asserts-if(stylo,1) == 1317351.html 1317351.html # bug 1324671
== 1317351.html 1317351.html

View File

@ -1,15 +1,15 @@
# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
# Simple test. Should fail on platforms where input type color isn't activated
# yet. The missing platform is Android (bug 875750).
fails asserts-if(stylo,4) == input-color-1.html input-color-1.html # bug 1324671
fails == input-color-1.html input-color-1.html
default-preferences pref(dom.forms.color,true)
# Despite the "default-preferences" line above, Android is still
# excluded from some style in forms.css, which makes the following tests fail.
fails asserts-if(stylo,16) == margin-padding-1.html margin-padding-1.html # bug 1324671
fails asserts-if(stylo,1) == block-invalidate-1.html block-invalidate-1.html # bug 1324671
fails asserts-if(stylo,1) == block-invalidate-2.html block-invalidate-2.html # bug 1324671
fails asserts-if(stylo,14) == transformations-1.html transformations-1.html # bug 1324671
fails asserts-if(stylo,1) == custom-style-1.html custom-style-1.html # bug 1324671
fails asserts-if(stylo,1) == custom-style-2.html custom-style-2.html # bug 1324671
fails == margin-padding-1.html margin-padding-1.html
fails == block-invalidate-1.html block-invalidate-1.html
fails == block-invalidate-2.html block-invalidate-2.html
fails == transformations-1.html transformations-1.html
fails == custom-style-1.html custom-style-1.html
fails == custom-style-2.html custom-style-2.html

View File

@ -9,28 +9,28 @@
# ::value (bug 648643), depending of the ::value behaviour (it could change the
# caret colour and the text colour or just the text colour).
fails asserts-if(stylo,1) == placeholder-1-text.html placeholder-1-text.html # bug 1324671
fails asserts-if(stylo,1) == placeholder-1-password.html placeholder-1-password.html # bug 1324671
fails asserts-if(stylo,1) == placeholder-1-textarea.html placeholder-1-textarea.html # bug 1324671
fails == placeholder-1-text.html placeholder-1-text.html
fails == placeholder-1-password.html placeholder-1-password.html
fails == placeholder-1-textarea.html placeholder-1-textarea.html
fails == placeholder-2.html placeholder-2.html
fails == placeholder-2-textarea.html placeholder-2-textarea.html
fails asserts-if(stylo,1) == placeholder-3.html placeholder-3.html # bug 1324671
fails asserts-if(stylo,1) == placeholder-4.html placeholder-4.html # bug 1324671
fails asserts-if(stylo,1) == placeholder-5.html placeholder-5.html # bug 1324671
fails asserts-if(stylo,1) == placeholder-6.html placeholder-6.html # bug 1324671
fails asserts-if(stylo,1) == placeholder-6-textarea.html placeholder-6-textarea.html # bug 1324671
fails == placeholder-3.html placeholder-3.html
fails == placeholder-4.html placeholder-4.html
fails == placeholder-5.html placeholder-5.html
fails == placeholder-6.html placeholder-6.html
fails == placeholder-6-textarea.html placeholder-6-textarea.html
# needs-focus == placeholder-7.html placeholder-7.html
# needs-focus == placeholder-8.html placeholder-8.html
# needs-focus == placeholder-9.html placeholder-9.html
fails needs-focus asserts-if(stylo,1) == placeholder-10.html placeholder-10.html # bug 1324671
fails asserts-if(stylo,1) == placeholder-11.html placeholder-11.html # bug 1324671
fails asserts-if(stylo,1) == placeholder-12.html placeholder-12.html # bug 1324671
fails needs-focus == placeholder-10.html placeholder-10.html
fails == placeholder-11.html placeholder-11.html
fails == placeholder-12.html placeholder-12.html
fails == placeholder-13.html placeholder-13.html
fails == placeholder-14.html placeholder-14.html
fails asserts-if(stylo,1) == placeholder-18.html placeholder-18.html # bug 1324671
fails == placeholder-18.html placeholder-18.html
random-if(winWidget) == placeholder-19.xul placeholder-19.xul
# needs-focus == placeholder-20.html placeholder-20.html
# needs-focus == placeholder-21.html placeholder-21.html
fails asserts-if(stylo,1) needs-focus == placeholder-22.html placeholder-22.html # bug 1324671
fails needs-focus == placeholder-22.html placeholder-22.html
# == placeholder-rtl.html placeholder-rtl.html
fails pref(dom.placeholder.show_on_focus,false) asserts-if(stylo,1) needs-focus == placeholder-focus-pref.html placeholder-focus-pref.html # bug 1324671
fails pref(dom.placeholder.show_on_focus,false) needs-focus == placeholder-focus-pref.html placeholder-focus-pref.html

View File

@ -28,7 +28,7 @@
# Tests for block and inline orientation in combination with writing-mode
# == progress-orient-horizontal.html progress-orient-horizontal.html
fails-if(!cocoaWidget||OSX==1010) asserts-if(stylo,1) == progress-orient-vertical.html progress-orient-vertical.html # bug 1324671
fails-if(!cocoaWidget||OSX==1010) == progress-orient-vertical.html progress-orient-vertical.html
# == progress-orient-block.html progress-orient-block.html
# == progress-orient-inline.html progress-orient-inline.html
# == progress-vlr.html progress-vlr.html

View File

@ -33,6 +33,6 @@ fails == themed-widget.html themed-widget.html
== addrange-1.html addrange-1.html
== addrange-2.html addrange-2.html
fails == splitText-normalize.html splitText-normalize.html
fails asserts-if(stylo,13) == modify-range.html modify-range.html # bug 1324683
fails == modify-range.html modify-range.html
fails == dom-mutations.html dom-mutations.html
== trailing-space-1.html trailing-space-1.html

View File

@ -6,7 +6,7 @@ fails HTTP(..) == marker-string.html marker-string.html
# == bidi-simple.html bidi-simple.html
fails == bidi-simple-scrolled.html bidi-simple-scrolled.html
fails == scroll-rounding.html scroll-rounding.html
fuzzy(2,453) fuzzy-if(skiaContent,9,2100) fails-if(gtkWidget) asserts-if(stylo,4) HTTP(..) == anonymous-block.html anonymous-block.html # bug 1324671
fuzzy(2,453) fuzzy-if(skiaContent,9,2100) fails-if(gtkWidget) HTTP(..) == anonymous-block.html anonymous-block.html
fails HTTP(..) == false-marker-overlap.html false-marker-overlap.html
fails HTTP(..) == visibility-hidden.html visibility-hidden.html
# == block-padding.html block-padding.html

View File

@ -69,7 +69,7 @@ fails == ua-style-sheet-size-2.html ua-style-sheet-size-2.html
# == ua-style-sheet-checkbox-radio-1.html ua-style-sheet-checkbox-radio-1.html
# == ua-style-sheet-button-1.html ua-style-sheet-button-1.html
# == ua-style-sheet-button-1.html ua-style-sheet-button-1.html
fails asserts-if(stylo,6) == ua-style-sheet-input-color-1.html ua-style-sheet-input-color-1.html # bug 1324671
fails == ua-style-sheet-input-color-1.html ua-style-sheet-input-color-1.html
# fuzzy-if(gtkWidget,1,15) == ua-style-sheet-input-number-1.html ua-style-sheet-input-number-1.html
# HTTP(..) == 1127488-align-default-horizontal-tb-ltr.html 1127488-align-default-horizontal-tb-ltr.html

View File

@ -8,10 +8,11 @@
* stylesheet
*/
#include "mozilla/css/Declaration.h"
#include "mozilla/ArrayUtils.h"
#include "mozilla/MemoryReporting.h"
#include "mozilla/css/Declaration.h"
#include "mozilla/css/Rule.h"
#include "nsPrintfCString.h"
#include "gfxFontConstants.h"

View File

@ -16,11 +16,12 @@
/* loading of CSS style sheets using the network APIs */
#include "mozilla/css/Loader.h"
#include "mozilla/ArrayUtils.h"
#include "mozilla/LoadInfo.h"
#include "mozilla/MemoryReporting.h"
#include "mozilla/css/Loader.h"
#include "mozilla/StyleSheetInlines.h"
#include "nsIRunnable.h"
#include "nsIUnicharStreamLoader.h"

View File

@ -263,7 +263,7 @@ ServoStyleSet::ResolvePseudoElementStyle(Element* aOriginatingElement,
Element* aPseudoElement)
{
if (aPseudoElement) {
NS_ERROR("stylo: We don't support CSS_PSEUDO_ELEMENT_SUPPORTS_USER_ACTION_STATE yet");
NS_WARNING("stylo: We don't support CSS_PSEUDO_ELEMENT_SUPPORTS_USER_ACTION_STATE yet");
}
// NB: We ignore aParentContext, on the assumption that pseudo element styles

View File

@ -6,10 +6,11 @@
/* Utilities for animation of computed style values */
#include "mozilla/StyleAnimationValue.h"
#include "mozilla/ArrayUtils.h"
#include "mozilla/MathAlgorithms.h"
#include "mozilla/RuleNodeCacheConditions.h"
#include "mozilla/StyleAnimationValue.h"
#include "mozilla/StyleSetHandle.h"
#include "mozilla/StyleSetHandleInlines.h"
#include "mozilla/Tuple.h"

View File

@ -102,7 +102,7 @@ load 861489-1.html
load 862113.html
load 867487.html
load 873222.html
asserts-if(stylo,2) load 880862.html # bug 1324701
asserts-if(stylo,1) load 880862.html # bug 1324701
load 894245-1.html
load 915440.html
load 927734-1.html
@ -168,4 +168,4 @@ HTTP load 1320423-1.html
load 1321357-1.html
load 1328535-1.html
load 1331272.html
asserts-if(stylo,1) HTTP load 1333001-1.html # bug 1324702
HTTP load 1333001-1.html

View File

@ -6,6 +6,8 @@
/* parsing of CSS stylesheets, based on a token stream from the CSS scanner */
#include "nsCSSParser.h"
#include "mozilla/ArrayUtils.h"
#include "mozilla/DebugOnly.h"
#include "mozilla/Maybe.h"
@ -16,7 +18,6 @@
#include <algorithm> // for std::stable_sort
#include <limits> // for std::numeric_limits
#include "nsCSSParser.h"
#include "nsAlgorithm.h"
#include "nsCSSProps.h"
#include "nsCSSKeywords.h"
@ -1677,7 +1678,6 @@ void
CSSParserImpl::ReleaseScanner()
{
mScanner = nullptr;
mIsSVGMode = false;
mReporter = nullptr;
mBaseURI = nullptr;
mSheetURI = nullptr;

View File

@ -8,9 +8,10 @@
* values they accept
*/
#include "nsCSSProps.h"
#include "mozilla/ArrayUtils.h"
#include "nsCSSProps.h"
#include "nsCSSKeywords.h"
#include "nsLayoutUtils.h"
#include "nsStyleConsts.h"

View File

@ -5,9 +5,10 @@
/* atom list for CSS pseudo-elements */
#include "nsCSSPseudoElements.h"
#include "mozilla/ArrayUtils.h"
#include "nsCSSPseudoElements.h"
#include "nsAtomListUtils.h"
#include "nsStaticAtom.h"
#include "nsCSSAnonBoxes.h"

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