Merge mozilla-central to mozilla-inbound

This commit is contained in:
arthur.iakab 2019-06-26 01:09:31 +03:00
Родитель fd98a96694 a5f9f03887
Коммит 785bee02e8
146 изменённых файлов: 2136 добавлений и 707 удалений

11
Cargo.lock сгенерированный
Просмотреть файл

@ -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

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше