зеркало из https://github.com/mozilla/gecko-dev.git
Merge mozilla-central to mozilla-inbound
This commit is contained in:
Коммит
785bee02e8
|
@ -196,7 +196,7 @@ dependencies = [
|
|||
name = "baldrdash"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bindgen 0.49.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bindgen 0.49.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cranelift-codegen 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=475aa632fea5360c6f8c4cc1f26e3ee0369385ef)",
|
||||
"cranelift-wasm 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=475aa632fea5360c6f8c4cc1f26e3ee0369385ef)",
|
||||
"env_logger 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -258,14 +258,13 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "bindgen"
|
||||
version = "0.49.1"
|
||||
version = "0.49.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cexpr 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"clang-sys 0.28.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"clap 2.31.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -1519,7 +1518,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
name = "js"
|
||||
version = "0.1.4"
|
||||
dependencies = [
|
||||
"bindgen 0.49.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bindgen 0.49.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"env_logger 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -2901,7 +2900,7 @@ dependencies = [
|
|||
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"arrayvec 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bindgen 0.49.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bindgen 0.49.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cssparser 0.25.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -3855,7 +3854,7 @@ dependencies = [
|
|||
"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
|
||||
"checksum binary-space-partition 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "88ceb0d16c4fd0e42876e298d7d3ce3780dd9ebdcbe4199816a32c77e08597ff"
|
||||
"checksum bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bda13183df33055cbb84b847becce220d392df502ebe7a4a78d7021771ed94d0"
|
||||
"checksum bindgen 0.49.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6bd7710ac8399ae1ebe1e3aac7c9047c4f39f2c94b33c997f482f49e96991f7c"
|
||||
"checksum bindgen 0.49.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6cdac0c63ff3380328d5c427ba4ac8bca04cdd9d3a0379c6e56a43c82a364014"
|
||||
"checksum binjs_meta 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6c9a0da2208ceb785c1626fa8b7d250d2e5546ae230294b4a998e4f818c1768e"
|
||||
"checksum bit-vec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f59bbe95d4e52a6398ec21238d31577f2b28a9d86807f06ca59d191d8440d0bb"
|
||||
"checksum bit_reverse 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "5e97e02db5a2899c0377f3d6031d5da8296ca2b47abef6ed699de51b9e40a28c"
|
||||
|
|
|
@ -1730,6 +1730,8 @@ pref("signon.showAutoCompleteFooter", true);
|
|||
pref("signon.management.page.enabled", false);
|
||||
pref("signon.showAutoCompleteOrigins", true);
|
||||
pref("signon.includeOtherSubdomainsInLookup", true);
|
||||
pref("signon.feedbackURL",
|
||||
"https://www.surveygizmo.com/s3/5036102/Lockwise-feedback?ver=%VERSION%");
|
||||
|
||||
// Enable the "Simplify Page" feature in Print Preview. This feature
|
||||
// is disabled by default in toolkit.
|
||||
|
|
|
@ -53,7 +53,6 @@ class MozTabbrowserTab extends MozElements.MozTab {
|
|||
".tab-icon-overlay": "crashed,busy,soundplaying,soundplaying-scheduledremoval,pinned,muted,blocked,selected=visuallyselected,activemedia-blocked",
|
||||
".tab-label-container": "pinned,selected=visuallyselected,labeldirection",
|
||||
".tab-label": "text=label,accesskey,fadein,pinned,selected=visuallyselected,attention",
|
||||
".tab-icon-pip": "pictureinpicture",
|
||||
".tab-icon-sound": "soundplaying,soundplaying-scheduledremoval,pinned,muted,blocked,selected=visuallyselected,activemedia-blocked,pictureinpicture",
|
||||
".tab-close-button": "fadein,pinned,selected=visuallyselected",
|
||||
};
|
||||
|
@ -81,8 +80,6 @@ class MozTabbrowserTab extends MozElements.MozTab {
|
|||
flex="1">
|
||||
<label class="tab-text tab-label" role="presentation"/>
|
||||
</hbox>
|
||||
<image class="tab-icon-pip"
|
||||
role="presentation"/>
|
||||
<image class="tab-icon-sound" role="presentation"/>
|
||||
<image class="tab-close-button close-icon" role="presentation"/>
|
||||
</hbox>
|
||||
|
|
|
@ -11,10 +11,8 @@
|
|||
.tab-icon-image:not([src]):not([pinned]):not([crashed]):not([sharing]),
|
||||
.tab-icon-image[busy],
|
||||
.tab-throbber:not([busy]),
|
||||
.tab-icon-pip:not([pictureinpicture]),
|
||||
.tab-icon-sound:not([soundplaying]):not([muted]):not([activemedia-blocked]),
|
||||
.tab-icon-sound:not([soundplaying]):not([muted]):not([activemedia-blocked]):not([pictureinpicture]),
|
||||
.tab-icon-sound[pinned],
|
||||
.tab-icon-sound[pictureinpicture],
|
||||
.tab-sharing-icon-overlay,
|
||||
.tab-icon-overlay {
|
||||
display: none;
|
||||
|
|
|
@ -47,11 +47,11 @@ file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|||
onclick="gURLBar.handleCommand(event);"
|
||||
tooltiptext="&goEndCap.tooltip;"
|
||||
xbl:inherits="pageproxystate,parentfocused=focused,usertyping"/>
|
||||
<xul:dropmarker anonid="historydropmarker"
|
||||
class="urlbar-history-dropmarker urlbar-icon chromeclass-toolbar-additional"
|
||||
tooltiptext="&urlbar.openHistoryPopup.tooltip;"
|
||||
allowevents="true"
|
||||
xbl:inherits="open,parentfocused=focused,usertyping"/>
|
||||
<xul:image anonid="historydropmarker"
|
||||
class="urlbar-history-dropmarker urlbar-icon chromeclass-toolbar-additional"
|
||||
tooltiptext="&urlbar.openHistoryPopup.tooltip;"
|
||||
allowevents="true"
|
||||
xbl:inherits="open,parentfocused=focused,usertyping"/>
|
||||
<children includes="hbox"/>
|
||||
</content>
|
||||
</binding>
|
||||
|
@ -87,11 +87,11 @@ file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|||
onclick="gURLBar.handleCommand(event);"
|
||||
tooltiptext="&goEndCap.tooltip;"
|
||||
xbl:inherits="pageproxystate,parentfocused=focused,usertyping"/>
|
||||
<xul:dropmarker anonid="historydropmarker"
|
||||
class="urlbar-history-dropmarker urlbar-icon chromeclass-toolbar-additional"
|
||||
tooltiptext="&urlbar.openHistoryPopup.tooltip;"
|
||||
allowevents="true"
|
||||
xbl:inherits="open,parentfocused=focused,usertyping"/>
|
||||
<xul:image anonid="historydropmarker"
|
||||
class="urlbar-history-dropmarker urlbar-icon chromeclass-toolbar-additional"
|
||||
tooltiptext="&urlbar.openHistoryPopup.tooltip;"
|
||||
allowevents="true"
|
||||
xbl:inherits="open,parentfocused=focused,usertyping"/>
|
||||
<children includes="hbox"/>
|
||||
</content>
|
||||
|
||||
|
|
|
@ -89,6 +89,7 @@ let LEGACY_ACTORS = {
|
|||
"AboutLoginsDeleteLogin": {wantUntrusted: true},
|
||||
"AboutLoginsImport": {wantUntrusted: true},
|
||||
"AboutLoginsInit": {wantUntrusted: true},
|
||||
"AboutLoginsOpenFeedback": {wantUntrusted: true},
|
||||
"AboutLoginsOpenPreferences": {wantUntrusted: true},
|
||||
"AboutLoginsOpenSite": {wantUntrusted: true},
|
||||
"AboutLoginsRecordTelemetryEvent": {wantUntrusted: true},
|
||||
|
@ -585,6 +586,7 @@ const listeners = {
|
|||
"AboutLogins:CreateLogin": ["AboutLoginsParent"],
|
||||
"AboutLogins:DeleteLogin": ["AboutLoginsParent"],
|
||||
"AboutLogins:Import": ["AboutLoginsParent"],
|
||||
"AboutLogins:OpenFeedback": ["AboutLoginsParent"],
|
||||
"AboutLogins:OpenPreferences": ["AboutLoginsParent"],
|
||||
"AboutLogins:OpenSite": ["AboutLoginsParent"],
|
||||
"AboutLogins:Subscribe": ["AboutLoginsParent"],
|
||||
|
@ -608,6 +610,7 @@ const listeners = {
|
|||
"PasswordManager:autoCompleteLogins": ["LoginManagerParent"],
|
||||
"PasswordManager:removeLogin": ["LoginManagerParent"],
|
||||
"PasswordManager:insecureLoginFormPresent": ["LoginManagerParent"],
|
||||
"PasswordManager:OpenFeedback": ["AboutLoginsParent"],
|
||||
"PasswordManager:OpenPreferences": ["LoginManagerParent"],
|
||||
// PLEASE KEEP THIS LIST IN SYNC WITH THE MOBILE LISTENERS IN BrowserCLH.js
|
||||
"rtcpeer:CancelRequest": ["webrtcUI"],
|
||||
|
|
|
@ -42,6 +42,10 @@ class AboutLoginsChild extends ActorChild {
|
|||
this.mm.sendAsyncMessage("AboutLogins:DeleteLogin", {login: event.detail});
|
||||
break;
|
||||
}
|
||||
case "AboutLoginsOpenFeedback": {
|
||||
this.mm.sendAsyncMessage("AboutLogins:OpenFeedback");
|
||||
break;
|
||||
}
|
||||
case "AboutLoginsImport": {
|
||||
this.mm.sendAsyncMessage("AboutLogins:Import");
|
||||
break;
|
||||
|
|
|
@ -30,6 +30,10 @@ const PRIVILEGEDABOUT_PROCESS_PREF =
|
|||
const PRIVILEGEDABOUT_PROCESS_ENABLED =
|
||||
Services.prefs.getBoolPref(PRIVILEGEDABOUT_PROCESS_PREF, false);
|
||||
|
||||
|
||||
const FEEDBACK_URL_PREF = "signon.feedbackURL";
|
||||
const FEEDBACK_URL = Services.urlFormatter.formatURLPref(FEEDBACK_URL_PREF);
|
||||
|
||||
// When the privileged content process is enabled, we expect about:logins
|
||||
// to load in it. Otherwise, it's in a normal web content process.
|
||||
const EXPECTED_ABOUTLOGINS_REMOTE_TYPE =
|
||||
|
@ -107,6 +111,10 @@ var AboutLoginsParent = {
|
|||
}
|
||||
break;
|
||||
}
|
||||
case "AboutLogins:OpenFeedback": {
|
||||
message.target.ownerGlobal.openWebLinkIn(FEEDBACK_URL, "tab", {relatedToCurrent: true});
|
||||
break;
|
||||
}
|
||||
case "AboutLogins:OpenPreferences": {
|
||||
message.target.ownerGlobal.openPreferences("privacy-logins");
|
||||
break;
|
||||
|
|
|
@ -61,6 +61,7 @@ master-password-reload-button-accesskey = L
|
|||
|
||||
menu-button =
|
||||
.button-title = Open menu
|
||||
.menuitem-feedback = Leave Feedback
|
||||
.menuitem-import = Import Passwords…
|
||||
.menuitem-preferences =
|
||||
{ PLATFORM() ->
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
<button id="create-login-button" data-l10n-id="create-login-button"></button>
|
||||
<menu-button data-l10n-id="menu-button"
|
||||
data-l10n-attrs="button-title,
|
||||
menuitem-feedback,
|
||||
menuitem-import,
|
||||
menuitem-preferences"></menu-button>
|
||||
</header>
|
||||
|
@ -147,6 +148,9 @@
|
|||
<li role="menuitem" class="menuitem windows-only">
|
||||
<button class="menuitem-button menuitem-import alternate-button" data-event-name="AboutLoginsImport"></button>
|
||||
</li>
|
||||
<li role="menuitem" class="menuitem">
|
||||
<button class="menuitem-button menuitem-feedback alternate-button" data-event-name="AboutLoginsOpenFeedback"></button>
|
||||
</li>
|
||||
<li role="menuitem" class="menuitem">
|
||||
<button class="menuitem-button menuitem-preferences alternate-button" data-event-name="AboutLoginsOpenPreferences"></button>
|
||||
</li>
|
||||
|
|
|
@ -68,6 +68,10 @@
|
|||
background-image: url("chrome://browser/skin/settings.svg");
|
||||
}
|
||||
|
||||
.menuitem-feedback {
|
||||
background-image: url("chrome://browser/content/aboutlogins/icons/feedback.svg");
|
||||
}
|
||||
|
||||
:host(:not(.Win32)) .windows-only {
|
||||
display: none;
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ export default class MenuButton extends ReflectedFluentElement {
|
|||
return [
|
||||
"button-title",
|
||||
"menuitem-import",
|
||||
"menuitem-feedback",
|
||||
"menuitem-preferences",
|
||||
];
|
||||
}
|
||||
|
@ -63,6 +64,7 @@ export default class MenuButton extends ReflectedFluentElement {
|
|||
}
|
||||
let classList = event.originalTarget.classList;
|
||||
if (classList.contains("menuitem-import") ||
|
||||
classList.contains("menuitem-feedback") ||
|
||||
classList.contains("menuitem-preferences")) {
|
||||
let eventName = event.originalTarget.dataset.eventName;
|
||||
document.dispatchEvent(new CustomEvent(eventName, {
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="14" viewBox="0 0 16 14">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<path d="M0-1h16v16H0z"/>
|
||||
<path fill="context-fill" fill-rule="nonzero" d="M14.929 2.984c-.715-.878-1.685-1.572-2.911-2.08C10.792.393 9.452.14 8 .14S5.208.394 3.982.903c-1.226.51-2.196 1.203-2.91 2.08C.356 3.863 0 4.819 0 5.855c0 .893.27 1.73.808 2.51.539.779 1.275 1.434 2.21 1.964a5.7 5.7 0 0 1-.232.678c-.09.214-.17.39-.241.527a3.624 3.624 0 0 1-.29.455 4.657 4.657 0 0 1-.277.353 142.3 142.3 0 0 0-.657.728l-.062.076-.054.08c-.03.044-.043.073-.04.085a.237.237 0 0 1-.018.089c-.015.048-.013.083.005.107v.009a.455.455 0 0 0 .143.246.358.358 0 0 0 .24.093h.045a6.733 6.733 0 0 0 1.018-.196 9.757 9.757 0 0 0 4.107-2.161c.447.048.878.071 1.295.071 1.452 0 2.792-.254 4.018-.763 1.226-.51 2.196-1.202 2.91-2.08C15.643 7.847 16 6.89 16 5.855c0-1.036-.357-1.993-1.071-2.871zm-1.457 4.948c-.575.645-1.35 1.158-2.326 1.538-.976.38-2.025.57-3.146.57-.335 0-.693-.022-1.072-.065l-.47-.05-.355.312a8.138 8.138 0 0 1-2.268 1.403c.253-.443.446-.913.578-1.41l.222-.788-.717-.41c-.715-.405-1.269-.885-1.662-1.44-.393-.555-.59-1.14-.59-1.752 0-.749.288-1.446.862-2.092.575-.645 1.35-1.158 2.326-1.538A8.591 8.591 0 0 1 8 1.64c1.122 0 2.17.19 3.146.57.976.38 1.75.893 2.326 1.538.574.646.861 1.343.861 2.092 0 .75-.287 1.447-.861 2.092z"/>
|
||||
</g>
|
||||
</svg>
|
После Ширина: | Высота: | Размер: 1.3 KiB |
|
@ -18,6 +18,7 @@ browser.jar:
|
|||
content/browser/aboutlogins/components/reflected-fluent-element.js (content/components/reflected-fluent-element.js)
|
||||
content/browser/aboutlogins/icons/delete.svg (content/icons/delete.svg)
|
||||
content/browser/aboutlogins/icons/edit.svg (content/icons/edit.svg)
|
||||
content/browser/aboutlogins/icons/feedback.svg (content/icons/feedback.svg)
|
||||
content/browser/aboutlogins/icons/hide-password.svg (content/icons/hide-password.svg)
|
||||
content/browser/aboutlogins/icons/show-password.svg (content/icons/show-password.svg)
|
||||
content/browser/aboutlogins/aboutLogins.css (content/aboutLogins.css)
|
||||
|
|
|
@ -50,14 +50,24 @@ add_task(async function test_menu_open_close() {
|
|||
await new Promise(resolve => requestAnimationFrame(resolve));
|
||||
is(false, menu.hidden, "menu should be visible after pressing 'space'");
|
||||
|
||||
let preferencesItem = gMenuButton.shadowRoot.querySelector(".menuitem-preferences");
|
||||
ok(!preferencesItem.matches(":focus"), ".menuitem-preferences should not be focused before tabbing to it");
|
||||
let feedbackItem = gMenuButton.shadowRoot.querySelector(".menuitem-feedback");
|
||||
ok(!feedbackItem.matches(":focus"), ".menuitem-feedback should not be focused before tabbing to it");
|
||||
// The Import menuitem is only visible on Windows, where we will need a second Tab
|
||||
// press to get to the Preferences item.
|
||||
// press to get to the Feedback item.
|
||||
let tabs = navigator.platform == "Win32" ? 2 : 1;
|
||||
while (tabs--) {
|
||||
sendKey("TAB");
|
||||
}
|
||||
|
||||
await SimpleTest.promiseWaitForCondition(() => feedbackItem.matches(":focus"),
|
||||
"waiting for feedbackItem to get focus");
|
||||
ok(feedbackItem.matches(":focus"), ".menuitem-feedback should be focused after tabbing to it");
|
||||
|
||||
let preferencesItem = gMenuButton.shadowRoot.querySelector(".menuitem-preferences");
|
||||
ok(!preferencesItem.matches(":focus"), ".menuitem-preferences should not be focused before tabbing to it");
|
||||
// We will need a third Tab press to get to the Preferences item.
|
||||
sendKey("TAB");
|
||||
|
||||
await SimpleTest.promiseWaitForCondition(() => preferencesItem.matches(":focus"),
|
||||
"waiting for preferencesItem to get focus");
|
||||
ok(preferencesItem.matches(":focus"), ".menuitem-preferences should be focused after tabbing to it");
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||
<svg width="32" height="32" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M27.188 6.714L24 4.874 16.738.684l-.227-.13a3.866 3.866 0 0 0-3.846 0l-.228.13-10.228 5.9-.227.13a3.859 3.859 0 0 0-1.927 3.335V22.382c0 1.372.739 2.646 1.927 3.335l10.449 6.03a1.608 1.608 0 0 0 2.19-.585 1.606 1.606 0 0 0-.584-2.19L3.815 23.071a1.103 1.103 0 0 1-.547-.954V10.314c0-.394.209-.757.547-.954l1.81-1.046 8.418-4.862c.339-.197.757-.19 1.095 0l10.228 5.902c.339.197.548.56.548.954V22.11c0 .394-.21.757-.548.954l-3.458 2-1.748-2.653a8.317 8.317 0 0 0 2.77-6.197c0-4.597-3.742-8.338-8.34-8.338-4.596 0-8.338 3.741-8.338 8.338 0 4.597 3.736 8.339 8.333 8.339.984 0 1.932-.172 2.812-.492l2.652 4.03c.043.062.086.123.136.179.006.012.018.018.03.03.056.062.117.117.179.167.018.012.03.024.05.037.073.055.147.098.227.141.018.006.037.019.055.025.068.03.142.061.216.08.018.006.03.012.049.012.086.025.172.037.258.043.025 0 .05.006.074.006.025 0 .05.006.074.006.05 0 .098-.006.148-.012.024 0 .043 0 .067-.006a1.43 1.43 0 0 0 .271-.062c.025-.006.05-.018.068-.024.067-.025.135-.056.203-.092.012-.007.03-.013.043-.019l4.997-2.886a3.859 3.859 0 0 0 1.926-3.335V10.049a3.885 3.885 0 0 0-1.932-3.335zM9.452 16.215a5.137 5.137 0 0 1 5.133-5.132 5.137 5.137 0 0 1 5.132 5.132 5.137 5.137 0 0 1-5.132 5.133 5.137 5.137 0 0 1-5.133-5.133z" fill="#000" fill-rule="nonzero" fill-opacity=".6"/>
|
||||
<svg width="32" height="32" xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" fill-rule="nonzero">
|
||||
<path d="M27.188 6.714L24 4.874 16.738.684l-.227-.13a3.866 3.866 0 0 0-3.846 0l-.228.13-10.228 5.9-.227.13a3.859 3.859 0 0 0-1.927 3.335V22.382c0 1.372.739 2.646 1.927 3.335l10.449 6.03a1.608 1.608 0 0 0 2.19-.585 1.606 1.606 0 0 0-.584-2.19L3.815 23.071a1.103 1.103 0 0 1-.547-.954V10.314c0-.394.209-.757.547-.954l1.81-1.046 8.418-4.862c.339-.197.757-.19 1.095 0l10.228 5.902c.339.197.548.56.548.954V22.11c0 .394-.21.757-.548.954l-3.458 2-1.748-2.653a8.317 8.317 0 0 0 2.77-6.197c0-4.597-3.742-8.338-8.34-8.338-4.596 0-8.338 3.741-8.338 8.338 0 4.597 3.736 8.339 8.333 8.339.984 0 1.932-.172 2.812-.492l2.652 4.03c.043.062.086.123.136.179.006.012.018.018.03.03.056.062.117.117.179.167.018.012.03.024.05.037.073.055.147.098.227.141.018.006.037.019.055.025.068.03.142.061.216.08.018.006.03.012.049.012.086.025.172.037.258.043.025 0 .05.006.074.006.025 0 .05.006.074.006.05 0 .098-.006.148-.012.024 0 .043 0 .067-.006a1.43 1.43 0 0 0 .271-.062c.025-.006.05-.018.068-.024.067-.025.135-.056.203-.092.012-.007.03-.013.043-.019l4.997-2.886a3.859 3.859 0 0 0 1.926-3.335V10.049a3.885 3.885 0 0 0-1.932-3.335zM9.452 16.215a5.137 5.137 0 0 1 5.133-5.132 5.137 5.137 0 0 1 5.132 5.132 5.137 5.137 0 0 1-5.132 5.133 5.137 5.137 0 0 1-5.133-5.133z"/>
|
||||
</svg>
|
||||
|
|
До Ширина: | Высота: | Размер: 1.5 KiB После Ширина: | Высота: | Размер: 1.6 KiB |
|
@ -428,12 +428,8 @@ Section "Uninstall"
|
|||
${If} ${FileExists} "$INSTDIR\defaults\pref\channel-prefs.js"
|
||||
Delete /REBOOTOK "$INSTDIR\defaults\pref\channel-prefs.js"
|
||||
${EndIf}
|
||||
${If} ${FileExists} "$INSTDIR\defaults\pref"
|
||||
RmDir /REBOOTOK "$INSTDIR\defaults\pref"
|
||||
${EndIf}
|
||||
${If} ${FileExists} "$INSTDIR\defaults"
|
||||
RmDir /REBOOTOK "$INSTDIR\defaults"
|
||||
${EndIf}
|
||||
RmDir "$INSTDIR\defaults\pref"
|
||||
RmDir "$INSTDIR\defaults"
|
||||
${If} ${FileExists} "$INSTDIR\uninstall"
|
||||
; Remove the uninstall directory that we control
|
||||
RmDir /r /REBOOTOK "$INSTDIR\uninstall"
|
||||
|
|
|
@ -377,7 +377,6 @@
|
|||
padding: 10px calc(@horizontalTabPadding@ - 2px);
|
||||
}
|
||||
|
||||
.tab-icon-pip,
|
||||
.tab-icon-sound {
|
||||
margin-inline-start: 1px;
|
||||
width: 16px;
|
||||
|
@ -385,16 +384,6 @@
|
|||
padding: 0;
|
||||
}
|
||||
|
||||
.tab-icon-pip[pictureinpicture] {
|
||||
background-image: url(chrome://global/skin/media/pictureinpicture.svg);
|
||||
-moz-context-properties: fill, stroke;
|
||||
fill: currentColor;
|
||||
stroke: currentColor;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
margin-inline-start: 5px
|
||||
}
|
||||
|
||||
.tab-icon-sound[soundplaying],
|
||||
.tab-icon-sound[muted],
|
||||
.tab-icon-sound[activemedia-blocked] {
|
||||
|
@ -411,21 +400,27 @@
|
|||
list-style-image: url(chrome://browser/skin/tabbrowser/tab-audio-blocked.svg);
|
||||
}
|
||||
|
||||
:root[lwtheme-image] .tab-icon-pip:-moz-lwtheme-darktext[pictureinpicture],
|
||||
.tab-icon-sound[pictureinpicture] {
|
||||
list-style-image: url(chrome://global/skin/media/pictureinpicture.svg);
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
}
|
||||
|
||||
:root[lwtheme-image] .tab-icon-sound:-moz-lwtheme-darktext[pictureinpicture],
|
||||
:root[lwtheme-image] .tab-icon-sound:-moz-lwtheme-darktext[soundplaying],
|
||||
:root[lwtheme-image] .tab-icon-sound:-moz-lwtheme-darktext[muted],
|
||||
:root[lwtheme-image] .tab-icon-sound:-moz-lwtheme-darktext[activemedia-blocked] {
|
||||
filter: drop-shadow(1px 1px 1px white);
|
||||
}
|
||||
|
||||
:root[lwtheme-image] .tab-icon-pip:-moz-lwtheme-brighttext[pictureinpicture],
|
||||
:root[lwtheme-image] .tab-icon-sound:-moz-lwtheme-brighttext[pictureinpicture],
|
||||
:root[lwtheme-image] .tab-icon-sound:-moz-lwtheme-brighttext[soundplaying],
|
||||
:root[lwtheme-image] .tab-icon-sound:-moz-lwtheme-brighttext[muted],
|
||||
:root[lwtheme-image] .tab-icon-sound:-moz-lwtheme-brighttext[activemedia-blocked] {
|
||||
filter: drop-shadow(1px 1px 1px black);
|
||||
}
|
||||
|
||||
.tab-icon-pip[pictureinpicture]:not(:hover),
|
||||
.tab-icon-sound[pictureinpicture]:not(:hover),
|
||||
.tab-icon-sound[soundplaying]:not(:hover),
|
||||
.tab-icon-sound[muted]:not(:hover),
|
||||
.tab-icon-sound[activemedia-blocked]:not(:hover) {
|
||||
|
|
|
@ -352,7 +352,6 @@
|
|||
}
|
||||
|
||||
.urlbar-history-dropmarker {
|
||||
-moz-appearance: none;
|
||||
list-style-image: url(chrome://global/skin/icons/arrow-dropdown-16.svg);
|
||||
transition: opacity 0.15s ease;
|
||||
}
|
||||
|
|
|
@ -43,8 +43,8 @@ add_task(async () => {
|
|||
info("Check whether the element displays correctly");
|
||||
const sourceList = panelWin.document.querySelector(".sources-list");
|
||||
ok(sourceList, "Source list element displays correctly");
|
||||
ok(sourceList.textContent.includes("moz-extension"),
|
||||
"moz-extension displays correctly");
|
||||
ok(sourceList.textContent.includes("temporary-web-extension"),
|
||||
"Extension name displays correctly");
|
||||
|
||||
await closeAboutDevtoolsToolbox(document, devtoolsTab, window);
|
||||
await removeTemporaryExtension(EXTENSION_NAME, document);
|
||||
|
|
|
@ -35,6 +35,7 @@ Array [
|
|||
},
|
||||
],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "a",
|
||||
"introductionType": null,
|
||||
"introductionUrl": null,
|
||||
|
@ -117,6 +118,7 @@ Array [
|
|||
},
|
||||
],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "a",
|
||||
"introductionType": null,
|
||||
"introductionUrl": null,
|
||||
|
|
|
@ -264,6 +264,7 @@ export function newOriginalSources(sourceInfo: Array<OriginalSourceData>) {
|
|||
introductionUrl: null,
|
||||
introductionType: undefined,
|
||||
isExtension: false,
|
||||
extensionName: null,
|
||||
}));
|
||||
|
||||
const cx = getContext(getState());
|
||||
|
@ -302,6 +303,7 @@ export function newGeneratedSources(sourceInfo: Array<GeneratedSourceData>) {
|
|||
url: source.url,
|
||||
relativeUrl: source.url,
|
||||
isPrettyPrinted: false,
|
||||
extensionName: source.extensionName,
|
||||
sourceMapURL: source.sourceMapURL,
|
||||
introductionUrl: source.introductionUrl,
|
||||
introductionType: source.introductionType,
|
||||
|
@ -332,9 +334,7 @@ export function newGeneratedSources(sourceInfo: Array<GeneratedSourceData>) {
|
|||
resultIds.push(newId);
|
||||
}
|
||||
|
||||
const newSources: Array<Source> = (Object.values(
|
||||
newSourcesObj
|
||||
): Array<any>);
|
||||
const newSources: Array<Source> = (Object.values(newSourcesObj): any[]);
|
||||
|
||||
const cx = getContext(getState());
|
||||
dispatch(addSources(cx, newSources));
|
||||
|
|
|
@ -76,6 +76,7 @@ export function createPrettySource(cx: Context, sourceId: string) {
|
|||
introductionUrl: null,
|
||||
introductionType: undefined,
|
||||
isExtension: false,
|
||||
extensionName: null,
|
||||
};
|
||||
|
||||
dispatch(({ type: "ADD_SOURCE", cx, source: prettySource }: Action));
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
exports[`sources - pretty print returns a pretty source for a minified file 1`] = `
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "base.js/originalSource-36c718d4bde9a75edb388ff7733efe7f",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
|
|
@ -96,6 +96,7 @@ export type SourcePayload = {
|
|||
sourceMapURL: URL | null,
|
||||
introductionUrl: URL | null,
|
||||
introductionType: string | null,
|
||||
extensionName: string | null,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -81,6 +81,7 @@ export class Popup extends Component<Props, State> {
|
|||
const target = this.props.preview.target;
|
||||
if (target) {
|
||||
target.classList.add("preview-token");
|
||||
addHighlightToTargetSiblings(target, this.props);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -88,6 +89,7 @@ export class Popup extends Component<Props, State> {
|
|||
const target = this.props.preview.target;
|
||||
if (target) {
|
||||
target.classList.remove("preview-token");
|
||||
removeHighlightForTargetSiblings(target);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -253,6 +255,59 @@ export class Popup extends Component<Props, State> {
|
|||
}
|
||||
}
|
||||
|
||||
function addHighlightToTargetSiblings(target: Element, props: Object) {
|
||||
// Look at target's pervious and next token siblings.
|
||||
// If they are the same token type, and are also found in the preview expression,
|
||||
// add the highlight class to them as well.
|
||||
|
||||
const tokenType = target.classList.item(0);
|
||||
const previewExpression = props.preview.expression;
|
||||
|
||||
if (
|
||||
tokenType &&
|
||||
previewExpression &&
|
||||
target.innerHTML !== previewExpression
|
||||
) {
|
||||
let nextSibling = target.nextElementSibling;
|
||||
while (
|
||||
nextSibling &&
|
||||
nextSibling.className.includes(tokenType) &&
|
||||
previewExpression.includes(nextSibling.innerHTML)
|
||||
) {
|
||||
nextSibling.classList.add("preview-token");
|
||||
nextSibling = nextSibling.nextElementSibling;
|
||||
}
|
||||
let previousSibling = target.previousElementSibling;
|
||||
while (
|
||||
previousSibling &&
|
||||
previousSibling.className.includes(tokenType) &&
|
||||
previewExpression.includes(previousSibling.innerHTML)
|
||||
) {
|
||||
previousSibling.classList.add("preview-token");
|
||||
previousSibling = previousSibling.previousElementSibling;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function removeHighlightForTargetSiblings(target: Element) {
|
||||
// Look at target's previous and next token siblings.
|
||||
// If they also have the highlight class 'preview-token',
|
||||
// remove that class.
|
||||
let nextSibling = target.nextElementSibling;
|
||||
while (nextSibling && nextSibling.className.includes("preview-token")) {
|
||||
nextSibling.classList.remove("preview-token");
|
||||
nextSibling = nextSibling.nextElementSibling;
|
||||
}
|
||||
let previousSibling = target.previousElementSibling;
|
||||
while (
|
||||
previousSibling &&
|
||||
previousSibling.className.includes("preview-token")
|
||||
) {
|
||||
previousSibling.classList.remove("preview-token");
|
||||
previousSibling = previousSibling.previousElementSibling;
|
||||
}
|
||||
}
|
||||
|
||||
const mapStateToProps = state => ({
|
||||
cx: getThreadContext(state),
|
||||
preview: getPreview(state),
|
||||
|
|
|
@ -17,7 +17,7 @@ import {
|
|||
import { isVisible } from "../../utils/ui";
|
||||
|
||||
import { getHiddenTabs } from "../../utils/tabs";
|
||||
import { getFilename, isPretty } from "../../utils/source";
|
||||
import { getFilename, isPretty, getFileURL } from "../../utils/source";
|
||||
import actions from "../../actions";
|
||||
|
||||
import { debounce } from "lodash";
|
||||
|
@ -143,7 +143,7 @@ class Tabs extends PureComponent<Props, State> {
|
|||
|
||||
const onClick = () => selectSource(cx, source.id);
|
||||
return (
|
||||
<li key={source.id} onClick={onClick}>
|
||||
<li key={source.id} onClick={onClick} title={getFileURL(source, false)}>
|
||||
<AccessibleImage
|
||||
className={`dropdown-icon ${this.getIconClass(source)}`}
|
||||
/>
|
||||
|
|
|
@ -19,6 +19,7 @@ import {
|
|||
hasPrettySource as checkHasPrettySource,
|
||||
getContext,
|
||||
getMainThread,
|
||||
getExtensionNameBySourceUrl,
|
||||
getSourceContent,
|
||||
} from "../../selectors";
|
||||
import actions from "../../actions";
|
||||
|
@ -49,6 +50,7 @@ type Props = {
|
|||
debuggeeUrl: string,
|
||||
projectRoot: string,
|
||||
source: ?Source,
|
||||
extensionName: string | null,
|
||||
item: TreeNode,
|
||||
sourceContent: SourceContent,
|
||||
depth: number,
|
||||
|
@ -262,7 +264,7 @@ class SourceTreeItem extends Component<Props, State> {
|
|||
}
|
||||
|
||||
renderItemName(depth) {
|
||||
const { item, threads } = this.props;
|
||||
const { item, threads, extensionName } = this.props;
|
||||
|
||||
if (depth === 0) {
|
||||
const thread = threads.find(({ actor }) => actor == item.name);
|
||||
|
@ -273,6 +275,10 @@ class SourceTreeItem extends Component<Props, State> {
|
|||
}
|
||||
}
|
||||
|
||||
if (isExtensionDirectory(depth, extensionName)) {
|
||||
return extensionName;
|
||||
}
|
||||
|
||||
switch (item.name) {
|
||||
case "ng://":
|
||||
return "Angular";
|
||||
|
@ -283,6 +289,16 @@ class SourceTreeItem extends Component<Props, State> {
|
|||
}
|
||||
}
|
||||
|
||||
renderItemTooltip() {
|
||||
const { item, depth, extensionName } = this.props;
|
||||
|
||||
if (isExtensionDirectory(depth, extensionName)) {
|
||||
return item.name;
|
||||
}
|
||||
|
||||
return item.type === "source" ? unescape(item.contents.url) : "";
|
||||
}
|
||||
|
||||
render() {
|
||||
const {
|
||||
item,
|
||||
|
@ -307,15 +323,13 @@ class SourceTreeItem extends Component<Props, State> {
|
|||
<span className="query">{querystring}</span>
|
||||
) : null;
|
||||
|
||||
const title = item.type === "source" ? unescape(item.contents.url) : "";
|
||||
|
||||
return (
|
||||
<div
|
||||
className={classnames("node", { focused })}
|
||||
key={item.path}
|
||||
onClick={this.onClick}
|
||||
onContextMenu={e => this.onContextMenu(e, item)}
|
||||
title={title}
|
||||
title={this.renderItemTooltip()}
|
||||
>
|
||||
{this.renderItemArrow()}
|
||||
{this.renderIcon(item, depth)}
|
||||
|
@ -341,8 +355,12 @@ function getSourceContentValue(state, source: Source) {
|
|||
return content !== null ? content.value : false;
|
||||
}
|
||||
|
||||
function isExtensionDirectory(depth, extensionName) {
|
||||
return extensionName && depth === 1;
|
||||
}
|
||||
|
||||
const mapStateToProps = (state, props) => {
|
||||
const { source } = props;
|
||||
const { source, item } = props;
|
||||
return {
|
||||
cx: getContext(state),
|
||||
mainThread: getMainThread(state),
|
||||
|
@ -350,6 +368,10 @@ const mapStateToProps = (state, props) => {
|
|||
hasSiblingOfSameName: getHasSiblingOfSameName(state, source),
|
||||
hasPrettySource: source ? checkHasPrettySource(state, source.id) : false,
|
||||
sourceContent: source ? getSourceContentValue(state, source) : false,
|
||||
extensionName:
|
||||
(isUrlExtension(item.name) &&
|
||||
getExtensionNameBySourceUrl(state, item.name)) ||
|
||||
null,
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -135,6 +135,7 @@ exports[`SourcesTree on receiving new props updates highlighted items updates hi
|
|||
Array [
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/41",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -154,6 +155,7 @@ exports[`SourcesTree on receiving new props updates highlighted items updates hi
|
|||
"contents": Array [
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/42",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -171,6 +173,7 @@ exports[`SourcesTree on receiving new props updates highlighted items updates hi
|
|||
},
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/42/originalSource-sha",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -188,6 +191,7 @@ exports[`SourcesTree on receiving new props updates highlighted items updates hi
|
|||
},
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -205,6 +209,7 @@ exports[`SourcesTree on receiving new props updates highlighted items updates hi
|
|||
},
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/41",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -222,6 +227,7 @@ exports[`SourcesTree on receiving new props updates highlighted items updates hi
|
|||
},
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/40",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -248,6 +254,7 @@ exports[`SourcesTree on receiving new props updates highlighted items updates hi
|
|||
"contents": Array [
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/42",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -265,6 +272,7 @@ exports[`SourcesTree on receiving new props updates highlighted items updates hi
|
|||
},
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/42/originalSource-sha",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -282,6 +290,7 @@ exports[`SourcesTree on receiving new props updates highlighted items updates hi
|
|||
},
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -299,6 +308,7 @@ exports[`SourcesTree on receiving new props updates highlighted items updates hi
|
|||
},
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/41",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -316,6 +326,7 @@ exports[`SourcesTree on receiving new props updates highlighted items updates hi
|
|||
},
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/40",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
|
|
@ -15,6 +15,7 @@ Object {
|
|||
<Connect(SourceIcon)
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -48,6 +49,7 @@ Object {
|
|||
"focusItem": [MockFunction],
|
||||
"item": Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -66,6 +68,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -97,6 +100,7 @@ Object {
|
|||
item={
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -117,6 +121,7 @@ Object {
|
|||
setProjectDirectoryRoot={[MockFunction]}
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -152,6 +157,7 @@ Object {
|
|||
<Connect(SourceIcon)
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -183,6 +189,7 @@ Object {
|
|||
"focusItem": [MockFunction],
|
||||
"item": Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -201,6 +208,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -236,6 +244,7 @@ Object {
|
|||
<Connect(SourceIcon)
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -275,6 +284,7 @@ Object {
|
|||
"hasMatchingGeneratedSource": true,
|
||||
"item": Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -294,6 +304,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -326,6 +337,7 @@ Object {
|
|||
item={
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -347,6 +359,7 @@ Object {
|
|||
setProjectDirectoryRoot={[MockFunction]}
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -382,6 +395,7 @@ Object {
|
|||
<Connect(SourceIcon)
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -419,6 +433,7 @@ Object {
|
|||
"hasMatchingGeneratedSource": true,
|
||||
"item": Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -438,6 +453,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -473,6 +489,7 @@ Object {
|
|||
<Connect(SourceIcon)
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -507,6 +524,7 @@ Object {
|
|||
"focusItem": [MockFunction],
|
||||
"item": Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -526,6 +544,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -558,6 +577,7 @@ Object {
|
|||
item={
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -579,6 +599,7 @@ Object {
|
|||
setProjectDirectoryRoot={[MockFunction]}
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -614,6 +635,7 @@ Object {
|
|||
<Connect(SourceIcon)
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -646,6 +668,7 @@ Object {
|
|||
"focusItem": [MockFunction],
|
||||
"item": Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -665,6 +688,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -731,6 +755,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -774,6 +799,7 @@ Object {
|
|||
setProjectDirectoryRoot={[MockFunction]}
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -838,6 +864,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -905,6 +932,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -949,6 +977,7 @@ Object {
|
|||
setProjectDirectoryRoot={[MockFunction]}
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -1014,6 +1043,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -1223,6 +1253,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -1265,6 +1296,7 @@ Object {
|
|||
setProjectDirectoryRoot={[MockFunction]}
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -1328,6 +1360,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -1676,6 +1709,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -1719,6 +1753,7 @@ Object {
|
|||
setProjectDirectoryRoot={[MockFunction]}
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -1783,6 +1818,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -1848,6 +1884,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -1890,6 +1927,7 @@ Object {
|
|||
setProjectDirectoryRoot={[MockFunction]}
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -1953,6 +1991,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -1988,6 +2027,7 @@ Object {
|
|||
<Connect(SourceIcon)
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2021,6 +2061,7 @@ Object {
|
|||
"focusItem": [MockFunction],
|
||||
"item": Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2040,6 +2081,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2071,6 +2113,7 @@ Object {
|
|||
item={
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2092,6 +2135,7 @@ Object {
|
|||
setProjectDirectoryRoot={[MockFunction]}
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2127,6 +2171,7 @@ Object {
|
|||
<Connect(SourceIcon)
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2158,6 +2203,7 @@ Object {
|
|||
"focusItem": [MockFunction],
|
||||
"item": Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2177,6 +2223,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2212,6 +2259,7 @@ Object {
|
|||
<Connect(SourceIcon)
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2247,6 +2295,7 @@ Object {
|
|||
"focused": true,
|
||||
"item": Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2265,6 +2314,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2298,6 +2348,7 @@ Object {
|
|||
item={
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2318,6 +2369,7 @@ Object {
|
|||
setProjectDirectoryRoot={[MockFunction]}
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2353,6 +2405,7 @@ Object {
|
|||
<Connect(SourceIcon)
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2386,6 +2439,7 @@ Object {
|
|||
"focused": true,
|
||||
"item": Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2404,6 +2458,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2439,6 +2494,7 @@ Object {
|
|||
<Connect(SourceIcon)
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2472,6 +2528,7 @@ Object {
|
|||
"focusItem": [MockFunction],
|
||||
"item": Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2491,6 +2548,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2522,6 +2580,7 @@ Object {
|
|||
item={
|
||||
Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2543,6 +2602,7 @@ Object {
|
|||
setProjectDirectoryRoot={[MockFunction]}
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2578,6 +2638,7 @@ Object {
|
|||
<Connect(SourceIcon)
|
||||
source={
|
||||
Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2609,6 +2670,7 @@ Object {
|
|||
"focusItem": [MockFunction],
|
||||
"item": Object {
|
||||
"contents": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -2628,6 +2690,7 @@ Object {
|
|||
"setExpanded": [MockFunction],
|
||||
"setProjectDirectoryRoot": [MockFunction],
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "server1.conn13.child1/39",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
|
|
@ -37,6 +37,7 @@ exports[`Frame getFrameTitle 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -88,6 +89,7 @@ exports[`Frame getFrameTitle 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -146,6 +148,7 @@ exports[`Frame library frame 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -198,6 +201,7 @@ exports[`Frame library frame 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -255,6 +259,7 @@ exports[`Frame user frame (not selected) 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -306,6 +311,7 @@ exports[`Frame user frame (not selected) 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -363,6 +369,7 @@ exports[`Frame user frame 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -414,6 +421,7 @@ exports[`Frame user frame 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
|
|
@ -34,6 +34,7 @@ exports[`Frames Blackboxed Frames filters blackboxed frames 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "1",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -77,6 +78,7 @@ exports[`Frames Blackboxed Frames filters blackboxed frames 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "1",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -122,6 +124,7 @@ exports[`Frames Blackboxed Frames filters blackboxed frames 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "1",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -165,6 +168,7 @@ exports[`Frames Blackboxed Frames filters blackboxed frames 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "1",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
|
|
@ -41,6 +41,7 @@ exports[`Group displays a group 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -112,6 +113,7 @@ exports[`Group passes the getFrameTitle prop to the Frame components 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -182,6 +184,7 @@ exports[`Group passes the getFrameTitle prop to the Frame components 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -227,6 +230,7 @@ exports[`Group passes the getFrameTitle prop to the Frame components 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -285,6 +289,7 @@ exports[`Group passes the getFrameTitle prop to the Frame components 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -330,6 +335,7 @@ exports[`Group passes the getFrameTitle prop to the Frame components 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -388,6 +394,7 @@ exports[`Group passes the getFrameTitle prop to the Frame components 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -433,6 +440,7 @@ exports[`Group passes the getFrameTitle prop to the Frame components 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -496,6 +504,7 @@ exports[`Group renders group with anonymous functions 1`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -567,6 +576,7 @@ exports[`Group renders group with anonymous functions 2`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -637,6 +647,7 @@ exports[`Group renders group with anonymous functions 2`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -681,6 +692,7 @@ exports[`Group renders group with anonymous functions 2`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -739,6 +751,7 @@ exports[`Group renders group with anonymous functions 2`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -783,6 +796,7 @@ exports[`Group renders group with anonymous functions 2`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -841,6 +855,7 @@ exports[`Group renders group with anonymous functions 2`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
@ -885,6 +900,7 @@ exports[`Group renders group with anonymous functions 2`] = `
|
|||
"type": "block",
|
||||
},
|
||||
"source": Object {
|
||||
"extensionName": null,
|
||||
"id": "source",
|
||||
"introductionType": undefined,
|
||||
"introductionUrl": null,
|
||||
|
|
|
@ -697,6 +697,15 @@ export function getDisplayedSourcesList(
|
|||
): any);
|
||||
}
|
||||
|
||||
export function getExtensionNameBySourceUrl(state: OuterState, url: string) {
|
||||
const match = getSourceList(state).find(
|
||||
source => source.url && source.url.startsWith(url)
|
||||
);
|
||||
if (match && match.extensionName) {
|
||||
return match.extensionName;
|
||||
}
|
||||
}
|
||||
|
||||
export function getSourceCount(state: OuterState) {
|
||||
return getSourceList(state).length;
|
||||
}
|
||||
|
|
|
@ -406,6 +406,7 @@ export type Source = {|
|
|||
+relativeUrl: string,
|
||||
+introductionUrl: ?string,
|
||||
+introductionType: ?string,
|
||||
+extensionName: ?string,
|
||||
+isExtension: boolean,
|
||||
+isWasm: boolean,
|
||||
|};
|
||||
|
|
|
@ -28,6 +28,7 @@ exports[`calls updateTree.js adds one source 1`] = `
|
|||
\\"relativeUrl\\": \\"https://davidwalsh.name/\\",
|
||||
\\"introductionUrl\\": null,
|
||||
\\"isWasm\\": false,
|
||||
\\"extensionName\\": null,
|
||||
\\"isExtension\\": false
|
||||
}
|
||||
},
|
||||
|
@ -43,6 +44,7 @@ exports[`calls updateTree.js adds one source 1`] = `
|
|||
\\"relativeUrl\\": \\"https://davidwalsh.name/source1.js\\",
|
||||
\\"introductionUrl\\": null,
|
||||
\\"isWasm\\": false,
|
||||
\\"extensionName\\": null,
|
||||
\\"isExtension\\": false
|
||||
}
|
||||
}
|
||||
|
@ -82,6 +84,7 @@ exports[`calls updateTree.js adds two sources 1`] = `
|
|||
\\"relativeUrl\\": \\"https://davidwalsh.name/\\",
|
||||
\\"introductionUrl\\": null,
|
||||
\\"isWasm\\": false,
|
||||
\\"extensionName\\": null,
|
||||
\\"isExtension\\": false
|
||||
}
|
||||
},
|
||||
|
@ -97,6 +100,7 @@ exports[`calls updateTree.js adds two sources 1`] = `
|
|||
\\"relativeUrl\\": \\"https://davidwalsh.name/source1.js\\",
|
||||
\\"introductionUrl\\": null,
|
||||
\\"isWasm\\": false,
|
||||
\\"extensionName\\": null,
|
||||
\\"isExtension\\": false
|
||||
}
|
||||
},
|
||||
|
@ -112,6 +116,7 @@ exports[`calls updateTree.js adds two sources 1`] = `
|
|||
\\"relativeUrl\\": \\"https://davidwalsh.name/source2.js\\",
|
||||
\\"introductionUrl\\": null,
|
||||
\\"isWasm\\": false,
|
||||
\\"extensionName\\": null,
|
||||
\\"isExtension\\": false
|
||||
}
|
||||
}
|
||||
|
@ -151,6 +156,7 @@ exports[`calls updateTree.js shows all the sources 1`] = `
|
|||
\\"relativeUrl\\": \\"https://davidwalsh.name/\\",
|
||||
\\"introductionUrl\\": null,
|
||||
\\"isWasm\\": false,
|
||||
\\"extensionName\\": null,
|
||||
\\"isExtension\\": false
|
||||
}
|
||||
}
|
||||
|
|
|
@ -146,6 +146,7 @@ function createMakeSource(): (
|
|||
introductionType: props.introductionType || null,
|
||||
introductionUrl: props.introductionUrl || null,
|
||||
isBlackBoxed: !!props.isBlackBoxed,
|
||||
extensionName: null,
|
||||
},
|
||||
};
|
||||
};
|
||||
|
|
|
@ -38,6 +38,7 @@ function makeMockSource(url: string = "url", id: SourceId = "source"): Source {
|
|||
introductionUrl: null,
|
||||
introductionType: undefined,
|
||||
isWasm: false,
|
||||
extensionName: null,
|
||||
isExtension: false,
|
||||
};
|
||||
}
|
||||
|
@ -90,6 +91,7 @@ function makeMockWasmSource(): Source {
|
|||
introductionUrl: null,
|
||||
introductionType: undefined,
|
||||
isWasm: true,
|
||||
extensionName: null,
|
||||
isExtension: false,
|
||||
};
|
||||
}
|
||||
|
|
|
@ -91,12 +91,11 @@ async function captureProfile() {
|
|||
// more samples while the parent process waits for subprocess profiles.
|
||||
Services.profiler.PauseSampling();
|
||||
|
||||
const profile = await Services.profiler.getProfileDataAsArrayBuffer().catch(
|
||||
e => {
|
||||
console.error(e);
|
||||
return {};
|
||||
}
|
||||
);
|
||||
const profile = await Services.profiler.getProfileDataAsGzippedArrayBuffer()
|
||||
.catch(e => {
|
||||
console.error(e);
|
||||
return {};
|
||||
});
|
||||
|
||||
receiveProfile(profile, getSymbols);
|
||||
|
||||
|
|
|
@ -350,13 +350,8 @@ pref("devtools.responsive.showUserAgentInput", true);
|
|||
pref("devtools.responsive.showUserAgentInput", false);
|
||||
#endif
|
||||
|
||||
// Enable new about:debugging in Nightly and DevEdition only.
|
||||
// Should ride the trains in Firefox 69. See Bug 1553042.
|
||||
#if defined(MOZ_DEV_EDITION) || defined(NIGHTLY_BUILD)
|
||||
// Enable new about:debugging.
|
||||
pref("devtools.aboutdebugging.new-enabled", true);
|
||||
#else
|
||||
pref("devtools.aboutdebugging.new-enabled", false);
|
||||
#endif
|
||||
|
||||
// Show tab debug targets for This Firefox (on by default for local builds).
|
||||
#ifdef MOZILLA_OFFICIAL
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -0,0 +1,72 @@
|
|||
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
||||
|
||||
(function(mod) {
|
||||
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
||||
mod(require("../../lib/codemirror"), require("../../mode/simple/simple"));
|
||||
else if (typeof define == "function" && define.amd) // AMD
|
||||
define(["../../lib/codemirror", "../../mode/simple/simple"], mod);
|
||||
else // Plain browser env
|
||||
mod(CodeMirror);
|
||||
})(function(CodeMirror) {
|
||||
"use strict";
|
||||
|
||||
CodeMirror.defineSimpleMode("rust",{
|
||||
start: [
|
||||
// string and byte string
|
||||
{regex: /b?"/, token: "string", next: "string"},
|
||||
// raw string and raw byte string
|
||||
{regex: /b?r"/, token: "string", next: "string_raw"},
|
||||
{regex: /b?r#+"/, token: "string", next: "string_raw_hash"},
|
||||
// character
|
||||
{regex: /'(?:[^'\\]|\\(?:[nrt0'"]|x[\da-fA-F]{2}|u\{[\da-fA-F]{6}\}))'/, token: "string-2"},
|
||||
// byte
|
||||
{regex: /b'(?:[^']|\\(?:['\\nrt0]|x[\da-fA-F]{2}))'/, token: "string-2"},
|
||||
|
||||
{regex: /(?:(?:[0-9][0-9_]*)(?:(?:[Ee][+-]?[0-9_]+)|\.[0-9_]+(?:[Ee][+-]?[0-9_]+)?)(?:f32|f64)?)|(?:0(?:b[01_]+|(?:o[0-7_]+)|(?:x[0-9a-fA-F_]+))|(?:[0-9][0-9_]*))(?:u8|u16|u32|u64|i8|i16|i32|i64|isize|usize)?/,
|
||||
token: "number"},
|
||||
{regex: /(let(?:\s+mut)?|fn|enum|mod|struct|type)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/, token: ["keyword", null, "def"]},
|
||||
{regex: /(?:abstract|alignof|as|box|break|continue|const|crate|do|else|enum|extern|fn|for|final|if|impl|in|loop|macro|match|mod|move|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\b/, token: "keyword"},
|
||||
{regex: /\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|f16|f32|f64|i8|i16|i32|i64|str|Option)\b/, token: "atom"},
|
||||
{regex: /\b(?:true|false|Some|None|Ok|Err)\b/, token: "builtin"},
|
||||
{regex: /\b(fn)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,
|
||||
token: ["keyword", null ,"def"]},
|
||||
{regex: /#!?\[.*\]/, token: "meta"},
|
||||
{regex: /\/\/.*/, token: "comment"},
|
||||
{regex: /\/\*/, token: "comment", next: "comment"},
|
||||
{regex: /[-+\/*=<>!]+/, token: "operator"},
|
||||
{regex: /[a-zA-Z_]\w*!/,token: "variable-3"},
|
||||
{regex: /[a-zA-Z_]\w*/, token: "variable"},
|
||||
{regex: /[\{\[\(]/, indent: true},
|
||||
{regex: /[\}\]\)]/, dedent: true}
|
||||
],
|
||||
string: [
|
||||
{regex: /"/, token: "string", next: "start"},
|
||||
{regex: /(?:[^\\"]|\\(?:.|$))*/, token: "string"}
|
||||
],
|
||||
string_raw: [
|
||||
{regex: /"/, token: "string", next: "start"},
|
||||
{regex: /[^"]*/, token: "string"}
|
||||
],
|
||||
string_raw_hash: [
|
||||
{regex: /"#+/, token: "string", next: "start"},
|
||||
{regex: /(?:[^"]|"(?!#))*/, token: "string"}
|
||||
],
|
||||
comment: [
|
||||
{regex: /.*?\*\//, token: "comment", next: "start"},
|
||||
{regex: /.*/, token: "comment"}
|
||||
],
|
||||
meta: {
|
||||
dontIndentStates: ["comment"],
|
||||
electricInput: /^\s*\}$/,
|
||||
blockCommentStart: "/*",
|
||||
blockCommentEnd: "*/",
|
||||
lineComment: "//",
|
||||
fold: "brace"
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
CodeMirror.defineMIME("text/x-rustsrc", "rust");
|
||||
CodeMirror.defineMIME("text/rust", "rust");
|
||||
});
|
|
@ -0,0 +1,216 @@
|
|||
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
||||
|
||||
(function(mod) {
|
||||
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
||||
mod(require("../../lib/codemirror"));
|
||||
else if (typeof define == "function" && define.amd) // AMD
|
||||
define(["../../lib/codemirror"], mod);
|
||||
else // Plain browser env
|
||||
mod(CodeMirror);
|
||||
})(function(CodeMirror) {
|
||||
"use strict";
|
||||
|
||||
CodeMirror.defineSimpleMode = function(name, states) {
|
||||
CodeMirror.defineMode(name, function(config) {
|
||||
return CodeMirror.simpleMode(config, states);
|
||||
});
|
||||
};
|
||||
|
||||
CodeMirror.simpleMode = function(config, states) {
|
||||
ensureState(states, "start");
|
||||
var states_ = {}, meta = states.meta || {}, hasIndentation = false;
|
||||
for (var state in states) if (state != meta && states.hasOwnProperty(state)) {
|
||||
var list = states_[state] = [], orig = states[state];
|
||||
for (var i = 0; i < orig.length; i++) {
|
||||
var data = orig[i];
|
||||
list.push(new Rule(data, states));
|
||||
if (data.indent || data.dedent) hasIndentation = true;
|
||||
}
|
||||
}
|
||||
var mode = {
|
||||
startState: function() {
|
||||
return {state: "start", pending: null,
|
||||
local: null, localState: null,
|
||||
indent: hasIndentation ? [] : null};
|
||||
},
|
||||
copyState: function(state) {
|
||||
var s = {state: state.state, pending: state.pending,
|
||||
local: state.local, localState: null,
|
||||
indent: state.indent && state.indent.slice(0)};
|
||||
if (state.localState)
|
||||
s.localState = CodeMirror.copyState(state.local.mode, state.localState);
|
||||
if (state.stack)
|
||||
s.stack = state.stack.slice(0);
|
||||
for (var pers = state.persistentStates; pers; pers = pers.next)
|
||||
s.persistentStates = {mode: pers.mode,
|
||||
spec: pers.spec,
|
||||
state: pers.state == state.localState ? s.localState : CodeMirror.copyState(pers.mode, pers.state),
|
||||
next: s.persistentStates};
|
||||
return s;
|
||||
},
|
||||
token: tokenFunction(states_, config),
|
||||
innerMode: function(state) { return state.local && {mode: state.local.mode, state: state.localState}; },
|
||||
indent: indentFunction(states_, meta)
|
||||
};
|
||||
if (meta) for (var prop in meta) if (meta.hasOwnProperty(prop))
|
||||
mode[prop] = meta[prop];
|
||||
return mode;
|
||||
};
|
||||
|
||||
function ensureState(states, name) {
|
||||
if (!states.hasOwnProperty(name))
|
||||
throw new Error("Undefined state " + name + " in simple mode");
|
||||
}
|
||||
|
||||
function toRegex(val, caret) {
|
||||
if (!val) return /(?:)/;
|
||||
var flags = "";
|
||||
if (val instanceof RegExp) {
|
||||
if (val.ignoreCase) flags = "i";
|
||||
val = val.source;
|
||||
} else {
|
||||
val = String(val);
|
||||
}
|
||||
return new RegExp((caret === false ? "" : "^") + "(?:" + val + ")", flags);
|
||||
}
|
||||
|
||||
function asToken(val) {
|
||||
if (!val) return null;
|
||||
if (val.apply) return val
|
||||
if (typeof val == "string") return val.replace(/\./g, " ");
|
||||
var result = [];
|
||||
for (var i = 0; i < val.length; i++)
|
||||
result.push(val[i] && val[i].replace(/\./g, " "));
|
||||
return result;
|
||||
}
|
||||
|
||||
function Rule(data, states) {
|
||||
if (data.next || data.push) ensureState(states, data.next || data.push);
|
||||
this.regex = toRegex(data.regex);
|
||||
this.token = asToken(data.token);
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
function tokenFunction(states, config) {
|
||||
return function(stream, state) {
|
||||
if (state.pending) {
|
||||
var pend = state.pending.shift();
|
||||
if (state.pending.length == 0) state.pending = null;
|
||||
stream.pos += pend.text.length;
|
||||
return pend.token;
|
||||
}
|
||||
|
||||
if (state.local) {
|
||||
if (state.local.end && stream.match(state.local.end)) {
|
||||
var tok = state.local.endToken || null;
|
||||
state.local = state.localState = null;
|
||||
return tok;
|
||||
} else {
|
||||
var tok = state.local.mode.token(stream, state.localState), m;
|
||||
if (state.local.endScan && (m = state.local.endScan.exec(stream.current())))
|
||||
stream.pos = stream.start + m.index;
|
||||
return tok;
|
||||
}
|
||||
}
|
||||
|
||||
var curState = states[state.state];
|
||||
for (var i = 0; i < curState.length; i++) {
|
||||
var rule = curState[i];
|
||||
var matches = (!rule.data.sol || stream.sol()) && stream.match(rule.regex);
|
||||
if (matches) {
|
||||
if (rule.data.next) {
|
||||
state.state = rule.data.next;
|
||||
} else if (rule.data.push) {
|
||||
(state.stack || (state.stack = [])).push(state.state);
|
||||
state.state = rule.data.push;
|
||||
} else if (rule.data.pop && state.stack && state.stack.length) {
|
||||
state.state = state.stack.pop();
|
||||
}
|
||||
|
||||
if (rule.data.mode)
|
||||
enterLocalMode(config, state, rule.data.mode, rule.token);
|
||||
if (rule.data.indent)
|
||||
state.indent.push(stream.indentation() + config.indentUnit);
|
||||
if (rule.data.dedent)
|
||||
state.indent.pop();
|
||||
var token = rule.token
|
||||
if (token && token.apply) token = token(matches)
|
||||
if (matches.length > 2 && rule.token && typeof rule.token != "string") {
|
||||
state.pending = [];
|
||||
for (var j = 2; j < matches.length; j++)
|
||||
if (matches[j])
|
||||
state.pending.push({text: matches[j], token: rule.token[j - 1]});
|
||||
stream.backUp(matches[0].length - (matches[1] ? matches[1].length : 0));
|
||||
return token[0];
|
||||
} else if (token && token.join) {
|
||||
return token[0];
|
||||
} else {
|
||||
return token;
|
||||
}
|
||||
}
|
||||
}
|
||||
stream.next();
|
||||
return null;
|
||||
};
|
||||
}
|
||||
|
||||
function cmp(a, b) {
|
||||
if (a === b) return true;
|
||||
if (!a || typeof a != "object" || !b || typeof b != "object") return false;
|
||||
var props = 0;
|
||||
for (var prop in a) if (a.hasOwnProperty(prop)) {
|
||||
if (!b.hasOwnProperty(prop) || !cmp(a[prop], b[prop])) return false;
|
||||
props++;
|
||||
}
|
||||
for (var prop in b) if (b.hasOwnProperty(prop)) props--;
|
||||
return props == 0;
|
||||
}
|
||||
|
||||
function enterLocalMode(config, state, spec, token) {
|
||||
var pers;
|
||||
if (spec.persistent) for (var p = state.persistentStates; p && !pers; p = p.next)
|
||||
if (spec.spec ? cmp(spec.spec, p.spec) : spec.mode == p.mode) pers = p;
|
||||
var mode = pers ? pers.mode : spec.mode || CodeMirror.getMode(config, spec.spec);
|
||||
var lState = pers ? pers.state : CodeMirror.startState(mode);
|
||||
if (spec.persistent && !pers)
|
||||
state.persistentStates = {mode: mode, spec: spec.spec, state: lState, next: state.persistentStates};
|
||||
|
||||
state.localState = lState;
|
||||
state.local = {mode: mode,
|
||||
end: spec.end && toRegex(spec.end),
|
||||
endScan: spec.end && spec.forceEnd !== false && toRegex(spec.end, false),
|
||||
endToken: token && token.join ? token[token.length - 1] : token};
|
||||
}
|
||||
|
||||
function indexOf(val, arr) {
|
||||
for (var i = 0; i < arr.length; i++) if (arr[i] === val) return true;
|
||||
}
|
||||
|
||||
function indentFunction(states, meta) {
|
||||
return function(state, textAfter, line) {
|
||||
if (state.local && state.local.mode.indent)
|
||||
return state.local.mode.indent(state.localState, textAfter, line);
|
||||
if (state.indent == null || state.local || meta.dontIndentStates && indexOf(state.state, meta.dontIndentStates) > -1)
|
||||
return CodeMirror.Pass;
|
||||
|
||||
var pos = state.indent.length - 1, rules = states[state.state];
|
||||
scan: for (;;) {
|
||||
for (var i = 0; i < rules.length; i++) {
|
||||
var rule = rules[i];
|
||||
if (rule.data.dedent && rule.data.dedentIfLineStart !== false) {
|
||||
var m = rule.regex.exec(textAfter);
|
||||
if (m && m[0]) {
|
||||
pos--;
|
||||
if (rule.next || rule.push) rules = states[rule.next || rule.push];
|
||||
textAfter = textAfter.slice(m[0].length);
|
||||
continue scan;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
return pos < 0 ? 0 : state.indent[pos];
|
||||
};
|
||||
}
|
||||
});
|
|
@ -26,6 +26,7 @@ module.exports = [{
|
|||
"./codemirror/mode/coffeescript/coffeescript.js",
|
||||
"./codemirror/mode/elm/elm.js",
|
||||
"./codemirror/mode/clike/clike.js",
|
||||
"./codemirror/mode/rust/rust.js",
|
||||
"./codemirror/mode/wasm/wasm.js",
|
||||
"./codemirror/addon/selection/active-line.js",
|
||||
"./codemirror/addon/edit/trailingspace.js",
|
||||
|
|
|
@ -169,6 +169,7 @@ BreakpointActor.prototype = {
|
|||
* @param frame Debugger.Frame
|
||||
* The stack frame that contained the breakpoint.
|
||||
*/
|
||||
/* eslint-disable complexity */
|
||||
hit: function(frame) {
|
||||
// Don't pause if we are currently stepping (in or over) or the frame is
|
||||
// black-boxed.
|
||||
|
@ -214,14 +215,20 @@ BreakpointActor.prototype = {
|
|||
if (condition) {
|
||||
const { result, message } = this.checkCondition(frame, condition);
|
||||
|
||||
if (result) {
|
||||
if (message) {
|
||||
reason.type = "breakpointConditionThrown";
|
||||
reason.message = message;
|
||||
}
|
||||
} else {
|
||||
// Don't pause if the result is falsey
|
||||
if (!result) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if (message) {
|
||||
// Don't pause if there is an exception message and POE is false
|
||||
if (!this.threadActor._options.pauseOnExceptions) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
reason.type = "breakpointConditionThrown";
|
||||
reason.message = message;
|
||||
}
|
||||
}
|
||||
|
||||
if (logValue) {
|
||||
|
@ -259,6 +266,7 @@ BreakpointActor.prototype = {
|
|||
|
||||
return this.threadActor._pauseAndRespond(frame, reason);
|
||||
},
|
||||
/* eslint-enable complexity */
|
||||
|
||||
delete: function() {
|
||||
// Remove from the breakpoint store.
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
"use strict";
|
||||
|
||||
const { Ci } = require("chrome");
|
||||
const { Ci, Cu } = require("chrome");
|
||||
const { setBreakpointAtEntryPoints } = require("devtools/server/actors/breakpoint");
|
||||
const { ActorClassWithSpec } = require("devtools/shared/protocol");
|
||||
const DevToolsUtils = require("devtools/shared/DevToolsUtils");
|
||||
|
@ -17,6 +17,11 @@ const { sourceSpec } = require("devtools/shared/specs/source");
|
|||
loader.lazyRequireGetter(this, "ArrayBufferActor", "devtools/server/actors/array-buffer", true);
|
||||
loader.lazyRequireGetter(this, "LongStringActor", "devtools/server/actors/string", true);
|
||||
|
||||
loader.lazyRequireGetter(this, "Services");
|
||||
loader.lazyGetter(this, "WebExtensionPolicy",
|
||||
() => Cu.getGlobalForObject(Cu).WebExtensionPolicy
|
||||
);
|
||||
|
||||
function isEvalSource(source) {
|
||||
const introType = source.introductionType;
|
||||
|
||||
|
@ -123,6 +128,30 @@ const SourceActor = ActorClassWithSpec(sourceSpec, {
|
|||
return this._url;
|
||||
},
|
||||
|
||||
get extensionName() {
|
||||
if (this._extensionName === undefined) {
|
||||
this._extensionName = null;
|
||||
|
||||
// Cu is not available for workers and so we are not able to get a
|
||||
// WebExtensionPolicy object
|
||||
if (!isWorker && this.url) {
|
||||
try {
|
||||
const extURI = Services.io.newURI(this.url);
|
||||
if (extURI) {
|
||||
const policy = WebExtensionPolicy.getByURI(extURI);
|
||||
if (policy) {
|
||||
this._extensionName = policy.name;
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
// Ignore
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return this._extensionName;
|
||||
},
|
||||
|
||||
get isCacheEnabled() {
|
||||
if (this.threadActor._parent._getCacheDisabled) {
|
||||
return !this.threadActor._parent._getCacheDisabled();
|
||||
|
@ -140,6 +169,7 @@ const SourceActor = ActorClassWithSpec(sourceSpec, {
|
|||
|
||||
return {
|
||||
actor: this.actorID,
|
||||
extensionName: this.extensionName,
|
||||
url: this.url ? this.url.split(" -> ").pop() : null,
|
||||
isBlackBoxed: this.threadActor.sources.isBlackBoxed(this.url),
|
||||
sourceMapURL: source ? source.sourceMapURL : null,
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
"use strict";
|
||||
|
||||
/**
|
||||
* Check conditional breakpoint when condition throws and make sure it pauses
|
||||
* If pauseOnExceptions is checked, when condition throws,
|
||||
* make sure conditional breakpoint pauses.
|
||||
*/
|
||||
|
||||
var gDebuggee;
|
||||
|
@ -32,9 +33,19 @@ function test_simple_breakpoint() {
|
|||
gThreadClient,
|
||||
packet.frame.where.actor
|
||||
);
|
||||
|
||||
gThreadClient.pauseOnExceptions(true, false);
|
||||
const location = { sourceUrl: source.url, line: 3 };
|
||||
gThreadClient.setBreakpoint(location, { condition: "throw new Error()" });
|
||||
gThreadClient.once("paused", function(packet) {
|
||||
gThreadClient.once("paused", async function(packet) {
|
||||
// Check the return value.
|
||||
Assert.equal(packet.why.type, "exception");
|
||||
Assert.equal(packet.frame.where.line, 1);
|
||||
|
||||
// Step over twice.
|
||||
await stepOver(gThreadClient);
|
||||
packet = await stepOver(gThreadClient);
|
||||
|
||||
// Check the return value.
|
||||
Assert.equal(packet.why.type, "breakpointConditionThrown");
|
||||
Assert.equal(packet.frame.where.line, 3);
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
/* eslint-disable no-shadow, max-nested-callbacks */
|
||||
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Confirm that we ignore breakpoint condition exceptions
|
||||
* unless pause-on-exceptions is set to true.
|
||||
*
|
||||
*/
|
||||
|
||||
var gDebuggee;
|
||||
var gClient;
|
||||
var gThreadClient;
|
||||
|
||||
function run_test() {
|
||||
initTestDebuggerServer();
|
||||
gDebuggee = addTestGlobal("test-conditional-breakpoint");
|
||||
gClient = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
gClient.connect().then(function() {
|
||||
attachTestTabAndResume(gClient, "test-conditional-breakpoint",
|
||||
function(response, targetFront, threadClient) {
|
||||
gThreadClient = threadClient;
|
||||
test_simple_breakpoint();
|
||||
});
|
||||
});
|
||||
do_test_pending();
|
||||
}
|
||||
|
||||
async function test_simple_breakpoint() {
|
||||
await gThreadClient.setBreakpoint(
|
||||
{ sourceUrl: "conditional_breakpoint-04.js", line: 3 },
|
||||
{ condition: "throw new Error()" }
|
||||
);
|
||||
|
||||
gThreadClient.once("paused", async function(packet) {
|
||||
Assert.equal(packet.frame.where.line, 1);
|
||||
Assert.equal(packet.why.type, "debuggerStatement");
|
||||
|
||||
gThreadClient.resume();
|
||||
const pausedPacket = await waitForEvent(gThreadClient, "paused");
|
||||
Assert.equal(pausedPacket.frame.where.line, 4);
|
||||
Assert.equal(pausedPacket.why.type, "debuggerStatement");
|
||||
|
||||
// Remove the breakpoint.
|
||||
await gThreadClient.removeBreakpoint(
|
||||
{ sourceUrl: "conditional_breakpoint-04.js", line: 3 }
|
||||
);
|
||||
await gThreadClient.resume();
|
||||
finishClient(gClient);
|
||||
});
|
||||
|
||||
/* eslint-disable */
|
||||
Cu.evalInSandbox(
|
||||
`debugger;
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
debugger;`,
|
||||
gDebuggee,
|
||||
"1.8",
|
||||
"conditional_breakpoint-04.js",
|
||||
1
|
||||
);
|
||||
/* eslint-enable */
|
||||
}
|
|
@ -137,6 +137,7 @@ skip-if = true # breakpoint sliding is not supported bug 1525685
|
|||
[test_conditional_breakpoint-01.js]
|
||||
[test_conditional_breakpoint-02.js]
|
||||
[test_conditional_breakpoint-03.js]
|
||||
[test_conditional_breakpoint-04.js]
|
||||
[test_logpoint-01.js]
|
||||
[test_logpoint-02.js]
|
||||
[test_logpoint-03.js]
|
||||
|
|
|
@ -2050,20 +2050,9 @@ static bool PaintItemByDrawTarget(nsDisplayItem* aItem, gfx::DrawTarget* aDT,
|
|||
MOZ_ASSERT(context);
|
||||
|
||||
switch (aItem->GetType()) {
|
||||
case DisplayItemType::TYPE_SVG_WRAPPER: {
|
||||
// XXX Why doesn't this need the scaling applied?
|
||||
context->SetMatrix(
|
||||
context->CurrentMatrix().PreTranslate(-aOffset.x, -aOffset.y));
|
||||
isInvalidated = PaintByLayer(
|
||||
aItem, aDisplayListBuilder, aManager, context, aScale, [&]() {
|
||||
aManager->EndTransaction(FrameLayerBuilder::DrawPaintedLayer,
|
||||
aDisplayListBuilder);
|
||||
});
|
||||
break;
|
||||
}
|
||||
case DisplayItemType::TYPE_SVG_WRAPPER:
|
||||
case DisplayItemType::TYPE_MASK: {
|
||||
// We could handle this case with the same code as TYPE_FILTER, but it
|
||||
// would be good to know what situations trigger it.
|
||||
// These items should be handled by other code paths
|
||||
MOZ_RELEASE_ASSERT(0);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -1330,9 +1330,7 @@ void gfxPlatform::WillShutdown() {
|
|||
// base gfxPlatform destructor.
|
||||
mScreenReferenceSurface = nullptr;
|
||||
mScreenReferenceDrawTarget = nullptr;
|
||||
}
|
||||
|
||||
gfxPlatform::~gfxPlatform() {
|
||||
// The cairo folks think we should only clean up in debug builds,
|
||||
// but we're generally in the habit of trying to shut down as
|
||||
// cleanly as possible even in production code, so call this
|
||||
|
@ -1353,6 +1351,9 @@ gfxPlatform::~gfxPlatform() {
|
|||
#endif
|
||||
}
|
||||
|
||||
gfxPlatform::~gfxPlatform() {
|
||||
}
|
||||
|
||||
/* static */
|
||||
already_AddRefed<DrawTarget> gfxPlatform::CreateDrawTargetForSurface(
|
||||
gfxASurface* aSurface, const IntSize& aSize) {
|
||||
|
|
|
@ -542,130 +542,44 @@ impl<'a> DisplayListFlattener<'a> {
|
|||
let mid_index = preceding_prims.len();
|
||||
let post_index = mid_index + remaining_prims.len();
|
||||
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
enum ClipLocation {
|
||||
Pre, // The prims preceding the picture cache content slice.
|
||||
Mid, // Prims in the content / cache slice.
|
||||
Post, // Prims trailing the cache slice.
|
||||
}
|
||||
|
||||
// Step through each clip chain pair, and see if it crosses a slice boundary.
|
||||
for clip_chain_instance in clip_chain_instances {
|
||||
// Get the location of the push / pop for this clip chain.
|
||||
let push_location = if clip_chain_instance.push_index < mid_index {
|
||||
ClipLocation::Pre
|
||||
} else if clip_chain_instance.push_index < post_index {
|
||||
ClipLocation::Mid
|
||||
} else {
|
||||
ClipLocation::Post
|
||||
};
|
||||
if clip_chain_instance.push_index < mid_index && clip_chain_instance.pop_index >= mid_index {
|
||||
preceding_prims.push(
|
||||
create_clip_prim_instance(
|
||||
clip_chain_instance.spatial_node_index,
|
||||
clip_chain_instance.clip_chain_id,
|
||||
PrimitiveInstanceKind::PopClipChain,
|
||||
)
|
||||
);
|
||||
|
||||
let pop_location = if clip_chain_instance.pop_index < mid_index {
|
||||
ClipLocation::Pre
|
||||
} else if clip_chain_instance.pop_index < post_index {
|
||||
ClipLocation::Mid
|
||||
} else {
|
||||
ClipLocation::Post
|
||||
};
|
||||
remaining_prims.insert(
|
||||
0,
|
||||
create_clip_prim_instance(
|
||||
clip_chain_instance.spatial_node_index,
|
||||
clip_chain_instance.clip_chain_id,
|
||||
PrimitiveInstanceKind::PushClipChain,
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// Apply fixups for any clip chain instances as required. Although this
|
||||
// code can result in memcpys, it's unlikely to be a problem. The case
|
||||
// itself where this occurs is rare, and the prim lists are typically
|
||||
// quite short here. Nonetheless, we'll want to improve this as part
|
||||
// of the changes to clip chain instances + picture cache slice splitting.
|
||||
match (push_location, pop_location) {
|
||||
(ClipLocation::Pre, ClipLocation::Pre) |
|
||||
(ClipLocation::Mid, ClipLocation::Mid) |
|
||||
(ClipLocation::Post, ClipLocation::Post) => {
|
||||
// If the clip exists within a slice, no fixup needed. This is the
|
||||
// common case for clip chain instances at the top level.
|
||||
continue;
|
||||
}
|
||||
(ClipLocation::Pre, ClipLocation::Post) => {
|
||||
// Close off the pre list, enclose the cache slice and
|
||||
// open a clip chain for the trailing prims.
|
||||
if clip_chain_instance.push_index < post_index && clip_chain_instance.pop_index >= post_index {
|
||||
remaining_prims.push(
|
||||
create_clip_prim_instance(
|
||||
clip_chain_instance.spatial_node_index,
|
||||
clip_chain_instance.clip_chain_id,
|
||||
PrimitiveInstanceKind::PopClipChain,
|
||||
)
|
||||
);
|
||||
|
||||
preceding_prims.push(
|
||||
create_clip_prim_instance(
|
||||
clip_chain_instance.spatial_node_index,
|
||||
clip_chain_instance.clip_chain_id,
|
||||
PrimitiveInstanceKind::PopClipChain,
|
||||
)
|
||||
);
|
||||
|
||||
remaining_prims.insert(
|
||||
0,
|
||||
create_clip_prim_instance(
|
||||
clip_chain_instance.spatial_node_index,
|
||||
clip_chain_instance.clip_chain_id,
|
||||
PrimitiveInstanceKind::PushClipChain,
|
||||
)
|
||||
);
|
||||
|
||||
remaining_prims.push(
|
||||
create_clip_prim_instance(
|
||||
clip_chain_instance.spatial_node_index,
|
||||
clip_chain_instance.clip_chain_id,
|
||||
PrimitiveInstanceKind::PopClipChain,
|
||||
)
|
||||
);
|
||||
|
||||
trailing_prims.insert(
|
||||
0,
|
||||
create_clip_prim_instance(
|
||||
clip_chain_instance.spatial_node_index,
|
||||
clip_chain_instance.clip_chain_id,
|
||||
PrimitiveInstanceKind::PushClipChain,
|
||||
)
|
||||
);
|
||||
}
|
||||
(ClipLocation::Pre, ClipLocation::Mid) => {
|
||||
// Close off the preceding prims, and open a clip for the
|
||||
// content cache slice.
|
||||
|
||||
preceding_prims.push(
|
||||
create_clip_prim_instance(
|
||||
clip_chain_instance.spatial_node_index,
|
||||
clip_chain_instance.clip_chain_id,
|
||||
PrimitiveInstanceKind::PopClipChain,
|
||||
)
|
||||
);
|
||||
|
||||
remaining_prims.insert(
|
||||
0,
|
||||
create_clip_prim_instance(
|
||||
clip_chain_instance.spatial_node_index,
|
||||
clip_chain_instance.clip_chain_id,
|
||||
PrimitiveInstanceKind::PushClipChain,
|
||||
)
|
||||
);
|
||||
}
|
||||
(ClipLocation::Mid, ClipLocation::Post) => {
|
||||
// Close off the cache content slice, and open up a clip for
|
||||
// the trailing prims.
|
||||
|
||||
remaining_prims.push(
|
||||
create_clip_prim_instance(
|
||||
clip_chain_instance.spatial_node_index,
|
||||
clip_chain_instance.clip_chain_id,
|
||||
PrimitiveInstanceKind::PopClipChain,
|
||||
)
|
||||
);
|
||||
|
||||
trailing_prims.insert(
|
||||
0,
|
||||
create_clip_prim_instance(
|
||||
clip_chain_instance.spatial_node_index,
|
||||
clip_chain_instance.clip_chain_id,
|
||||
PrimitiveInstanceKind::PushClipChain,
|
||||
)
|
||||
);
|
||||
}
|
||||
(ClipLocation::Mid, ClipLocation::Pre) |
|
||||
(ClipLocation::Post, ClipLocation::Pre) |
|
||||
(ClipLocation::Post, ClipLocation::Mid) => {
|
||||
unreachable!();
|
||||
}
|
||||
trailing_prims.insert(
|
||||
0,
|
||||
create_clip_prim_instance(
|
||||
clip_chain_instance.spatial_node_index,
|
||||
clip_chain_instance.clip_chain_id,
|
||||
PrimitiveInstanceKind::PushClipChain,
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,9 +3,7 @@
|
|||
import gdb
|
||||
import gdb.types
|
||||
from gdb.FrameDecorator import FrameDecorator
|
||||
import re
|
||||
import platform
|
||||
from mozilla.ExecutableAllocator import jsjitExecutableAllocatorCache, jsjitExecutableAllocator
|
||||
|
||||
# For ease of use in Python 2, we use "long" instead of "int"
|
||||
# everywhere.
|
||||
|
@ -53,6 +51,16 @@ SizeOfFramePrefix = {
|
|||
}
|
||||
|
||||
|
||||
# We cannot have semi-colon as identifier names, so use a colon instead,
|
||||
# and forward the name resolution to the type cache class.
|
||||
class UnwinderTypeCacheFrameType(object):
|
||||
def __init__(self, tc):
|
||||
self.tc = tc
|
||||
|
||||
def __getattr__(self, name):
|
||||
return self.tc.__getattr__("FrameType::" + name)
|
||||
|
||||
|
||||
class UnwinderTypeCache(object):
|
||||
# All types and symbols that we need are attached to an object that we
|
||||
# can dispose of as needed.
|
||||
|
@ -68,6 +76,8 @@ class UnwinderTypeCache(object):
|
|||
def __getattr__(self, name):
|
||||
if self.d is None:
|
||||
self.initialize()
|
||||
if name == "frame_type":
|
||||
return UnwinderTypeCacheFrameType(self)
|
||||
return self.d[name]
|
||||
|
||||
def value(self, name):
|
||||
|
@ -90,7 +100,6 @@ class UnwinderTypeCache(object):
|
|||
self.d['per_tls_context'] = gdb.lookup_global_symbol('js::TlsContext')
|
||||
|
||||
self.d['void_starstar'] = gdb.lookup_type('void').pointer().pointer()
|
||||
self.d['mod_ExecutableAllocator'] = jsjitExecutableAllocatorCache()
|
||||
|
||||
jitframe = gdb.lookup_type("js::jit::JitFrameLayout")
|
||||
self.d['jitFrameLayoutPointer'] = jitframe.pointer()
|
||||
|
@ -108,11 +117,16 @@ class UnwinderTypeCache(object):
|
|||
self.d['HeapSlot'] = gdb.lookup_type("js::HeapSlot").pointer()
|
||||
self.d['ScriptSource'] = gdb.lookup_type("js::ScriptSource").pointer()
|
||||
|
||||
# ProcessExecutableMemory, used to identify if a pc is in the section
|
||||
# pre-allocated by the JIT.
|
||||
self.d['MaxCodeBytesPerProcess'] = self.jit_value('MaxCodeBytesPerProcess')
|
||||
self.d['execMemory'] = gdb.lookup_symbol('::execMemory')[0].value()
|
||||
|
||||
# Compute maps related to jit frames.
|
||||
def compute_frame_info(self):
|
||||
t = gdb.lookup_type('enum js::jit::FrameType')
|
||||
for field in t.fields():
|
||||
# Strip off "js::jit::".
|
||||
# Strip off "js::jit::", remains: "FrameType::*".
|
||||
name = field.name[9:]
|
||||
enumval = long(field.enumval)
|
||||
self.d[name] = enumval
|
||||
|
@ -121,33 +135,6 @@ class UnwinderTypeCache(object):
|
|||
self.frame_class_types[enumval] = class_type.pointer()
|
||||
|
||||
|
||||
def parse_proc_maps():
|
||||
# gdb doesn't have a direct way to tell us if a given address is
|
||||
# claimed by some shared library or the executable. See
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=19288
|
||||
# In the interest of not requiring a patched gdb, instead we read
|
||||
# /proc/.../maps. This only works locally, but maybe could work
|
||||
# remotely using "remote get". FIXME.
|
||||
mapfile = '/proc/' + str(gdb.selected_inferior().pid) + '/maps'
|
||||
# Note we only examine executable mappings here.
|
||||
matcher = re.compile("^([a-fA-F0-9]+)-([a-fA-F0-9]+)\s+..x.\s+\S+\s+\S+\s+\S*(.*)$")
|
||||
mappings = []
|
||||
with open(mapfile, "r") as inp:
|
||||
for line in inp:
|
||||
match = matcher.match(line)
|
||||
if not match:
|
||||
# Header lines and such.
|
||||
continue
|
||||
start = match.group(1)
|
||||
end = match.group(2)
|
||||
name = match.group(3).strip()
|
||||
if name is '' or (name.startswith('[') and name is not '[vdso]'):
|
||||
# Skip entries not corresponding to a file.
|
||||
continue
|
||||
mappings.append((long(start, 16), long(end, 16)))
|
||||
return mappings
|
||||
|
||||
|
||||
class FrameSymbol(object):
|
||||
"A symbol/value pair as expected from gdb frame decorators."
|
||||
|
||||
|
@ -317,11 +304,6 @@ class UnwinderState(object):
|
|||
# selected thread for later verification.
|
||||
self.thread = gdb.selected_thread()
|
||||
self.frame_map = {}
|
||||
self.proc_mappings = None
|
||||
try:
|
||||
self.proc_mappings = parse_proc_maps()
|
||||
except IOError:
|
||||
pass
|
||||
self.typecache = typecache
|
||||
|
||||
# If the given gdb.Frame was created by this unwinder, return the
|
||||
|
@ -340,36 +322,18 @@ class UnwinderState(object):
|
|||
def add_frame(self, sp, name=None, this_frame=None):
|
||||
self.frame_map[long(sp)] = {"name": name, "this_frame": this_frame}
|
||||
|
||||
# See whether |pc| is claimed by some text mapping. See
|
||||
# |parse_proc_maps| for details on how the decision is made.
|
||||
def text_address_claimed(self, pc):
|
||||
for (start, end) in self.proc_mappings:
|
||||
if (pc >= start and pc <= end):
|
||||
return True
|
||||
return False
|
||||
|
||||
# See whether |pc| is claimed by the Jit.
|
||||
def is_jit_address(self, pc):
|
||||
if self.proc_mappings is not None:
|
||||
return not self.text_address_claimed(pc)
|
||||
execMem = self.typecache.execMemory
|
||||
base = long(execMem['base_'])
|
||||
length = self.typecache.MaxCodeBytesPerProcess
|
||||
|
||||
cx = self.get_tls_context()
|
||||
runtime = cx['runtime_']['value']
|
||||
if long(runtime.address) == 0:
|
||||
# If the base pointer is null, then no memory got allocated yet.
|
||||
if long(base) == 0:
|
||||
return False
|
||||
|
||||
jitRuntime = runtime['jitRuntime_']
|
||||
if long(jitRuntime.address) == 0:
|
||||
return False
|
||||
|
||||
execAllocators = [jitRuntime['execAlloc_'], jitRuntime['backedgeExecAlloc_']]
|
||||
for execAlloc in execAllocators:
|
||||
for pool in jsjitExecutableAllocator(execAlloc, self.typecache):
|
||||
pages = pool['m_allocation']['pages']
|
||||
size = pool['m_allocation']['size']
|
||||
if pages <= pc and pc < pages + size:
|
||||
return True
|
||||
return False
|
||||
# If allocated, then we allocated MaxCodeBytesPerProcess.
|
||||
return base <= pc and pc < base + length
|
||||
|
||||
# Check whether |self| is valid for the selected thread.
|
||||
def check(self):
|
||||
|
@ -391,7 +355,7 @@ class UnwinderState(object):
|
|||
self.typecache.FRAME_HEADER_SIZE_MASK)
|
||||
header_size = header_size * self.typecache.void_starstar.sizeof
|
||||
frame_type = long(value & self.typecache.FRAMETYPE_MASK)
|
||||
if frame_type == self.typecache.CppToJSJit:
|
||||
if frame_type == self.typecache.frame_type.CppToJSJit:
|
||||
# Trampoline-x64.cpp pushes a JitFrameLayout object, but
|
||||
# the stack pointer is actually adjusted as if a
|
||||
# CommonFrameLayout object was pushed.
|
||||
|
@ -467,7 +431,7 @@ class UnwinderState(object):
|
|||
return None
|
||||
|
||||
exit_sp = pending_frame.read_register(self.SP_REGISTER)
|
||||
frame_type = self.typecache.Exit
|
||||
frame_type = self.typecache.frame_type.Exit
|
||||
return self.create_frame(pc, exit_sp, packedExitFP, frame_type, pending_frame)
|
||||
|
||||
# A wrapper for unwind_entry_frame_registers that handles
|
||||
|
@ -496,7 +460,7 @@ class UnwinderState(object):
|
|||
return None
|
||||
|
||||
if self.next_sp is not None:
|
||||
if self.next_type == self.typecache.CppToJSJit:
|
||||
if self.next_type == self.typecache.frame_type.CppToJSJit:
|
||||
return self.unwind_entry_frame(pc, pending_frame)
|
||||
return self.unwind_ordinary(pc, pending_frame)
|
||||
# Maybe we've found an exit frame. FIXME I currently don't
|
||||
|
|
|
@ -206,6 +206,7 @@ skip-if = toolkit == 'android' #bug 536603
|
|||
[test_css_parse_error_smoketest.html]
|
||||
[test_css_supports.html]
|
||||
[test_css_supports_variables.html]
|
||||
[test_cue_restrictions.html]
|
||||
[test_custom_content_inheritance.html]
|
||||
[test_default_bidi_css.html]
|
||||
[test_default_computed_style.html]
|
||||
|
|
|
@ -2907,6 +2907,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "scroll" ],
|
||||
other_values: [ "fixed", "local", "scroll,scroll", "fixed, scroll", "scroll, fixed, local, scroll", "fixed, fixed" ],
|
||||
invalid_values: []
|
||||
|
@ -2918,6 +2919,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "normal" ],
|
||||
other_values: [ "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn",
|
||||
"hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity" ],
|
||||
|
@ -2934,6 +2936,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "border-box" ],
|
||||
other_values: [ "content-box", "padding-box", "border-box, padding-box", "padding-box, padding-box, padding-box", "border-box, border-box", "text", "content-box, text", "text, border-box", "text, text" ],
|
||||
invalid_values: [ "margin-box", "border-box border-box", "fill-box", "stroke-box", "view-box", "no-clip" ]
|
||||
|
@ -2945,6 +2948,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "transparent", "rgba(0, 0, 0, 0)" ],
|
||||
other_values: [ "green", "rgb(255, 0, 128)", "#fc2", "#96ed2a", "black", "rgba(255,255,0,3)", "hsl(240, 50%, 50%)", "rgb(50%, 50%, 50%)", "-moz-default-background-color", "rgb(100, 100.0, 100)", "rgba(255, 127, 15, 0)", "hsla(240, 97%, 50%, 0.0)", "rgba(255,255,255,-3.7)" ],
|
||||
invalid_values: [ "#0", "#00", "#00000", "#0000000", "#000000000", "rgb(100, 100%, 100)" ],
|
||||
|
@ -2957,6 +2961,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "none" ],
|
||||
other_values: [
|
||||
"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKElEQVR42u3NQQ0AAAgEoNP+nTWFDzcoQE1udQQCgUAgEAgEAsGTYAGjxAE/G/Q2tQAAAABJRU5ErkJggg==)", "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKElEQVR42u3NQQ0AAAgEoNP+nTWFDzcoQE1udQQCgUAgEAgEAsGTYAGjxAE/G/Q2tQAAAABJRU5ErkJggg==')", 'url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKElEQVR42u3NQQ0AAAgEoNP+nTWFDzcoQE1udQQCgUAgEAgEAsGTYAGjxAE/G/Q2tQAAAABJRU5ErkJggg==")',
|
||||
|
@ -2978,6 +2983,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "padding-box" ],
|
||||
other_values: [ "border-box", "content-box", "border-box, padding-box", "padding-box, padding-box, padding-box", "border-box, border-box" ],
|
||||
invalid_values: [ "margin-box", "padding-box padding-box", "fill-box", "stroke-box", "view-box", "no-clip" ]
|
||||
|
@ -2989,6 +2995,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "top 0% left 0%", "top 0% left", "top left", "left top", "0% 0%", "0% top", "left 0%" ],
|
||||
other_values: [ "top", "left", "right", "bottom", "center", "center bottom", "bottom center", "center right", "right center", "center top", "top center", "center left", "left center", "right bottom", "bottom right", "50%", "top left, top left", "top left, top right", "top right, top left", "left top, 0% 0%", "10% 20%, 30%, 40%", "top left, bottom right", "right bottom, left top", "0%", "0px", "30px", "0%, 10%, 20%, 30%", "top, top, top, top, top",
|
||||
"calc(20px)",
|
||||
|
@ -3040,6 +3047,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "left 0%", "left", "0%" ],
|
||||
other_values: [ "right", "center", "50%", "left, left", "left, right", "right, left", "left, 0%", "10%, 20%, 40%", "0px", "30px", "0%, 10%, 20%, 30%", "left, left, left, left, left",
|
||||
"calc(20px)",
|
||||
|
@ -3069,6 +3077,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "top 0%", "top", "0%" ],
|
||||
other_values: [ "bottom", "center", "50%", "top, top", "top, bottom", "bottom, top", "top, 0%", "10%, 20%, 40%", "0px", "30px", "0%, 10%, 20%, 30%", "top, top, top, top, top",
|
||||
"calc(20px)",
|
||||
|
@ -3098,6 +3107,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "repeat", "repeat repeat" ],
|
||||
other_values: [ "repeat-x", "repeat-y", "no-repeat",
|
||||
"repeat-x, repeat-x",
|
||||
|
@ -3142,6 +3152,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "auto", "auto auto" ],
|
||||
other_values: [ "contain", "cover", "100px auto", "auto 100px", "100% auto", "auto 100%", "25% 50px", "3em 40%",
|
||||
"calc(20px)",
|
||||
|
@ -3506,6 +3517,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
/* XXX should test currentColor, but may or may not be initial */
|
||||
initial_values: [ "black", "#000", "#000f", "#000000ff", "-moz-default-color", "rgb(0, 0, 0)", "rgb(0%, 0%, 0%)",
|
||||
/* css-color-4: */
|
||||
|
@ -3694,6 +3706,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ (gInitialFontFamilyIsSansSerif ? "sans-serif" : "serif") ],
|
||||
other_values: [ (gInitialFontFamilyIsSansSerif ? "serif" : "sans-serif"), "Times New Roman, serif", "'Times New Roman', serif", "cursive", "fantasy", "\\\"Times New Roman", "\"Times New Roman\"", "Times, \\\"Times New Roman", "Times, \"Times New Roman\"", "-no-such-font-installed", "inherit roman", "roman inherit", "Times, inherit roman", "inherit roman, Times", "roman inherit, Times", "Times, roman inherit" ],
|
||||
invalid_values: [ "\"Times New\" Roman", "\"Times New Roman\n", "Times, \"Times New Roman\n" ]
|
||||
|
@ -3705,6 +3718,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "normal" ],
|
||||
other_values: [
|
||||
"'liga' on", "'liga'", "\"liga\" 1", "'liga', 'clig' 1",
|
||||
|
@ -3728,6 +3742,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "auto" ],
|
||||
other_values: [ "normal", "none" ],
|
||||
invalid_values: [ "on" ]
|
||||
|
@ -3739,6 +3754,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "normal" ],
|
||||
other_values: [ "'ENG'", "'TRK'", "\"TRK\"", "'N\\'Ko'" ],
|
||||
invalid_values: [ "TRK", "ja" ]
|
||||
|
@ -3750,6 +3766,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "medium",
|
||||
"1rem",
|
||||
"calc(1rem)",
|
||||
|
@ -3774,6 +3791,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "none" ],
|
||||
other_values: [ "0.3", "0.5", "0.7", "0.0", "0", "3" ],
|
||||
invalid_values: [ "-0.3", "-1" ]
|
||||
|
@ -3785,6 +3803,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "normal" ],
|
||||
other_values: [ "ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded" ],
|
||||
invalid_values: [ "narrower", "wider" ]
|
||||
|
@ -3796,6 +3815,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "normal" ],
|
||||
other_values: [ "italic", "oblique" ],
|
||||
invalid_values: []
|
||||
|
@ -3807,6 +3827,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "weight style" ],
|
||||
other_values: [ "none", "weight", "style" ],
|
||||
invalid_values: [ "weight none", "style none", "none style", "weight 10px", "weight weight", "style style" ]
|
||||
|
@ -3833,6 +3854,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "normal" ],
|
||||
other_values: [ "historical-forms",
|
||||
"styleset(alt-a, alt-b)", "character-variant(a, b, c)", "annotation(circled)",
|
||||
|
@ -3848,6 +3870,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "normal" ],
|
||||
other_values: [ "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "titling-caps", "unicase" ],
|
||||
invalid_values: [ "normal small-caps", "petite-caps normal", "unicase unicase" ]
|
||||
|
@ -3859,6 +3882,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "normal" ],
|
||||
other_values: [ "jis78", "jis83", "jis90", "jis04", "simplified", "traditional", "full-width", "proportional-width", "ruby",
|
||||
"jis78 full-width", "jis78 full-width ruby", "simplified proportional-width", "ruby simplified" ],
|
||||
|
@ -3872,6 +3896,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "normal" ],
|
||||
other_values: [ "none", "common-ligatures", "no-common-ligatures", "discretionary-ligatures", "no-discretionary-ligatures",
|
||||
"historical-ligatures", "no-historical-ligatures", "contextual", "no-contextual",
|
||||
|
@ -3890,6 +3915,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "normal" ],
|
||||
other_values: [ "lining-nums", "oldstyle-nums", "proportional-nums", "tabular-nums", "diagonal-fractions",
|
||||
"stacked-fractions", "slashed-zero", "ordinal", "lining-nums diagonal-fractions",
|
||||
|
@ -3906,6 +3932,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "normal" ],
|
||||
other_values: [ "super", "sub" ],
|
||||
invalid_values: [ "normal sub", "super sub" ]
|
||||
|
@ -3917,6 +3944,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "normal", "400" ],
|
||||
other_values: [ "bold", "100", "200", "300", "500", "600", "700", "800",
|
||||
"900", "bolder", "lighter", "10.5", "calc(10 + 10)",
|
||||
|
@ -4000,6 +4028,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
/*
|
||||
* Inheritance tests require consistent font size, since
|
||||
* getComputedStyle (which uses the CSS2 computed value, or
|
||||
|
@ -4329,6 +4358,7 @@ var gCSSProperties = {
|
|||
inherited: false,
|
||||
type: CSS_TYPE_LONGHAND,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "1", "17", "397.376", "3e1", "3e+1", "3e0", "3e+0", "3e-0" ],
|
||||
other_values: [ "0", "0.4", "0.0000", "-3", "3e-1" ],
|
||||
invalid_values: [ "0px", "1px" ]
|
||||
|
@ -4359,6 +4389,7 @@ var gCSSProperties = {
|
|||
domProp: "outlineColor",
|
||||
inherited: false,
|
||||
type: CSS_TYPE_LONGHAND,
|
||||
applies_to_cue: true,
|
||||
prerequisites: { "color": "black" },
|
||||
initial_values: [ "currentColor" ], // XXX should be invert
|
||||
other_values: [ "green", "rgba(255,128,0,0.5)", "transparent" ],
|
||||
|
@ -4376,6 +4407,7 @@ var gCSSProperties = {
|
|||
domProp: "outlineStyle",
|
||||
inherited: false,
|
||||
type: CSS_TYPE_LONGHAND,
|
||||
applies_to_cue: true,
|
||||
// XXX Should 'hidden' be the same as initial?
|
||||
initial_values: [ "none" ],
|
||||
other_values: [ "solid", "dashed", "dotted", "double", "outset", "inset", "groove", "ridge", "auto" ],
|
||||
|
@ -4385,6 +4417,7 @@ var gCSSProperties = {
|
|||
domProp: "outlineWidth",
|
||||
inherited: false,
|
||||
type: CSS_TYPE_LONGHAND,
|
||||
applies_to_cue: true,
|
||||
prerequisites: { "outline-style": "solid" },
|
||||
initial_values: [ "medium", "3px", "calc(4px - 1px)" ],
|
||||
other_values: [ "thin", "thick", "1px", "2em",
|
||||
|
@ -4682,6 +4715,7 @@ var gCSSProperties = {
|
|||
domProp: "rubyPosition",
|
||||
inherited: true,
|
||||
type: CSS_TYPE_LONGHAND,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "over" ],
|
||||
other_values: [ "under" ],
|
||||
invalid_values: [
|
||||
|
@ -4727,6 +4761,7 @@ var gCSSProperties = {
|
|||
domProp: "textCombineUpright",
|
||||
inherited: true,
|
||||
type: CSS_TYPE_LONGHAND,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "none" ],
|
||||
other_values: [ "all" ],
|
||||
invalid_values: [ "auto", "all 2", "none all", "digits -3", "digits 0",
|
||||
|
@ -4740,6 +4775,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
subproperties: [ "text-decoration-color", "text-decoration-line", "text-decoration-style" ],
|
||||
initial_values: [ "none" ],
|
||||
other_values: [ "underline", "overline", "line-through", "blink", "blink line-through underline", "underline overline line-through blink",
|
||||
|
@ -4753,6 +4789,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
prerequisites: { "color": "black" },
|
||||
initial_values: [ "currentColor" ],
|
||||
other_values: [ "green", "rgba(255,128,0,0.5)", "transparent" ],
|
||||
|
@ -4765,6 +4802,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "none" ],
|
||||
other_values: [ "underline", "overline", "line-through", "blink", "blink line-through underline", "underline overline line-through blink" ],
|
||||
invalid_values: [ "none none", "underline none", "none underline", "line-through blink line-through", "underline overline line-through blink none", "underline overline line-throuh blink blink" ]
|
||||
|
@ -4776,6 +4814,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "solid" ],
|
||||
other_values: [ "double", "dotted", "dashed", "wavy", "-moz-none" ],
|
||||
invalid_values: [ "none", "groove", "ridge", "inset", "outset", "solid dashed", "wave" ]
|
||||
|
@ -4867,6 +4906,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
prerequisites: { "color": "blue" },
|
||||
initial_values: [ "none" ],
|
||||
other_values: [ "2px 2px", "2px 2px 1px", "2px 2px green", "2px 2px 1px green", "green 2px 2px", "green 2px 2px 1px", "green 2px 2px, blue 1px 3px 4px", "currentColor 3px 3px", "blue 2px 2px, currentColor 1px 2px",
|
||||
|
@ -4990,6 +5030,7 @@ var gCSSProperties = {
|
|||
domProp: "visibility",
|
||||
inherited: true,
|
||||
type: CSS_TYPE_LONGHAND,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "visible" ],
|
||||
other_values: [ "hidden", "collapse" ],
|
||||
invalid_values: []
|
||||
|
@ -4999,6 +5040,7 @@ var gCSSProperties = {
|
|||
inherited: true,
|
||||
type: CSS_TYPE_LONGHAND,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "normal" ],
|
||||
other_values: [ "pre", "nowrap", "pre-wrap", "pre-line", "-moz-pre-space", "break-spaces" ],
|
||||
invalid_values: []
|
||||
|
@ -6234,6 +6276,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
alias_for: "font-feature-settings",
|
||||
subproperties: [ "font-feature-settings" ],
|
||||
},
|
||||
|
@ -6244,6 +6287,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
alias_for: "font-language-override",
|
||||
subproperties: [ "font-language-override" ],
|
||||
},
|
||||
|
@ -7107,6 +7151,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
alias_for: "background-clip",
|
||||
subproperties: [ "background-clip" ],
|
||||
},
|
||||
|
@ -7117,6 +7162,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
alias_for: "background-origin",
|
||||
subproperties: [ "background-origin" ],
|
||||
},
|
||||
|
@ -7127,6 +7173,7 @@ var gCSSProperties = {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
alias_for: "background-size",
|
||||
subproperties: [ "background-size" ],
|
||||
},
|
||||
|
@ -7473,6 +7520,7 @@ if (IsCSSPropertyPrefEnabled("layout.css.font-variations.enabled")) {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "normal" ],
|
||||
other_values: [
|
||||
"'wdth' 0", "'wdth' -.1", "\"wdth\" 1", "'wdth' 2, 'wght' 3", "\"XXXX\" 0"
|
||||
|
@ -7499,6 +7547,7 @@ if (IsCSSPropertyPrefEnabled("layout.css.font-variations.enabled")) {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "auto" ],
|
||||
other_values: [ "none" ],
|
||||
invalid_values: [ "on" ]
|
||||
|
@ -8163,6 +8212,7 @@ if (IsCSSPropertyPrefEnabled("layout.css.osx-font-smoothing.enabled")) {
|
|||
applies_to_first_letter: true,
|
||||
applies_to_first_line: true,
|
||||
applies_to_placeholder: true,
|
||||
applies_to_cue: true,
|
||||
initial_values: [ "auto" ],
|
||||
other_values: [ "grayscale" ],
|
||||
invalid_values: [ "none", "subpixel-antialiased", "antialiased" ]
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test for ::cue property restrictions.</title>
|
||||
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script src="property_database.js"></script>
|
||||
<link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
|
||||
<style id="s"></style>
|
||||
<video id="test"></video>
|
||||
<video id="control"></video>
|
||||
<script>
|
||||
const test = getComputedStyle($("test"), "::cue");
|
||||
const control = getComputedStyle($("control"), "::cue");
|
||||
|
||||
for (const prop in gCSSProperties) {
|
||||
const info = gCSSProperties[prop];
|
||||
if (info.type == CSS_TYPE_TRUE_SHORTHAND)
|
||||
continue;
|
||||
|
||||
let prereqs = "";
|
||||
if (info.prerequisites)
|
||||
for (let name in info.prerequisites)
|
||||
prereqs += `${name}: ${info.prerequisites[name]}; `;
|
||||
|
||||
$("s").textContent = `
|
||||
#control::cue { ${prop}: ${info.initial_values[0]}; ${prereqs} }
|
||||
#test::cue { ${prop}: ${info.other_values[0]}; ${prereqs} }
|
||||
`;
|
||||
|
||||
(info.applies_to_cue ? isnot : is)(
|
||||
get_computed_value(test, prop),
|
||||
get_computed_value(control, prop),
|
||||
`${prop} should ${info.applies_to_cue ? "" : "not "}apply to ::cue`);
|
||||
}
|
||||
</script>
|
|
@ -8,6 +8,7 @@ import android.content.Context;
|
|||
import android.content.Intent;
|
||||
import android.os.IBinder;
|
||||
import android.provider.Settings;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.util.Log;
|
||||
|
||||
import org.mozilla.gecko.notifications.NotificationHelper;
|
||||
|
@ -22,8 +23,12 @@ public class CrashHandlerService extends Service {
|
|||
private static final int ANDROID_Q = 29;
|
||||
|
||||
@Override
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
if (ACTION_STOP.equals(intent.getAction())) {
|
||||
public int onStartCommand(@Nullable Intent intent, int flags, int startId) {
|
||||
if (intent == null) {
|
||||
// no-op
|
||||
// The Intent may be null if the service is being restarted after its process has gone away,
|
||||
// and it had previously returned anything except START_STICKY_COMPATIBILITY.
|
||||
} else if (ACTION_STOP.equals(intent.getAction())) {
|
||||
dismissNotification();
|
||||
} else {
|
||||
// Notify GeckoApp that we've crashed, so it can react appropriately during the next start.
|
||||
|
|
|
@ -15,6 +15,7 @@ import org.junit.runner.RunWith
|
|||
import org.mozilla.geckoview.test.rule.GeckoSessionTestRule.ReuseSession
|
||||
import org.mozilla.geckoview.test.rule.GeckoSessionTestRule.WithDevToolsAPI
|
||||
import kotlin.math.roundToInt
|
||||
import org.junit.Assume.assumeThat
|
||||
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
@MediumTest
|
||||
|
@ -75,7 +76,9 @@ class RuntimeSettingsTest : BaseSessionTest() {
|
|||
}
|
||||
|
||||
@WithDevToolsAPI
|
||||
// disable test on pgo for frequently failing #Bug 1546297
|
||||
@Test fun fontSize() {
|
||||
assumeThat(sessionRule.env.isDebugBuild, equalTo(true))
|
||||
val settings = sessionRule.runtime.settings
|
||||
settings.fontSizeFactor = 1.0f
|
||||
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
|
||||
|
|
|
@ -15,6 +15,7 @@ import org.mozilla.geckoview.test.rule.GeckoSessionTestRule.ReuseSession
|
|||
import org.mozilla.geckoview.test.rule.GeckoSessionTestRule.WithDevToolsAPI
|
||||
import org.mozilla.geckoview.test.util.Callbacks
|
||||
import org.mozilla.geckoview.test.util.UiThreadUtils
|
||||
import org.junit.Assume.assumeThat
|
||||
|
||||
import android.os.Bundle
|
||||
import android.os.Debug
|
||||
|
@ -418,6 +419,8 @@ class SessionLifecycleTest : BaseSessionTest() {
|
|||
}
|
||||
|
||||
@Test fun createFromParcel() {
|
||||
// disable test on pgo for frequent failures #Bug 1533934
|
||||
assumeThat(sessionRule.env.isDebugBuild, equalTo(true))
|
||||
val session = sessionRule.createOpenSession()
|
||||
|
||||
session.toParcel { parcel ->
|
||||
|
|
|
@ -24,6 +24,8 @@ import android.support.v7.graphics.Palette;
|
|||
import android.util.Base64;
|
||||
import android.util.Log;
|
||||
|
||||
import org.mozilla.gecko.GeckoAppShell;
|
||||
|
||||
public final class BitmapUtils {
|
||||
private static final String LOGTAG = "GeckoBitmapUtils";
|
||||
|
||||
|
@ -102,7 +104,12 @@ public final class BitmapUtils {
|
|||
InputStream stream = null;
|
||||
|
||||
try {
|
||||
stream = url.openStream();
|
||||
if ("jar".equals(url.getProtocol())) {
|
||||
final Context context = GeckoAppShell.getApplicationContext();
|
||||
stream = GeckoJarReader.getStream(context, url.toString());
|
||||
} else {
|
||||
stream = url.openStream();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
Log.w(LOGTAG, "decodeUrl: IOException downloading " + url);
|
||||
return null;
|
||||
|
|
|
@ -585,20 +585,17 @@ function bookmarkNodesToInfos(nodes) {
|
|||
if (node.children) {
|
||||
info.children = bookmarkNodesToInfos(node.children);
|
||||
}
|
||||
if (node.annos) {
|
||||
let orphanAnno = node.annos.find(anno =>
|
||||
anno.name == "sync/parent"
|
||||
);
|
||||
if (orphanAnno) {
|
||||
info.requestedParent = orphanAnno.value;
|
||||
}
|
||||
// Check orphan parent anno.
|
||||
if (PlacesUtils.annotations.itemHasAnnotation(node.id, "sync/parent")) {
|
||||
info.requestedParent =
|
||||
PlacesUtils.annotations.getItemAnnotation(node.id, "sync/parent");
|
||||
}
|
||||
return info;
|
||||
});
|
||||
}
|
||||
|
||||
async function assertBookmarksTreeMatches(rootGuid, expected, message) {
|
||||
let root = await PlacesUtils.promiseBookmarksTree(rootGuid);
|
||||
let root = await PlacesUtils.promiseBookmarksTree(rootGuid, {includeItemIds: true});
|
||||
let actual = bookmarkNodesToInfos(root.children);
|
||||
|
||||
if (!ObjectUtils.deepEqual(actual, expected)) {
|
||||
|
|
|
@ -186,6 +186,7 @@ impl PseudoElement {
|
|||
PseudoElement::FirstLetter => Some(PropertyFlags::APPLIES_TO_FIRST_LETTER),
|
||||
PseudoElement::FirstLine => Some(PropertyFlags::APPLIES_TO_FIRST_LINE),
|
||||
PseudoElement::Placeholder => Some(PropertyFlags::APPLIES_TO_PLACEHOLDER),
|
||||
PseudoElement::Cue => Some(PropertyFlags::APPLIES_TO_CUE),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ ${helpers.predefined_type(
|
|||
animation_value_type="AnimatedColor",
|
||||
ignored_when_colors_disabled=True,
|
||||
allow_quirks="Yes",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER \
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER \
|
||||
CAN_ANIMATE_ON_COMPOSITOR",
|
||||
)}
|
||||
|
||||
|
@ -28,7 +28,7 @@ ${helpers.predefined_type(
|
|||
vector="True",
|
||||
animation_value_type="discrete",
|
||||
ignored_when_colors_disabled="True",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
)}
|
||||
|
||||
% for (axis, direction, initial) in [("x", "Horizontal", "left"), ("y", "Vertical", "top")]:
|
||||
|
@ -41,7 +41,7 @@ ${helpers.predefined_type(
|
|||
animation_value_type="ComputedValue",
|
||||
vector=True,
|
||||
vector_animation_type="repeatable_list",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
)}
|
||||
% endfor
|
||||
|
||||
|
@ -53,7 +53,7 @@ ${helpers.predefined_type(
|
|||
animation_value_type="discrete",
|
||||
vector=True,
|
||||
spec="https://drafts.csswg.org/css-backgrounds/#the-background-repeat",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
)}
|
||||
|
||||
${helpers.single_keyword(
|
||||
|
@ -63,7 +63,7 @@ ${helpers.single_keyword(
|
|||
gecko_enum_prefix="StyleImageLayerAttachment",
|
||||
spec="https://drafts.csswg.org/css-backgrounds/#the-background-attachment",
|
||||
animation_value_type="discrete",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
)}
|
||||
|
||||
${helpers.single_keyword(
|
||||
|
@ -75,7 +75,7 @@ ${helpers.single_keyword(
|
|||
gecko_inexhaustive=True,
|
||||
spec="https://drafts.csswg.org/css-backgrounds/#the-background-clip",
|
||||
animation_value_type="discrete",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
)}
|
||||
|
||||
${helpers.single_keyword(
|
||||
|
@ -86,7 +86,7 @@ ${helpers.single_keyword(
|
|||
gecko_inexhaustive=True,
|
||||
spec="https://drafts.csswg.org/css-backgrounds/#the-background-origin",
|
||||
animation_value_type="discrete",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER"
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER"
|
||||
)}
|
||||
|
||||
${helpers.predefined_type(
|
||||
|
@ -98,7 +98,7 @@ ${helpers.predefined_type(
|
|||
vector=True,
|
||||
vector_animation_type="repeatable_list",
|
||||
animation_value_type="BackgroundSizeList",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
extra_prefixes="webkit")}
|
||||
|
||||
// https://drafts.fxtf.org/compositing/#background-blend-mode
|
||||
|
@ -110,5 +110,5 @@ ${helpers.single_keyword(
|
|||
gecko_constant_prefix="NS_STYLE_BLEND",
|
||||
vector=True, products="gecko", animation_value_type="discrete",
|
||||
spec="https://drafts.fxtf.org/compositing/#background-blend-mode",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
)}
|
||||
|
|
|
@ -12,7 +12,7 @@ ${helpers.predefined_type(
|
|||
"Opacity",
|
||||
"1.0",
|
||||
animation_value_type="ComputedValue",
|
||||
flags="CREATES_STACKING_CONTEXT APPLIES_TO_PLACEHOLDER \
|
||||
flags="APPLIES_TO_CUE CREATES_STACKING_CONTEXT APPLIES_TO_PLACEHOLDER \
|
||||
CAN_ANIMATE_ON_COMPOSITOR",
|
||||
spec="https://drafts.csswg.org/css-color/#opacity",
|
||||
servo_restyle_damage = "reflow_out_of_flow",
|
||||
|
|
|
@ -12,7 +12,7 @@ ${helpers.predefined_type(
|
|||
"FontFamily",
|
||||
initial_value="computed::FontFamily::serif()",
|
||||
animation_value_type="discrete",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-fonts/#propdef-font-family",
|
||||
servo_restyle_damage="rebuild_and_reflow",
|
||||
)}
|
||||
|
@ -23,7 +23,7 @@ ${helpers.predefined_type(
|
|||
initial_value="computed::FontStyle::normal()",
|
||||
initial_specified_value="specified::FontStyle::normal()",
|
||||
animation_value_type="FontStyle",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-fonts/#propdef-font-style",
|
||||
servo_restyle_damage="rebuild_and_reflow",
|
||||
)}
|
||||
|
@ -42,7 +42,7 @@ ${helpers.single_keyword_system(
|
|||
gecko_ffi_name="mFont.variantCaps",
|
||||
spec="https://drafts.csswg.org/css-fonts/#propdef-font-variant-caps",
|
||||
custom_consts=font_variant_caps_custom_consts,
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
animation_value_type="discrete",
|
||||
servo_restyle_damage="rebuild_and_reflow",
|
||||
)}
|
||||
|
@ -53,7 +53,7 @@ ${helpers.predefined_type(
|
|||
initial_value="computed::FontWeight::normal()",
|
||||
initial_specified_value="specified::FontWeight::normal()",
|
||||
animation_value_type="Number",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-fonts/#propdef-font-weight",
|
||||
servo_restyle_damage="rebuild_and_reflow",
|
||||
)}
|
||||
|
@ -65,7 +65,7 @@ ${helpers.predefined_type(
|
|||
initial_specified_value="specified::FontSize::medium()",
|
||||
animation_value_type="NonNegativeLength",
|
||||
allow_quirks="Yes",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-fonts/#propdef-font-size",
|
||||
servo_restyle_damage="rebuild_and_reflow",
|
||||
)}
|
||||
|
@ -77,7 +77,7 @@ ${helpers.predefined_type(
|
|||
initial_value="computed::FontSizeAdjust::none()",
|
||||
initial_specified_value="specified::FontSizeAdjust::none()",
|
||||
animation_value_type="ComputedValue",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-fonts/#propdef-font-size-adjust",
|
||||
)}
|
||||
|
||||
|
@ -87,7 +87,7 @@ ${helpers.predefined_type(
|
|||
products="gecko",
|
||||
initial_value="specified::FontSynthesis::get_initial_value()",
|
||||
animation_value_type="discrete",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-fonts/#propdef-font-synthesis",
|
||||
)}
|
||||
|
||||
|
@ -97,7 +97,7 @@ ${helpers.predefined_type(
|
|||
initial_value="computed::FontStretch::hundred()",
|
||||
initial_specified_value="specified::FontStretch::normal()",
|
||||
animation_value_type="Percentage",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-fonts/#propdef-font-stretch",
|
||||
servo_restyle_damage="rebuild_and_reflow",
|
||||
)}
|
||||
|
@ -109,7 +109,7 @@ ${helpers.single_keyword_system(
|
|||
gecko_ffi_name="mFont.kerning",
|
||||
gecko_constant_prefix="NS_FONT_KERNING",
|
||||
spec="https://drafts.csswg.org/css-fonts/#propdef-font-kerning",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
animation_value_type="discrete",
|
||||
)}
|
||||
|
||||
|
@ -120,7 +120,7 @@ ${helpers.predefined_type(
|
|||
initial_value="computed::FontVariantAlternates::get_initial_value()",
|
||||
initial_specified_value="specified::FontVariantAlternates::get_initial_specified_value()",
|
||||
animation_value_type="discrete",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-fonts/#propdef-font-variant-alternates",
|
||||
)}
|
||||
|
||||
|
@ -131,7 +131,7 @@ ${helpers.predefined_type(
|
|||
initial_value="computed::FontVariantEastAsian::empty()",
|
||||
initial_specified_value="specified::FontVariantEastAsian::empty()",
|
||||
animation_value_type="discrete",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-fonts/#propdef-font-variant-east-asian",
|
||||
)}
|
||||
|
||||
|
@ -142,7 +142,7 @@ ${helpers.predefined_type(
|
|||
initial_value="computed::FontVariantLigatures::empty()",
|
||||
initial_specified_value="specified::FontVariantLigatures::empty()",
|
||||
animation_value_type="discrete",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-fonts/#propdef-font-variant-ligatures",
|
||||
)}
|
||||
|
||||
|
@ -153,7 +153,7 @@ ${helpers.predefined_type(
|
|||
initial_value="computed::FontVariantNumeric::empty()",
|
||||
initial_specified_value="specified::FontVariantNumeric::empty()",
|
||||
animation_value_type="discrete",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-fonts/#propdef-font-variant-numeric",
|
||||
)}
|
||||
|
||||
|
@ -164,7 +164,7 @@ ${helpers.single_keyword_system(
|
|||
gecko_ffi_name="mFont.variantPosition",
|
||||
gecko_constant_prefix="NS_FONT_VARIANT_POSITION",
|
||||
spec="https://drafts.csswg.org/css-fonts/#propdef-font-variant-position",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
animation_value_type="discrete",
|
||||
)}
|
||||
|
||||
|
@ -176,7 +176,7 @@ ${helpers.predefined_type(
|
|||
initial_specified_value="specified::FontFeatureSettings::normal()",
|
||||
extra_prefixes="moz:layout.css.prefixes.font-features",
|
||||
animation_value_type="discrete",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-fonts/#propdef-font-feature-settings",
|
||||
)}
|
||||
|
||||
|
@ -195,7 +195,7 @@ ${helpers.predefined_type(
|
|||
initial_value="computed::FontVariationSettings::normal()",
|
||||
initial_specified_value="specified::FontVariationSettings::normal()",
|
||||
animation_value_type="ComputedValue",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="${variation_spec}",
|
||||
)}
|
||||
|
||||
|
@ -207,7 +207,7 @@ ${helpers.predefined_type(
|
|||
initial_specified_value="specified::FontLanguageOverride::normal()",
|
||||
animation_value_type="discrete",
|
||||
extra_prefixes="moz:layout.css.prefixes.font-features",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-fonts-3/#propdef-font-language-override",
|
||||
)}
|
||||
|
||||
|
@ -219,7 +219,7 @@ ${helpers.single_keyword_system(
|
|||
gecko_ffi_name="mFont.opticalSizing",
|
||||
gecko_constant_prefix="NS_FONT_OPTICAL_SIZING",
|
||||
animation_value_type="discrete",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://www.w3.org/TR/css-fonts-4/#font-optical-sizing-def",
|
||||
)}
|
||||
|
||||
|
@ -514,7 +514,7 @@ ${helpers.single_keyword(
|
|||
gecko_pref="layout.css.osx-font-smoothing.enabled",
|
||||
products="gecko",
|
||||
spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth)",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
animation_value_type="discrete",
|
||||
)}
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@ ${helpers.single_keyword(
|
|||
gecko_ffi_name="mVisible",
|
||||
animation_value_type="ComputedValue",
|
||||
spec="https://drafts.csswg.org/css-box/#propdef-visibility",
|
||||
flags="APPLIES_TO_CUE",
|
||||
)}
|
||||
|
||||
// CSS Writing Modes Level 3
|
||||
|
|
|
@ -11,7 +11,7 @@ ${helpers.predefined_type(
|
|||
"ColorPropertyValue",
|
||||
"::cssparser::RGBA::new(0, 0, 0, 255)",
|
||||
animation_value_type="AnimatedRGBA",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
ignored_when_colors_disabled="True",
|
||||
spec="https://drafts.csswg.org/css-color/#color",
|
||||
)}
|
||||
|
@ -21,7 +21,7 @@ ${helpers.predefined_type(
|
|||
"LineHeight",
|
||||
"computed::LineHeight::normal()",
|
||||
animation_value_type="LineHeight",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE \
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE \
|
||||
APPLIES_TO_PLACEHOLDER GETCS_NEEDS_LAYOUT_FLUSH",
|
||||
spec="https://drafts.csswg.org/css2/visudet.html#propdef-line-height",
|
||||
servo_restyle_damage="reflow"
|
||||
|
@ -181,7 +181,7 @@ ${helpers.predefined_type(
|
|||
needs_conversion="True"
|
||||
animation_value_type="discrete"
|
||||
// Only allowed for UA sheets, which set it !important.
|
||||
flags="APPLIES_TO_PLACEHOLDER"
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_PLACEHOLDER"
|
||||
spec="https://drafts.csswg.org/css-text/#propdef-white-space"
|
||||
servo_restyle_damage="rebuild_and_reflow"
|
||||
>
|
||||
|
@ -229,7 +229,7 @@ ${helpers.predefined_type(
|
|||
animation_value_type="AnimatedTextShadowList",
|
||||
ignored_when_colors_disabled=True,
|
||||
simple_vector_bindings=True,
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-text-decor-3/#text-shadow-property",
|
||||
)}
|
||||
|
||||
|
@ -337,6 +337,7 @@ ${helpers.single_keyword(
|
|||
products="gecko",
|
||||
animation_value_type="discrete",
|
||||
spec="https://drafts.csswg.org/css-ruby/#ruby-position-property",
|
||||
flags="APPLIES_TO_CUE",
|
||||
)}
|
||||
|
||||
// CSS Writing Modes Module Level 3
|
||||
|
@ -348,6 +349,7 @@ ${helpers.single_keyword(
|
|||
products="gecko",
|
||||
animation_value_type="discrete",
|
||||
spec="https://drafts.csswg.org/css-writing-modes-3/#text-combine-upright",
|
||||
flags="APPLIES_TO_CUE",
|
||||
)}
|
||||
|
||||
// SVG 1.1: Section 11 - Painting: Filling, Stroking and Marker Symbols
|
||||
|
|
|
@ -18,6 +18,7 @@ ${helpers.predefined_type(
|
|||
animation_value_type="AnimatedColor",
|
||||
ignored_when_colors_disabled=True,
|
||||
spec="https://drafts.csswg.org/css-ui/#propdef-outline-color",
|
||||
flags="APPLIES_TO_CUE",
|
||||
)}
|
||||
|
||||
${helpers.predefined_type(
|
||||
|
@ -27,6 +28,7 @@ ${helpers.predefined_type(
|
|||
initial_specified_value="specified::OutlineStyle::none()",
|
||||
animation_value_type="discrete",
|
||||
spec="https://drafts.csswg.org/css-ui/#propdef-outline-style",
|
||||
flags="APPLIES_TO_CUE",
|
||||
)}
|
||||
|
||||
${helpers.predefined_type(
|
||||
|
@ -37,6 +39,7 @@ ${helpers.predefined_type(
|
|||
computed_type="crate::values::computed::NonNegativeLength",
|
||||
animation_value_type="NonNegativeLength",
|
||||
spec="https://drafts.csswg.org/css-ui/#propdef-outline-width",
|
||||
flags="APPLIES_TO_CUE",
|
||||
)}
|
||||
|
||||
// The -moz-outline-radius-* properties are non-standard and not on a standards track.
|
||||
|
|
|
@ -32,7 +32,7 @@ ${helpers.predefined_type(
|
|||
"specified::TextDecorationLine::none()",
|
||||
initial_specified_value="specified::TextDecorationLine::none()",
|
||||
animation_value_type="discrete",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-text-decor/#propdef-text-decoration-line",
|
||||
servo_restyle_damage="rebuild_and_reflow",
|
||||
)}
|
||||
|
@ -42,7 +42,7 @@ ${helpers.single_keyword(
|
|||
"solid double dotted dashed wavy -moz-none",
|
||||
products="gecko",
|
||||
animation_value_type="discrete",
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-text-decor/#propdef-text-decoration-style",
|
||||
)}
|
||||
|
||||
|
@ -54,7 +54,7 @@ ${helpers.predefined_type(
|
|||
products="gecko",
|
||||
animation_value_type="AnimatedColor",
|
||||
ignored_when_colors_disabled=True,
|
||||
flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
flags="APPLIES_TO_CUE APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER",
|
||||
spec="https://drafts.csswg.org/css-text-decor/#propdef-text-decoration-color",
|
||||
)}
|
||||
|
||||
|
|
|
@ -939,7 +939,7 @@ impl CSSWideKeyword {
|
|||
|
||||
bitflags! {
|
||||
/// A set of flags for properties.
|
||||
pub struct PropertyFlags: u8 {
|
||||
pub struct PropertyFlags: u16 {
|
||||
/// This property requires a stacking context.
|
||||
const CREATES_STACKING_CONTEXT = 1 << 0;
|
||||
/// This property has values that can establish a containing block for
|
||||
|
@ -954,13 +954,15 @@ bitflags! {
|
|||
const APPLIES_TO_FIRST_LINE = 1 << 4;
|
||||
/// This longhand property applies to ::placeholder.
|
||||
const APPLIES_TO_PLACEHOLDER = 1 << 5;
|
||||
/// This longhand property applies to ::cue.
|
||||
const APPLIES_TO_CUE = 1 << 6;
|
||||
/// This property's getComputedStyle implementation requires layout
|
||||
/// to be flushed.
|
||||
const GETCS_NEEDS_LAYOUT_FLUSH = 1 << 6;
|
||||
const GETCS_NEEDS_LAYOUT_FLUSH = 1 << 7;
|
||||
/// This property is a legacy shorthand.
|
||||
///
|
||||
/// https://drafts.csswg.org/css-cascade/#legacy-shorthand
|
||||
const IS_LEGACY_SHORTHAND = 1 << 7;
|
||||
const IS_LEGACY_SHORTHAND = 1 << 8;
|
||||
|
||||
/* The following flags are currently not used in Rust code, they
|
||||
* only need to be listed in corresponding properties so that
|
||||
|
@ -1184,7 +1186,7 @@ impl LonghandId {
|
|||
pub fn flags(self) -> PropertyFlags {
|
||||
// TODO(emilio): This can be simplified further as Rust gains more
|
||||
// constant expression support.
|
||||
const FLAGS: [u8; ${len(data.longhands)}] = [
|
||||
const FLAGS: [u16; ${len(data.longhands)}] = [
|
||||
% for property in data.longhands:
|
||||
% for flag in property.flags:
|
||||
PropertyFlags::${flag}.bits |
|
||||
|
@ -1446,7 +1448,7 @@ impl ShorthandId {
|
|||
/// Returns PropertyFlags for the given shorthand property.
|
||||
#[inline]
|
||||
pub fn flags(self) -> PropertyFlags {
|
||||
const FLAGS: [u8; ${len(data.shorthands)}] = [
|
||||
const FLAGS: [u16; ${len(data.shorthands)}] = [
|
||||
% for property in data.shorthands:
|
||||
% for flag in property.flags:
|
||||
PropertyFlags::${flag}.bits |
|
||||
|
|
|
@ -3655,3 +3655,576 @@ raptor-tp6m-14-fennec64-cold:
|
|||
- --test=raptor-tp6m-cold-14-fennec64
|
||||
- --app=fennec
|
||||
- --binary=org.mozilla.firefox
|
||||
|
||||
|
||||
raptor-tp6m-1-refbrow-cold:
|
||||
description: "Raptor tp6m-1 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-1-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-1)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-1
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-2-refbrow-cold:
|
||||
description: "Raptor tp6m-2 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-2-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-2)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-2
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-3-refbrow-cold:
|
||||
description: "Raptor tp6m-3 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-3-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-3)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-3
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-4-refbrow-cold:
|
||||
description: "Raptor tp6m-4 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-4-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-4)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-4
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-5-refbrow-cold:
|
||||
description: "Raptor tp6m-5 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-5-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-5)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-5
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-6-refbrow-cold:
|
||||
description: "Raptor tp6m-6 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-6-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-6)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-6
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-7-refbrow-cold:
|
||||
description: "Raptor tp6m-7 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-7-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-7)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-7
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-8-refbrow-cold:
|
||||
description: "Raptor tp6m-8 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-8-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-8)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-8
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-9-refbrow-cold:
|
||||
description: "Raptor tp6m-9 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-9-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-9)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-9
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-10-refbrow-cold:
|
||||
description: "Raptor tp6m-10 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-10-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-10)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-10
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-11-refbrow-cold:
|
||||
description: "Raptor tp6m-11 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-11-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-11)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-11
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-12-refbrow-cold:
|
||||
description: "Raptor tp6m-12 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-12-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-12)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-12
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-13-refbrow-cold:
|
||||
description: "Raptor tp6m-13 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-13-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-13)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-13
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-14-refbrow-cold:
|
||||
description: "Raptor tp6m-14 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-14-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-14)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-14
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-15-refbrow-cold:
|
||||
description: "Raptor tp6m-15 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-15-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-15)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-15
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-16-refbrow-cold:
|
||||
description: "Raptor tp6m-16 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-16-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-16)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-16
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-17-refbrow-cold:
|
||||
description: "Raptor tp6m-17 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-17-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-17)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-17
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-18-refbrow-cold:
|
||||
description: "Raptor tp6m-18 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-18-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-18)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-18
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-19-refbrow-cold:
|
||||
description: "Raptor tp6m-19 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-19-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-19)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-19
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-20-refbrow-cold:
|
||||
description: "Raptor tp6m-20 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-20-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-20)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-20
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-21-refbrow-cold:
|
||||
description: "Raptor tp6m-21 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-21-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-21)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-21
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-22-refbrow-cold:
|
||||
description: "Raptor tp6m-22 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-22-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-22)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-22
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-23-refbrow-cold:
|
||||
description: "Raptor tp6m-23 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-23-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-23)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-23
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivityy
|
||||
|
||||
raptor-tp6m-24-refbrow-cold:
|
||||
description: "Raptor tp6m-24 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-24-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-24)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-24
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-25-refbrow-cold:
|
||||
description: "Raptor tp6m-25 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-25-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-25)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-25
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
||||
raptor-tp6m-26-refbrow-cold:
|
||||
description: "Raptor tp6m-26 cold page-load on the reference browser"
|
||||
try-name: raptor-tp6m-26-refbrow-cold
|
||||
treeherder-symbol: Rap-refbrow(tp6m-c-26)
|
||||
run-on-projects: ['try']
|
||||
e10s: true
|
||||
target:
|
||||
by-test-platform:
|
||||
android-hw.*-aarch64.*/.*:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.aarch64
|
||||
name: target.apk
|
||||
default:
|
||||
index: project.mobile.reference-browser.v2.raptor.latest.arm
|
||||
name: target.apk
|
||||
tier: 2
|
||||
mozharness:
|
||||
extra-options:
|
||||
- --test=raptor-tp6m-cold-26
|
||||
- --app=refbrow
|
||||
- --binary-path=org.mozilla.reference.browser.raptor
|
||||
- --activity=org.mozilla.reference.browser.BrowserTestActivity
|
||||
|
|
|
@ -355,11 +355,6 @@ android-em-4.3-arm7-api-16/pgo:
|
|||
- android-common-tests
|
||||
- android-opt-tests
|
||||
|
||||
android-em-7.0-x86/opt:
|
||||
build-platform: android-x86/opt
|
||||
test-sets:
|
||||
- android-x86-tests
|
||||
|
||||
android-em-7.0-x86_64/opt:
|
||||
build-platform: android-x86_64/opt
|
||||
test-sets:
|
||||
|
|
|
@ -414,10 +414,6 @@ android-x86_64-tests:
|
|||
- web-platform-tests-reftests
|
||||
- xpcshell
|
||||
|
||||
android-x86-tests:
|
||||
- web-platform-tests
|
||||
- web-platform-tests-reftests
|
||||
|
||||
android-ccov-tests:
|
||||
- geckoview-junit
|
||||
- robocop
|
||||
|
@ -584,6 +580,32 @@ android-hw-arm7-raptor:
|
|||
- raptor-tp6m-12-fennec64-cold
|
||||
- raptor-tp6m-13-fennec64-cold
|
||||
- raptor-tp6m-14-fennec64-cold
|
||||
- raptor-tp6m-1-refbrow-cold
|
||||
- raptor-tp6m-2-refbrow-cold
|
||||
- raptor-tp6m-3-refbrow-cold
|
||||
- raptor-tp6m-4-refbrow-cold
|
||||
- raptor-tp6m-5-refbrow-cold
|
||||
- raptor-tp6m-6-refbrow-cold
|
||||
- raptor-tp6m-7-refbrow-cold
|
||||
- raptor-tp6m-8-refbrow-cold
|
||||
- raptor-tp6m-9-refbrow-cold
|
||||
- raptor-tp6m-10-refbrow-cold
|
||||
- raptor-tp6m-11-refbrow-cold
|
||||
- raptor-tp6m-12-refbrow-cold
|
||||
- raptor-tp6m-13-refbrow-cold
|
||||
- raptor-tp6m-14-refbrow-cold
|
||||
- raptor-tp6m-15-refbrow-cold
|
||||
- raptor-tp6m-16-refbrow-cold
|
||||
- raptor-tp6m-17-refbrow-cold
|
||||
- raptor-tp6m-18-refbrow-cold
|
||||
- raptor-tp6m-19-refbrow-cold
|
||||
- raptor-tp6m-20-refbrow-cold
|
||||
- raptor-tp6m-21-refbrow-cold
|
||||
- raptor-tp6m-22-refbrow-cold
|
||||
- raptor-tp6m-23-refbrow-cold
|
||||
- raptor-tp6m-24-refbrow-cold
|
||||
- raptor-tp6m-25-refbrow-cold
|
||||
- raptor-tp6m-26-refbrow-cold
|
||||
|
||||
android-hw-aarch64-raptor:
|
||||
- raptor-speedometer-geckoview
|
||||
|
@ -712,6 +734,32 @@ android-hw-aarch64-raptor:
|
|||
- raptor-tp6m-12-fennec64-cold
|
||||
- raptor-tp6m-13-fennec64-cold
|
||||
- raptor-tp6m-14-fennec64-cold
|
||||
- raptor-tp6m-1-refbrow-cold
|
||||
- raptor-tp6m-2-refbrow-cold
|
||||
- raptor-tp6m-3-refbrow-cold
|
||||
- raptor-tp6m-4-refbrow-cold
|
||||
- raptor-tp6m-5-refbrow-cold
|
||||
- raptor-tp6m-6-refbrow-cold
|
||||
- raptor-tp6m-7-refbrow-cold
|
||||
- raptor-tp6m-8-refbrow-cold
|
||||
- raptor-tp6m-9-refbrow-cold
|
||||
- raptor-tp6m-10-refbrow-cold
|
||||
- raptor-tp6m-11-refbrow-cold
|
||||
- raptor-tp6m-12-refbrow-cold
|
||||
- raptor-tp6m-13-refbrow-cold
|
||||
- raptor-tp6m-14-refbrow-cold
|
||||
- raptor-tp6m-15-refbrow-cold
|
||||
- raptor-tp6m-16-refbrow-cold
|
||||
- raptor-tp6m-17-refbrow-cold
|
||||
- raptor-tp6m-18-refbrow-cold
|
||||
- raptor-tp6m-19-refbrow-cold
|
||||
- raptor-tp6m-20-refbrow-cold
|
||||
- raptor-tp6m-21-refbrow-cold
|
||||
- raptor-tp6m-22-refbrow-cold
|
||||
- raptor-tp6m-23-refbrow-cold
|
||||
- raptor-tp6m-24-refbrow-cold
|
||||
- raptor-tp6m-25-refbrow-cold
|
||||
- raptor-tp6m-26-refbrow-cold
|
||||
|
||||
android-hw-arm7-raptor-power:
|
||||
- raptor-speedometer-geckoview-power
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-amazon.manifest
|
|||
playback_recordings = android-amazon.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-amazon-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://www.amazon.com
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-amazon.manifest
|
||||
playback_recordings = android-amazon.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-bbc.manifest
|
|||
playback_recordings = mitmproxy-recordings-raptor-tp6m-bbc.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-bbc-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://www.bbc.com/news/business-47245877
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-bbc.manifest
|
||||
playback_recordings = mitmproxy-recordings-raptor-tp6m-bbc.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-microsoft-support.m
|
|||
playback_recordings = android-microsoft-support.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-microsoft-support-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://support.microsoft.com/en-us
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-microsoft-support.manifest
|
||||
playback_recordings = android-microsoft-support.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-imdb.manifest
|
|||
playback_recordings = android-imdb.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-imdb-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://m.imdb.com/
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-imdb.manifest
|
||||
playback_recordings = android-imdb.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-espn.manifest
|
|||
playback_recordings = android-espn.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-espn-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = http://www.espn.com/nba/story/_/page/allstarweekend25788027/the-comparison-lebron-james-michael-jordan-their-own-words
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-espn.manifest
|
||||
playback_recordings = android-espn.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-facebook-cristiano.
|
|||
playback_recordings = android-facebook-cristiano.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-facebook-cristiano-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://m.facebook.com/Cristiano
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-facebook-cristiano.manifest
|
||||
playback_recordings = android-facebook-cristiano.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-facebook.manifest
|
|||
playback_recordings = android-facebook.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-facebook-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://m.facebook.com
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-facebook.manifest
|
||||
playback_recordings = android-facebook.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitm4-motog5-gve-youtube.manifest
|
|||
playback_recordings = android-youtube.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-youtube-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://m.youtube.com
|
||||
playback_pageset_manifest = mitm4-motog5-gve-youtube.manifest
|
||||
playback_recordings = android-youtube.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-bing-mobile.manifes
|
|||
playback_recordings = bing-mobile.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-bing-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://www.bing.com
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-bing-mobile.manifest
|
||||
playback_recordings = bing-mobile.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-ebay-kleinanzeigen-
|
|||
playback_recordings = ebay-kleinanzeigen-mobile.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-ebay-kleinanzeigen-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://m.ebay-kleinanzeigen.de
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-ebay-kleinanzeigen-mobile.manifest
|
||||
playback_recordings = ebay-kleinanzeigen-mobile.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-google-maps.manifes
|
|||
playback_recordings = google_maps_mobile.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-google-maps-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://www.google.com/maps?force=pwa
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-google-maps.manifest
|
||||
playback_recordings = google_maps_mobile.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-google.manifest
|
|||
playback_recordings = android-google.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-google-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://www.google.com
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-google.manifest
|
||||
playback_recordings = android-google.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-youtube-watch.manif
|
|||
playback_recordings = android-youtube-watch.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-youtube-watch-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://www.youtube.com/watch?v=COU5T-Wafa4
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-youtube-watch.manifest
|
||||
playback_recordings = android-youtube-watch.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-reddit.manifest
|
|||
playback_recordings = mitmproxy-recordings-raptor-tp6m-reddit.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-reddit-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://www.reddit.com
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-reddit.manifest
|
||||
playback_recordings = mitmproxy-recordings-raptor-tp6m-reddit.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-stackoverflow.manif
|
|||
playback_recordings = mitmproxy-recordings-raptor-tp6m-stackoverflow.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-stackoverflow-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://stackoverflow.com/
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-stackoverflow.manifest
|
||||
playback_recordings = mitmproxy-recordings-raptor-tp6m-stackoverflow.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-jianshu.manifest
|
|||
playback_recordings = android-jianshu.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-jianshu-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://www.jianshu.com/
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-jianshu.manifest
|
||||
playback_recordings = android-jianshu.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-allrecipes.manifest
|
|||
playback_recordings = android-allrecipes.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-allrecipes-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://www.allrecipes.com/
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-allrecipes.manifest
|
||||
playback_recordings = android-allrecipes.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-web-de.manifest
|
|||
playback_recordings = android-web-de.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-web-de-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://web.de/magazine/politik/politologe-glaubt-grossen-koalition-herbst-knallen-33563566
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-web-de.manifest
|
||||
playback_recordings = android-web-de.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-aframeio-animation.
|
|||
playback_recordings = android-aframeio-animation.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-aframeio-animation-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://aframe.io/examples/showcase/animation
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-aframeio-animation.manifest
|
||||
playback_recordings = android-aframeio-animation.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-instagram-mobile.ma
|
|||
playback_recordings = instagram-mobile.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-instagram-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://www.instagram.com
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-instagram-mobile.manifest
|
||||
playback_recordings = instagram-mobile.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-bing-restaurants-mo
|
|||
playback_recordings = bing-restaurants-mobile.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-bing-restaurants-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://www.bing.com/search?q=restaurants
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-bing-restaurants-mobile.manifest
|
||||
playback_recordings = bing-restaurants-mobile.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-ebay-kleinanzeigen-
|
|||
playback_recordings = ebay-kleinanzeigen-search-mobile.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-ebay-kleinanzeigen-search-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://m.ebay-kleinanzeigen.de/s-anzeigen/auf-zeit-wg-berlin/zimmer/c199-l3331
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-ebay-kleinanzeigen-search-mobile.manifest
|
||||
playback_recordings = ebay-kleinanzeigen-search-mobile.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -16,14 +16,6 @@ page_timeout = 60000
|
|||
alert_on = fcp, loadtime
|
||||
cold = true
|
||||
|
||||
[raptor-tp6m-google-restaurants-fenix-cold]
|
||||
apps = fenix
|
||||
test_url = https://www.google.com/search?q=restaurants+near+me
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-google-restaurants.manifest
|
||||
playback_recordings = google-search-restaurants-mobile.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
disabled = Bug 1533283 Intermittent timeouts running raptor-tp6m-google-restaurants-geckoview
|
||||
|
||||
[raptor-tp6m-amazon-search-fenix-cold]
|
||||
apps = fenix
|
||||
test_url = https://www.amazon.com/s/ref=nb_sb_noss_2/139-6317191-5622045?url=search-alias%3Daps&field-keywords=mobile+phone
|
||||
|
@ -31,14 +23,6 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-amazon-search.manif
|
|||
playback_recordings = android-amazon-search.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
||||
[raptor-tp6m-google-restaurants-geckoview-cold]
|
||||
apps = geckoview
|
||||
test_url = https://www.google.com/search?q=restaurants+near+me
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-google-restaurants.manifest
|
||||
playback_recordings = google-search-restaurants-mobile.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
disabled = Bug 1533283 Intermittent timeouts running raptor-tp6m-google-restaurants-geckoview
|
||||
|
||||
[raptor-tp6m-amazon-search-geckoview-cold]
|
||||
apps = geckoview
|
||||
test_url = https://www.amazon.com/s/ref=nb_sb_noss_2/139-6317191-5622045?url=search-alias%3Daps&field-keywords=mobile+phone
|
||||
|
@ -46,19 +30,18 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-amazon-search.manif
|
|||
playback_recordings = android-amazon-search.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
||||
[raptor-tp6m-google-restaurants-fennec-cold]
|
||||
apps = fennec
|
||||
test_url = https://www.google.com/search?q=restaurants+near+me
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-google-restaurants.manifest
|
||||
playback_recordings = google-search-restaurants-mobile.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
disabled = Bug 1541431 TEST-UNEXPECTED-FAIL: test 'raptor-tp6m-google-restaurants-fennec' timed out loading test page
|
||||
|
||||
[raptor-tp6m-cold-amazon-search-fennec-cold]
|
||||
[raptor-tp6m-amazon-search-fennec-cold]
|
||||
apps = fennec
|
||||
test_url = https://www.amazon.com/s/ref=nb_sb_noss_2/139-6317191-5622045?url=search-alias%3Daps&field-keywords=mobile+phone
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-amazon-search.manifest
|
||||
playback_recordings = android-amazon-search.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-amazon-search-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://www.amazon.com/s/ref=nb_sb_noss_2/139-6317191-5622045?url=search-alias%3Daps&field-keywords=mobile+phone
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-amazon-search.manifest
|
||||
playback_recordings = android-amazon-search.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-wikipedia.manifest
|
|||
playback_recordings = android-wikipedia.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-wikipedia-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://en.m.wikipedia.org/wiki/Main_Page
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-wikipedia.manifest
|
||||
playback_recordings = android-wikipedia.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -23,14 +23,6 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-booking.manifest
|
|||
playback_recordings = android-booking.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
||||
[raptor-tp6m-cnn-fenix-cold]
|
||||
apps = fenix
|
||||
test_url = https://edition.cnn.com/
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-cnn.manifest
|
||||
playback_recordings = android-cnn.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
disabled = Bug 1533287 Intermittent timeouts running raptor-tp6m-cnn-geckoview
|
||||
|
||||
[raptor-tp6m-booking-geckoview-cold]
|
||||
apps = geckoview
|
||||
test_url = https://www.booking.com/
|
||||
|
@ -38,14 +30,6 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-booking.manifest
|
|||
playback_recordings = android-booking.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
||||
[raptor-tp6m-cnn-geckoview-cold]
|
||||
apps = geckoview
|
||||
test_url = https://edition.cnn.com/
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-cnn.manifest
|
||||
playback_recordings = android-cnn.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
disabled = Bug 1533287 Intermittent timeouts running raptor-tp6m-cnn-geckoview
|
||||
|
||||
[raptor-tp6m-booking-fennec-cold]
|
||||
apps = fennec
|
||||
test_url = https://www.booking.com/
|
||||
|
@ -54,11 +38,9 @@ playback_recordings = android-booking.mp
|
|||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-cnn-fennec-cold]
|
||||
apps = fennec
|
||||
test_url = https://edition.cnn.com/
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-cnn.manifest
|
||||
playback_recordings = android-cnn.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
disabled = Intermittent on fennec v64 - wont fix
|
||||
[raptor-tp6m-booking-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://www.booking.com/
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-booking.manifest
|
||||
playback_recordings = android-booking.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -37,3 +37,10 @@ playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-cnn-ampstories.mani
|
|||
playback_recordings = android-cnn-ampstories.mp
|
||||
measure = fnbpaint, dcf, loadtime
|
||||
alert_on = loadtime
|
||||
|
||||
[raptor-tp6m-cnn-ampstories-refbrow-cold]
|
||||
apps = refbrow
|
||||
test_url = https://edition.cnn.com/ampstories/us/why-hurricane-michael-is-a-monster-unlike-any-other
|
||||
playback_pageset_manifest = mitmproxy-recordings-raptor-tp6m-cnn-ampstories.manifest
|
||||
playback_recordings = android-cnn-ampstories.mp
|
||||
measure = fnbpaint, fcp, dcf, loadtime
|
||||
|
|
|
@ -2,5 +2,3 @@
|
|||
disabled:
|
||||
if os == "linux": https://bugzilla.mozilla.org/show_bug.cgi?id=1383229
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1383229
|
||||
expected:
|
||||
if not e10s: FAIL
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче