зеркало из https://github.com/mozilla/gecko-dev.git
Merge mozilla-central to mozilla-inbound
This commit is contained in:
Коммит
4730023cdb
|
@ -184,7 +184,7 @@ file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|||
}
|
||||
|
||||
// Set the actiontype only if the user is not overriding actions.
|
||||
if (action && this._noActionsKeys.size == 0) {
|
||||
if (action && this._pressedNoActionKeys.size == 0) {
|
||||
this.setAttribute("actiontype", action.type);
|
||||
} else {
|
||||
this.removeAttribute("actiontype");
|
||||
|
@ -1000,14 +1000,22 @@ file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|||
]]></body>
|
||||
</method>
|
||||
|
||||
<field name="_noActionsKeys"><![CDATA[
|
||||
new Set();
|
||||
<field name="_noActionKeys"><![CDATA[
|
||||
[
|
||||
KeyEvent.DOM_VK_ALT,
|
||||
KeyEvent.DOM_VK_SHIFT,
|
||||
KeyEvent.DOM_VK_META,
|
||||
]
|
||||
]]></field>
|
||||
|
||||
<field name="_pressedNoActionKeys"><![CDATA[
|
||||
new Set()
|
||||
]]></field>
|
||||
|
||||
<method name="_clearNoActions">
|
||||
<parameter name="aURL"/>
|
||||
<body><![CDATA[
|
||||
this._noActionsKeys.clear();
|
||||
this._pressedNoActionKeys.clear();
|
||||
this.popup.removeAttribute("noactions");
|
||||
let action = this._parseActionUrl(this._value);
|
||||
if (action)
|
||||
|
@ -1114,24 +1122,22 @@ file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|||
|
||||
<handlers>
|
||||
<handler event="keydown"><![CDATA[
|
||||
if ((event.keyCode === KeyEvent.DOM_VK_ALT ||
|
||||
event.keyCode === KeyEvent.DOM_VK_SHIFT) &&
|
||||
if (this._noActionKeys.includes(event.keyCode) &&
|
||||
this.popup.selectedIndex >= 0 &&
|
||||
!this._noActionsKeys.has(event.keyCode)) {
|
||||
if (this._noActionsKeys.size == 0) {
|
||||
!this._pressedNoActionKeys.has(event.keyCode)) {
|
||||
if (this._pressedNoActionKeys.size == 0) {
|
||||
this.popup.setAttribute("noactions", "true");
|
||||
this.removeAttribute("actiontype");
|
||||
}
|
||||
this._noActionsKeys.add(event.keyCode);
|
||||
this._pressedNoActionKeys.add(event.keyCode);
|
||||
}
|
||||
]]></handler>
|
||||
|
||||
<handler event="keyup"><![CDATA[
|
||||
if ((event.keyCode === KeyEvent.DOM_VK_ALT ||
|
||||
event.keyCode === KeyEvent.DOM_VK_SHIFT) &&
|
||||
this._noActionsKeys.has(event.keyCode)) {
|
||||
this._noActionsKeys.delete(event.keyCode);
|
||||
if (this._noActionsKeys.size == 0)
|
||||
if (this._noActionKeys.includes(event.keyCode) &&
|
||||
this._pressedNoActionKeys.has(event.keyCode)) {
|
||||
this._pressedNoActionKeys.delete(event.keyCode);
|
||||
if (this._pressedNoActionKeys.size == 0)
|
||||
this._clearNoActions();
|
||||
}
|
||||
]]></handler>
|
||||
|
|
|
@ -478,7 +478,7 @@ BrowserGlue.prototype = {
|
|||
this._flashHangCount = 0;
|
||||
this._firstWindowReady = new Promise(resolve => this._firstWindowLoaded = resolve);
|
||||
|
||||
if (AppConstants.platform == "win" ||
|
||||
if (AppConstants.isPlatformAndVersionAtMost("win", "5.2") ||
|
||||
AppConstants.platform == "macosx") {
|
||||
// Handles prompting to inform about incompatibilites when accessibility
|
||||
// and e10s are active together.
|
||||
|
|
|
@ -5,5 +5,6 @@ MOZ_AUTOMATION_L10N_CHECK=0
|
|||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
|
||||
ac_add_options --enable-artifact-builds
|
||||
ac_add_options --enable-artifact-build-symbols
|
||||
unset CC
|
||||
unset CXX
|
||||
|
|
|
@ -5,5 +5,6 @@ MOZ_AUTOMATION_L10N_CHECK=0
|
|||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
|
||||
ac_add_options --enable-artifact-builds
|
||||
ac_add_options --enable-artifact-build-symbols
|
||||
unset CC
|
||||
unset CXX
|
||||
|
|
|
@ -5,3 +5,4 @@ MOZ_AUTOMATION_L10N_CHECK=0
|
|||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
|
||||
ac_add_options --enable-artifact-builds
|
||||
ac_add_options --enable-artifact-build-symbols
|
||||
|
|
|
@ -7,3 +7,4 @@ MOZ_AUTOMATION_L10N_CHECK=0
|
|||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
|
||||
ac_add_options --enable-artifact-builds
|
||||
ac_add_options --enable-artifact-build-symbols
|
||||
|
|
|
@ -8,3 +8,4 @@ MOZ_AUTOMATION_L10N_CHECK=0
|
|||
. "$topsrcdir/build/mozconfig.common.override"
|
||||
|
||||
ac_add_options --enable-artifact-builds
|
||||
ac_add_options --enable-artifact-build-symbols
|
||||
|
|
|
@ -32,6 +32,7 @@ function EvaluationResult(props) {
|
|||
type,
|
||||
level,
|
||||
id: messageId,
|
||||
exceptionDocURL,
|
||||
} = message;
|
||||
|
||||
let messageBody;
|
||||
|
@ -53,6 +54,7 @@ function EvaluationResult(props) {
|
|||
messageId,
|
||||
scrollToMessage: props.autoscroll,
|
||||
serviceContainer,
|
||||
exceptionDocURL,
|
||||
};
|
||||
return Message(childProps);
|
||||
}
|
||||
|
|
|
@ -42,7 +42,8 @@ function PageError(props) {
|
|||
messageText: messageBody,
|
||||
repeat,
|
||||
stacktrace,
|
||||
frame
|
||||
frame,
|
||||
exceptionDocURL,
|
||||
} = message;
|
||||
|
||||
const childProps = {
|
||||
|
@ -60,6 +61,7 @@ function PageError(props) {
|
|||
frame,
|
||||
stacktrace,
|
||||
serviceContainer,
|
||||
exceptionDocURL,
|
||||
};
|
||||
return Message(childProps);
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ const {
|
|||
DOM: dom,
|
||||
PropTypes
|
||||
} = require("devtools/client/shared/vendor/react");
|
||||
const { l10n } = require("devtools/client/webconsole/new-console-output/utils/messages");
|
||||
const actions = require("devtools/client/webconsole/new-console-output/actions/index");
|
||||
const CollapseButton = createFactory(require("devtools/client/webconsole/new-console-output/components/collapse-button"));
|
||||
const MessageIndent = createFactory(require("devtools/client/webconsole/new-console-output/components/message-indent").MessageIndent);
|
||||
|
@ -40,6 +41,7 @@ const Message = createClass({
|
|||
stacktrace: PropTypes.any,
|
||||
messageId: PropTypes.string,
|
||||
scrollToMessage: PropTypes.bool,
|
||||
exceptionDocURL: PropTypes.string,
|
||||
serviceContainer: PropTypes.shape({
|
||||
emitNewMessage: PropTypes.func.isRequired,
|
||||
onViewSourceInDebugger: PropTypes.func.isRequired,
|
||||
|
@ -66,6 +68,11 @@ const Message = createClass({
|
|||
}
|
||||
},
|
||||
|
||||
onLearnMoreClick: function () {
|
||||
let {exceptionDocURL} = this.props;
|
||||
this.props.serviceContainer.openLink(exceptionDocURL);
|
||||
},
|
||||
|
||||
render() {
|
||||
const {
|
||||
messageId,
|
||||
|
@ -82,6 +89,7 @@ const Message = createClass({
|
|||
stacktrace,
|
||||
serviceContainer,
|
||||
dispatch,
|
||||
exceptionDocURL,
|
||||
} = this.props;
|
||||
|
||||
topLevelClasses.push("message", source, type, level);
|
||||
|
@ -132,6 +140,15 @@ const Message = createClass({
|
|||
}) : null
|
||||
);
|
||||
|
||||
let learnMore;
|
||||
if (exceptionDocURL) {
|
||||
learnMore = dom.a({
|
||||
className: "learn-more-link webconsole-learn-more-link",
|
||||
title: exceptionDocURL.split("?")[0],
|
||||
onClick: this.onLearnMoreClick,
|
||||
}, `[${l10n.getStr("webConsoleMoreInfoLabel")}]`);
|
||||
}
|
||||
|
||||
return dom.div({
|
||||
className: topLevelClasses.join(" "),
|
||||
ref: node => {
|
||||
|
@ -145,7 +162,8 @@ const Message = createClass({
|
|||
dom.span({ className: "message-body-wrapper" },
|
||||
dom.span({ className: "message-flex-body" },
|
||||
dom.span({ className: "message-body devtools-monospace" },
|
||||
messageBody
|
||||
messageBody,
|
||||
learnMore
|
||||
),
|
||||
repeat,
|
||||
location
|
||||
|
|
|
@ -54,6 +54,7 @@ NewConsoleOutputWrapper.prototype = {
|
|||
});
|
||||
},
|
||||
sourceMapService: this.toolbox ? this.toolbox._sourceMapService : null,
|
||||
openLink: url => this.jsterm.hud.owner.openLink.call(this.jsterm.hud.owner, url)
|
||||
}
|
||||
});
|
||||
let filterBar = FilterBar({
|
||||
|
|
|
@ -4,10 +4,13 @@
|
|||
|
||||
// Test utils.
|
||||
const expect = require("expect");
|
||||
const { render } = require("enzyme");
|
||||
const { render, mount } = require("enzyme");
|
||||
const sinon = require("sinon");
|
||||
|
||||
// React
|
||||
const { createFactory } = require("devtools/client/shared/vendor/react");
|
||||
const Provider = createFactory(require("react-redux").Provider);
|
||||
const { setupStore } = require("devtools/client/webconsole/new-console-output/test/helpers");
|
||||
|
||||
// Components under test.
|
||||
const EvaluationResult = createFactory(require("devtools/client/webconsole/new-console-output/components/message-types/evaluation-result"));
|
||||
|
@ -15,6 +18,7 @@ const { INDENT_WIDTH } = require("devtools/client/webconsole/new-console-output/
|
|||
|
||||
// Test fakes.
|
||||
const { stubPreparedMessages } = require("devtools/client/webconsole/new-console-output/test/fixtures/stubs/index");
|
||||
const serviceContainer = require("devtools/client/webconsole/new-console-output/test/fixtures/serviceContainer");
|
||||
|
||||
describe("EvaluationResult component:", () => {
|
||||
it("renders a grip result", () => {
|
||||
|
@ -31,11 +35,32 @@ describe("EvaluationResult component:", () => {
|
|||
const wrapper = render(EvaluationResult({ message }));
|
||||
|
||||
expect(wrapper.find(".message-body").text())
|
||||
.toBe("ReferenceError: asdf is not defined");
|
||||
.toBe("ReferenceError: asdf is not defined[Learn More]");
|
||||
|
||||
expect(wrapper.find(".message.error").length).toBe(1);
|
||||
});
|
||||
|
||||
it("displays a [Learn more] link", () => {
|
||||
const store = setupStore([]);
|
||||
|
||||
const message = stubPreparedMessages.get("asdf()");
|
||||
|
||||
serviceContainer.openLink = sinon.spy();
|
||||
const wrapper = mount(Provider({store},
|
||||
EvaluationResult({message, serviceContainer})
|
||||
));
|
||||
|
||||
const url =
|
||||
"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined";
|
||||
const learnMore = wrapper.find(".learn-more-link");
|
||||
expect(learnMore.length).toBe(1);
|
||||
expect(learnMore.prop("title")).toBe(url);
|
||||
|
||||
learnMore.simulate("click");
|
||||
let call = serviceContainer.openLink.getCall(0);
|
||||
expect(call.args[0]).toEqual(message.exceptionDocURL);
|
||||
});
|
||||
|
||||
it("has the expected indent", () => {
|
||||
const message = stubPreparedMessages.get("new Date(0)");
|
||||
|
||||
|
|
|
@ -30,19 +30,41 @@ describe("PageError component:", () => {
|
|||
const wrapper = render(PageError({ message, serviceContainer }));
|
||||
|
||||
expect(wrapper.find(".message-body").text())
|
||||
.toBe("ReferenceError: asdf is not defined");
|
||||
.toBe("ReferenceError: asdf is not defined[Learn More]");
|
||||
|
||||
// The stacktrace should be closed by default.
|
||||
const frameLinks = wrapper.find(`.stack-trace`);
|
||||
expect(frameLinks.length).toBe(0);
|
||||
|
||||
// There should be the location
|
||||
// There should be the location.
|
||||
const locationLink = wrapper.find(`.message-location`);
|
||||
expect(locationLink.length).toBe(1);
|
||||
// @TODO Will likely change. See https://github.com/devtools-html/gecko-dev/issues/285
|
||||
expect(locationLink.text()).toBe("test-tempfile.js:3:5");
|
||||
});
|
||||
|
||||
it("displays a [Learn more] link", () => {
|
||||
const store = setupStore([]);
|
||||
|
||||
const message = stubPreparedMessages.get("ReferenceError: asdf is not defined");
|
||||
|
||||
serviceContainer.openLink = sinon.spy();
|
||||
const wrapper = mount(Provider({store},
|
||||
PageError({message, serviceContainer})
|
||||
));
|
||||
|
||||
// There should be a [Learn more] link.
|
||||
const url =
|
||||
"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined";
|
||||
const learnMore = wrapper.find(".learn-more-link");
|
||||
expect(learnMore.length).toBe(1);
|
||||
expect(learnMore.prop("title")).toBe(url);
|
||||
|
||||
learnMore.simulate("click");
|
||||
let call = serviceContainer.openLink.getCall(0);
|
||||
expect(call.args[0]).toEqual(message.exceptionDocURL);
|
||||
});
|
||||
|
||||
it("has a stacktrace which can be openned", () => {
|
||||
const message = stubPreparedMessages.get("ReferenceError: asdf is not defined");
|
||||
const wrapper = render(PageError({ message, serviceContainer, open: true }));
|
||||
|
|
|
@ -13,6 +13,8 @@ class L10n {
|
|||
return "Console was cleared.";
|
||||
case "webConsoleXhrIndicator":
|
||||
return "XHR";
|
||||
case "webConsoleMoreInfoLabel":
|
||||
return "Learn More";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
|
|
@ -12,4 +12,5 @@ module.exports = {
|
|||
sourceMapService: {
|
||||
subscribe: () => {},
|
||||
},
|
||||
};
|
||||
openLink: () => {},
|
||||
};
|
||||
|
|
|
@ -25,14 +25,15 @@ stubPreparedMessages.set("console.log('foobar', 'test')", new ConsoleMessage({
|
|||
"test"
|
||||
],
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[\"foobar\",\"test\"],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(%27foobar%27%2C%20%27test%27)\",\"line\":1,\"column\":27},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[\"foobar\",\"test\"],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(%27foobar%27%2C%20%27test%27)\",\"line\":1,\"column\":27},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(%27foobar%27%2C%20%27test%27)",
|
||||
"line": 1,
|
||||
"column": 27
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.log(undefined)", new ConsoleMessage({
|
||||
|
@ -48,14 +49,15 @@ stubPreparedMessages.set("console.log(undefined)", new ConsoleMessage({
|
|||
}
|
||||
],
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[{\"type\":\"undefined\"}],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(undefined)\",\"line\":1,\"column\":27},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[{\"type\":\"undefined\"}],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(undefined)\",\"line\":1,\"column\":27},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(undefined)",
|
||||
"line": 1,
|
||||
"column": 27
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.warn('danger, will robinson!')", new ConsoleMessage({
|
||||
|
@ -69,14 +71,15 @@ stubPreparedMessages.set("console.warn('danger, will robinson!')", new ConsoleMe
|
|||
"danger, will robinson!"
|
||||
],
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"warn\",\"level\":\"warn\",\"messageText\":null,\"parameters\":[\"danger, will robinson!\"],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.warn(%27danger%2C%20will%20robinson!%27)\",\"line\":1,\"column\":27},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"warn\",\"level\":\"warn\",\"messageText\":null,\"parameters\":[\"danger, will robinson!\"],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.warn(%27danger%2C%20will%20robinson!%27)\",\"line\":1,\"column\":27},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.warn(%27danger%2C%20will%20robinson!%27)",
|
||||
"line": 1,
|
||||
"column": 27
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.log(NaN)", new ConsoleMessage({
|
||||
|
@ -92,14 +95,15 @@ stubPreparedMessages.set("console.log(NaN)", new ConsoleMessage({
|
|||
}
|
||||
],
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[{\"type\":\"NaN\"}],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(NaN)\",\"line\":1,\"column\":27},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[{\"type\":\"NaN\"}],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(NaN)\",\"line\":1,\"column\":27},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(NaN)",
|
||||
"line": 1,
|
||||
"column": 27
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.log(null)", new ConsoleMessage({
|
||||
|
@ -115,14 +119,15 @@ stubPreparedMessages.set("console.log(null)", new ConsoleMessage({
|
|||
}
|
||||
],
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[{\"type\":\"null\"}],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(null)\",\"line\":1,\"column\":27},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[{\"type\":\"null\"}],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(null)\",\"line\":1,\"column\":27},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(null)",
|
||||
"line": 1,
|
||||
"column": 27
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.log('鼬')", new ConsoleMessage({
|
||||
|
@ -136,14 +141,15 @@ stubPreparedMessages.set("console.log('鼬')", new ConsoleMessage({
|
|||
"鼬"
|
||||
],
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[\"鼬\"],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(%27%E9%BC%AC%27)\",\"line\":1,\"column\":27},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[\"鼬\"],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(%27%E9%BC%AC%27)\",\"line\":1,\"column\":27},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(%27%E9%BC%AC%27)",
|
||||
"line": 1,
|
||||
"column": 27
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.clear()", new ConsoleMessage({
|
||||
|
@ -157,14 +163,15 @@ stubPreparedMessages.set("console.clear()", new ConsoleMessage({
|
|||
"Console was cleared."
|
||||
],
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"clear\",\"level\":\"log\",\"messageText\":null,\"parameters\":[\"Console was cleared.\"],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.clear()\",\"line\":1,\"column\":27},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"clear\",\"level\":\"log\",\"messageText\":null,\"parameters\":[\"Console was cleared.\"],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.clear()\",\"line\":1,\"column\":27},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.clear()",
|
||||
"line": 1,
|
||||
"column": 27
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.count('bar')", new ConsoleMessage({
|
||||
|
@ -176,14 +183,15 @@ stubPreparedMessages.set("console.count('bar')", new ConsoleMessage({
|
|||
"messageText": "bar: 1",
|
||||
"parameters": null,
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"debug\",\"messageText\":\"bar: 1\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.count(%27bar%27)\",\"line\":1,\"column\":27},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"debug\",\"messageText\":\"bar: 1\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.count(%27bar%27)\",\"line\":1,\"column\":27},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.count(%27bar%27)",
|
||||
"line": 1,
|
||||
"column": 27
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.assert(false, {message: 'foobar'})", new ConsoleMessage({
|
||||
|
@ -218,7 +226,7 @@ stubPreparedMessages.set("console.assert(false, {message: 'foobar'})", new Conso
|
|||
}
|
||||
],
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"assert\",\"level\":\"error\",\"messageText\":null,\"parameters\":[{\"type\":\"object\",\"actor\":\"server1.conn8.child1/obj31\",\"class\":\"Object\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":1,\"preview\":{\"kind\":\"Object\",\"ownProperties\":{\"message\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"foobar\"}},\"ownPropertiesLength\":1,\"safeGetterValues\":{}}}],\"repeatId\":null,\"stacktrace\":[{\"columnNumber\":27,\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.assert(false%2C%20%7Bmessage%3A%20%27foobar%27%7D)\",\"functionName\":\"triggerPacket\",\"language\":2,\"lineNumber\":1}],\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.assert(false%2C%20%7Bmessage%3A%20%27foobar%27%7D)\",\"line\":1,\"column\":27},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"assert\",\"level\":\"error\",\"messageText\":null,\"parameters\":[{\"type\":\"object\",\"actor\":\"server1.conn8.child1/obj31\",\"class\":\"Object\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":1,\"preview\":{\"kind\":\"Object\",\"ownProperties\":{\"message\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":\"foobar\"}},\"ownPropertiesLength\":1,\"safeGetterValues\":{}}}],\"repeatId\":null,\"stacktrace\":[{\"columnNumber\":27,\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.assert(false%2C%20%7Bmessage%3A%20%27foobar%27%7D)\",\"functionName\":\"triggerPacket\",\"language\":2,\"lineNumber\":1}],\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.assert(false%2C%20%7Bmessage%3A%20%27foobar%27%7D)\",\"line\":1,\"column\":27},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": [
|
||||
{
|
||||
"columnNumber": 27,
|
||||
|
@ -233,7 +241,8 @@ stubPreparedMessages.set("console.assert(false, {message: 'foobar'})", new Conso
|
|||
"line": 1,
|
||||
"column": 27
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.log('hello \nfrom \rthe \"string world!')", new ConsoleMessage({
|
||||
|
@ -247,14 +256,15 @@ stubPreparedMessages.set("console.log('hello \nfrom \rthe \"string world!')", ne
|
|||
"hello \nfrom \rthe \"string world!"
|
||||
],
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[\"hello \\nfrom \\rthe \\\"string world!\"],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(%27hello%20%5Cnfrom%20%5Crthe%20%5C%22string%20world!%27)\",\"line\":1,\"column\":27},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[\"hello \\nfrom \\rthe \\\"string world!\"],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(%27hello%20%5Cnfrom%20%5Crthe%20%5C%22string%20world!%27)\",\"line\":1,\"column\":27},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(%27hello%20%5Cnfrom%20%5Crthe%20%5C%22string%20world!%27)",
|
||||
"line": 1,
|
||||
"column": 27
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.log('úṇĩçödê țĕșť')", new ConsoleMessage({
|
||||
|
@ -268,14 +278,15 @@ stubPreparedMessages.set("console.log('úṇĩçödê țĕșť')", new ConsoleMe
|
|||
"úṇĩçödê țĕșť"
|
||||
],
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[\"úṇĩçödê țĕșť\"],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(%27%C3%BA%E1%B9%87%C4%A9%C3%A7%C3%B6d%C3%AA%20%C8%9B%C4%95%C8%99%C5%A5%27)\",\"line\":1,\"column\":27},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[\"úṇĩçödê țĕșť\"],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(%27%C3%BA%E1%B9%87%C4%A9%C3%A7%C3%B6d%C3%AA%20%C8%9B%C4%95%C8%99%C5%A5%27)\",\"line\":1,\"column\":27},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.log(%27%C3%BA%E1%B9%87%C4%A9%C3%A7%C3%B6d%C3%AA%20%C8%9B%C4%95%C8%99%C5%A5%27)",
|
||||
"line": 1,
|
||||
"column": 27
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.dirxml(window)", new ConsoleMessage({
|
||||
|
@ -293,7 +304,7 @@ stubPreparedMessages.set("console.dirxml(window)", new ConsoleMessage({
|
|||
"extensible": true,
|
||||
"frozen": false,
|
||||
"sealed": false,
|
||||
"ownPropertyLength": 805,
|
||||
"ownPropertyLength": 806,
|
||||
"preview": {
|
||||
"kind": "ObjectWithURL",
|
||||
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html"
|
||||
|
@ -301,14 +312,15 @@ stubPreparedMessages.set("console.dirxml(window)", new ConsoleMessage({
|
|||
}
|
||||
],
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[{\"type\":\"object\",\"actor\":\"server1.conn11.child1/obj31\",\"class\":\"Window\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":805,\"preview\":{\"kind\":\"ObjectWithURL\",\"url\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html\"}}],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.dirxml(window)\",\"line\":1,\"column\":27},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[{\"type\":\"object\",\"actor\":\"server1.conn11.child1/obj31\",\"class\":\"Window\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":806,\"preview\":{\"kind\":\"ObjectWithURL\",\"url\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html\"}}],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.dirxml(window)\",\"line\":1,\"column\":27},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.dirxml(window)",
|
||||
"line": 1,
|
||||
"column": 27
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.trace()", new ConsoleMessage({
|
||||
|
@ -320,7 +332,7 @@ stubPreparedMessages.set("console.trace()", new ConsoleMessage({
|
|||
"messageText": null,
|
||||
"parameters": [],
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"trace\",\"level\":\"log\",\"messageText\":null,\"parameters\":[],\"repeatId\":null,\"stacktrace\":[{\"columnNumber\":3,\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.trace()\",\"functionName\":\"testStacktraceFiltering\",\"language\":2,\"lineNumber\":3},{\"columnNumber\":3,\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.trace()\",\"functionName\":\"foo\",\"language\":2,\"lineNumber\":6},{\"columnNumber\":1,\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.trace()\",\"functionName\":\"triggerPacket\",\"language\":2,\"lineNumber\":9}],\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.trace()\",\"line\":3,\"column\":3},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"trace\",\"level\":\"log\",\"messageText\":null,\"parameters\":[],\"repeatId\":null,\"stacktrace\":[{\"columnNumber\":3,\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.trace()\",\"functionName\":\"testStacktraceFiltering\",\"language\":2,\"lineNumber\":3},{\"columnNumber\":3,\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.trace()\",\"functionName\":\"foo\",\"language\":2,\"lineNumber\":6},{\"columnNumber\":1,\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.trace()\",\"functionName\":\"triggerPacket\",\"language\":2,\"lineNumber\":9}],\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.trace()\",\"line\":3,\"column\":3},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": [
|
||||
{
|
||||
"columnNumber": 3,
|
||||
|
@ -349,7 +361,8 @@ stubPreparedMessages.set("console.trace()", new ConsoleMessage({
|
|||
"line": 3,
|
||||
"column": 3
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.time('bar')", new ConsoleMessage({
|
||||
|
@ -361,14 +374,15 @@ stubPreparedMessages.set("console.time('bar')", new ConsoleMessage({
|
|||
"messageText": null,
|
||||
"parameters": null,
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"nullMessage\",\"level\":\"log\",\"messageText\":null,\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.time(%27bar%27)\",\"line\":2,\"column\":1},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"nullMessage\",\"level\":\"log\",\"messageText\":null,\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.time(%27bar%27)\",\"line\":2,\"column\":1},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.time(%27bar%27)",
|
||||
"line": 2,
|
||||
"column": 1
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.timeEnd('bar')", new ConsoleMessage({
|
||||
|
@ -377,17 +391,18 @@ stubPreparedMessages.set("console.timeEnd('bar')", new ConsoleMessage({
|
|||
"source": "console-api",
|
||||
"type": "timeEnd",
|
||||
"level": "log",
|
||||
"messageText": "bar: 2ms",
|
||||
"messageText": "bar: 1.8ms",
|
||||
"parameters": null,
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"timeEnd\",\"level\":\"log\",\"messageText\":\"bar: 2ms\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.time(%27bar%27)\",\"line\":3,\"column\":1},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"timeEnd\",\"level\":\"log\",\"messageText\":\"bar: 1.8ms\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.time(%27bar%27)\",\"line\":3,\"column\":1},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.time(%27bar%27)",
|
||||
"line": 3,
|
||||
"column": 1
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.table('bar')", new ConsoleMessage({
|
||||
|
@ -401,14 +416,15 @@ stubPreparedMessages.set("console.table('bar')", new ConsoleMessage({
|
|||
"bar"
|
||||
],
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[\"bar\"],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.table(%27bar%27)\",\"line\":2,\"column\":1},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"log\",\"level\":\"log\",\"messageText\":null,\"parameters\":[\"bar\"],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.table(%27bar%27)\",\"line\":2,\"column\":1},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.table(%27bar%27)",
|
||||
"line": 2,
|
||||
"column": 1
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.table(['a', 'b', 'c'])", new ConsoleMessage({
|
||||
|
@ -439,14 +455,15 @@ stubPreparedMessages.set("console.table(['a', 'b', 'c'])", new ConsoleMessage({
|
|||
}
|
||||
],
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"table\",\"level\":\"log\",\"messageText\":null,\"parameters\":[{\"type\":\"object\",\"actor\":\"server1.conn15.child1/obj31\",\"class\":\"Array\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":4,\"preview\":{\"kind\":\"ArrayLike\",\"length\":3,\"items\":[\"a\",\"b\",\"c\"]}}],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.table(%5B%27a%27%2C%20%27b%27%2C%20%27c%27%5D)\",\"line\":2,\"column\":1},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"table\",\"level\":\"log\",\"messageText\":null,\"parameters\":[{\"type\":\"object\",\"actor\":\"server1.conn15.child1/obj31\",\"class\":\"Array\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":4,\"preview\":{\"kind\":\"ArrayLike\",\"length\":3,\"items\":[\"a\",\"b\",\"c\"]}}],\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.table(%5B%27a%27%2C%20%27b%27%2C%20%27c%27%5D)\",\"line\":2,\"column\":1},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.table(%5B%27a%27%2C%20%27b%27%2C%20%27c%27%5D)",
|
||||
"line": 2,
|
||||
"column": 1
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.group('bar')", new ConsoleMessage({
|
||||
|
@ -458,14 +475,15 @@ stubPreparedMessages.set("console.group('bar')", new ConsoleMessage({
|
|||
"messageText": "bar",
|
||||
"parameters": null,
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"startGroup\",\"level\":\"log\",\"messageText\":\"bar\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.group(%27bar%27)\",\"line\":2,\"column\":1},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"startGroup\",\"level\":\"log\",\"messageText\":\"bar\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.group(%27bar%27)\",\"line\":2,\"column\":1},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.group(%27bar%27)",
|
||||
"line": 2,
|
||||
"column": 1
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.groupEnd('bar')", new ConsoleMessage({
|
||||
|
@ -477,14 +495,15 @@ stubPreparedMessages.set("console.groupEnd('bar')", new ConsoleMessage({
|
|||
"messageText": null,
|
||||
"parameters": null,
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"endGroup\",\"level\":\"log\",\"messageText\":null,\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.group(%27bar%27)\",\"line\":3,\"column\":1},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"endGroup\",\"level\":\"log\",\"messageText\":null,\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.group(%27bar%27)\",\"line\":3,\"column\":1},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.group(%27bar%27)",
|
||||
"line": 3,
|
||||
"column": 1
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.groupCollapsed('foo')", new ConsoleMessage({
|
||||
|
@ -496,14 +515,15 @@ stubPreparedMessages.set("console.groupCollapsed('foo')", new ConsoleMessage({
|
|||
"messageText": "foo",
|
||||
"parameters": null,
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"startGroupCollapsed\",\"level\":\"log\",\"messageText\":\"foo\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.groupCollapsed(%27foo%27)\",\"line\":2,\"column\":1},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"startGroupCollapsed\",\"level\":\"log\",\"messageText\":\"foo\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.groupCollapsed(%27foo%27)\",\"line\":2,\"column\":1},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.groupCollapsed(%27foo%27)",
|
||||
"line": 2,
|
||||
"column": 1
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.groupEnd('foo')", new ConsoleMessage({
|
||||
|
@ -515,14 +535,15 @@ stubPreparedMessages.set("console.groupEnd('foo')", new ConsoleMessage({
|
|||
"messageText": null,
|
||||
"parameters": null,
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"endGroup\",\"level\":\"log\",\"messageText\":null,\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.groupCollapsed(%27foo%27)\",\"line\":3,\"column\":1},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"endGroup\",\"level\":\"log\",\"messageText\":null,\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.groupCollapsed(%27foo%27)\",\"line\":3,\"column\":1},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.groupCollapsed(%27foo%27)",
|
||||
"line": 3,
|
||||
"column": 1
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.group()", new ConsoleMessage({
|
||||
|
@ -534,14 +555,15 @@ stubPreparedMessages.set("console.group()", new ConsoleMessage({
|
|||
"messageText": "<no group label>",
|
||||
"parameters": null,
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"startGroup\",\"level\":\"log\",\"messageText\":\"<no group label>\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.group()\",\"line\":2,\"column\":1},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"startGroup\",\"level\":\"log\",\"messageText\":\"<no group label>\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.group()\",\"line\":2,\"column\":1},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.group()",
|
||||
"line": 2,
|
||||
"column": 1
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("console.groupEnd()", new ConsoleMessage({
|
||||
|
@ -553,14 +575,15 @@ stubPreparedMessages.set("console.groupEnd()", new ConsoleMessage({
|
|||
"messageText": null,
|
||||
"parameters": null,
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"endGroup\",\"level\":\"log\",\"messageText\":null,\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.group()\",\"line\":3,\"column\":1},\"groupId\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"console-api\",\"type\":\"endGroup\",\"level\":\"log\",\"messageText\":null,\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.group()\",\"line\":3,\"column\":1},\"groupId\":null,\"exceptionDocURL\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": {
|
||||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=console.group()",
|
||||
"line": 3,
|
||||
"column": 1
|
||||
},
|
||||
"groupId": null
|
||||
"groupId": null,
|
||||
"exceptionDocURL": null
|
||||
}));
|
||||
|
||||
|
||||
|
@ -590,7 +613,7 @@ stubPackets.set("console.log('foobar', 'test')", {
|
|||
},
|
||||
"private": false,
|
||||
"styles": [],
|
||||
"timeStamp": 1475932482736,
|
||||
"timeStamp": 1476572494539,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"category": "webdev"
|
||||
|
@ -624,7 +647,7 @@ stubPackets.set("console.log(undefined)", {
|
|||
},
|
||||
"private": false,
|
||||
"styles": [],
|
||||
"timeStamp": 1475932485201,
|
||||
"timeStamp": 1476572496789,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"category": "webdev"
|
||||
|
@ -656,7 +679,7 @@ stubPackets.set("console.warn('danger, will robinson!')", {
|
|||
},
|
||||
"private": false,
|
||||
"styles": [],
|
||||
"timeStamp": 1475932487905,
|
||||
"timeStamp": 1476572499458,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"category": "webdev"
|
||||
|
@ -690,7 +713,7 @@ stubPackets.set("console.log(NaN)", {
|
|||
},
|
||||
"private": false,
|
||||
"styles": [],
|
||||
"timeStamp": 1475932490983,
|
||||
"timeStamp": 1476572501339,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"category": "webdev"
|
||||
|
@ -724,7 +747,7 @@ stubPackets.set("console.log(null)", {
|
|||
},
|
||||
"private": false,
|
||||
"styles": [],
|
||||
"timeStamp": 1475932493685,
|
||||
"timeStamp": 1476572504208,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"category": "webdev"
|
||||
|
@ -756,7 +779,7 @@ stubPackets.set("console.log('鼬')", {
|
|||
},
|
||||
"private": false,
|
||||
"styles": [],
|
||||
"timeStamp": 1475932496157,
|
||||
"timeStamp": 1476572507048,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"category": "webdev"
|
||||
|
@ -785,7 +808,7 @@ stubPackets.set("console.clear()", {
|
|||
"userContextId": 0
|
||||
},
|
||||
"private": false,
|
||||
"timeStamp": 1475932498831,
|
||||
"timeStamp": 1476572509784,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"styles": [],
|
||||
|
@ -820,7 +843,7 @@ stubPackets.set("console.count('bar')", {
|
|||
"userContextId": 0
|
||||
},
|
||||
"private": false,
|
||||
"timeStamp": 1475932502090,
|
||||
"timeStamp": 1476572512209,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"styles": [],
|
||||
|
@ -874,7 +897,7 @@ stubPackets.set("console.assert(false, {message: 'foobar'})", {
|
|||
},
|
||||
"private": false,
|
||||
"styles": [],
|
||||
"timeStamp": 1475932504985,
|
||||
"timeStamp": 1476572514941,
|
||||
"timer": null,
|
||||
"stacktrace": [
|
||||
{
|
||||
|
@ -915,7 +938,7 @@ stubPackets.set("console.log('hello \nfrom \rthe \"string world!')", {
|
|||
},
|
||||
"private": false,
|
||||
"styles": [],
|
||||
"timeStamp": 1475932507548,
|
||||
"timeStamp": 1476572517131,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"category": "webdev"
|
||||
|
@ -947,7 +970,7 @@ stubPackets.set("console.log('úṇĩçödê țĕșť')", {
|
|||
},
|
||||
"private": false,
|
||||
"styles": [],
|
||||
"timeStamp": 1475932510208,
|
||||
"timeStamp": 1476572519136,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"category": "webdev"
|
||||
|
@ -966,7 +989,7 @@ stubPackets.set("console.dirxml(window)", {
|
|||
"extensible": true,
|
||||
"frozen": false,
|
||||
"sealed": false,
|
||||
"ownPropertyLength": 805,
|
||||
"ownPropertyLength": 806,
|
||||
"preview": {
|
||||
"kind": "ObjectWithURL",
|
||||
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html"
|
||||
|
@ -990,7 +1013,7 @@ stubPackets.set("console.dirxml(window)", {
|
|||
"userContextId": 0
|
||||
},
|
||||
"private": false,
|
||||
"timeStamp": 1475932512694,
|
||||
"timeStamp": 1476572521656,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"styles": [],
|
||||
|
@ -1020,7 +1043,7 @@ stubPackets.set("console.trace()", {
|
|||
"userContextId": 0
|
||||
},
|
||||
"private": false,
|
||||
"timeStamp": 1475932515089,
|
||||
"timeStamp": 1476572524381,
|
||||
"timer": null,
|
||||
"stacktrace": [
|
||||
{
|
||||
|
@ -1075,10 +1098,10 @@ stubPackets.set("console.time('bar')", {
|
|||
"userContextId": 0
|
||||
},
|
||||
"private": false,
|
||||
"timeStamp": 1475932517857,
|
||||
"timeStamp": 1476572526421,
|
||||
"timer": {
|
||||
"name": "bar",
|
||||
"started": 1855.08
|
||||
"started": 1214.4750000000001
|
||||
},
|
||||
"workerType": "none",
|
||||
"styles": [],
|
||||
|
@ -1110,9 +1133,9 @@ stubPackets.set("console.timeEnd('bar')", {
|
|||
"userContextId": 0
|
||||
},
|
||||
"private": false,
|
||||
"timeStamp": 1475932517859,
|
||||
"timeStamp": 1476572526423,
|
||||
"timer": {
|
||||
"duration": 2,
|
||||
"duration": 1.8049999999998363,
|
||||
"name": "bar"
|
||||
},
|
||||
"workerType": "none",
|
||||
|
@ -1145,7 +1168,7 @@ stubPackets.set("console.table('bar')", {
|
|||
"userContextId": 0
|
||||
},
|
||||
"private": false,
|
||||
"timeStamp": 1475932520567,
|
||||
"timeStamp": 1476572528374,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"styles": [],
|
||||
|
@ -1194,7 +1217,7 @@ stubPackets.set("console.table(['a', 'b', 'c'])", {
|
|||
"userContextId": 0
|
||||
},
|
||||
"private": false,
|
||||
"timeStamp": 1475932523995,
|
||||
"timeStamp": 1476572530339,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"styles": [],
|
||||
|
@ -1226,7 +1249,7 @@ stubPackets.set("console.group('bar')", {
|
|||
"userContextId": 0
|
||||
},
|
||||
"private": false,
|
||||
"timeStamp": 1475932526918,
|
||||
"timeStamp": 1476572532126,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"styles": [],
|
||||
|
@ -1258,7 +1281,7 @@ stubPackets.set("console.groupEnd('bar')", {
|
|||
"userContextId": 0
|
||||
},
|
||||
"private": false,
|
||||
"timeStamp": 1475932526919,
|
||||
"timeStamp": 1476572532127,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"styles": [],
|
||||
|
@ -1290,7 +1313,7 @@ stubPackets.set("console.groupCollapsed('foo')", {
|
|||
"userContextId": 0
|
||||
},
|
||||
"private": false,
|
||||
"timeStamp": 1475932529277,
|
||||
"timeStamp": 1476572533893,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"styles": [],
|
||||
|
@ -1322,7 +1345,7 @@ stubPackets.set("console.groupEnd('foo')", {
|
|||
"userContextId": 0
|
||||
},
|
||||
"private": false,
|
||||
"timeStamp": 1475932529279,
|
||||
"timeStamp": 1476572533897,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"styles": [],
|
||||
|
@ -1352,7 +1375,7 @@ stubPackets.set("console.group()", {
|
|||
"userContextId": 0
|
||||
},
|
||||
"private": false,
|
||||
"timeStamp": 1475932531706,
|
||||
"timeStamp": 1476572535552,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"styles": [],
|
||||
|
@ -1382,7 +1405,7 @@ stubPackets.set("console.groupEnd()", {
|
|||
"userContextId": 0
|
||||
},
|
||||
"private": false,
|
||||
"timeStamp": 1475932531707,
|
||||
"timeStamp": 1476572535554,
|
||||
"timer": null,
|
||||
"workerType": "none",
|
||||
"styles": [],
|
||||
|
|
|
@ -32,9 +32,10 @@ stubPreparedMessages.set("new Date(0)", new ConsoleMessage({
|
|||
}
|
||||
},
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"javascript\",\"type\":\"result\",\"level\":\"log\",\"parameters\":{\"type\":\"object\",\"actor\":\"server1.conn0.child1/obj30\",\"class\":\"Date\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":0,\"preview\":{\"timestamp\":0}},\"repeatId\":null,\"stacktrace\":null,\"frame\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"javascript\",\"type\":\"result\",\"level\":\"log\",\"parameters\":{\"type\":\"object\",\"actor\":\"server1.conn0.child1/obj30\",\"class\":\"Date\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":0,\"preview\":{\"timestamp\":0}},\"repeatId\":null,\"stacktrace\":null,\"frame\":null,\"groupId\":null}",
|
||||
"stacktrace": null,
|
||||
"frame": null
|
||||
"frame": null,
|
||||
"groupId": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("asdf()", new ConsoleMessage({
|
||||
|
@ -48,9 +49,11 @@ stubPreparedMessages.set("asdf()", new ConsoleMessage({
|
|||
"type": "undefined"
|
||||
},
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"javascript\",\"type\":\"result\",\"level\":\"error\",\"messageText\":\"ReferenceError: asdf is not defined\",\"parameters\":{\"type\":\"undefined\"},\"repeatId\":null,\"stacktrace\":null,\"frame\":null}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"javascript\",\"type\":\"result\",\"level\":\"error\",\"messageText\":\"ReferenceError: asdf is not defined\",\"parameters\":{\"type\":\"undefined\"},\"repeatId\":null,\"stacktrace\":null,\"frame\":null,\"groupId\":null,\"exceptionDocURL\":\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default\"}",
|
||||
"stacktrace": null,
|
||||
"frame": null
|
||||
"frame": null,
|
||||
"groupId": null,
|
||||
"exceptionDocURL": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default"
|
||||
}));
|
||||
|
||||
|
||||
|
@ -69,7 +72,7 @@ stubPackets.set("new Date(0)", {
|
|||
"timestamp": 0
|
||||
}
|
||||
},
|
||||
"timestamp": 1474405330863,
|
||||
"timestamp": 1476573073424,
|
||||
"exception": null,
|
||||
"helperResult": null
|
||||
});
|
||||
|
@ -80,7 +83,7 @@ stubPackets.set("asdf()", {
|
|||
"result": {
|
||||
"type": "undefined"
|
||||
},
|
||||
"timestamp": 1474405330881,
|
||||
"timestamp": 1476573073442,
|
||||
"exception": {
|
||||
"type": "object",
|
||||
"actor": "server1.conn0.child1/obj32",
|
||||
|
|
|
@ -24,7 +24,8 @@ stubPreparedMessages.set("GET request", new NetworkEventMessage({
|
|||
},
|
||||
"response": {},
|
||||
"source": "network",
|
||||
"type": "log"
|
||||
"type": "log",
|
||||
"groupId": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("XHR GET request", new NetworkEventMessage({
|
||||
|
@ -38,7 +39,8 @@ stubPreparedMessages.set("XHR GET request", new NetworkEventMessage({
|
|||
},
|
||||
"response": {},
|
||||
"source": "network",
|
||||
"type": "log"
|
||||
"type": "log",
|
||||
"groupId": null
|
||||
}));
|
||||
|
||||
stubPreparedMessages.set("XHR POST request", new NetworkEventMessage({
|
||||
|
@ -52,7 +54,8 @@ stubPreparedMessages.set("XHR POST request", new NetworkEventMessage({
|
|||
},
|
||||
"response": {},
|
||||
"source": "network",
|
||||
"type": "log"
|
||||
"type": "log",
|
||||
"groupId": null
|
||||
}));
|
||||
|
||||
|
||||
|
@ -61,8 +64,8 @@ stubPackets.set("GET request", {
|
|||
"type": "networkEvent",
|
||||
"eventActor": {
|
||||
"actor": "server1.conn0.child1/netEvent29",
|
||||
"startedDateTime": "2016-09-14T02:38:18.046Z",
|
||||
"timeStamp": 1473820698046,
|
||||
"startedDateTime": "2016-10-15T23:12:04.196Z",
|
||||
"timeStamp": 1476573124196,
|
||||
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
|
||||
"method": "GET",
|
||||
"isXHR": false,
|
||||
|
@ -102,8 +105,8 @@ stubPackets.set("XHR GET request", {
|
|||
"type": "networkEvent",
|
||||
"eventActor": {
|
||||
"actor": "server1.conn1.child1/netEvent29",
|
||||
"startedDateTime": "2016-09-14T02:38:18.812Z",
|
||||
"timeStamp": 1473820698812,
|
||||
"startedDateTime": "2016-10-15T23:12:05.690Z",
|
||||
"timeStamp": 1476573125690,
|
||||
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
|
||||
"method": "GET",
|
||||
"isXHR": true,
|
||||
|
@ -143,8 +146,8 @@ stubPackets.set("XHR POST request", {
|
|||
"type": "networkEvent",
|
||||
"eventActor": {
|
||||
"actor": "server1.conn2.child1/netEvent29",
|
||||
"startedDateTime": "2016-09-14T02:38:19.483Z",
|
||||
"timeStamp": 1473820699483,
|
||||
"startedDateTime": "2016-10-15T23:12:07.158Z",
|
||||
"timeStamp": 1476573127158,
|
||||
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
|
||||
"method": "POST",
|
||||
"isXHR": true,
|
||||
|
|
|
@ -22,7 +22,7 @@ stubPreparedMessages.set("ReferenceError: asdf is not defined", new ConsoleMessa
|
|||
"messageText": "ReferenceError: asdf is not defined",
|
||||
"parameters": null,
|
||||
"repeat": 1,
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"javascript\",\"type\":\"log\",\"level\":\"error\",\"messageText\":\"ReferenceError: asdf is not defined\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":[{\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error\",\"lineNumber\":3,\"columnNumber\":5,\"functionName\":\"bar\"},{\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error\",\"lineNumber\":6,\"columnNumber\":5,\"functionName\":\"foo\"},{\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error\",\"lineNumber\":9,\"columnNumber\":3,\"functionName\":null}],\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error\",\"line\":3,\"column\":5}}",
|
||||
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"javascript\",\"type\":\"log\",\"level\":\"error\",\"messageText\":\"ReferenceError: asdf is not defined\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":[{\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error\",\"lineNumber\":3,\"columnNumber\":5,\"functionName\":\"bar\"},{\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error\",\"lineNumber\":6,\"columnNumber\":5,\"functionName\":\"foo\"},{\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error\",\"lineNumber\":9,\"columnNumber\":3,\"functionName\":null}],\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error\",\"line\":3,\"column\":5},\"groupId\":null,\"exceptionDocURL\":\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default\"}",
|
||||
"stacktrace": [
|
||||
{
|
||||
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error",
|
||||
|
@ -47,7 +47,9 @@ stubPreparedMessages.set("ReferenceError: asdf is not defined", new ConsoleMessa
|
|||
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error",
|
||||
"line": 3,
|
||||
"column": 5
|
||||
}
|
||||
},
|
||||
"groupId": null,
|
||||
"exceptionDocURL": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default"
|
||||
}));
|
||||
|
||||
|
||||
|
@ -63,7 +65,7 @@ stubPackets.set("ReferenceError: asdf is not defined", {
|
|||
"lineNumber": 3,
|
||||
"columnNumber": 5,
|
||||
"category": "content javascript",
|
||||
"timeStamp": 1473960366996,
|
||||
"timeStamp": 1476573167137,
|
||||
"warning": false,
|
||||
"error": false,
|
||||
"exception": true,
|
||||
|
|
|
@ -36,6 +36,7 @@ exports.ConsoleMessage = Immutable.Record({
|
|||
stacktrace: null,
|
||||
frame: null,
|
||||
groupId: null,
|
||||
exceptionDocURL: null,
|
||||
});
|
||||
|
||||
exports.NetworkEventMessage = Immutable.Record({
|
||||
|
|
|
@ -163,6 +163,7 @@ function transformPacket(packet) {
|
|||
messageText: pageError.errorMessage,
|
||||
stacktrace: pageError.stacktrace ? pageError.stacktrace : null,
|
||||
frame,
|
||||
exceptionDocURL: pageError.exceptionDocURL,
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -181,6 +182,7 @@ function transformPacket(packet) {
|
|||
default: {
|
||||
let {
|
||||
exceptionMessage: messageText,
|
||||
exceptionDocURL,
|
||||
result: parameters
|
||||
} = packet;
|
||||
|
||||
|
@ -191,6 +193,7 @@ function transformPacket(packet) {
|
|||
level,
|
||||
messageText,
|
||||
parameters,
|
||||
exceptionDocURL,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include "mozIApplication.h"
|
||||
#if defined(XP_WIN) && defined(ACCESSIBILITY)
|
||||
#include "mozilla/a11y/AccessibleWrap.h"
|
||||
#include "mozilla/WindowsVersion.h"
|
||||
#endif
|
||||
#include "mozilla/ClearOnShutdown.h"
|
||||
#include "mozilla/StyleSheetInlines.h"
|
||||
|
@ -1358,14 +1359,12 @@ ContentParent::Init()
|
|||
// If accessibility is running in chrome process then start it in content
|
||||
// process.
|
||||
if (nsIPresShell::IsAccessibilityActive()) {
|
||||
#if !defined(XP_WIN)
|
||||
Unused << SendActivateA11y();
|
||||
#else
|
||||
// On Windows we currently only enable a11y in the content process
|
||||
// for testing purposes.
|
||||
if (Preferences::GetBool(kForceEnableE10sPref, false)) {
|
||||
#if defined(XP_WIN)
|
||||
if (IsVistaOrLater()) {
|
||||
Unused << SendActivateA11y();
|
||||
}
|
||||
#else
|
||||
Unused << SendActivateA11y();
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
@ -2789,14 +2788,12 @@ ContentParent::Observe(nsISupports* aSubject,
|
|||
if (*aData == '1') {
|
||||
// Make sure accessibility is running in content process when
|
||||
// accessibility gets initiated in chrome process.
|
||||
#if !defined(XP_WIN)
|
||||
Unused << SendActivateA11y();
|
||||
#else
|
||||
// On Windows we currently only enable a11y in the content process
|
||||
// for testing purposes.
|
||||
if (Preferences::GetBool(kForceEnableE10sPref, false)) {
|
||||
#if defined(XP_WIN)
|
||||
if (IsVistaOrLater()) {
|
||||
Unused << SendActivateA11y();
|
||||
}
|
||||
#else
|
||||
Unused << SendActivateA11y();
|
||||
#endif
|
||||
} else {
|
||||
// If possible, shut down accessibility in content process when
|
||||
|
|
|
@ -215,6 +215,10 @@ public:
|
|||
|
||||
virtual RefPtr<ShutdownPromise> HandleShutdown();
|
||||
|
||||
virtual void HandleVideoSuspendTimeout() = 0;
|
||||
|
||||
virtual void HandleResumeVideoDecoding();
|
||||
|
||||
virtual void DumpDebugInfo() {}
|
||||
|
||||
protected:
|
||||
|
@ -272,6 +276,7 @@ public:
|
|||
|
||||
void Enter()
|
||||
{
|
||||
MOZ_ASSERT(!mMaster->mVideoDecodeSuspended);
|
||||
MOZ_ASSERT(!mMetadataRequest.Exists());
|
||||
SLOG("Dispatching AsyncReadMetadata");
|
||||
|
||||
|
@ -312,6 +317,17 @@ public:
|
|||
return MediaDecoder::SeekPromise::CreateAndReject(true, __func__);
|
||||
}
|
||||
|
||||
void HandleVideoSuspendTimeout() override
|
||||
{
|
||||
// Do nothing since no decoders are created yet.
|
||||
}
|
||||
|
||||
void HandleResumeVideoDecoding() override
|
||||
{
|
||||
// We never suspend video decoding in this state.
|
||||
MOZ_ASSERT(false, "Shouldn't have suspended video decoding.");
|
||||
}
|
||||
|
||||
private:
|
||||
void OnMetadataRead(MetadataHolder* aMetadata);
|
||||
|
||||
|
@ -336,7 +352,11 @@ class MediaDecoderStateMachine::WaitForCDMState
|
|||
public:
|
||||
explicit WaitForCDMState(Master* aPtr) : StateObject(aPtr) {}
|
||||
|
||||
void Enter(bool aPendingDormant) { mPendingDormant = aPendingDormant; }
|
||||
void Enter(bool aPendingDormant)
|
||||
{
|
||||
MOZ_ASSERT(!mMaster->mVideoDecodeSuspended);
|
||||
mPendingDormant = aPendingDormant;
|
||||
}
|
||||
|
||||
State GetState() const override
|
||||
{
|
||||
|
@ -355,6 +375,17 @@ public:
|
|||
return mMaster->mQueuedSeek.mPromise.Ensure(__func__);
|
||||
}
|
||||
|
||||
void HandleVideoSuspendTimeout() override
|
||||
{
|
||||
// Do nothing since no decoders are created yet.
|
||||
}
|
||||
|
||||
void HandleResumeVideoDecoding() override
|
||||
{
|
||||
// We never suspend video decoding in this state.
|
||||
MOZ_ASSERT(false, "Shouldn't have suspended video decoding.");
|
||||
}
|
||||
|
||||
private:
|
||||
bool mPendingDormant = false;
|
||||
};
|
||||
|
@ -388,6 +419,16 @@ public:
|
|||
mMaster->mQueuedSeek.mTarget = aTarget;
|
||||
return mMaster->mQueuedSeek.mPromise.Ensure(__func__);
|
||||
}
|
||||
|
||||
void HandleVideoSuspendTimeout() override
|
||||
{
|
||||
// Do nothing since we've released decoders in Enter().
|
||||
}
|
||||
|
||||
void HandleResumeVideoDecoding() override
|
||||
{
|
||||
// Do nothing since we won't resume decoding until exiting dormant.
|
||||
}
|
||||
};
|
||||
|
||||
class MediaDecoderStateMachine::DecodingFirstFrameState
|
||||
|
@ -425,6 +466,17 @@ public:
|
|||
|
||||
RefPtr<MediaDecoder::SeekPromise> HandleSeek(SeekTarget aTarget) override;
|
||||
|
||||
void HandleVideoSuspendTimeout() override
|
||||
{
|
||||
// Do nothing for we need to decode the 1st video frame to get the dimensions.
|
||||
}
|
||||
|
||||
void HandleResumeVideoDecoding() override
|
||||
{
|
||||
// We never suspend video decoding in this state.
|
||||
MOZ_ASSERT(false, "Shouldn't have suspended video decoding.");
|
||||
}
|
||||
|
||||
private:
|
||||
// Notify FirstFrameLoaded if having decoded first frames and
|
||||
// transition to SEEKING if there is any pending seek, or DECODING otherwise.
|
||||
|
@ -508,6 +560,15 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
void HandleVideoSuspendTimeout() override
|
||||
{
|
||||
if (mMaster->HasVideo()) {
|
||||
mMaster->mVideoDecodeSuspended = true;
|
||||
mMaster->mOnPlaybackEvent.Notify(MediaEventType::EnterVideoSuspend);
|
||||
Reader()->SetVideoBlankDecode(true);
|
||||
}
|
||||
}
|
||||
|
||||
void DumpDebugInfo() override
|
||||
{
|
||||
SDUMP("mIsPrerolling=%d", mIsPrerolling);
|
||||
|
@ -595,6 +656,15 @@ public:
|
|||
{
|
||||
mSeekJob = Move(aSeekJob);
|
||||
|
||||
// Always switch off the blank decoder otherwise we might become visible
|
||||
// in the middle of seeking and won't have a valid video frame to show
|
||||
// when seek is done.
|
||||
if (mMaster->mVideoDecodeSuspended) {
|
||||
mMaster->mVideoDecodeSuspended = false;
|
||||
mMaster->mOnPlaybackEvent.Notify(MediaEventType::ExitVideoSuspend);
|
||||
Reader()->SetVideoBlankDecode(false);
|
||||
}
|
||||
|
||||
// SeekTask will register its callbacks to MediaDecoderReaderWrapper.
|
||||
mMaster->CancelMediaDecoderReaderWrapperCallback();
|
||||
|
||||
|
@ -684,6 +754,17 @@ public:
|
|||
|
||||
RefPtr<MediaDecoder::SeekPromise> HandleSeek(SeekTarget aTarget) override;
|
||||
|
||||
void HandleVideoSuspendTimeout() override
|
||||
{
|
||||
// Do nothing since we want a valid video frame to show when seek is done.
|
||||
}
|
||||
|
||||
void HandleResumeVideoDecoding() override
|
||||
{
|
||||
// We set mVideoDecodeSuspended to false in Enter().
|
||||
MOZ_ASSERT(false, "Shouldn't have suspended video decoding.");
|
||||
}
|
||||
|
||||
private:
|
||||
void OnSeekTaskResolved(const SeekTaskResolveValue& aValue)
|
||||
{
|
||||
|
@ -785,6 +866,15 @@ public:
|
|||
|
||||
RefPtr<MediaDecoder::SeekPromise> HandleSeek(SeekTarget aTarget) override;
|
||||
|
||||
void HandleVideoSuspendTimeout() override
|
||||
{
|
||||
if (mMaster->HasVideo()) {
|
||||
mMaster->mVideoDecodeSuspended = true;
|
||||
mMaster->mOnPlaybackEvent.Notify(MediaEventType::EnterVideoSuspend);
|
||||
Reader()->SetVideoBlankDecode(true);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
TimeStamp mBufferingStart;
|
||||
|
||||
|
@ -866,6 +956,11 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
void HandleVideoSuspendTimeout() override
|
||||
{
|
||||
// Do nothing since no decoding is going on.
|
||||
}
|
||||
|
||||
private:
|
||||
bool mSentPlaybackEndedEvent = false;
|
||||
};
|
||||
|
@ -904,6 +999,16 @@ public:
|
|||
MOZ_DIAGNOSTIC_ASSERT(false, "Already shutting down.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void HandleVideoSuspendTimeout() override
|
||||
{
|
||||
MOZ_DIAGNOSTIC_ASSERT(false, "Already shutting down.");
|
||||
}
|
||||
|
||||
void HandleResumeVideoDecoding() override
|
||||
{
|
||||
MOZ_DIAGNOSTIC_ASSERT(false, "Already shutting down.");
|
||||
}
|
||||
};
|
||||
|
||||
bool
|
||||
|
@ -932,6 +1037,78 @@ StateObject::HandleShutdown()
|
|||
return SetState<ShutdownState>();
|
||||
}
|
||||
|
||||
static void
|
||||
ReportRecoveryTelemetry(const TimeStamp& aRecoveryStart,
|
||||
const MediaInfo& aMediaInfo,
|
||||
bool aIsHardwareAccelerated)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
if (!aMediaInfo.HasVideo()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Keyed by audio+video or video alone, hardware acceleration,
|
||||
// and by a resolution range.
|
||||
nsCString key(aMediaInfo.HasAudio() ? "AV" : "V");
|
||||
key.AppendASCII(aIsHardwareAccelerated ? "(hw)," : ",");
|
||||
static const struct { int32_t mH; const char* mRes; } sResolutions[] = {
|
||||
{ 240, "0-240" },
|
||||
{ 480, "241-480" },
|
||||
{ 720, "481-720" },
|
||||
{ 1080, "721-1080" },
|
||||
{ 2160, "1081-2160" }
|
||||
};
|
||||
const char* resolution = "2161+";
|
||||
int32_t height = aMediaInfo.mVideo.mImage.height;
|
||||
for (const auto& res : sResolutions) {
|
||||
if (height <= res.mH) {
|
||||
resolution = res.mRes;
|
||||
break;
|
||||
}
|
||||
}
|
||||
key.AppendASCII(resolution);
|
||||
|
||||
TimeDuration duration = TimeStamp::Now() - aRecoveryStart;
|
||||
double duration_ms = duration.ToMilliseconds();
|
||||
Telemetry::Accumulate(Telemetry::VIDEO_SUSPEND_RECOVERY_TIME_MS,
|
||||
key,
|
||||
uint32_t(duration_ms + 0.5));
|
||||
Telemetry::Accumulate(Telemetry::VIDEO_SUSPEND_RECOVERY_TIME_MS,
|
||||
NS_LITERAL_CSTRING("All"),
|
||||
uint32_t(duration_ms + 0.5));
|
||||
}
|
||||
|
||||
void
|
||||
MediaDecoderStateMachine::
|
||||
StateObject::HandleResumeVideoDecoding()
|
||||
{
|
||||
MOZ_ASSERT(mMaster->mVideoDecodeSuspended);
|
||||
|
||||
// Start counting recovery time from right now.
|
||||
TimeStamp start = TimeStamp::Now();
|
||||
|
||||
// Local reference to mInfo, so that it will be copied in the lambda below.
|
||||
auto& info = Info();
|
||||
bool hw = Reader()->VideoIsHardwareAccelerated();
|
||||
|
||||
// Start video-only seek to the current time.
|
||||
SeekJob seekJob;
|
||||
|
||||
const SeekTarget::Type type = mMaster->HasAudio()
|
||||
? SeekTarget::Type::Accurate
|
||||
: SeekTarget::Type::PrevSyncPoint;
|
||||
|
||||
seekJob.mTarget = SeekTarget(mMaster->GetMediaTime(),
|
||||
type,
|
||||
MediaDecoderEventVisibility::Suppressed,
|
||||
true /* aVideoOnly */);
|
||||
|
||||
SetState<SeekingState>(Move(seekJob))->Then(
|
||||
AbstractThread::MainThread(), __func__,
|
||||
[start, info, hw](){ ReportRecoveryTelemetry(start, info, hw); },
|
||||
[](){});
|
||||
}
|
||||
|
||||
void
|
||||
MediaDecoderStateMachine::
|
||||
DecodeMetadataState::OnMetadataRead(MetadataHolder* aMetadata)
|
||||
|
@ -1044,6 +1221,8 @@ DecodingFirstFrameState::Enter()
|
|||
return;
|
||||
}
|
||||
|
||||
MOZ_ASSERT(!mMaster->mVideoDecodeSuspended);
|
||||
|
||||
// Dispatch tasks to decode first frames.
|
||||
mMaster->DispatchDecodeTasksIfNeeded();
|
||||
}
|
||||
|
@ -1102,6 +1281,14 @@ DecodingState::Enter()
|
|||
// transitioning to DECODING.
|
||||
MOZ_ASSERT(!mMaster->mQueuedSeek.Exists());
|
||||
|
||||
if (!mMaster->mIsVisible &&
|
||||
!mMaster->mVideoDecodeSuspendTimer.IsScheduled() &&
|
||||
!mMaster->mVideoDecodeSuspended) {
|
||||
// If we are not visible and the timer is not schedule, it means the timer
|
||||
// has timed out and we should suspend video decoding now if necessary.
|
||||
HandleVideoSuspendTimeout();
|
||||
}
|
||||
|
||||
if (mMaster->CheckIfDecodeComplete()) {
|
||||
SetState<CompletedState>();
|
||||
return;
|
||||
|
@ -2200,47 +2387,6 @@ void MediaDecoderStateMachine::PlayStateChanged()
|
|||
ScheduleStateMachine();
|
||||
}
|
||||
|
||||
static void
|
||||
ReportRecoveryTelemetry(const TimeStamp& aRecoveryStart,
|
||||
const MediaInfo& aMediaInfo,
|
||||
bool aIsHardwareAccelerated)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
if (!aMediaInfo.HasVideo()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Keyed by audio+video or video alone, hardware acceleration,
|
||||
// and by a resolution range.
|
||||
nsCString key(aMediaInfo.HasAudio() ? "AV" : "V");
|
||||
key.AppendASCII(aIsHardwareAccelerated ? "(hw)," : ",");
|
||||
static const struct { int32_t mH; const char* mRes; } sResolutions[] = {
|
||||
{ 240, "0-240" },
|
||||
{ 480, "241-480" },
|
||||
{ 720, "481-720" },
|
||||
{ 1080, "721-1080" },
|
||||
{ 2160, "1081-2160" }
|
||||
};
|
||||
const char* resolution = "2161+";
|
||||
int32_t height = aMediaInfo.mVideo.mImage.height;
|
||||
for (const auto& res : sResolutions) {
|
||||
if (height <= res.mH) {
|
||||
resolution = res.mRes;
|
||||
break;
|
||||
}
|
||||
}
|
||||
key.AppendASCII(resolution);
|
||||
|
||||
TimeDuration duration = TimeStamp::Now() - aRecoveryStart;
|
||||
double duration_ms = duration.ToMilliseconds();
|
||||
Telemetry::Accumulate(Telemetry::VIDEO_SUSPEND_RECOVERY_TIME_MS,
|
||||
key,
|
||||
uint32_t(duration_ms + 0.5));
|
||||
Telemetry::Accumulate(Telemetry::VIDEO_SUSPEND_RECOVERY_TIME_MS,
|
||||
NS_LITERAL_CSTRING("All"),
|
||||
uint32_t(duration_ms + 0.5));
|
||||
}
|
||||
|
||||
void MediaDecoderStateMachine::VisibilityChanged()
|
||||
{
|
||||
MOZ_ASSERT(OnTaskQueue());
|
||||
|
@ -2248,10 +2394,6 @@ void MediaDecoderStateMachine::VisibilityChanged()
|
|||
"mVideoDecodeSuspended=%c, mIsReaderSuspended=%d",
|
||||
mIsVisible.Ref(), mVideoDecodeSuspended ? 'T' : 'F', mIsReaderSuspended.Ref());
|
||||
|
||||
if (mInfo.isNothing() || !HasVideo()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Start timer to trigger suspended decoding state when going invisible.
|
||||
if (!mIsVisible) {
|
||||
TimeStamp target = TimeStamp::Now() + SuspendBackgroundVideoDelay();
|
||||
|
@ -2269,42 +2411,7 @@ void MediaDecoderStateMachine::VisibilityChanged()
|
|||
mVideoDecodeSuspendTimer.Reset();
|
||||
|
||||
if (mVideoDecodeSuspended) {
|
||||
mVideoDecodeSuspended = false;
|
||||
mOnPlaybackEvent.Notify(MediaEventType::ExitVideoSuspend);
|
||||
mReader->SetVideoBlankDecode(false);
|
||||
|
||||
if (mIsReaderSuspended) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If an existing seek is in flight don't bother creating a new
|
||||
// one to catch up.
|
||||
if (mState == DECODER_STATE_SEEKING || mQueuedSeek.Exists()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Start counting recovery time from right now.
|
||||
TimeStamp start = TimeStamp::Now();
|
||||
// Local reference to mInfo, so that it will be copied in the lambda below.
|
||||
auto& info = Info();
|
||||
bool hw = mReader->VideoIsHardwareAccelerated();
|
||||
|
||||
// Start video-only seek to the current time.
|
||||
SeekJob seekJob;
|
||||
|
||||
const SeekTarget::Type type = HasAudio()
|
||||
? SeekTarget::Type::Accurate
|
||||
: SeekTarget::Type::PrevSyncPoint;
|
||||
|
||||
seekJob.mTarget = SeekTarget(GetMediaTime(),
|
||||
type,
|
||||
MediaDecoderEventVisibility::Suppressed,
|
||||
true /* aVideoOnly */);
|
||||
|
||||
mStateObj->SetState<SeekingState>(Move(seekJob))->Then(
|
||||
AbstractThread::MainThread(), __func__,
|
||||
[start, info, hw](){ ReportRecoveryTelemetry(start, info, hw); },
|
||||
[](){});
|
||||
mStateObj->HandleResumeVideoDecoding();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3233,9 +3340,7 @@ MediaDecoderStateMachine::OnSuspendTimerResolved()
|
|||
{
|
||||
DECODER_LOG("OnSuspendTimerResolved");
|
||||
mVideoDecodeSuspendTimer.CompleteRequest();
|
||||
mVideoDecodeSuspended = true;
|
||||
mOnPlaybackEvent.Notify(MediaEventType::EnterVideoSuspend);
|
||||
mReader->SetVideoBlankDecode(true);
|
||||
mStateObj->HandleVideoSuspendTimeout();
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -307,9 +307,8 @@ TimeIntervals
|
|||
TrackBuffersManager::Buffered() const
|
||||
{
|
||||
MSE_DEBUG("");
|
||||
|
||||
// http://w3c.github.io/media-source/index.html#widl-SourceBuffer-buffered
|
||||
// 2. Let highest end time be the largest track buffer ranges end time across all the track buffers managed by this SourceBuffer object.
|
||||
TimeUnit highestEndTime = HighestEndTime();
|
||||
|
||||
MonitorAutoLock mon(mMonitor);
|
||||
nsTArray<const TimeIntervals*> tracks;
|
||||
|
@ -320,6 +319,9 @@ TrackBuffersManager::Buffered() const
|
|||
tracks.AppendElement(&mAudioBufferedRanges);
|
||||
}
|
||||
|
||||
// 2. Let highest end time be the largest track buffer ranges end time across all the track buffers managed by this SourceBuffer object.
|
||||
TimeUnit highestEndTime = HighestEndTime(tracks);
|
||||
|
||||
// 3. Let intersection ranges equal a TimeRange object containing a single range from 0 to highest end time.
|
||||
TimeIntervals intersection{TimeInterval(TimeUnit::FromSeconds(0), highestEndTime)};
|
||||
|
||||
|
@ -1979,7 +1981,6 @@ TimeUnit
|
|||
TrackBuffersManager::HighestEndTime() const
|
||||
{
|
||||
MonitorAutoLock mon(mMonitor);
|
||||
TimeUnit highestEndTime;
|
||||
|
||||
nsTArray<const TimeIntervals*> tracks;
|
||||
if (HasVideo()) {
|
||||
|
@ -1988,7 +1989,18 @@ TrackBuffersManager::HighestEndTime() const
|
|||
if (HasAudio()) {
|
||||
tracks.AppendElement(&mAudioBufferedRanges);
|
||||
}
|
||||
for (const auto& trackRanges : tracks) {
|
||||
return HighestEndTime(tracks);
|
||||
}
|
||||
|
||||
TimeUnit
|
||||
TrackBuffersManager::HighestEndTime(
|
||||
nsTArray<const TimeIntervals*>& aTracks) const
|
||||
{
|
||||
mMonitor.AssertCurrentThreadOwns();
|
||||
|
||||
TimeUnit highestEndTime;
|
||||
|
||||
for (const auto& trackRanges : aTracks) {
|
||||
highestEndTime = std::max(trackRanges->GetEnd(), highestEndTime);
|
||||
}
|
||||
return highestEndTime;
|
||||
|
|
|
@ -467,6 +467,10 @@ private:
|
|||
// Strong references to external objects.
|
||||
nsMainThreadPtrHandle<MediaSourceDecoder> mParentDecoder;
|
||||
|
||||
// Return public highest end time across all aTracks.
|
||||
// Monitor must be held.
|
||||
media::TimeUnit HighestEndTime(nsTArray<const media::TimeIntervals*>& aTracks) const;
|
||||
|
||||
// Set to true if mediasource state changed to ended.
|
||||
Atomic<bool> mEnded;
|
||||
|
||||
|
|
|
@ -686,17 +686,12 @@ PluginModuleParent::PluginModuleParent(bool aIsChrome, bool aAllowAsyncInit)
|
|||
, mIsNPShutdownPending(false)
|
||||
, mAsyncNewRv(NS_ERROR_NOT_INITIALIZED)
|
||||
{
|
||||
#if defined(XP_WIN) || defined(XP_MACOSX) || defined(MOZ_WIDGET_GTK)
|
||||
mIsStartingAsync = aAllowAsyncInit &&
|
||||
Preferences::GetBool(kAsyncInitPref, false) &&
|
||||
!BrowserTabsRemoteAutostart();
|
||||
#if defined(MOZ_CRASHREPORTER)
|
||||
CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("AsyncPluginInit"),
|
||||
mIsStartingAsync ?
|
||||
NS_LITERAL_CSTRING("1") :
|
||||
NS_LITERAL_CSTRING("0"));
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
PluginModuleParent::~PluginModuleParent()
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
#include "nsServiceManagerUtils.h"
|
||||
#include "nsString.h"
|
||||
#include "nsIXULAppInfo.h"
|
||||
#include "nsWindowsDllInterceptor.h"
|
||||
#include "WinUtils.h"
|
||||
|
||||
#include "mozilla/ArrayUtils.h"
|
||||
|
@ -437,95 +436,6 @@ ProcessOrDeferMessage(HWND hwnd,
|
|||
return res;
|
||||
}
|
||||
|
||||
/*
|
||||
* It is bad to subclass a window when neutering is active because you'll end
|
||||
* up subclassing the *neutered* window procedure instead of the real window
|
||||
* procedure. Since CreateWindow* fires WM_CREATE (and could thus trigger
|
||||
* neutering), we intercept these calls and suppress neutering for the duration
|
||||
* of the call. This ensures that any subsequent subclassing replaces the
|
||||
* correct window procedure.
|
||||
*/
|
||||
WindowsDllInterceptor sUser32Interceptor;
|
||||
typedef HWND (WINAPI *CreateWindowExWPtr)(DWORD,LPCWSTR,LPCWSTR,DWORD,int,int,int,int,HWND,HMENU,HINSTANCE,LPVOID);
|
||||
typedef HWND (WINAPI *CreateWindowExAPtr)(DWORD,LPCSTR,LPCSTR,DWORD,int,int,int,int,HWND,HMENU,HINSTANCE,LPVOID);
|
||||
typedef HWND (WINAPI *CreateWindowWPtr)(LPCWSTR,LPCWSTR,DWORD,int,int,int,int,HWND,HMENU,HINSTANCE,LPVOID);
|
||||
typedef HWND (WINAPI *CreateWindowAPtr)(LPCSTR,LPCSTR,DWORD,int,int,int,int,HWND,HMENU,HINSTANCE,LPVOID);
|
||||
|
||||
CreateWindowExWPtr sCreateWindowExWStub = nullptr;
|
||||
CreateWindowExAPtr sCreateWindowExAStub = nullptr;
|
||||
CreateWindowWPtr sCreateWindowWStub = nullptr;
|
||||
CreateWindowAPtr sCreateWindowAStub = nullptr;
|
||||
|
||||
HWND WINAPI
|
||||
CreateWindowExWHook(DWORD aExStyle, LPCWSTR aClassName, LPCWSTR aWindowName,
|
||||
DWORD aStyle, int aX, int aY, int aWidth, int aHeight,
|
||||
HWND aParent, HMENU aMenu, HINSTANCE aInstance,
|
||||
LPVOID aParam)
|
||||
{
|
||||
SuppressedNeuteringRegion doNotNeuterThisWindowYet;
|
||||
return sCreateWindowExWStub(aExStyle, aClassName, aWindowName, aStyle, aX, aY,
|
||||
aWidth, aHeight, aParent, aMenu, aInstance, aParam);
|
||||
}
|
||||
|
||||
HWND WINAPI
|
||||
CreateWindowExAHook(DWORD aExStyle, LPCSTR aClassName, LPCSTR aWindowName,
|
||||
DWORD aStyle, int aX, int aY, int aWidth, int aHeight,
|
||||
HWND aParent, HMENU aMenu, HINSTANCE aInstance,
|
||||
LPVOID aParam)
|
||||
{
|
||||
SuppressedNeuteringRegion doNotNeuterThisWindowYet;
|
||||
return sCreateWindowExAStub(aExStyle, aClassName, aWindowName, aStyle, aX, aY,
|
||||
aWidth, aHeight, aParent, aMenu, aInstance, aParam);
|
||||
}
|
||||
|
||||
HWND WINAPI
|
||||
CreateWindowWHook(LPCWSTR aClassName, LPCWSTR aWindowName, DWORD aStyle, int aX,
|
||||
int aY, int aWidth, int aHeight, HWND aParent, HMENU aMenu,
|
||||
HINSTANCE aInstance, LPVOID aParam)
|
||||
{
|
||||
SuppressedNeuteringRegion doNotNeuterThisWindowYet;
|
||||
return sCreateWindowWStub(aClassName, aWindowName, aStyle, aX, aY, aWidth,
|
||||
aHeight, aParent, aMenu, aInstance, aParam);
|
||||
}
|
||||
|
||||
HWND WINAPI
|
||||
CreateWindowAHook(LPCSTR aClassName, LPCSTR aWindowName, DWORD aStyle, int aX,
|
||||
int aY, int aWidth, int aHeight, HWND aParent, HMENU aMenu,
|
||||
HINSTANCE aInstance, LPVOID aParam)
|
||||
{
|
||||
SuppressedNeuteringRegion doNotNeuterThisWindowYet;
|
||||
return sCreateWindowAStub(aClassName, aWindowName, aStyle, aX, aY, aWidth,
|
||||
aHeight, aParent, aMenu, aInstance, aParam);
|
||||
}
|
||||
|
||||
void
|
||||
InitCreateWindowHook()
|
||||
{
|
||||
// Forcing these interceptions to be detours due to conflicts with
|
||||
// NVIDIA Optimus DLLs that are injected into our process.
|
||||
sUser32Interceptor.Init("user32.dll");
|
||||
if (!sCreateWindowExWStub) {
|
||||
sUser32Interceptor.AddDetour("CreateWindowExW",
|
||||
reinterpret_cast<intptr_t>(CreateWindowExWHook),
|
||||
(void**) &sCreateWindowExWStub);
|
||||
}
|
||||
if (!sCreateWindowExAStub) {
|
||||
sUser32Interceptor.AddDetour("CreateWindowExA",
|
||||
reinterpret_cast<intptr_t>(CreateWindowExAHook),
|
||||
(void**) &sCreateWindowExAStub);
|
||||
}
|
||||
if (!sCreateWindowWStub) {
|
||||
sUser32Interceptor.AddDetour("CreateWindowW",
|
||||
reinterpret_cast<intptr_t>(CreateWindowWHook),
|
||||
(void**) &sCreateWindowWStub);
|
||||
}
|
||||
if (!sCreateWindowAStub) {
|
||||
sUser32Interceptor.AddDetour("CreateWindowA",
|
||||
reinterpret_cast<intptr_t>(CreateWindowAHook),
|
||||
(void**) &sCreateWindowAStub);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
// We need the pointer value of this in PluginInstanceChild.
|
||||
|
@ -802,8 +712,6 @@ InitUIThread()
|
|||
gCOMWindow = FindCOMWindow();
|
||||
}
|
||||
MOZ_ASSERT(gWinEventHook);
|
||||
|
||||
InitCreateWindowHook();
|
||||
}
|
||||
|
||||
} // namespace windows
|
||||
|
|
|
@ -1022,7 +1022,7 @@ fails-if(Android) fails-if(usesRepeatResampling) == 421885-1.xml 421885-1-ref.xm
|
|||
== 422678-1.html 422678-1-ref.html
|
||||
== 423130-1.html 423130-1-ref.html
|
||||
== 423385-1.html 423385-1-ref.html
|
||||
== 423599-1.html 423599-1-ref.html
|
||||
random-if(gtkWidget) == 423599-1.html 423599-1-ref.html # bug 1309095
|
||||
== 423676-1.html 423676-1-ref.html
|
||||
fails == 423823-1.html 423823-1-ref.html # scrolling rowgroups were removed in bug 28800
|
||||
== 424074-1.xul 424074-1-ref.xul
|
||||
|
|
|
@ -81,11 +81,11 @@ skip-if(Android) == grid-auto-min-sizing-percent-001.html grid-auto-min-sizing-p
|
|||
== grid-item-justify-002.html grid-item-justify-002-ref.html
|
||||
== grid-item-stretch-001.html grid-item-stretch-001-ref.html
|
||||
== grid-item-self-baseline-001.html grid-item-self-baseline-001-ref.html
|
||||
skip-if(!gtkWidget) == grid-item-content-baseline-001.html grid-item-content-baseline-001-ref.html # depends on exact Ahem baseline font metrics which seems to differ between platforms
|
||||
skip-if(!gtkWidget) == grid-item-content-baseline-002.html grid-item-content-baseline-002-ref.html # ditto
|
||||
skip-if(!gtkWidget) == grid-item-mixed-baseline-001.html grid-item-mixed-baseline-001-ref.html # ditto
|
||||
skip-if(!gtkWidget) == grid-item-mixed-baseline-002.html grid-item-mixed-baseline-002-ref.html # ditto
|
||||
skip-if(!gtkWidget) == grid-item-mixed-baseline-003.html grid-item-mixed-baseline-003-ref.html # ditto
|
||||
random-if(http.oscpu!="Linux\u0020i686") == grid-item-content-baseline-001.html grid-item-content-baseline-001-ref.html # depends on exact Ahem baseline font metrics which seems to differ between platforms: bug 1310792
|
||||
random-if(http.oscpu!="Linux\u0020i686") == grid-item-content-baseline-002.html grid-item-content-baseline-002-ref.html # ditto
|
||||
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) == 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
|
||||
|
|
|
@ -64,7 +64,7 @@ fails-if(winWidget||cocoaWidget) == 617869-1.html 617869-1-ref.html
|
|||
== 922550-1.html 922550-1-ref.html
|
||||
== 958249.html 958249-ref.html
|
||||
== font-text-styles.html font-text-styles-ref.html
|
||||
fails-if(gtkWidget) random-if(winWidget&&!d2d) == font-text-styles-floater.html font-text-styles-floater-ref.html # bug 992846
|
||||
random-if(gtkWidget) random-if(winWidget&&!d2d) == font-text-styles-floater.html font-text-styles-floater-ref.html # bug 992846
|
||||
== inline-height-empty.html inline-height-empty-ref.html
|
||||
HTTP(..) == indic-clusters-1.html indic-clusters-1-ref.html
|
||||
== overflow-float-nooverflow.html overflow-float-nooverflow-ref.html
|
||||
|
|
|
@ -14,9 +14,10 @@ include pagination/reftest.list
|
|||
|
||||
# Tests for cross-axis alignment (align-self / align-items properties)
|
||||
fails == flexbox-align-self-baseline-horiz-2.xhtml flexbox-align-self-baseline-horiz-2-ref.xhtml # bug 793456, and possibly others
|
||||
# This one fails on windows R (but not Ru, strangely). On Windows R, the
|
||||
# single-line <label> flex item has a different background size in test vs. ref
|
||||
fuzzy-if(cocoaWidget,1,2) random-if(winWidget) == flexbox-align-self-baseline-horiz-3.xhtml flexbox-align-self-baseline-horiz-3-ref.xhtml # XXXdholbert investigate
|
||||
# This one fails on windows R (but not Ru, strangely) and GTK.
|
||||
# On Windows R and GTK, the single-line <label> flex item has a different
|
||||
# background size in test vs. ref
|
||||
fuzzy-if(cocoaWidget,1,2) random-if(winWidget||gtkWidget) == flexbox-align-self-baseline-horiz-3.xhtml flexbox-align-self-baseline-horiz-3-ref.xhtml # XXXdholbert investigate
|
||||
== flexbox-align-self-baseline-horiz-4.xhtml flexbox-align-self-baseline-horiz-4-ref.xhtml
|
||||
|
||||
# Tests for box-sizing on flex containers and flex items.
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
HTTP(..) != download-1.html download-1-notref.html
|
||||
HTTP(..) == download-2.html download-2-ref.html
|
||||
HTTP(..) != download-2.html about:blank
|
||||
random-if(winWidget) HTTP(..) == download-2-big.html download-2-big-otf.html # bug 470713
|
||||
random-if(winWidget||gtkWidget) HTTP(..) == download-2-big.html download-2-big-otf.html # bug 470713
|
||||
HTTP(..) != download-2-big-otf.html about:blank
|
||||
asserts-if(Android&&!asyncPan,1-8) HTTP(..) != download-3-notref.html download-3.html # bug 1019192
|
||||
asserts-if(Android,0-8) HTTP(..) == download-3-ref.html download-3.html # same bugs as above
|
||||
|
@ -17,7 +17,7 @@ HTTP(..) == multiple-descriptor-1.html multiple-descriptor-1-ref.html
|
|||
HTTP(..) != multiple-descriptor-1.html multiple-descriptor-1-notref.html
|
||||
HTTP(..) == src-list-1.html src-list-1-ref.html
|
||||
HTTP(..) == src-list-2.html src-list-2-ref.html
|
||||
random-if(winWidget) HTTP(..) == src-list-2-big-otf.html src-list-2-big-ref.html # bug 470713
|
||||
random-if(winWidget||gtkWidget) HTTP(..) == src-list-2-big-otf.html src-list-2-big-ref.html # bug 470713
|
||||
HTTP(..) == src-list-format-1.html src-list-format-1-ref.html
|
||||
HTTP(..) == src-list-format-2.html src-list-format-2-ref.html
|
||||
HTTP(..) == src-list-format-3.html src-list-format-3-ref.html
|
||||
|
|
|
@ -50,7 +50,7 @@ random-if(cocoaWidget) != impact-bold.html impact.html # bug 539418
|
|||
== localized-family-names-004.html localized-family-names-004-ref.html
|
||||
|
||||
# family names with escaped spaces shouldn't match the names without the spaces
|
||||
== familyname-escapedidents.html familyname-escapedidents-ref.html
|
||||
fails-if(http.oscpu=="Linux\u0020x86_64") == familyname-escapedidents.html familyname-escapedidents-ref.html # bug 1309425
|
||||
|
||||
# weight mapping tests
|
||||
HTTP(..) == normalmedium.html normalmedium-ref.html
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
== dir-1.html dir-1-ref.html
|
||||
== dir-2.html dir-2-ref.html
|
||||
== dir-3.html dir-3-ref.html
|
||||
random-if(gtkWidget) == dir-3.html dir-3-ref.html # bug 1309426
|
||||
== dir-4.html dir-4-ref.html
|
||||
== dir-5.html dir-5-ref.html
|
||||
== dir-6.html dir-6-ref.html
|
||||
|
@ -42,8 +42,8 @@ random-if(smallScreen&&Android) fuzzy(255,200) == mirror-op-1.html mirror-op-1-r
|
|||
!= mfenced-8.html mfenced-8-ref.html
|
||||
== mfenced-9.html mfenced-9-ref.html
|
||||
fails-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) == mfenced-10.html mfenced-10-ref.html # Windows versions without Cambria Math, see bug 670592
|
||||
== mfenced-11.html mfenced-11-ref.html
|
||||
== mfenced-12.html mfenced-12-ref.html
|
||||
fails-if(http.oscpu=="Linux\u0020x86_64") == mfenced-11.html mfenced-11-ref.html # bug 670592
|
||||
fails-if(http.oscpu=="Linux\u0020x86_64") == mfenced-12.html mfenced-12-ref.html # bug 670592
|
||||
== mi-mathvariant-1.xhtml mi-mathvariant-1-ref.xhtml
|
||||
== mi-mathvariant-2.xhtml mi-mathvariant-2-ref.xhtml
|
||||
!= mi-mathvariant-3.html mi-mathvariant-3-ref.html
|
||||
|
@ -113,7 +113,7 @@ fails == stretchy-mover-2a.html stretchy-mover-2-ref.html
|
|||
== embellished-op-4-3.html embellished-op-4-3-ref.html
|
||||
== embellished-op-5-1.html embellished-op-5-ref.html
|
||||
== embellished-op-5-2.html embellished-op-5-ref.html
|
||||
random-if(winWidget&&!/^Windows\x20NT\x205\.1/.test(http.oscpu)) == semantics-1.xhtml semantics-1-ref.xhtml # Windows versions with Cambria Math
|
||||
fails-if(http.oscpu=="Linux\u0020x86_64") random-if(winWidget&&!/^Windows\x20NT\x205\.1/.test(http.oscpu)) == semantics-1.xhtml semantics-1-ref.xhtml # Windows versions with Cambria Math, Linux x86_64:bug 1309429
|
||||
== semantics-2.html semantics-2-ref.html
|
||||
== semantics-3.html semantics-3-ref.html
|
||||
== semantics-4.html semantics-4-ref.html
|
||||
|
@ -144,9 +144,9 @@ fails-if(skiaContent&&OSX>=1010) == scale-stretchy-3.xhtml scale-stretchy-3-ref.
|
|||
== mpadded-5.html mpadded-5-ref.html
|
||||
== mpadded-1-2.html mpadded-1-2-ref.html
|
||||
== mpadded-6.html mpadded-6-ref.html
|
||||
== mpadded-7.html mpadded-7-ref.html
|
||||
== mpadded-8.html mpadded-8-ref.html
|
||||
== mpadded-9.html mpadded-9-ref.html
|
||||
random-if(gtkWidget) == mpadded-7.html mpadded-7-ref.html # bug 1309430
|
||||
random-if(gtkWidget) == mpadded-8.html mpadded-8-ref.html # bug 1309430
|
||||
random-if(gtkWidget) == mpadded-9.html mpadded-9-ref.html # bug 1309430
|
||||
== math-display.html math-display-ref.html
|
||||
== scriptlevel-1.html scriptlevel-1-ref.html
|
||||
== scriptlevel-movablelimits-1.html scriptlevel-movablelimits-1-ref.html
|
||||
|
@ -192,7 +192,7 @@ fails-if(skiaContent&&OSX>=1010) == scale-stretchy-3.xhtml scale-stretchy-3-ref.
|
|||
== mo-lspace-rspace-4.html mo-lspace-rspace-4-ref.html
|
||||
== mo-invisibleoperators.html mo-invisibleoperators-ref.html
|
||||
== mo-invisibleoperators-2.html mo-invisibleoperators-2-ref.html
|
||||
== mo-glyph-size.html mo-glyph-size-ref.html
|
||||
random-if(gtkWidget) == mo-glyph-size.html mo-glyph-size-ref.html # bug 1309426
|
||||
== maction-dynamic-3.html maction-dynamic-3-ref.html # bug 773482
|
||||
== whitespace-trim-1.html whitespace-trim-1-ref.html
|
||||
== whitespace-trim-2.html whitespace-trim-2-ref.html
|
||||
|
@ -224,21 +224,21 @@ fuzzy-if(skiaContent,1,80) fails-if(winWidget&&/^Windows\x20NT\x205\.1/.test(htt
|
|||
!= menclose-1o.html menclose-1-ref.html
|
||||
!= menclose-1p.html menclose-1-ref.html
|
||||
!= menclose-1q.html menclose-1-ref.html
|
||||
== menclose-2-actuarial.html menclose-2-actuarial-ref.html
|
||||
== menclose-2-bottom.html menclose-2-bottom-ref.html
|
||||
== menclose-2-box.html menclose-2-box-ref.html
|
||||
random-if(gtkWidget) == menclose-2-actuarial.html menclose-2-actuarial-ref.html # bug 1309426
|
||||
random-if(gtkWidget) == menclose-2-bottom.html menclose-2-bottom-ref.html # bug 1309426
|
||||
random-if(gtkWidget) == menclose-2-box.html menclose-2-box-ref.html # bug 1309426
|
||||
== menclose-2-circle.html menclose-2-circle-ref.html
|
||||
== menclose-2-downdiagonalstrike.html menclose-2-downdiagonalstrike-ref.html
|
||||
== menclose-2-horizontalstrike.html menclose-2-horizontalstrike-ref.html
|
||||
== menclose-2-left.html menclose-2-left-ref.html
|
||||
fuzzy-if(skiaContent,80,5) == menclose-2-longdiv.html menclose-2-longdiv-ref.html
|
||||
== menclose-2-right.html menclose-2-right-ref.html
|
||||
== menclose-2-roundedbox.html menclose-2-roundedbox-ref.html
|
||||
random-if(gtkWidget) == menclose-2-right.html menclose-2-right-ref.html # bug 1309426
|
||||
random-if(gtkWidget) == menclose-2-roundedbox.html menclose-2-roundedbox-ref.html # bug 1309426
|
||||
== menclose-2-top.html menclose-2-top-ref.html
|
||||
== menclose-2-updiagonalarrow.html menclose-2-updiagonalarrow-ref.html
|
||||
random-if(gtkWidget) == menclose-2-updiagonalarrow.html menclose-2-updiagonalarrow-ref.html # bug 1309426
|
||||
== menclose-2-updiagonalstrike.html menclose-2-updiagonalstrike-ref.html
|
||||
== menclose-2-verticalstrike.html menclose-2-verticalstrike-ref.html
|
||||
== menclose-2-roundedbox.html menclose-2-roundedbox-ref.html
|
||||
random-if(gtkWidget) == menclose-2-roundedbox.html menclose-2-roundedbox-ref.html # bug 1309426
|
||||
== menclose-2-phasorangle.html menclose-2-phasorangle-ref.html
|
||||
== menclose-3-box.html menclose-3-box-ref.html
|
||||
== menclose-3-madruwb.html menclose-3-madruwb-ref.html
|
||||
|
@ -318,7 +318,7 @@ fails-if(Android||/^Windows\x20NT\x205\.1/.test(http.oscpu)||OSX) == mathvariant
|
|||
== rowlines-2a.html rowlines-2-ref.html
|
||||
== rowlines-2b.html rowlines-2-ref.html
|
||||
!= rowlines-3-1.html rowlines-3-1-ref.html
|
||||
== rowlines-3-2.html rowlines-3-2-ref.html
|
||||
random-if(gtkWidget) == rowlines-3-2.html rowlines-3-2-ref.html # bug 1309426
|
||||
== tablespacing-1.html tablespacing-1-ref.html
|
||||
== tablespacing-2.html tablespacing-2-ref.html
|
||||
== tablespacing-3.html tablespacing-3-ref.html
|
||||
|
|
|
@ -5,7 +5,7 @@ HTTP(..) == marker-string.html marker-string-ref.html
|
|||
skip-if(Android) HTTP(..) == bidi-simple.html bidi-simple-ref.html # Fails on Android due to anti-aliasing
|
||||
skip-if(!gtkWidget) fuzzy-if(gtkWidget,2,289) HTTP(..) == bidi-simple-scrolled.html bidi-simple-scrolled-ref.html # Fails on Windows and OSX due to anti-aliasing
|
||||
fuzzy-if(Android,24,4000) fuzzy-if(cocoaWidget,1,40) fuzzy-if(asyncPan&&!layersGPUAccelerated,121,1836) HTTP(..) == scroll-rounding.html scroll-rounding-ref.html # bug 760264
|
||||
fuzzy(2,453) fuzzy-if(skiaContent,9,2100) HTTP(..) == anonymous-block.html anonymous-block-ref.html
|
||||
fuzzy(2,453) fuzzy-if(skiaContent,9,2100) fails-if(gtkWidget) HTTP(..) == anonymous-block.html anonymous-block-ref.html # gtkWidget:bug 1309103
|
||||
HTTP(..) == false-marker-overlap.html false-marker-overlap-ref.html
|
||||
HTTP(..) == visibility-hidden.html visibility-hidden-ref.html
|
||||
fuzzy-if(asyncPan&&!layersGPUAccelerated,102,1724) fuzzy-if(gtkWidget,10,8) HTTP(..) == block-padding.html block-padding-ref.html
|
||||
|
@ -22,7 +22,7 @@ HTTP(..) == table-cell.html table-cell-ref.html
|
|||
fuzzy-if(gtkWidget,10,32) HTTP(..) == two-value-syntax.html two-value-syntax-ref.html
|
||||
HTTP(..) == single-value.html single-value-ref.html
|
||||
fuzzy-if(gtkWidget,10,2) HTTP(..) == atomic-under-marker.html atomic-under-marker-ref.html
|
||||
fuzzy(1,2616) skip-if(Android) fuzzy-if(asyncPan&&!layersGPUAccelerated,102,12352) HTTP(..) == xulscroll.html xulscroll-ref.html
|
||||
fuzzy(1,2616) skip-if(Android) fuzzy-if(asyncPan&&!layersGPUAccelerated,102,12352) fails-if(http.oscpu=="Linux\u0020x86_64") HTTP(..) == xulscroll.html xulscroll-ref.html # Linux x86_64:bug 1309107
|
||||
HTTP(..) == combobox-zoom.html combobox-zoom-ref.html
|
||||
|
||||
# The vertical-text pref setting can be removed after bug 1138384 lands
|
||||
|
|
|
@ -144,7 +144,7 @@ fuzzy-if(gtkWidget,1,177) fuzzy-if(skiaContent,1,50) HTTP(..) == wordwrap-03.htm
|
|||
== word-spacing-01.html word-spacing-01-ref.html
|
||||
# the following will fail when rendering with Core Text (see bug 389074) due to what appears to be
|
||||
# an Apple bug: the presence of ZWNJ disturbs the positioning of an adjacent glyph. rdar://6427865
|
||||
random-if(cocoaWidget) HTTP(..) == zwnj-01.xhtml zwnj-01-ref.xhtml
|
||||
random-if(cocoaWidget) random-if(gtkWidget) HTTP(..) == zwnj-01.xhtml zwnj-01-ref.xhtml # gtkWidget:bug 1309113
|
||||
HTTP(..) == zwnj-02.xhtml zwnj-02-ref.xhtml # HTTP(..) for ../filters.svg
|
||||
!= zwnj-01.html zwnj-01-notref.html
|
||||
== initial-zwj-1.html initial-zwj-1-ref.html
|
||||
|
|
|
@ -869,6 +869,19 @@ Gecko_NewBasicShape(mozilla::StyleBasicShapeType aType)
|
|||
return ptr.forget().take();
|
||||
}
|
||||
|
||||
void
|
||||
Gecko_ResetFilters(nsStyleEffects* effects, size_t new_len)
|
||||
{
|
||||
effects->mFilters.Clear();
|
||||
effects->mFilters.SetLength(new_len);
|
||||
}
|
||||
|
||||
void
|
||||
Gecko_CopyFiltersFrom(nsStyleEffects* aSrc, nsStyleEffects* aDest)
|
||||
{
|
||||
aDest->mFilters = aSrc->mFilters;
|
||||
}
|
||||
|
||||
NS_IMPL_THREADSAFE_FFI_REFCOUNTING(nsStyleCoord::Calc, Calc);
|
||||
|
||||
nsCSSShadowArray*
|
||||
|
|
|
@ -318,6 +318,9 @@ void Gecko_CopyClipPathValueFrom(mozilla::StyleClipPath* dst, const mozilla::Sty
|
|||
void Gecko_DestroyClipPath(mozilla::StyleClipPath* clip);
|
||||
mozilla::StyleBasicShape* Gecko_NewBasicShape(mozilla::StyleBasicShapeType type);
|
||||
|
||||
void Gecko_ResetFilters(nsStyleEffects* effects, size_t new_len);
|
||||
void Gecko_CopyFiltersFrom(nsStyleEffects* aSrc, nsStyleEffects* aDest);
|
||||
|
||||
void Gecko_FillAllBackgroundLists(nsStyleImageLayers* layers, uint32_t max_len);
|
||||
void Gecko_FillAllMaskLists(nsStyleImageLayers* layers, uint32_t max_len);
|
||||
NS_DECL_THREADSAFE_FFI_REFCOUNTING(nsStyleCoord::Calc, Calc);
|
||||
|
|
|
@ -3605,7 +3605,7 @@ struct nsStyleFilter
|
|||
return !(*this == aOther);
|
||||
}
|
||||
|
||||
int32_t GetType() const {
|
||||
uint32_t GetType() const {
|
||||
return mType;
|
||||
}
|
||||
|
||||
|
@ -3634,7 +3634,7 @@ struct nsStyleFilter
|
|||
private:
|
||||
void ReleaseRef();
|
||||
|
||||
int32_t mType; // see NS_STYLE_FILTER_* constants in nsStyleConsts.h
|
||||
uint32_t mType; // see NS_STYLE_FILTER_* constants in nsStyleConsts.h
|
||||
nsStyleCoord mFilterParameter; // coord, percent, factor, angle
|
||||
union {
|
||||
mozilla::css::URLValue* mURL;
|
||||
|
|
|
@ -1164,4 +1164,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
|
|||
|
||||
static const int32_t kUnknownId = -1;
|
||||
|
||||
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1485263056982000);
|
||||
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1485350356111000);
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
0.me.uk: could not connect to host
|
||||
020wifi.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
0i0.nl: could not connect to host
|
||||
0p.no: did not receive HSTS header
|
||||
0x.sk: could not connect to host
|
||||
0x1337.eu: could not connect to host
|
||||
0x44.net: did not receive HSTS header
|
||||
0xAA55.me: could not connect to host
|
||||
0xaa55.me: could not connect to host
|
||||
0xb612.org: could not connect to host
|
||||
1018hosting.nl: did not receive HSTS header
|
||||
1022996493.rsc.cdn77.org: could not connect to host
|
||||
|
@ -34,6 +35,7 @@
|
|||
4elements.com: max-age too low: 0
|
||||
4mm.org: did not receive HSTS header
|
||||
4sqsu.eu: could not connect to host
|
||||
4vf.de: could not connect to host
|
||||
50millionablaze.org: did not receive HSTS header
|
||||
56ct.com: could not connect to host
|
||||
60ych.net: did not receive HSTS header
|
||||
|
@ -72,6 +74,7 @@ adams.net: max-age too low: 0
|
|||
adamwk.com: did not receive HSTS header
|
||||
adboos.com: did not receive HSTS header
|
||||
addvocate.com: could not connect to host
|
||||
aderal.io: could not connect to host
|
||||
adevel.eu: could not connect to host
|
||||
adhs-chaoten.net: did not receive HSTS header
|
||||
admin.google.com: did not receive HSTS header (error ignored - included regardless)
|
||||
|
@ -93,7 +96,6 @@ affinitysync.com: could not connect to host
|
|||
aficionados.com.br: did not receive HSTS header
|
||||
afp548.tk: could not connect to host
|
||||
agbremen.de: did not receive HSTS header
|
||||
ageg.ca: could not connect to host
|
||||
agevio.com: could not connect to host
|
||||
agilebits.net: could not connect to host
|
||||
agonswim.com: did not receive HSTS header
|
||||
|
@ -107,7 +109,6 @@ aircomms.com: did not receive HSTS header
|
|||
aishnair.com: could not connect to host
|
||||
aiticon.de: did not receive HSTS header
|
||||
aiw-thkoeln.online: could not connect to host
|
||||
ajmahal.com: could not connect to host
|
||||
akclinics.org: did not receive HSTS header
|
||||
akselimedia.fi: did not receive HSTS header
|
||||
akutun.cl: did not receive HSTS header
|
||||
|
@ -132,7 +133,6 @@ alkami.com: did not receive HSTS header
|
|||
alkamitech.com: did not receive HSTS header
|
||||
all-subtitles.com: did not receive HSTS header
|
||||
allinnote.com: could not connect to host
|
||||
allmbw.com: could not connect to host
|
||||
allstarswithus.com: could not connect to host
|
||||
alpha.irccloud.com: could not connect to host
|
||||
alphabit-secure.com: could not connect to host
|
||||
|
@ -157,6 +157,7 @@ andreasbreitenlohner.de: did not receive HSTS header
|
|||
andreasolsson.se: could not connect to host
|
||||
andrewmichaud.beer: could not connect to host
|
||||
andrewmichaud.me: did not receive HSTS header
|
||||
andreypopp.com: could not connect to host
|
||||
androoz.se: did not receive HSTS header
|
||||
andymartin.cc: did not receive HSTS header
|
||||
anfsanchezo.me: could not connect to host
|
||||
|
@ -206,6 +207,7 @@ arabdigitalexpression.org: did not receive HSTS header
|
|||
aradulconteaza.ro: could not connect to host
|
||||
aran.me.uk: could not connect to host
|
||||
arbu.eu: max-age too low: 2419200
|
||||
arksan.com.tr: could not connect to host
|
||||
arlen.se: could not connect to host
|
||||
armory.consulting: could not connect to host
|
||||
armory.supplies: could not connect to host
|
||||
|
@ -280,6 +282,7 @@ basicsolutionsus.com: did not receive HSTS header
|
|||
bassh.net: did not receive HSTS header
|
||||
baumstark.ca: did not receive HSTS header
|
||||
bazarstupava.sk: did not receive HSTS header
|
||||
bazdell.com: could not connect to host
|
||||
bcbsmagentprofile.com: could not connect to host
|
||||
bccx.com: could not connect to host
|
||||
bckp.de: could not connect to host
|
||||
|
@ -375,7 +378,7 @@ bngsecure.com: [Exception... "Component returned failure code: 0x80004005 (NS_ER
|
|||
bobiji.com: did not receive HSTS header
|
||||
bockenauer.at: max-age too low: 0
|
||||
bodo-wolff.de: could not connect to host
|
||||
bodyblog.nl: could not connect to host
|
||||
bodyblog.nl: did not receive HSTS header
|
||||
bodybuilding-legends.com: could not connect to host
|
||||
bodyweightsolution.com: could not connect to host
|
||||
boensou.com: did not receive HSTS header
|
||||
|
@ -392,7 +395,6 @@ boomerang.com: could not connect to host
|
|||
bootjp.me: did not receive HSTS header
|
||||
boringsecurity.net: could not connect to host
|
||||
boris.one: did not receive HSTS header
|
||||
bosun.io: could not connect to host
|
||||
botox.bz: did not receive HSTS header
|
||||
bouwbedrijfpurmerend.nl: did not receive HSTS header
|
||||
bowlroll.net: max-age too low: 0
|
||||
|
@ -408,7 +410,9 @@ bran.cc: could not connect to host
|
|||
branchtrack.com: did not receive HSTS header
|
||||
brandon.so: could not connect to host
|
||||
bregnedalsystems.dk: did not receive HSTS header
|
||||
brideandgroomdirect.ie: did not receive HSTS header
|
||||
brks.xyz: could not connect to host
|
||||
brockmeyer.org: could not connect to host
|
||||
broken-oak.com: could not connect to host
|
||||
brokenhands.io: could not connect to host
|
||||
brookechase.com: did not receive HSTS header
|
||||
|
@ -499,6 +503,7 @@ cejhon.cz: could not connect to host
|
|||
ceml.ch: did not receive HSTS header
|
||||
centralvacsunlimited.net: did not receive HSTS header
|
||||
centrepoint-community.com: could not connect to host
|
||||
centricweb.com: could not connect to host
|
||||
cerize.love: could not connect to host
|
||||
cert.se: max-age too low: 2628001
|
||||
certmgr.org: could not connect to host
|
||||
|
@ -512,6 +517,7 @@ championsofregnum.com: did not receive HSTS header
|
|||
changelab.cc: max-age too low: 0
|
||||
chaos.fail: did not receive HSTS header
|
||||
chargejuice.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
charl.eu: could not connect to host
|
||||
charmyadesara.com: could not connect to host
|
||||
charnleyhouse.co.uk: max-age too low: 604800
|
||||
chartpen.com: did not receive HSTS header
|
||||
|
@ -555,6 +561,7 @@ citiagent.cz: could not connect to host
|
|||
cityoflaurel.org: did not receive HSTS header
|
||||
clara-baumert.de: could not connect to host
|
||||
classicspublishing.com: could not connect to host
|
||||
claudio4.com: did not receive HSTS header
|
||||
clcleaningco.com: could not connect to host
|
||||
cleaningsquad.ca: max-age too low: 0
|
||||
clemovementlaw.com: could not connect to host
|
||||
|
@ -566,6 +573,7 @@ clintonbloodworth.io: could not connect to host
|
|||
clintwilson.technology: max-age too low: 2592000
|
||||
cloud.wtf: could not connect to host
|
||||
cloudapi.vc: could not connect to host
|
||||
cloudapps.digital: could not connect to host
|
||||
cloudcert.org: did not receive HSTS header
|
||||
cloudcy.net: could not connect to host
|
||||
clouddesktop.co.nz: did not receive HSTS header
|
||||
|
@ -750,7 +758,6 @@ debank.tv: did not receive HSTS header
|
|||
debtkit.co.uk: did not receive HSTS header
|
||||
decafu.co: could not connect to host
|
||||
decibelios.li: could not connect to host
|
||||
decomplify.com: could not connect to host
|
||||
dedicatutiempo.es: could not connect to host
|
||||
deepcovelabs.net: could not connect to host
|
||||
degroetenvanrosaline.nl: did not receive HSTS header
|
||||
|
@ -852,7 +859,6 @@ dullsir.com: did not receive HSTS header
|
|||
duria.de: max-age too low: 3600
|
||||
dutch1.nl: did not receive HSTS header
|
||||
dwhd.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
dworzak.ch: could not connect to host
|
||||
dycontrol.de: could not connect to host
|
||||
dylanscott.com.au: did not receive HSTS header
|
||||
dynamize.solutions: could not connect to host
|
||||
|
@ -901,13 +907,14 @@ elimdengelen.com: did not receive HSTS header
|
|||
elitefishtank.com: could not connect to host
|
||||
elnutricionista.es: did not receive HSTS header
|
||||
elpo.xyz: could not connect to host
|
||||
elsamakhin.com: could not connect to host
|
||||
elsitar.com: could not connect to host
|
||||
email.lookout.com: could not connect to host
|
||||
emeldi-commerce.com: max-age too low: 0
|
||||
emilyhorsman.com: could not connect to host
|
||||
emmable.com: could not connect to host
|
||||
emnitech.com: could not connect to host
|
||||
empleostampico.com: could not connect to host
|
||||
empleostampico.com: did not receive HSTS header
|
||||
enargia.jp: max-age too low: 0
|
||||
encode.space: did not receive HSTS header
|
||||
encoder.pw: could not connect to host
|
||||
|
@ -929,12 +936,11 @@ epanurse.com: could not connect to host
|
|||
ephry.com: could not connect to host
|
||||
epoxate.com: did not receive HSTS header
|
||||
eq8.net.au: could not connect to host
|
||||
equate.net.au: could not connect to host
|
||||
equatetechnologies.com.au: could not connect to host
|
||||
equate.net.au: max-age too low: 3600
|
||||
equatetechnologies.com.au: max-age too low: 3600
|
||||
equilibre-yoga-jennifer-will.com: could not connect to host
|
||||
eressea.xyz: could not connect to host
|
||||
ericyl.com: could not connect to host
|
||||
eriix.org: could not connect to host
|
||||
eromixx.com: did not receive HSTS header
|
||||
erotalia.es: could not connect to host
|
||||
eroticen.com: did not receive HSTS header
|
||||
|
@ -943,6 +949,7 @@ errlytics.com: [Exception... "Component returned failure code: 0x80004005 (NS_ER
|
|||
errolz.com: could not connect to host
|
||||
errors.zenpayroll.com: could not connect to host
|
||||
esclear.de: did not receive HSTS header
|
||||
escotour.com: did not receive HSTS header
|
||||
esec.rs: did not receive HSTS header
|
||||
espra.com: could not connect to host
|
||||
essexcosmeticdentists.co.uk: did not receive HSTS header
|
||||
|
@ -992,8 +999,6 @@ factorable.net: did not receive HSTS header
|
|||
factorygw.com: did not receive HSTS header
|
||||
fadilus.com: did not receive HSTS header
|
||||
faesser.com: did not receive HSTS header
|
||||
fahrenwal.de: could not connect to host
|
||||
fahrenwalde.de: could not connect to host
|
||||
fail4free.de: did not receive HSTS header
|
||||
faizan.net: did not receive HSTS header
|
||||
faizan.xyz: could not connect to host
|
||||
|
@ -1001,7 +1006,6 @@ fakeletters.org: could not connect to host
|
|||
falkena.net: max-age too low: 5184000
|
||||
falkp.no: did not receive HSTS header
|
||||
fanyl.cn: did not receive HSTS header
|
||||
fasdoutreach.ca: could not connect to host
|
||||
fashioncare.cz: did not receive HSTS header
|
||||
fasset.jp: could not connect to host
|
||||
fastopen.ml: could not connect to host
|
||||
|
@ -1037,7 +1041,7 @@ fingent.com: did not receive HSTS header
|
|||
finiteheap.com: could not connect to host
|
||||
firebaseio-demo.com: could not connect to host
|
||||
firebaseio.com: could not connect to host (error ignored - included regardless)
|
||||
firefall.rocks: did not receive HSTS header
|
||||
firefall.rocks: could not connect to host
|
||||
firemail.io: could not connect to host
|
||||
firstforex.co.uk: did not receive HSTS header
|
||||
fish2.me: did not receive HSTS header
|
||||
|
@ -1086,6 +1090,7 @@ foxtrot.pw: could not connect to host
|
|||
fr33d0m.link: could not connect to host
|
||||
francevpn.xyz: could not connect to host
|
||||
frangor.info: did not receive HSTS header
|
||||
frank.fyi: could not connect to host
|
||||
fransallen.com: did not receive HSTS header
|
||||
frasys.io: did not receive HSTS header
|
||||
freeflow.tv: could not connect to host
|
||||
|
@ -1137,7 +1142,7 @@ gamingmedia.eu: could not connect to host
|
|||
gampenhof.de: did not receive HSTS header
|
||||
gaptek.id: did not receive HSTS header
|
||||
gatilagata.com.br: did not receive HSTS header
|
||||
gaussorgues.me: could not connect to host
|
||||
gcsepod.com: did not receive HSTS header
|
||||
gdpventure.com: max-age too low: 0
|
||||
gedankenbude.info: did not receive HSTS header
|
||||
geekcast.co.uk: could not connect to host
|
||||
|
@ -1165,19 +1170,20 @@ gfournier.ca: could not connect to host
|
|||
gfwsb.ml: could not connect to host
|
||||
gheorghesarcov.ga: could not connect to host
|
||||
gheorghesarcov.tk: could not connect to host
|
||||
gigacloud.org: could not connect to host
|
||||
gigacloud.org: did not receive HSTS header
|
||||
gilgaz.com: did not receive HSTS header
|
||||
gilly.berlin: did not receive HSTS header
|
||||
gingali.de: did not receive HSTS header
|
||||
gipsamsfashion.com: could not connect to host
|
||||
gistfy.com: could not connect to host
|
||||
github.party: could not connect to host
|
||||
givemyanswer.com: could not connect to host
|
||||
givemyanswer.com: did not receive HSTS header
|
||||
gizzo.sk: could not connect to host
|
||||
gjspunk.de: did not receive HSTS header
|
||||
gl.search.yahoo.com: did not receive HSTS header
|
||||
glass.google.com: did not receive HSTS header (error ignored - included regardless)
|
||||
glentakahashi.com: max-age too low: 0
|
||||
glitzmirror.com: could not connect to host
|
||||
globalexpert.co.nz: could not connect to host
|
||||
globalittech.com: could not connect to host
|
||||
globalmusic.ga: could not connect to host
|
||||
|
@ -1320,6 +1326,7 @@ highseer.com: did not receive HSTS header
|
|||
highsurf-miyazaki.com: did not receive HSTS header
|
||||
hiitcentre.com: did not receive HSTS header
|
||||
hikariempire.com: could not connect to host
|
||||
hillcity.org.nz: did not receive HSTS header
|
||||
hiphopconvention.nl: could not connect to host
|
||||
hitoy.org: did not receive HSTS header
|
||||
hittipps.com: did not receive HSTS header
|
||||
|
@ -1365,6 +1372,7 @@ hydra.ws: could not connect to host
|
|||
i-jp.net: could not connect to host
|
||||
i-partners.sk: did not receive HSTS header
|
||||
i1314.gdn: did not receive HSTS header
|
||||
i95.me: did not receive HSTS header
|
||||
iamokay.nl: did not receive HSTS header
|
||||
iamveto.com: could not connect to host
|
||||
iapws.com: did not receive HSTS header
|
||||
|
@ -1387,6 +1395,7 @@ ies-italia.it: did not receive HSTS header
|
|||
ies.id.lv: could not connect to host
|
||||
ifleurs.com: could not connect to host
|
||||
ifoss.me: could not connect to host
|
||||
igk.de: could not connect to host
|
||||
ignatisd.gr: did not receive HSTS header
|
||||
igule.net: could not connect to host
|
||||
ihrlotto.de: could not connect to host
|
||||
|
@ -1442,6 +1451,7 @@ insite-feedback.com: did not receive HSTS header
|
|||
inspiroinc.com: could not connect to host
|
||||
instacart.com: did not receive HSTS header
|
||||
instantdev.io: could not connect to host
|
||||
intarweb.ca: could not connect to host
|
||||
intel.li: could not connect to host
|
||||
intercom.io: did not receive HSTS header
|
||||
interference.io: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
|
@ -1459,7 +1469,7 @@ ionx.co.uk: did not receive HSTS header
|
|||
iop.intuit.com: max-age too low: 86400
|
||||
iosmods.com: could not connect to host
|
||||
iostips.ru: could not connect to host
|
||||
ip6.im: could not connect to host
|
||||
ip6.im: did not receive HSTS header
|
||||
ipmimagazine.com: did not receive HSTS header
|
||||
iptel.by: max-age too low: 0
|
||||
iptel.ro: could not connect to host
|
||||
|
@ -1470,7 +1480,7 @@ iranianlawschool.com: could not connect to host
|
|||
iraqidinar.org: did not receive HSTS header
|
||||
irazimina.ru: did not receive HSTS header
|
||||
irccloud.com: did not receive HSTS header
|
||||
ircmett.de: did not receive HSTS header
|
||||
ircmett.de: could not connect to host
|
||||
iready.ro: could not connect to host
|
||||
irukandjilabs.com: could not connect to host
|
||||
ischool.co.jp: did not receive HSTS header
|
||||
|
@ -1492,11 +1502,13 @@ itshost.ru: could not connect to host
|
|||
ivi-fertility.com: max-age too low: 0
|
||||
ivi.es: max-age too low: 0
|
||||
ivk.website: could not connect to host
|
||||
iww.mx: could not connect to host
|
||||
izdiwho.com: could not connect to host
|
||||
izzzorgconcerten.nl: could not connect to host
|
||||
ja-publications.com: did not receive HSTS header
|
||||
jaba.hosting: did not receive HSTS header
|
||||
jabbari.io: did not receive HSTS header
|
||||
jackalworks.com: could not connect to host
|
||||
jacobparry.ca: did not receive HSTS header
|
||||
jagido.de: did not receive HSTS header
|
||||
jahliveradio.com: could not connect to host
|
||||
|
@ -1532,6 +1544,7 @@ jbbd.fr: could not connect to host
|
|||
jbn.mx: could not connect to host
|
||||
jcch.de: could not connect to host
|
||||
jcor.me: could not connect to host
|
||||
jctf.io: could not connect to host
|
||||
jeff393.com: could not connect to host
|
||||
jenjoit.de: could not connect to host
|
||||
jensenbanden.no: could not connect to host
|
||||
|
@ -1539,6 +1552,7 @@ jeremye77.com: could not connect to host
|
|||
jesorsenville.com: did not receive HSTS header
|
||||
jessicabenedictus.nl: could not connect to host
|
||||
jetaprices.com: max-age too low: 0
|
||||
jetsetpay.com: could not connect to host
|
||||
jettshome.org: could not connect to host
|
||||
jeugdkans.nl: did not receive HSTS header
|
||||
jf.duckdns.org: could not connect to host
|
||||
|
@ -1550,7 +1564,6 @@ jikken.de: could not connect to host
|
|||
jimas.eu: did not receive HSTS header
|
||||
jimmycai.org: max-age too low: 10368000
|
||||
jinbo123.com: did not receive HSTS header
|
||||
jiyuu-ni.net: could not connect to host
|
||||
jkb.pics: could not connect to host
|
||||
jkbuster.com: could not connect to host
|
||||
jmdekker.it: could not connect to host
|
||||
|
@ -1568,6 +1581,7 @@ jonathancarter.org: [Exception... "Component returned failure code: 0x80004005 (
|
|||
jonathandowning.uk: could not connect to host
|
||||
jonn.me: could not connect to host
|
||||
joostbovee.nl: did not receive HSTS header
|
||||
joran.org: could not connect to host
|
||||
joretapo.fr: could not connect to host
|
||||
jornane.nl: could not connect to host
|
||||
josahrens.me: could not connect to host
|
||||
|
@ -1581,7 +1595,7 @@ jsanders.us: did not receive HSTS header
|
|||
jualssh.com: could not connect to host
|
||||
juchit.at: did not receive HSTS header
|
||||
juliamweber.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
julian-kipka.de: did not receive HSTS header
|
||||
julian-kipka.de: could not connect to host
|
||||
jumbox.xyz: could not connect to host
|
||||
junaos.xyz: did not receive HSTS header
|
||||
junge-selbsthilfe.info: could not connect to host
|
||||
|
@ -1600,14 +1614,11 @@ kabus.org: could not connect to host
|
|||
kadioglumakina.com.tr: did not receive HSTS header
|
||||
kahopoon.net: could not connect to host
|
||||
kaisers.de: did not receive HSTS header
|
||||
kalami.nl: could not connect to host
|
||||
kalian.cz: could not connect to host
|
||||
kalami.nl: did not receive HSTS header
|
||||
kamikano.com: could not connect to host
|
||||
kantanmt.com: did not receive HSTS header
|
||||
kaplatz.is: could not connect to host
|
||||
kapucini.si: max-age too low: 0
|
||||
karaoketonight.com: could not connect to host
|
||||
kashmirobserver.net: could not connect to host
|
||||
katiaetdavid.fr: could not connect to host
|
||||
katproxy.online: could not connect to host
|
||||
katproxy.site: could not connect to host
|
||||
|
@ -1692,7 +1703,6 @@ kurehun.org: could not connect to host
|
|||
kurz.pw: did not receive HSTS header
|
||||
kusaka-abacus.jp: max-age too low: 0
|
||||
kweddingplanning.com: did not receive HSTS header
|
||||
kwidz.fr: did not receive HSTS header
|
||||
kwok.tv: could not connect to host
|
||||
kyanite.co: could not connect to host
|
||||
kylinj.com: could not connect to host
|
||||
|
@ -1816,6 +1826,7 @@ lotsencafe.de: did not receive HSTS header
|
|||
lovelifelovelive.com: could not connect to host
|
||||
lovelycorral.com: did not receive HSTS header
|
||||
loveto.at: could not connect to host
|
||||
lovizaim.ru: did not receive HSTS header
|
||||
lpak.nl: could not connect to host
|
||||
lrhsclubs.com: could not connect to host
|
||||
lrhstsa.com: could not connect to host
|
||||
|
@ -1850,7 +1861,6 @@ maarten.nyc: did not receive HSTS header
|
|||
maartenvandekamp.nl: did not receive HSTS header
|
||||
macchaberrycream.com: could not connect to host
|
||||
macchedil.com: did not receive HSTS header
|
||||
macgeneral.de: could not connect to host
|
||||
madars.org: did not receive HSTS header
|
||||
maddin.ga: could not connect to host
|
||||
madebymagnitude.com: did not receive HSTS header
|
||||
|
@ -1889,6 +1899,7 @@ marleyresort.com: did not receive HSTS header
|
|||
marsble.com: did not receive HSTS header
|
||||
marshut.net: could not connect to host
|
||||
martijnvhoof.nl: could not connect to host
|
||||
martinreed.net: could not connect to host
|
||||
martinsfamilyappliance.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
masjidtawheed.net: did not receive HSTS header
|
||||
massotherapeutique.com: did not receive HSTS header
|
||||
|
@ -1962,7 +1973,6 @@ micro-dv.ru: could not connect to host
|
|||
microme.ga: could not connect to host
|
||||
micropple.net: could not connect to host
|
||||
midwestwomenworkers.org: did not receive HSTS header
|
||||
migeeks.de: did not receive HSTS header
|
||||
mightydicks.io: could not connect to host
|
||||
mightydicks.tech: could not connect to host
|
||||
mightysounds.cz: max-age too low: 0
|
||||
|
@ -1996,6 +2006,8 @@ mivcon.net: could not connect to host
|
|||
mizd.at: could not connect to host
|
||||
mizi.name: did not receive HSTS header
|
||||
mlpepilepsy.org: could not connect to host
|
||||
mm13.at: could not connect to host
|
||||
mmgazhomeloans.com: did not receive HSTS header
|
||||
mnemotiv.com: could not connect to host
|
||||
mnetworkingsolutions.co.uk: did not receive HSTS header
|
||||
mobilekey.co: could not connect to host
|
||||
|
@ -2023,10 +2035,10 @@ morningcalculation.com: could not connect to host
|
|||
morotech.com.br: max-age too low: 2592000
|
||||
morpork.xyz: could not connect to host
|
||||
mortgagecentersmo.com: did not receive HSTS header
|
||||
morz.org: could not connect to host
|
||||
mostwuat.com: could not connect to host
|
||||
motherbase.io: could not connect to host
|
||||
motionpicturesolutions.com: could not connect to host
|
||||
motocyklovedily.cz: did not receive HSTS header
|
||||
mottvd.com: could not connect to host
|
||||
moula.com.au: did not receive HSTS header
|
||||
mountainadventureseminars.com: did not receive HSTS header
|
||||
|
@ -2046,6 +2058,7 @@ mtcgf.com: did not receive HSTS header
|
|||
mtg-esport.de: did not receive HSTS header
|
||||
mu.search.yahoo.com: did not receive HSTS header
|
||||
munich-rage.de: did not receive HSTS header
|
||||
munuc.org: did not receive HSTS header
|
||||
munzee.com: did not receive HSTS header
|
||||
muriburi.land: could not connect to host
|
||||
muriburiland.com: could not connect to host
|
||||
|
@ -2063,7 +2076,6 @@ mycollab.net: could not connect to host
|
|||
mycoted.com: did not receive HSTS header
|
||||
mydeos.com: could not connect to host
|
||||
mydigipass.com: did not receive HSTS header
|
||||
mygallery.homelinux.net: did not receive HSTS header
|
||||
mygov.scot: did not receive HSTS header
|
||||
myiocc.org: could not connect to host
|
||||
mykolab.com: did not receive HSTS header
|
||||
|
@ -2075,6 +2087,7 @@ mypagella.it: could not connect to host
|
|||
myplaceonline.com: did not receive HSTS header
|
||||
mysecretrewards.com: did not receive HSTS header
|
||||
mystudy.me: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
mythslegendscollection.com: did not receive HSTS header
|
||||
myvirtualserver.com: max-age too low: 2592000
|
||||
myzone.com: did not receive HSTS header
|
||||
mziulu.me: could not connect to host
|
||||
|
@ -2088,6 +2101,7 @@ nalifornia.com: did not receive HSTS header
|
|||
nametaken-cloud.duckdns.org: could not connect to host
|
||||
nanogeneinc.com: could not connect to host
|
||||
nansay.cn: could not connect to host
|
||||
naphex.rocks: could not connect to host
|
||||
natalia.io: could not connect to host
|
||||
natalt.org: did not receive HSTS header
|
||||
naturesystems.cz: max-age too low: 0
|
||||
|
@ -2102,10 +2116,9 @@ nbg-ha.de: could not connect to host
|
|||
ncc60205.info: could not connect to host
|
||||
nct.org.uk: max-age too low: 1
|
||||
nctx.co.uk: did not receive HSTS header
|
||||
neap.io: did not receive HSTS header
|
||||
neel.ch: could not connect to host
|
||||
neftaly.com: did not receive HSTS header
|
||||
neilgreen.net: did not receive HSTS header
|
||||
neilgreen.net: could not connect to host
|
||||
neko-system.com: did not receive HSTS header
|
||||
nemno.de: could not connect to host
|
||||
nemovement.org: did not receive HSTS header
|
||||
|
@ -2116,6 +2129,7 @@ nerven.se: could not connect to host
|
|||
nestedquotes.ca: could not connect to host
|
||||
netbox.cc: could not connect to host
|
||||
netherwind.eu: did not receive HSTS header
|
||||
nethruster.com: could not connect to host
|
||||
netlilo.com: could not connect to host
|
||||
netsight.org: could not connect to host
|
||||
netzbit.de: could not connect to host
|
||||
|
@ -2160,7 +2174,6 @@ nocallaghan.com: could not connect to host
|
|||
nodebrewery.com: could not connect to host
|
||||
nodetemple.com: could not connect to host
|
||||
noexpect.org: could not connect to host
|
||||
nohats.ca: could not connect to host
|
||||
nolatepayments.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
nolte.work: could not connect to host
|
||||
nomorebytes.de: did not receive HSTS header
|
||||
|
@ -2281,6 +2294,7 @@ otichi.com: did not receive HSTS header
|
|||
ottospora.nl: could not connect to host
|
||||
ourbank.com: did not receive HSTS header
|
||||
outetc.com: could not connect to host
|
||||
outreachbuddy.com: could not connect to host
|
||||
outsider.im: could not connect to host
|
||||
ouvirmusica.com.br: did not receive HSTS header
|
||||
ovenapp.io: did not receive HSTS header
|
||||
|
@ -2305,6 +2319,7 @@ pantsu.cat: did not receive HSTS header
|
|||
papeda.net: did not receive HSTS header
|
||||
papercard.co.uk: did not receive HSTS header
|
||||
papierniak.net: could not connect to host
|
||||
paragonie.com: could not connect to host
|
||||
parentmail.co.uk: did not receive HSTS header
|
||||
particonpsplus.it: could not connect to host
|
||||
partijtjevoordevrijheid.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
|
@ -2376,7 +2391,6 @@ piratenlogin.de: could not connect to host
|
|||
pirati.cz: max-age too low: 604800
|
||||
pirlitu.com: did not receive HSTS header
|
||||
pisidia.de: could not connect to host
|
||||
pitfire.io: did not receive HSTS header
|
||||
pittonpreschool.com: did not receive HSTS header
|
||||
pixel.google.com: did not receive HSTS header (error ignored - included regardless)
|
||||
pixelhero.co.uk: did not receive HSTS header
|
||||
|
@ -2388,12 +2402,11 @@ platform.lookout.com: could not connect to host
|
|||
play.google.com: did not receive HSTS header (error ignored - included regardless)
|
||||
playmaker.io: could not connect to host
|
||||
playnation.io: did not receive HSTS header
|
||||
plogable.co: did not receive HSTS header
|
||||
plogable.co: could not connect to host
|
||||
plothost.com: did not receive HSTS header
|
||||
ploup.net: could not connect to host
|
||||
pmnts.io: could not connect to host
|
||||
po.gl: could not connect to host
|
||||
pocketsix.com: did not receive HSTS header
|
||||
poiema.com.sg: did not receive HSTS header
|
||||
pol.in.th: could not connect to host
|
||||
poleartschool.com: could not connect to host
|
||||
|
@ -2419,7 +2432,6 @@ powerplannerapp.com: did not receive HSTS header
|
|||
powerxequality.com: could not connect to host
|
||||
ppr-truby.ru: could not connect to host
|
||||
pr.search.yahoo.com: did not receive HSTS header
|
||||
practicallabs.com: could not connect to host
|
||||
prefontaine.name: could not connect to host
|
||||
prego-shop.de: did not receive HSTS header
|
||||
preissler.co.uk: could not connect to host
|
||||
|
@ -2443,7 +2455,6 @@ progg.no: could not connect to host
|
|||
prohostonline.fi: could not connect to host
|
||||
promecon-gmbh.de: did not receive HSTS header
|
||||
prontolight.com: did not receive HSTS header
|
||||
propertygroup.pl: max-age too low: 3600
|
||||
prosoft.sk: did not receive HSTS header
|
||||
prosperident.com: did not receive HSTS header
|
||||
prowhisky.de: did not receive HSTS header
|
||||
|
@ -2451,7 +2462,6 @@ proximato.com: could not connect to host
|
|||
proxybay.al: could not connect to host
|
||||
proxybay.club: could not connect to host
|
||||
proxybay.info: did not receive HSTS header
|
||||
prxio.date: could not connect to host
|
||||
prxio.site: could not connect to host
|
||||
prytkov.com: did not receive HSTS header
|
||||
psncardplus.be: did not receive HSTS header
|
||||
|
@ -2478,7 +2488,6 @@ pypi-status.org: could not connect to host
|
|||
pyplo.org: did not receive HSTS header
|
||||
pypt.lt: did not receive HSTS header
|
||||
q2.si: could not connect to host
|
||||
qctravelschool.com: could not connect to host
|
||||
qingxuan.info: max-age too low: 864000
|
||||
qinxi1992.com: did not receive HSTS header
|
||||
qiwi.be: did not receive HSTS header
|
||||
|
@ -2518,10 +2527,10 @@ realmic.net: could not connect to host
|
|||
realmofespionage.com: could not connect to host
|
||||
reardenporn.com: could not connect to host
|
||||
recommended.reviews: could not connect to host
|
||||
recyclingpromotions.us: could not connect to host
|
||||
reddiseals.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
reddit.com: did not receive HSTS header
|
||||
redicabo.de: could not connect to host
|
||||
rediske.me: could not connect to host
|
||||
redlatam.org: did not receive HSTS header
|
||||
redmbk.com: could not connect to host
|
||||
regaloaks.com: did not receive HSTS header
|
||||
|
@ -2590,7 +2599,6 @@ rootservice.org: did not receive HSTS header
|
|||
rootwpn.com: could not connect to host
|
||||
rop.io: could not connect to host
|
||||
rotterdamjazz.info: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
rotzonline.com: did not receive HSTS header
|
||||
roundtheme.com: did not receive HSTS header
|
||||
rout0r.org: did not receive HSTS header
|
||||
rouvray.org: could not connect to host
|
||||
|
@ -2641,12 +2649,13 @@ samraskauskas.com: could not connect to host
|
|||
samsen.club: did not receive HSTS header
|
||||
sandviks.com: did not receive HSTS header
|
||||
sansemea.com: could not connect to host
|
||||
sapk.fr: could not connect to host
|
||||
sarah-beckett-harpist.com: did not receive HSTS header
|
||||
sarahsweetlife.com: could not connect to host
|
||||
sarisonproductions.com: could not connect to host
|
||||
saruwebshop.co.za: did not receive HSTS header
|
||||
satmep.com: did not receive HSTS header
|
||||
satriyowibowo.my.id: could not connect to host
|
||||
satriyowibowo.my.id: did not receive HSTS header
|
||||
satsukii.moe: did not receive HSTS header
|
||||
saturngames.co.uk: did not receive HSTS header
|
||||
saunasandstuff.ca: did not receive HSTS header
|
||||
|
@ -2688,7 +2697,6 @@ security.google.com: did not receive HSTS header (error ignored - included regar
|
|||
securityinet.biz: did not receive HSTS header
|
||||
securityinet.net: did not receive HSTS header
|
||||
securityinet.org.il: did not receive HSTS header
|
||||
securityprimes.in: could not connect to host
|
||||
securitysoapbox.com: could not connect to host
|
||||
securiviera.ch: did not receive HSTS header
|
||||
seedbox.fr: did not receive HSTS header
|
||||
|
@ -2768,16 +2776,16 @@ simon.butcher.name: max-age too low: 2629743
|
|||
simplefraud.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
simplelearner.com: could not connect to host
|
||||
simplepractice.com: did not receive HSTS header
|
||||
simplixos.org: could not connect to host
|
||||
simply-premium.com: did not receive HSTS header
|
||||
sincron.org: could not connect to host
|
||||
sinful.pw: could not connect to host
|
||||
siriad.com: did not receive HSTS header
|
||||
sirius-lee.net: could not connect to host
|
||||
sistem-maklumat.com: did not receive HSTS header
|
||||
sistemy48.ru: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
sites.google.com: did not receive HSTS header (error ignored - included regardless)
|
||||
sitesten.com: did not receive HSTS header
|
||||
sitsy.ru: did not receive HSTS header
|
||||
sizingservers.be: could not connect to host
|
||||
skhosting.eu: did not receive HSTS header
|
||||
skile.ru: could not connect to host
|
||||
skk.io: could not connect to host
|
||||
|
@ -2794,7 +2802,7 @@ slix.io: could not connect to host
|
|||
slope.haus: could not connect to host
|
||||
slovakiana.sk: did not receive HSTS header
|
||||
sluitkampzeist.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
slycurity.de: could not connect to host
|
||||
slycurity.de: did not receive HSTS header
|
||||
smart-ov.nl: could not connect to host
|
||||
smartcoin.com.br: could not connect to host
|
||||
smartofficesandsmarthomes.com: did not receive HSTS header
|
||||
|
@ -2873,6 +2881,7 @@ spreadsheets.google.com: did not receive HSTS header (error ignored - included r
|
|||
spreed.me: did not receive HSTS header
|
||||
sproutconnections.com: did not receive HSTS header
|
||||
sprybear.com: did not receive HSTS header
|
||||
spyprofit.ru: could not connect to host
|
||||
square.gs: could not connect to host
|
||||
squatldf.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
sqzryang.com: max-age too low: 604800
|
||||
|
@ -2887,7 +2896,7 @@ ssnc.org: max-age too low: 300
|
|||
stabletoken.com: could not connect to host
|
||||
stadjerspasonline.nl: could not connect to host
|
||||
stateofexception.io: could not connect to host
|
||||
static.or.at: could not connect to host
|
||||
static.or.at: did not receive HSTS header
|
||||
staticanime.net: could not connect to host
|
||||
stationaryjourney.com: did not receive HSTS header
|
||||
stationnementdenuit.ca: did not receive HSTS header
|
||||
|
@ -3015,7 +3024,6 @@ tensionup.com: could not connect to host
|
|||
teodio.cl: did not receive HSTS header
|
||||
terrax.berlin: could not connect to host
|
||||
terrax.info: could not connect to host
|
||||
terrax.net: could not connect to host
|
||||
testandroid.xyz: could not connect to host
|
||||
testbawks.com: did not receive HSTS header
|
||||
testnode.xyz: could not connect to host
|
||||
|
@ -3050,9 +3058,11 @@ theodorejones.info: could not connect to host
|
|||
thepartywarehouse.co.uk: did not receive HSTS header
|
||||
thepiratebay.al: could not connect to host
|
||||
therapyportal.com: did not receive HSTS header
|
||||
therewill.be: could not connect to host
|
||||
thestack.xyz: could not connect to host
|
||||
thestagchorleywood.co.uk: did not receive HSTS header
|
||||
thetomharling.com: max-age too low: 86400
|
||||
thetradinghall.com: could not connect to host
|
||||
theurbanyoga.com: did not receive HSTS header
|
||||
thevintagenews.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
thewhitneypaige.com: could not connect to host
|
||||
|
@ -3067,6 +3077,7 @@ thirty5.net: did not receive HSTS header
|
|||
thomasschweizer.net: could not connect to host
|
||||
thorncreek.net: did not receive HSTS header
|
||||
thumbtack.com: did not receive HSTS header
|
||||
ticfleet.com: could not connect to host
|
||||
tickopa.co.uk: could not connect to host
|
||||
tickreport.com: did not receive HSTS header
|
||||
tictactux.de: could not connect to host
|
||||
|
@ -3108,7 +3119,7 @@ toomanypillows.com: could not connect to host
|
|||
topbargains.com.au: did not receive HSTS header
|
||||
topmarine.se: could not connect to host
|
||||
topnewstoday.org: could not connect to host
|
||||
topodin.com: could not connect to host
|
||||
topodin.com: did not receive HSTS header
|
||||
topshelfguild.com: could not connect to host
|
||||
topyx.com: did not receive HSTS header
|
||||
torahanytime.com: did not receive HSTS header
|
||||
|
@ -3146,7 +3157,6 @@ tuningblog.eu: did not receive HSTS header
|
|||
turtlementors.com: did not receive HSTS header
|
||||
tuturulianda.com: could not connect to host
|
||||
tuvalie.com: could not connect to host
|
||||
tuxcloud.net: did not receive HSTS header
|
||||
tv.search.yahoo.com: could not connect to host
|
||||
tvtubeflix.com: did not receive HSTS header
|
||||
tvz-materijali.com: could not connect to host
|
||||
|
@ -3171,7 +3181,6 @@ tyroproducts.eu: did not receive HSTS header
|
|||
tzappa.net: could not connect to host
|
||||
u-blox.com: did not receive HSTS header
|
||||
ua.search.yahoo.com: did not receive HSTS header
|
||||
uangteman.com: did not receive HSTS header
|
||||
ubicloud.de: could not connect to host
|
||||
ublox.com: did not receive HSTS header
|
||||
ubuntuhot.com: did not receive HSTS header
|
||||
|
@ -3190,16 +3199,19 @@ unbanthe.net: could not connect to host
|
|||
unblocked.host: could not connect to host
|
||||
unccdesign.club: could not connect to host
|
||||
undernet.uy: did not receive HSTS header
|
||||
underskatten.tk: could not connect to host
|
||||
unfiltered.nyc: did not receive HSTS header
|
||||
uni-games.com: could not connect to host
|
||||
unicooo.com: could not connect to host
|
||||
unison.com: could not connect to host
|
||||
unitedcyberdevelopment.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
university4industry.com: did not receive HSTS header
|
||||
universogay.com: did not receive HSTS header
|
||||
univz.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
unknownphenomena.net: could not connect to host
|
||||
unplugg3r.dk: could not connect to host
|
||||
unravel.ie: did not receive HSTS header
|
||||
unterschicht.tv: did not receive HSTS header
|
||||
unwiredbrain.com: could not connect to host
|
||||
uonstaffhub.com: could not connect to host
|
||||
uow.ninja: could not connect to host
|
||||
|
@ -3256,6 +3268,7 @@ videomuz.com: did not receive HSTS header
|
|||
vidz.ga: could not connect to host
|
||||
vieaw.com: could not connect to host
|
||||
viktorsvantesson.net: did not receive HSTS header
|
||||
vinasec.se: did not receive HSTS header
|
||||
vintageheartcoffee.com: did not receive HSTS header
|
||||
vio.no: did not receive HSTS header
|
||||
viperdns.com: could not connect to host
|
||||
|
@ -3306,6 +3319,7 @@ watchium.com: did not receive HSTS header
|
|||
watchweasel.com: did not receive HSTS header
|
||||
watsonhall.uk: could not connect to host
|
||||
wave.is: could not connect to host
|
||||
wavefrontsystemstech.com: could not connect to host
|
||||
wdbgroup.co.uk: could not connect to host
|
||||
wealthfactory.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
|
||||
wear2work.nl: did not receive HSTS header
|
||||
|
@ -3357,7 +3371,6 @@ whyworldhot.com: could not connect to host
|
|||
wienholding.at: max-age too low: 0
|
||||
wieninternational.at: could not connect to host
|
||||
wiire.me: could not connect to host
|
||||
wikiclash.info: could not connect to host
|
||||
wikidsystems.com: could not connect to host
|
||||
wilf1rst.com: could not connect to host
|
||||
william.si: did not receive HSTS header
|
||||
|
@ -3431,7 +3444,7 @@ xcoop.me: could not connect to host
|
|||
xellos.ga: could not connect to host
|
||||
xellos.ml: could not connect to host
|
||||
xenesisziarovky.sk: could not connect to host
|
||||
xett.com: could not connect to host
|
||||
xett.com: did not receive HSTS header
|
||||
xfive.de: did not receive HSTS header
|
||||
xiaody.me: could not connect to host
|
||||
xiaolvmu.me: could not connect to host
|
||||
|
@ -3456,6 +3469,7 @@ xtream-hosting.com: could not connect to host
|
|||
xtream-hosting.de: could not connect to host
|
||||
xtream-hosting.eu: could not connect to host
|
||||
xtreamhosting.eu: could not connect to host
|
||||
xtremegaming.it: could not connect to host
|
||||
xuri.me: max-age too low: 2592000
|
||||
xxbase.com: could not connect to host
|
||||
y-o-w.com: did not receive HSTS header
|
||||
|
@ -3487,8 +3501,8 @@ yoloseo.com: could not connect to host
|
|||
youcontrol.ru: could not connect to host
|
||||
yourstrongbox.com: could not connect to host
|
||||
yout.com: max-age too low: 60000
|
||||
ypiresia.fr: could not connect to host
|
||||
yu.gg: did not receive HSTS header
|
||||
yuan.ga: did not receive HSTS header
|
||||
yuhen.ru: could not connect to host
|
||||
yunity.org: did not receive HSTS header
|
||||
yunzhu.li: did not receive HSTS header
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1110,7 +1110,8 @@ BookmarksTracker.prototype = {
|
|||
// *each change*.
|
||||
onItemChanged: function BMT_onItemChanged(itemId, property, isAnno, value,
|
||||
lastModified, itemType, parentId,
|
||||
guid, parentGuid, source) {
|
||||
guid, parentGuid, oldValue,
|
||||
source) {
|
||||
if (IGNORED_SOURCES.includes(source)) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ Cu.import("resource://gre/modules/PlacesUtils.jsm");
|
|||
Cu.import("resource://gre/modules/PlacesSyncUtils.jsm");
|
||||
Cu.import("resource://gre/modules/BookmarkJSONUtils.jsm");
|
||||
Cu.import("resource://gre/modules/Log.jsm");
|
||||
Cu.import("resource://services-sync/constants.js");
|
||||
Cu.import("resource://services-sync/engines.js");
|
||||
Cu.import("resource://services-sync/engines/bookmarks.js");
|
||||
Cu.import("resource://services-sync/service.js");
|
||||
|
@ -19,13 +20,20 @@ Service.engineManager.register(BookmarksEngine);
|
|||
add_task(function* test_change_during_sync() {
|
||||
_("Ensure that we track changes made during a sync.");
|
||||
|
||||
let engine = new BookmarksEngine(Service);
|
||||
let store = engine._store;
|
||||
let engine = new BookmarksEngine(Service);
|
||||
let store = engine._store;
|
||||
let tracker = engine._tracker;
|
||||
let server = serverForFoo(engine);
|
||||
new SyncTestingInfrastructure(server.server);
|
||||
|
||||
let collection = server.user("foo").collection("bookmarks");
|
||||
|
||||
let bz_id = PlacesUtils.bookmarks.insertBookmark(
|
||||
PlacesUtils.bookmarksMenuFolderId, Utils.makeURI("https://bugzilla.mozilla.org/"),
|
||||
PlacesUtils.bookmarks.DEFAULT_INDEX, "Bugzilla");
|
||||
let bz_guid = yield PlacesUtils.promiseItemGuid(bz_id);
|
||||
_(`Bugzilla GUID: ${bz_guid}`);
|
||||
|
||||
Svc.Obs.notify("weave:engine:start-tracking");
|
||||
|
||||
try {
|
||||
|
@ -45,6 +53,17 @@ add_task(function* test_change_during_sync() {
|
|||
let bmk2_guid = "get-firefox1";
|
||||
let bmk3_id = -1;
|
||||
{
|
||||
// An existing record changed on the server that should not trigger
|
||||
// another sync when applied.
|
||||
let changedRecord = new Bookmark("bookmarks", bz_guid);
|
||||
changedRecord.bmkUri = "https://bugzilla.mozilla.org/";
|
||||
changedRecord.description = "New description";
|
||||
changedRecord.title = "Bugzilla";
|
||||
changedRecord.tags = ["new", "tags"];
|
||||
changedRecord.parentName = "Bookmarks Toolbar";
|
||||
changedRecord.parentid = PlacesUtils.bookmarks.toolbarGuid;
|
||||
collection.insert(bz_guid, encryptPayload(changedRecord.cleartext));
|
||||
|
||||
let localRecord = new Bookmark("bookmarks", bmk2_guid);
|
||||
localRecord.bmkUri = "http://getfirefox.com/";
|
||||
localRecord.description = "Firefox is awesome.";
|
||||
|
@ -73,7 +92,12 @@ add_task(function* test_change_during_sync() {
|
|||
}
|
||||
|
||||
_("Perform first sync");
|
||||
yield sync_engine_and_validate_telem(engine, false);
|
||||
{
|
||||
let changes = engine.pullNewChanges();
|
||||
deepEqual(changes.ids().sort(), [folder1_guid, bmk1_guid, "toolbar"].sort(),
|
||||
"Should track bookmark and folder created before first sync");
|
||||
yield sync_engine_and_validate_telem(engine, false);
|
||||
}
|
||||
|
||||
let bmk2_id = store.idForGUID(bmk2_guid);
|
||||
let bmk3_guid = store.GUIDForId(bmk3_id);
|
||||
|
@ -93,9 +117,12 @@ add_task(function* test_change_during_sync() {
|
|||
}
|
||||
|
||||
_("Perform second sync");
|
||||
yield sync_engine_and_validate_telem(engine, false);
|
||||
|
||||
{
|
||||
let changes = engine.pullNewChanges();
|
||||
deepEqual(changes.ids().sort(), [bmk3_guid, folder1_guid].sort(),
|
||||
"Should track bookmark added during last sync and its parent");
|
||||
yield sync_engine_and_validate_telem(engine, false);
|
||||
|
||||
ok(collection.wbo(bmk3_guid),
|
||||
"Bookmark created during first sync should be uploaded during second sync");
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ crashtest:
|
|||
description: "Crashtest run"
|
||||
suite: reftest/crashtest
|
||||
treeherder-symbol: tc-R(C)
|
||||
docker-image: {"in-tree": "desktop1604-test"}
|
||||
mozharness:
|
||||
script: desktop_unittest.py
|
||||
chunked: true
|
||||
|
@ -388,6 +389,7 @@ reftest:
|
|||
suite: reftest/reftest
|
||||
treeherder-symbol: tc-R(R)
|
||||
chunks: 8
|
||||
docker-image: {"in-tree": "desktop1604-test"}
|
||||
mozharness:
|
||||
script: desktop_unittest.py
|
||||
no-read-buildbot-config: true
|
||||
|
@ -404,6 +406,7 @@ reftest-no-accel:
|
|||
suite: reftest/reftest-no-accel
|
||||
treeherder-symbol: tc-R(Ru)
|
||||
chunks: 8
|
||||
docker-image: {"in-tree": "desktop1604-test"}
|
||||
mozharness:
|
||||
script: desktop_unittest.py
|
||||
no-read-buildbot-config: true
|
||||
|
|
|
@ -974,6 +974,7 @@ GeckoDriver.prototype.get = function*(cmd, resp) {
|
|||
// send errors.
|
||||
this.curBrowser.pendingCommands.push(() => {
|
||||
cmd.parameters.command_id = id;
|
||||
cmd.parameters.pageTimeout = this.pageTimeout;
|
||||
this.mm.broadcastAsyncMessage(
|
||||
"Marionette:pollForReadyState" + this.curBrowser.curFrameId,
|
||||
cmd.parameters);
|
||||
|
|
|
@ -67,6 +67,12 @@ ifdef MOZ_PACKAGE_JSSHELL
|
|||
$(RM) $(PKG_JSSHELL)
|
||||
$(MAKE_JSSHELL)
|
||||
endif # MOZ_PACKAGE_JSSHELL
|
||||
ifdef MOZ_ARTIFACT_BUILD_SYMBOLS
|
||||
@echo 'Packaging existing crashreporter symbols from artifact build...'
|
||||
$(NSINSTALL) -D $(DIST)/$(PKG_PATH)
|
||||
cd $(DIST)/crashreporter-symbols && \
|
||||
zip -r5D '../$(PKG_PATH)$(SYMBOL_ARCHIVE_BASENAME).zip' . -i '*.sym' -i '*.txt'
|
||||
endif # MOZ_ARTIFACT_BUILD_SYMBOLS
|
||||
ifdef MOZ_CODE_COVERAGE
|
||||
# Package code coverage gcno tree
|
||||
@echo 'Packaging code coverage data...'
|
||||
|
|
|
@ -92,7 +92,6 @@
|
|||
#buttonDeck {
|
||||
margin-top: 25px;
|
||||
-moz-box-align: stretch;
|
||||
-moz-box-pack: stretch;
|
||||
}
|
||||
|
||||
#continuePanel {
|
||||
|
|
|
@ -4867,11 +4867,14 @@ MultiprocessBlockPolicy() {
|
|||
}
|
||||
}
|
||||
|
||||
// For linux nightly and aurora builds skip accessibility
|
||||
// checks.
|
||||
bool doAccessibilityCheck = true;
|
||||
#if defined(MOZ_WIDGET_GTK) && !defined(RELEASE_OR_BETA)
|
||||
// For linux nightly and aurora builds skip accessibility
|
||||
// checks.
|
||||
doAccessibilityCheck = false;
|
||||
#elif defined(XP_WIN)
|
||||
// For Windows Vista and up, skip accessibility checks.
|
||||
doAccessibilityCheck = !IsVistaOrLater();
|
||||
#endif
|
||||
|
||||
if (doAccessibilityCheck && disabledForA11y) {
|
||||
|
|
|
@ -210,6 +210,235 @@ CreateEntryWidget()
|
|||
return widget;
|
||||
}
|
||||
|
||||
static GtkWidget*
|
||||
CreateComboBoxWidget()
|
||||
{
|
||||
GtkWidget* widget = gtk_combo_box_new();
|
||||
AddToWindowContainer(widget);
|
||||
return widget;
|
||||
}
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GType type;
|
||||
GtkWidget** widget;
|
||||
} GtkInnerWidgetInfo;
|
||||
|
||||
static void
|
||||
GetInnerWidget(GtkWidget* widget, gpointer client_data)
|
||||
{
|
||||
auto info = static_cast<GtkInnerWidgetInfo*>(client_data);
|
||||
|
||||
if (G_TYPE_CHECK_INSTANCE_TYPE(widget, info->type)) {
|
||||
*info->widget = widget;
|
||||
}
|
||||
|
||||
gtk_widget_realize(widget);
|
||||
}
|
||||
|
||||
static GtkWidget*
|
||||
CreateComboBoxButtonWidget()
|
||||
{
|
||||
GtkWidget* comboBox = GetWidget(MOZ_GTK_COMBOBOX);
|
||||
GtkWidget* comboBoxButton = nullptr;
|
||||
|
||||
/* Get its inner Button */
|
||||
GtkInnerWidgetInfo info = { GTK_TYPE_TOGGLE_BUTTON,
|
||||
&comboBoxButton };
|
||||
gtk_container_forall(GTK_CONTAINER(comboBox),
|
||||
GetInnerWidget, &info);
|
||||
|
||||
if (!comboBoxButton) {
|
||||
/* Shouldn't be reached with current internal gtk implementation; we
|
||||
* use a generic toggle button as last resort fallback to avoid
|
||||
* crashing. */
|
||||
comboBoxButton = GetWidget(MOZ_GTK_TOGGLE_BUTTON);
|
||||
} else {
|
||||
/* We need to have pointers to the inner widgets (button, separator, arrow)
|
||||
* of the ComboBox to get the correct rendering from theme engines which
|
||||
* special cases their look. Since the inner layout can change, we ask GTK
|
||||
* to NULL our pointers when they are about to become invalid because the
|
||||
* corresponding widgets don't exist anymore. It's the role of
|
||||
* g_object_add_weak_pointer().
|
||||
* Note that if we don't find the inner widgets (which shouldn't happen), we
|
||||
* fallback to use generic "non-inner" widgets, and they don't need that kind
|
||||
* of weak pointer since they are explicit children of gProtoLayout and as
|
||||
* such GTK holds a strong reference to them. */
|
||||
g_object_add_weak_pointer(G_OBJECT(comboBoxButton),
|
||||
reinterpret_cast<gpointer *>(sWidgetStorage) +
|
||||
MOZ_GTK_COMBOBOX_BUTTON);
|
||||
}
|
||||
|
||||
return comboBoxButton;
|
||||
}
|
||||
|
||||
static GtkWidget*
|
||||
CreateComboBoxArrowWidget()
|
||||
{
|
||||
GtkWidget* comboBoxButton = GetWidget(MOZ_GTK_COMBOBOX_BUTTON);
|
||||
GtkWidget* comboBoxArrow = nullptr;
|
||||
|
||||
/* Get the widgets inside the Button */
|
||||
GtkWidget* buttonChild = gtk_bin_get_child(GTK_BIN(comboBoxButton));
|
||||
if (GTK_IS_BOX(buttonChild)) {
|
||||
/* appears-as-list = FALSE, cell-view = TRUE; the button
|
||||
* contains an hbox. This hbox is there because the ComboBox
|
||||
* needs to place a cell renderer, a separator, and an arrow in
|
||||
* the button when appears-as-list is FALSE. */
|
||||
GtkInnerWidgetInfo info = { GTK_TYPE_ARROW,
|
||||
&comboBoxArrow };
|
||||
gtk_container_forall(GTK_CONTAINER(buttonChild),
|
||||
GetInnerWidget, &info);
|
||||
} else if (GTK_IS_ARROW(buttonChild)) {
|
||||
/* appears-as-list = TRUE, or cell-view = FALSE;
|
||||
* the button only contains an arrow */
|
||||
comboBoxArrow = buttonChild;
|
||||
gtk_widget_realize(comboBoxArrow);
|
||||
}
|
||||
|
||||
if (!comboBoxArrow) {
|
||||
/* Shouldn't be reached with current internal gtk implementation;
|
||||
* we gButtonArrowWidget as last resort fallback to avoid
|
||||
* crashing. */
|
||||
comboBoxArrow = GetWidget(MOZ_GTK_BUTTON_ARROW);
|
||||
} else {
|
||||
g_object_add_weak_pointer(G_OBJECT(comboBoxArrow),
|
||||
reinterpret_cast<gpointer *>(sWidgetStorage) +
|
||||
MOZ_GTK_COMBOBOX_ARROW);
|
||||
}
|
||||
|
||||
return comboBoxArrow;
|
||||
}
|
||||
|
||||
static GtkWidget*
|
||||
CreateComboBoxSeparatorWidget()
|
||||
{
|
||||
// Ensure to search for separator only once as it can fail
|
||||
// TODO - it won't initialize after ResetWidgetCache() call
|
||||
static bool isMissingSeparator = false;
|
||||
if (isMissingSeparator)
|
||||
return nullptr;
|
||||
|
||||
/* Get the widgets inside the Button */
|
||||
GtkWidget* comboBoxSeparator = nullptr;
|
||||
GtkWidget* buttonChild =
|
||||
gtk_bin_get_child(GTK_BIN(GetWidget(MOZ_GTK_COMBOBOX_BUTTON)));
|
||||
if (GTK_IS_BOX(buttonChild)) {
|
||||
/* appears-as-list = FALSE, cell-view = TRUE; the button
|
||||
* contains an hbox. This hbox is there because the ComboBox
|
||||
* needs to place a cell renderer, a separator, and an arrow in
|
||||
* the button when appears-as-list is FALSE. */
|
||||
GtkInnerWidgetInfo info = { GTK_TYPE_SEPARATOR,
|
||||
&comboBoxSeparator };
|
||||
gtk_container_forall(GTK_CONTAINER(buttonChild),
|
||||
GetInnerWidget, &info);
|
||||
}
|
||||
|
||||
if (comboBoxSeparator) {
|
||||
g_object_add_weak_pointer(G_OBJECT(comboBoxSeparator),
|
||||
reinterpret_cast<gpointer *>(sWidgetStorage) +
|
||||
MOZ_GTK_COMBOBOX_SEPARATOR);
|
||||
} else {
|
||||
/* comboBoxSeparator may be NULL
|
||||
* when "appears-as-list" = TRUE or "cell-view" = FALSE;
|
||||
* if there is no separator, then we just won't paint it. */
|
||||
isMissingSeparator = true;
|
||||
}
|
||||
|
||||
return comboBoxSeparator;
|
||||
}
|
||||
|
||||
static GtkWidget*
|
||||
CreateComboBoxEntryWidget()
|
||||
{
|
||||
GtkWidget* widget = gtk_combo_box_new_with_entry();
|
||||
AddToWindowContainer(widget);
|
||||
return widget;
|
||||
}
|
||||
|
||||
static GtkWidget*
|
||||
CreateComboBoxEntryTextareaWidget()
|
||||
{
|
||||
GtkWidget* comboBoxTextarea = nullptr;
|
||||
|
||||
/* Get its inner Entry and Button */
|
||||
GtkInnerWidgetInfo info = { GTK_TYPE_ENTRY,
|
||||
&comboBoxTextarea };
|
||||
gtk_container_forall(GTK_CONTAINER(GetWidget(MOZ_GTK_COMBOBOX_ENTRY)),
|
||||
GetInnerWidget, &info);
|
||||
|
||||
if (!comboBoxTextarea) {
|
||||
comboBoxTextarea = GetWidget(MOZ_GTK_ENTRY);
|
||||
} else {
|
||||
g_object_add_weak_pointer(G_OBJECT(comboBoxTextarea),
|
||||
reinterpret_cast<gpointer *>(sWidgetStorage) +
|
||||
MOZ_GTK_COMBOBOX_ENTRY);
|
||||
}
|
||||
|
||||
return comboBoxTextarea;
|
||||
}
|
||||
|
||||
static GtkWidget*
|
||||
CreateComboBoxEntryButtonWidget()
|
||||
{
|
||||
GtkWidget* comboBoxButton = nullptr;
|
||||
|
||||
/* Get its inner Entry and Button */
|
||||
GtkInnerWidgetInfo info = { GTK_TYPE_TOGGLE_BUTTON,
|
||||
&comboBoxButton };
|
||||
gtk_container_forall(GTK_CONTAINER(GetWidget(MOZ_GTK_COMBOBOX_ENTRY)),
|
||||
GetInnerWidget, &info);
|
||||
|
||||
if (!comboBoxButton) {
|
||||
comboBoxButton = GetWidget(MOZ_GTK_TOGGLE_BUTTON);
|
||||
} else {
|
||||
g_object_add_weak_pointer(G_OBJECT(comboBoxButton),
|
||||
reinterpret_cast<gpointer *>(sWidgetStorage) +
|
||||
MOZ_GTK_COMBOBOX_ENTRY_BUTTON);
|
||||
}
|
||||
|
||||
return comboBoxButton;
|
||||
}
|
||||
|
||||
static GtkWidget*
|
||||
CreateComboBoxEntryArrowWidget()
|
||||
{
|
||||
GtkWidget* comboBoxArrow = nullptr;
|
||||
|
||||
/* Get the Arrow inside the Button */
|
||||
GtkWidget* buttonChild =
|
||||
gtk_bin_get_child(GTK_BIN(GetWidget(MOZ_GTK_COMBOBOX_ENTRY_BUTTON)));
|
||||
|
||||
if (GTK_IS_BOX(buttonChild)) {
|
||||
/* appears-as-list = FALSE, cell-view = TRUE; the button
|
||||
* contains an hbox. This hbox is there because the ComboBox
|
||||
* needs to place a cell renderer, a separator, and an arrow in
|
||||
* the button when appears-as-list is FALSE. */
|
||||
GtkInnerWidgetInfo info = { GTK_TYPE_ARROW,
|
||||
&comboBoxArrow };
|
||||
gtk_container_forall(GTK_CONTAINER(buttonChild),
|
||||
GetInnerWidget, &info);
|
||||
} else if (GTK_IS_ARROW(buttonChild)) {
|
||||
/* appears-as-list = TRUE, or cell-view = FALSE;
|
||||
* the button only contains an arrow */
|
||||
comboBoxArrow = buttonChild;
|
||||
gtk_widget_realize(comboBoxArrow);
|
||||
}
|
||||
|
||||
if (!comboBoxArrow) {
|
||||
/* Shouldn't be reached with current internal gtk implementation;
|
||||
* we gButtonArrowWidget as last resort fallback to avoid
|
||||
* crashing. */
|
||||
comboBoxArrow = GetWidget(MOZ_GTK_BUTTON_ARROW);
|
||||
} else {
|
||||
g_object_add_weak_pointer(G_OBJECT(comboBoxArrow),
|
||||
reinterpret_cast<gpointer *>(sWidgetStorage) +
|
||||
MOZ_GTK_COMBOBOX_ENTRY_ARROW);
|
||||
}
|
||||
|
||||
return comboBoxArrow;
|
||||
}
|
||||
|
||||
static GtkWidget*
|
||||
CreateScrolledWindowWidget()
|
||||
{
|
||||
|
@ -432,6 +661,22 @@ CreateWidget(WidgetNodeType aWidgetType)
|
|||
return CreateScaleWidget(GTK_ORIENTATION_VERTICAL);
|
||||
case MOZ_GTK_NOTEBOOK:
|
||||
return CreateNotebookWidget();
|
||||
case MOZ_GTK_COMBOBOX:
|
||||
return CreateComboBoxWidget();
|
||||
case MOZ_GTK_COMBOBOX_BUTTON:
|
||||
return CreateComboBoxButtonWidget();
|
||||
case MOZ_GTK_COMBOBOX_ARROW:
|
||||
return CreateComboBoxArrowWidget();
|
||||
case MOZ_GTK_COMBOBOX_SEPARATOR:
|
||||
return CreateComboBoxSeparatorWidget();
|
||||
case MOZ_GTK_COMBOBOX_ENTRY:
|
||||
return CreateComboBoxEntryWidget();
|
||||
case MOZ_GTK_COMBOBOX_ENTRY_TEXTAREA:
|
||||
return CreateComboBoxEntryTextareaWidget();
|
||||
case MOZ_GTK_COMBOBOX_ENTRY_BUTTON:
|
||||
return CreateComboBoxEntryButtonWidget();
|
||||
case MOZ_GTK_COMBOBOX_ENTRY_ARROW:
|
||||
return CreateComboBoxEntryArrowWidget();
|
||||
default:
|
||||
/* Not implemented */
|
||||
return nullptr;
|
||||
|
|
|
@ -18,16 +18,6 @@
|
|||
|
||||
#include <math.h>
|
||||
|
||||
static GtkWidget* gProtoLayout;
|
||||
static GtkWidget* gComboBoxWidget;
|
||||
static GtkWidget* gComboBoxButtonWidget;
|
||||
static GtkWidget* gComboBoxArrowWidget;
|
||||
static GtkWidget* gComboBoxSeparatorWidget;
|
||||
static GtkWidget* gComboBoxEntryWidget;
|
||||
static GtkWidget* gComboBoxEntryTextareaWidget;
|
||||
static GtkWidget* gComboBoxEntryButtonWidget;
|
||||
static GtkWidget* gComboBoxEntryArrowWidget;
|
||||
|
||||
static style_prop_t style_prop_func;
|
||||
static gboolean have_arrow_scaling;
|
||||
static gboolean checkbox_check_state;
|
||||
|
@ -79,212 +69,6 @@ moz_gtk_enable_style_props(style_prop_t styleGetProp)
|
|||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
static gint
|
||||
setup_widget_prototype(GtkWidget* widget)
|
||||
{
|
||||
if (!gProtoLayout) {
|
||||
gProtoLayout = GetWidget(MOZ_GTK_WINDOW_CONTAINER);
|
||||
}
|
||||
gtk_container_add(GTK_CONTAINER(gProtoLayout), widget);
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
/* We need to have pointers to the inner widgets (button, separator, arrow)
|
||||
* of the ComboBox to get the correct rendering from theme engines which
|
||||
* special cases their look. Since the inner layout can change, we ask GTK
|
||||
* to NULL our pointers when they are about to become invalid because the
|
||||
* corresponding widgets don't exist anymore. It's the role of
|
||||
* g_object_add_weak_pointer().
|
||||
* Note that if we don't find the inner widgets (which shouldn't happen), we
|
||||
* fallback to use generic "non-inner" widgets, and they don't need that kind
|
||||
* of weak pointer since they are explicit children of gProtoLayout and as
|
||||
* such GTK holds a strong reference to them. */
|
||||
static void
|
||||
moz_gtk_get_combo_box_inner_button(GtkWidget *widget, gpointer client_data)
|
||||
{
|
||||
if (GTK_IS_TOGGLE_BUTTON(widget)) {
|
||||
gComboBoxButtonWidget = widget;
|
||||
g_object_add_weak_pointer(G_OBJECT(widget),
|
||||
(gpointer *) &gComboBoxButtonWidget);
|
||||
gtk_widget_realize(widget);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
moz_gtk_get_combo_box_button_inner_widgets(GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
{
|
||||
if (GTK_IS_SEPARATOR(widget)) {
|
||||
gComboBoxSeparatorWidget = widget;
|
||||
g_object_add_weak_pointer(G_OBJECT(widget),
|
||||
(gpointer *) &gComboBoxSeparatorWidget);
|
||||
} else if (GTK_IS_ARROW(widget)) {
|
||||
gComboBoxArrowWidget = widget;
|
||||
g_object_add_weak_pointer(G_OBJECT(widget),
|
||||
(gpointer *) &gComboBoxArrowWidget);
|
||||
} else
|
||||
return;
|
||||
gtk_widget_realize(widget);
|
||||
}
|
||||
|
||||
static gint
|
||||
ensure_combo_box_widgets()
|
||||
{
|
||||
GtkWidget* buttonChild;
|
||||
|
||||
if (gComboBoxButtonWidget && gComboBoxArrowWidget)
|
||||
return MOZ_GTK_SUCCESS;
|
||||
|
||||
/* Create a ComboBox if needed */
|
||||
if (!gComboBoxWidget) {
|
||||
gComboBoxWidget = gtk_combo_box_new();
|
||||
setup_widget_prototype(gComboBoxWidget);
|
||||
}
|
||||
|
||||
/* Get its inner Button */
|
||||
gtk_container_forall(GTK_CONTAINER(gComboBoxWidget),
|
||||
moz_gtk_get_combo_box_inner_button,
|
||||
NULL);
|
||||
|
||||
if (gComboBoxButtonWidget) {
|
||||
/* Get the widgets inside the Button */
|
||||
buttonChild = gtk_bin_get_child(GTK_BIN(gComboBoxButtonWidget));
|
||||
if (GTK_IS_BOX(buttonChild)) {
|
||||
/* appears-as-list = FALSE, cell-view = TRUE; the button
|
||||
* contains an hbox. This hbox is there because the ComboBox
|
||||
* needs to place a cell renderer, a separator, and an arrow in
|
||||
* the button when appears-as-list is FALSE. */
|
||||
gtk_container_forall(GTK_CONTAINER(buttonChild),
|
||||
moz_gtk_get_combo_box_button_inner_widgets,
|
||||
NULL);
|
||||
} else if(GTK_IS_ARROW(buttonChild)) {
|
||||
/* appears-as-list = TRUE, or cell-view = FALSE;
|
||||
* the button only contains an arrow */
|
||||
gComboBoxArrowWidget = buttonChild;
|
||||
g_object_add_weak_pointer(G_OBJECT(buttonChild), (gpointer *)
|
||||
&gComboBoxArrowWidget);
|
||||
gtk_widget_realize(gComboBoxArrowWidget);
|
||||
}
|
||||
} else {
|
||||
/* Shouldn't be reached with current internal gtk implementation; we
|
||||
* use a generic toggle button as last resort fallback to avoid
|
||||
* crashing. */
|
||||
gComboBoxButtonWidget = GetWidget(MOZ_GTK_TOGGLE_BUTTON);
|
||||
}
|
||||
|
||||
if (!gComboBoxArrowWidget) {
|
||||
/* Shouldn't be reached with current internal gtk implementation;
|
||||
* we gButtonArrowWidget as last resort fallback to avoid
|
||||
* crashing. */
|
||||
gComboBoxArrowWidget = GetWidget(MOZ_GTK_BUTTON_ARROW);
|
||||
}
|
||||
|
||||
/* We don't test the validity of gComboBoxSeparatorWidget since there
|
||||
* is none when "appears-as-list" = TRUE or "cell-view" = FALSE; if it
|
||||
* is invalid we just won't paint it. */
|
||||
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
/* We need to have pointers to the inner widgets (entry, button, arrow) of
|
||||
* the ComboBoxEntry to get the correct rendering from theme engines which
|
||||
* special cases their look. Since the inner layout can change, we ask GTK
|
||||
* to NULL our pointers when they are about to become invalid because the
|
||||
* corresponding widgets don't exist anymore. It's the role of
|
||||
* g_object_add_weak_pointer().
|
||||
* Note that if we don't find the inner widgets (which shouldn't happen), we
|
||||
* fallback to use generic "non-inner" widgets, and they don't need that kind
|
||||
* of weak pointer since they are explicit children of gProtoLayout and as
|
||||
* such GTK holds a strong reference to them. */
|
||||
static void
|
||||
moz_gtk_get_combo_box_entry_inner_widgets(GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
{
|
||||
if (GTK_IS_TOGGLE_BUTTON(widget)) {
|
||||
gComboBoxEntryButtonWidget = widget;
|
||||
g_object_add_weak_pointer(G_OBJECT(widget),
|
||||
(gpointer *) &gComboBoxEntryButtonWidget);
|
||||
} else if (GTK_IS_ENTRY(widget)) {
|
||||
gComboBoxEntryTextareaWidget = widget;
|
||||
g_object_add_weak_pointer(G_OBJECT(widget),
|
||||
(gpointer *) &gComboBoxEntryTextareaWidget);
|
||||
} else
|
||||
return;
|
||||
gtk_widget_realize(widget);
|
||||
}
|
||||
|
||||
static void
|
||||
moz_gtk_get_combo_box_entry_arrow(GtkWidget *widget, gpointer client_data)
|
||||
{
|
||||
if (GTK_IS_ARROW(widget)) {
|
||||
gComboBoxEntryArrowWidget = widget;
|
||||
g_object_add_weak_pointer(G_OBJECT(widget),
|
||||
(gpointer *) &gComboBoxEntryArrowWidget);
|
||||
gtk_widget_realize(widget);
|
||||
}
|
||||
}
|
||||
|
||||
static gint
|
||||
ensure_combo_box_entry_widgets()
|
||||
{
|
||||
GtkWidget* buttonChild;
|
||||
|
||||
if (gComboBoxEntryTextareaWidget &&
|
||||
gComboBoxEntryButtonWidget &&
|
||||
gComboBoxEntryArrowWidget)
|
||||
return MOZ_GTK_SUCCESS;
|
||||
|
||||
/* Create a ComboBoxEntry if needed */
|
||||
if (!gComboBoxEntryWidget) {
|
||||
gComboBoxEntryWidget = gtk_combo_box_new_with_entry();
|
||||
setup_widget_prototype(gComboBoxEntryWidget);
|
||||
}
|
||||
|
||||
/* Get its inner Entry and Button */
|
||||
gtk_container_forall(GTK_CONTAINER(gComboBoxEntryWidget),
|
||||
moz_gtk_get_combo_box_entry_inner_widgets,
|
||||
NULL);
|
||||
|
||||
if (!gComboBoxEntryTextareaWidget) {
|
||||
gComboBoxEntryTextareaWidget = GetWidget(MOZ_GTK_ENTRY);
|
||||
}
|
||||
|
||||
if (gComboBoxEntryButtonWidget) {
|
||||
/* Get the Arrow inside the Button */
|
||||
buttonChild = gtk_bin_get_child(GTK_BIN(gComboBoxEntryButtonWidget));
|
||||
if (GTK_IS_BOX(buttonChild)) {
|
||||
/* appears-as-list = FALSE, cell-view = TRUE; the button
|
||||
* contains an hbox. This hbox is there because the ComboBox
|
||||
* needs to place a cell renderer, a separator, and an arrow in
|
||||
* the button when appears-as-list is FALSE. */
|
||||
gtk_container_forall(GTK_CONTAINER(buttonChild),
|
||||
moz_gtk_get_combo_box_entry_arrow,
|
||||
NULL);
|
||||
} else if(GTK_IS_ARROW(buttonChild)) {
|
||||
/* appears-as-list = TRUE, or cell-view = FALSE;
|
||||
* the button only contains an arrow */
|
||||
gComboBoxEntryArrowWidget = buttonChild;
|
||||
g_object_add_weak_pointer(G_OBJECT(buttonChild), (gpointer *)
|
||||
&gComboBoxEntryArrowWidget);
|
||||
gtk_widget_realize(gComboBoxEntryArrowWidget);
|
||||
}
|
||||
} else {
|
||||
/* Shouldn't be reached with current internal gtk implementation;
|
||||
* we use a generic toggle button as last resort fallback to avoid
|
||||
* crashing. */
|
||||
gComboBoxEntryButtonWidget = GetWidget(MOZ_GTK_TOGGLE_BUTTON);
|
||||
}
|
||||
|
||||
if (!gComboBoxEntryArrowWidget) {
|
||||
/* Shouldn't be reached with current internal gtk implementation;
|
||||
* we gButtonArrowWidget as last resort fallback to avoid
|
||||
* crashing. */
|
||||
gComboBoxEntryArrowWidget = GetWidget(MOZ_GTK_BUTTON_ARROW);
|
||||
}
|
||||
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
gint
|
||||
moz_gtk_init()
|
||||
{
|
||||
|
@ -336,16 +120,24 @@ moz_gtk_radio_get_metrics(gint* indicator_size, gint* indicator_spacing)
|
|||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
gint
|
||||
moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width)
|
||||
static gint
|
||||
moz_gtk_get_focus_outline_size(GtkStyleContext* style,
|
||||
gint* focus_h_width, gint* focus_v_width)
|
||||
{
|
||||
GtkBorder border;
|
||||
GtkBorder padding;
|
||||
GtkStyleContext *style = ClaimStyleContext(MOZ_GTK_ENTRY);
|
||||
gtk_style_context_get_border(style, GTK_STATE_FLAG_NORMAL, &border);
|
||||
gtk_style_context_get_padding(style, GTK_STATE_FLAG_NORMAL, &padding);
|
||||
*focus_h_width = border.left + padding.left;
|
||||
*focus_v_width = border.top + padding.top;
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
gint
|
||||
moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width)
|
||||
{
|
||||
GtkStyleContext *style = ClaimStyleContext(MOZ_GTK_ENTRY);
|
||||
moz_gtk_get_focus_outline_size(style, focus_h_width, focus_v_width);
|
||||
ReleaseStyleContext(style);
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
@ -1030,60 +822,26 @@ moz_gtk_vpaned_paint(cairo_t *cr, GdkRectangle* rect,
|
|||
static gint
|
||||
moz_gtk_entry_paint(cairo_t *cr, GdkRectangle* rect,
|
||||
GtkWidgetState* state,
|
||||
GtkWidget* widget, GtkTextDirection direction)
|
||||
GtkStyleContext* style)
|
||||
{
|
||||
gint x = rect->x, y = rect->y, width = rect->width, height = rect->height;
|
||||
GtkStyleContext* style;
|
||||
int draw_focus_outline_only = state->depressed; // NS_THEME_FOCUS_OUTLINE
|
||||
|
||||
gtk_widget_set_direction(widget, direction);
|
||||
|
||||
style = gtk_widget_get_style_context(widget);
|
||||
|
||||
if (draw_focus_outline_only) {
|
||||
// Inflate the given 'rect' with the focus outline size.
|
||||
gint h, v;
|
||||
moz_gtk_get_focus_outline_size(&h, &v);
|
||||
moz_gtk_get_focus_outline_size(style, &h, &v);
|
||||
rect->x -= h;
|
||||
rect->width += 2 * h;
|
||||
rect->y -= v;
|
||||
rect->height += 2 * v;
|
||||
width = rect->width;
|
||||
height = rect->height;
|
||||
}
|
||||
|
||||
/* gtkentry.c uses two windows, one for the entire widget and one for the
|
||||
* text area inside it. The background of both windows is set to the "base"
|
||||
* color of the new state in gtk_entry_state_changed, but only the inner
|
||||
* textarea window uses gtk_paint_flat_box when exposed */
|
||||
|
||||
/* This gets us a lovely greyish disabledish look */
|
||||
gtk_widget_set_sensitive(widget, !state->disabled);
|
||||
|
||||
gtk_style_context_save(style);
|
||||
gtk_style_context_add_class(style, GTK_STYLE_CLASS_ENTRY);
|
||||
|
||||
/* Now paint the shadow and focus border.
|
||||
* We do like in gtk_entry_draw_frame, we first draw the shadow, a tad
|
||||
* smaller when focused if the focus is not interior, then the focus. */
|
||||
|
||||
if (state->focused && !state->disabled) {
|
||||
/* This will get us the lit borders that focused textboxes enjoy on
|
||||
* some themes. */
|
||||
gtk_style_context_set_state(style, GTK_STATE_FLAG_FOCUSED);
|
||||
}
|
||||
|
||||
if (state->disabled) {
|
||||
gtk_style_context_set_state(style, GTK_STATE_FLAG_INSENSITIVE);
|
||||
}
|
||||
|
||||
if (!draw_focus_outline_only) {
|
||||
} else {
|
||||
gtk_render_background(style, cr, x, y, width, height);
|
||||
}
|
||||
gtk_render_frame(style, cr, x, y, width, height);
|
||||
|
||||
gtk_style_context_restore(style);
|
||||
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -1248,34 +1006,37 @@ moz_gtk_combo_box_paint(cairo_t *cr, GdkRectangle* rect,
|
|||
GtkStyleContext* style;
|
||||
GtkRequisition arrow_req;
|
||||
|
||||
ensure_combo_box_widgets();
|
||||
GtkWidget* comboBoxButton = GetWidget(MOZ_GTK_COMBOBOX_BUTTON);
|
||||
GtkWidget* comboBoxArrow = GetWidget(MOZ_GTK_COMBOBOX_ARROW);
|
||||
|
||||
/* Also sets the direction on gComboBoxButtonWidget, which is then
|
||||
* inherited by the separator and arrow */
|
||||
moz_gtk_button_paint(cr, rect, state, GTK_RELIEF_NORMAL,
|
||||
gComboBoxButtonWidget, direction);
|
||||
comboBoxButton, direction);
|
||||
|
||||
calculate_button_inner_rect(gComboBoxButtonWidget,
|
||||
rect, &arrow_rect, direction);
|
||||
calculate_button_inner_rect(comboBoxButton, rect, &arrow_rect, direction);
|
||||
/* Now arrow_rect contains the inner rect ; we want to correct the width
|
||||
* to what the arrow needs (see gtk_combo_box_size_allocate) */
|
||||
gtk_widget_get_preferred_size(gComboBoxArrowWidget, NULL, &arrow_req);
|
||||
gtk_widget_get_preferred_size(comboBoxArrow, NULL, &arrow_req);
|
||||
|
||||
if (direction == GTK_TEXT_DIR_LTR)
|
||||
arrow_rect.x += arrow_rect.width - arrow_req.width;
|
||||
arrow_rect.width = arrow_req.width;
|
||||
|
||||
calculate_arrow_rect(gComboBoxArrowWidget,
|
||||
calculate_arrow_rect(comboBoxArrow,
|
||||
&arrow_rect, &real_arrow_rect, direction);
|
||||
|
||||
style = gtk_widget_get_style_context(gComboBoxArrowWidget);
|
||||
style = ClaimStyleContext(MOZ_GTK_COMBOBOX_ARROW);
|
||||
gtk_render_arrow(style, cr, ARROW_DOWN,
|
||||
real_arrow_rect.x, real_arrow_rect.y,
|
||||
real_arrow_rect.width);
|
||||
ReleaseStyleContext(style);
|
||||
|
||||
/* If there is no separator in the theme, there's nothing left to do. */
|
||||
if (!gComboBoxSeparatorWidget)
|
||||
GtkWidget* widget = GetWidget(MOZ_GTK_COMBOBOX_SEPARATOR);
|
||||
if (!widget)
|
||||
return MOZ_GTK_SUCCESS;
|
||||
style = gtk_widget_get_style_context(gComboBoxSeparatorWidget);
|
||||
style = gtk_widget_get_style_context(widget);
|
||||
gtk_style_context_get_style(style,
|
||||
"wide-separators", &wide_separators,
|
||||
"separator-width", &separator_width,
|
||||
|
@ -1359,15 +1120,14 @@ moz_gtk_combo_box_entry_button_paint(cairo_t *cr, GdkRectangle* rect,
|
|||
GtkStateFlags state_flags = GetStateFlagsFromGtkWidgetState(state);
|
||||
GtkStyleContext* style;
|
||||
|
||||
ensure_combo_box_entry_widgets();
|
||||
|
||||
GtkWidget* comboBoxEntry = GetWidget(MOZ_GTK_COMBOBOX_ENTRY_BUTTON);
|
||||
moz_gtk_button_paint(cr, rect, state, GTK_RELIEF_NORMAL,
|
||||
gComboBoxEntryButtonWidget, direction);
|
||||
comboBoxEntry, direction);
|
||||
calculate_button_inner_rect(comboBoxEntry, rect, &arrow_rect, direction);
|
||||
|
||||
calculate_button_inner_rect(gComboBoxEntryButtonWidget,
|
||||
rect, &arrow_rect, direction);
|
||||
if (state_flags & GTK_STATE_FLAG_ACTIVE) {
|
||||
gtk_style_context_get_style(gtk_widget_get_style_context(gComboBoxEntryButtonWidget),
|
||||
style = gtk_widget_get_style_context(comboBoxEntry);
|
||||
gtk_style_context_get_style(style,
|
||||
"child-displacement-x", &x_displacement,
|
||||
"child-displacement-y", &y_displacement,
|
||||
NULL);
|
||||
|
@ -1375,15 +1135,14 @@ moz_gtk_combo_box_entry_button_paint(cairo_t *cr, GdkRectangle* rect,
|
|||
arrow_rect.y += y_displacement;
|
||||
}
|
||||
|
||||
calculate_arrow_rect(gComboBoxEntryArrowWidget,
|
||||
calculate_arrow_rect(GetWidget(MOZ_GTK_COMBOBOX_ENTRY_ARROW),
|
||||
&arrow_rect, &real_arrow_rect, direction);
|
||||
|
||||
style = gtk_widget_get_style_context(gComboBoxEntryArrowWidget);
|
||||
|
||||
style = ClaimStyleContext(MOZ_GTK_COMBOBOX_ENTRY_ARROW);
|
||||
gtk_render_arrow(style, cr, ARROW_DOWN,
|
||||
real_arrow_rect.x, real_arrow_rect.y,
|
||||
real_arrow_rect.width);
|
||||
|
||||
ReleaseStyleContext(style);
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -1403,7 +1162,6 @@ moz_gtk_container_paint(cairo_t *cr, GdkRectangle* rect,
|
|||
}
|
||||
|
||||
ReleaseStyleContext(style);
|
||||
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -2261,12 +2019,10 @@ moz_gtk_get_widget_border(WidgetNodeType widget, gint* left, gint* top,
|
|||
w = GetWidget(MOZ_GTK_TREE_HEADER_SORTARROW);
|
||||
break;
|
||||
case MOZ_GTK_DROPDOWN_ENTRY:
|
||||
ensure_combo_box_entry_widgets();
|
||||
w = gComboBoxEntryTextareaWidget;
|
||||
w = GetWidget(MOZ_GTK_COMBOBOX_ENTRY_TEXTAREA);
|
||||
break;
|
||||
case MOZ_GTK_DROPDOWN_ARROW:
|
||||
ensure_combo_box_entry_widgets();
|
||||
w = gComboBoxEntryButtonWidget;
|
||||
w = GetWidget(MOZ_GTK_COMBOBOX_ENTRY_BUTTON);
|
||||
break;
|
||||
case MOZ_GTK_DROPDOWN:
|
||||
{
|
||||
|
@ -2278,32 +2034,33 @@ moz_gtk_get_widget_border(WidgetNodeType widget, gint* left, gint* top,
|
|||
GtkRequisition arrow_req;
|
||||
GtkBorder border;
|
||||
|
||||
ensure_combo_box_widgets();
|
||||
|
||||
*left = *top = *right = *bottom =
|
||||
gtk_container_get_border_width(GTK_CONTAINER(gComboBoxButtonWidget));
|
||||
|
||||
style = gtk_widget_get_style_context(gComboBoxButtonWidget);
|
||||
|
||||
*left = *top = *right = *bottom =
|
||||
gtk_container_get_border_width(GTK_CONTAINER(
|
||||
GetWidget(MOZ_GTK_COMBOBOX_BUTTON)));
|
||||
style = ClaimStyleContext(MOZ_GTK_COMBOBOX_BUTTON);
|
||||
moz_gtk_add_style_padding(style, left, top, right, bottom);
|
||||
moz_gtk_add_style_border(style, left, top, right, bottom);
|
||||
ReleaseStyleContext(style);
|
||||
|
||||
/* If there is no separator, don't try to count its width. */
|
||||
separator_width = 0;
|
||||
if (gComboBoxSeparatorWidget) {
|
||||
style = gtk_widget_get_style_context(gComboBoxSeparatorWidget);
|
||||
GtkWidget* comboBoxSeparator = GetWidget(MOZ_GTK_COMBOBOX_SEPARATOR);
|
||||
if (comboBoxSeparator) {
|
||||
style = gtk_widget_get_style_context(comboBoxSeparator);
|
||||
gtk_style_context_get_style(style,
|
||||
"wide-separators", &wide_separators,
|
||||
"separator-width", &separator_width,
|
||||
NULL);
|
||||
|
||||
if (!wide_separators) {
|
||||
gtk_style_context_get_border(style, GTK_STATE_FLAG_NORMAL, &border);
|
||||
gtk_style_context_get_border(style, GTK_STATE_FLAG_NORMAL,
|
||||
&border);
|
||||
separator_width = border.left;
|
||||
}
|
||||
}
|
||||
|
||||
gtk_widget_get_preferred_size(gComboBoxArrowWidget, NULL, &arrow_req);
|
||||
gtk_widget_get_preferred_size(GetWidget(MOZ_GTK_COMBOBOX_ARROW),
|
||||
NULL, &arrow_req);
|
||||
|
||||
if (direction == GTK_TEXT_DIR_RTL)
|
||||
*left += separator_width + arrow_req.width;
|
||||
|
@ -2524,9 +2281,9 @@ moz_gtk_get_combo_box_entry_button_size(gint* width, gint* height)
|
|||
* as well as the minimum arrow size and its padding
|
||||
* */
|
||||
GtkRequisition requisition;
|
||||
ensure_combo_box_entry_widgets();
|
||||
|
||||
gtk_widget_get_preferred_size(gComboBoxEntryButtonWidget, NULL, &requisition);
|
||||
gtk_widget_get_preferred_size(GetWidget(MOZ_GTK_COMBOBOX_ENTRY_BUTTON),
|
||||
NULL, &requisition);
|
||||
*width = requisition.width;
|
||||
*height = requisition.height;
|
||||
|
||||
|
@ -2555,8 +2312,7 @@ moz_gtk_get_arrow_size(WidgetNodeType widgetType, gint* width, gint* height)
|
|||
GtkWidget* widget;
|
||||
switch (widgetType) {
|
||||
case MOZ_GTK_DROPDOWN:
|
||||
ensure_combo_box_widgets();
|
||||
widget = gComboBoxArrowWidget;
|
||||
widget = GetWidget(MOZ_GTK_COMBOBOX_ARROW);
|
||||
break;
|
||||
default:
|
||||
widget = GetWidget(MOZ_GTK_BUTTON_ARROW);
|
||||
|
@ -2830,9 +2586,13 @@ moz_gtk_widget_paint(WidgetNodeType widget, cairo_t *cr,
|
|||
state, direction);
|
||||
break;
|
||||
case MOZ_GTK_SPINBUTTON_ENTRY:
|
||||
// TODO - use MOZ_GTK_SPINBUTTON_ENTRY style directly
|
||||
return moz_gtk_entry_paint(cr, rect, state,
|
||||
GetWidget(MOZ_GTK_SPINBUTTON), direction);
|
||||
{
|
||||
GtkStyleContext* style = ClaimStyleContext(MOZ_GTK_SPINBUTTON_ENTRY,
|
||||
direction, GetStateFlagsFromGtkWidgetState(state));
|
||||
gint ret = moz_gtk_entry_paint(cr, rect, state, style);
|
||||
ReleaseStyleContext(style);
|
||||
return ret;
|
||||
}
|
||||
break;
|
||||
case MOZ_GTK_GRIPPER:
|
||||
return moz_gtk_gripper_paint(cr, rect, state,
|
||||
|
@ -2857,9 +2617,13 @@ moz_gtk_widget_paint(WidgetNodeType widget, cairo_t *cr,
|
|||
(GtkExpanderStyle) flags, direction);
|
||||
break;
|
||||
case MOZ_GTK_ENTRY:
|
||||
return moz_gtk_entry_paint(cr, rect, state, GetWidget(MOZ_GTK_ENTRY),
|
||||
direction);
|
||||
break;
|
||||
{
|
||||
GtkStyleContext* style = ClaimStyleContext(MOZ_GTK_ENTRY,
|
||||
direction, GetStateFlagsFromGtkWidgetState(state));
|
||||
gint ret = moz_gtk_entry_paint(cr, rect, state, style);
|
||||
ReleaseStyleContext(style);
|
||||
return ret;
|
||||
}
|
||||
case MOZ_GTK_TEXT_VIEW:
|
||||
return moz_gtk_text_view_paint(cr, rect, state, direction);
|
||||
break;
|
||||
|
@ -2871,9 +2635,13 @@ moz_gtk_widget_paint(WidgetNodeType widget, cairo_t *cr,
|
|||
state, flags, direction);
|
||||
break;
|
||||
case MOZ_GTK_DROPDOWN_ENTRY:
|
||||
ensure_combo_box_entry_widgets();
|
||||
return moz_gtk_entry_paint(cr, rect, state,
|
||||
gComboBoxEntryTextareaWidget, direction);
|
||||
{
|
||||
GtkStyleContext* style = ClaimStyleContext(MOZ_GTK_COMBOBOX_ENTRY_TEXTAREA,
|
||||
direction, GetStateFlagsFromGtkWidgetState(state));
|
||||
gint ret = moz_gtk_entry_paint(cr, rect, state, style);
|
||||
ReleaseStyleContext(style);
|
||||
return ret;
|
||||
}
|
||||
break;
|
||||
case MOZ_GTK_CHECKBUTTON_CONTAINER:
|
||||
case MOZ_GTK_RADIOBUTTON_CONTAINER:
|
||||
|
@ -2998,16 +2766,6 @@ moz_gtk_shutdown()
|
|||
/* This will destroy all of our widgets */
|
||||
ResetWidgetCache();
|
||||
|
||||
gProtoLayout = NULL;
|
||||
gComboBoxWidget = NULL;
|
||||
gComboBoxButtonWidget = NULL;
|
||||
gComboBoxSeparatorWidget = NULL;
|
||||
gComboBoxArrowWidget = NULL;
|
||||
gComboBoxEntryWidget = NULL;
|
||||
gComboBoxEntryButtonWidget = NULL;
|
||||
gComboBoxEntryArrowWidget = NULL;
|
||||
gComboBoxEntryTextareaWidget = NULL;
|
||||
|
||||
is_initialized = FALSE;
|
||||
|
||||
return MOZ_GTK_SUCCESS;
|
||||
|
|
|
@ -230,6 +230,22 @@ typedef enum {
|
|||
MOZ_GTK_WINDOW_CONTAINER,
|
||||
/* Paints a GtkInfoBar, for notifications. */
|
||||
MOZ_GTK_INFO_BAR,
|
||||
/* Used for widget tree construction. */
|
||||
MOZ_GTK_COMBOBOX,
|
||||
/* Paints a GtkComboBox button widget. */
|
||||
MOZ_GTK_COMBOBOX_BUTTON,
|
||||
/* Paints a GtkComboBox arrow widget. */
|
||||
MOZ_GTK_COMBOBOX_ARROW,
|
||||
/* Paints a GtkComboBox separator widget. */
|
||||
MOZ_GTK_COMBOBOX_SEPARATOR,
|
||||
/* Used for widget tree construction. */
|
||||
MOZ_GTK_COMBOBOX_ENTRY,
|
||||
/* Paints a GtkComboBox entry widget. */
|
||||
MOZ_GTK_COMBOBOX_ENTRY_TEXTAREA,
|
||||
/* Paints a GtkComboBox entry button widget. */
|
||||
MOZ_GTK_COMBOBOX_ENTRY_BUTTON,
|
||||
/* Paints a GtkComboBox entry arrow widget. */
|
||||
MOZ_GTK_COMBOBOX_ENTRY_ARROW,
|
||||
/* Used for scrolled window shell. */
|
||||
MOZ_GTK_SCROLLED_WINDOW,
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче