зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset 3c716a5a7906 (bug 1295608)
This commit is contained in:
Родитель
fc382e1dda
Коммит
a75ae94d08
|
@ -4,8 +4,9 @@
|
|||
|
||||
"use strict";
|
||||
|
||||
const LAYOUT_ERRORS_L10N =
|
||||
new LocalizationHelper("global/locale/layout_errors.properties");
|
||||
const { LocalizationHelper } = require("devtools/client/shared/l10n");
|
||||
const STRINGS_URI = "global/locale/layout_errors.properties";
|
||||
const L10N = new LocalizationHelper(STRINGS_URI);
|
||||
|
||||
// Test that when an animation is selected, its list of animated properties is
|
||||
// displayed below it.
|
||||
|
@ -78,7 +79,7 @@ function hasExpectedWarnings(containerEl) {
|
|||
for (let warning of warnings) {
|
||||
let warningID =
|
||||
"CompositorAnimationWarningTransformWithGeometricProperties";
|
||||
if (warning.getAttribute("title") == LAYOUT_ERRORS_L10N.getStr(warningID)) {
|
||||
if (warning.getAttribute("title") == L10N.getStr(warningID)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,11 @@ requestLongerTimeout(2);
|
|||
|
||||
// Test that the panel shows no animation data for invalid or not animated nodes
|
||||
|
||||
const { LocalizationHelper } = require("devtools/client/shared/l10n");
|
||||
|
||||
const STRINGS_URI = "devtools/locale/animationinspector.properties";
|
||||
const L10N = new LocalizationHelper(STRINGS_URI);
|
||||
|
||||
add_task(function* () {
|
||||
yield addTab(URL_ROOT + "doc_simple_animation.html");
|
||||
let {inspector, panel, window} = yield openAnimationInspector();
|
||||
|
@ -23,7 +28,7 @@ add_task(function* () {
|
|||
is(panel.animationsTimelineComponent.animationsEl.childNodes.length, 0,
|
||||
"No animation displayed in the timeline component for a still node");
|
||||
is(document.querySelector("#error-type").textContent,
|
||||
ANIMATION_L10N.getStr("panel.invalidElementSelected"),
|
||||
L10N.getStr("panel.invalidElementSelected"),
|
||||
"The correct error message is displayed");
|
||||
|
||||
info("Select the comment text node and check that the panel is empty");
|
||||
|
@ -37,6 +42,6 @@ add_task(function* () {
|
|||
is(panel.animationsTimelineComponent.animationsEl.childNodes.length, 0,
|
||||
"No animation displayed in the timeline component for a text node");
|
||||
is(document.querySelector("#error-type").textContent,
|
||||
ANIMATION_L10N.getStr("panel.invalidElementSelected"),
|
||||
L10N.getStr("panel.invalidElementSelected"),
|
||||
"The correct error message is displayed");
|
||||
});
|
||||
|
|
|
@ -9,6 +9,11 @@ requestLongerTimeout(2);
|
|||
// Test that when animations displayed in the timeline are running on the
|
||||
// compositor, they get a special icon and information in the tooltip.
|
||||
|
||||
const { LocalizationHelper } = require("devtools/client/shared/l10n");
|
||||
|
||||
const STRINGS_URI = "devtools/locale/animationinspector.properties";
|
||||
const L10N = new LocalizationHelper(STRINGS_URI);
|
||||
|
||||
add_task(function* () {
|
||||
yield addTab(URL_ROOT + "doc_simple_animation.html");
|
||||
let {inspector, panel} = yield openAnimationInspector();
|
||||
|
@ -21,7 +26,7 @@ add_task(function* () {
|
|||
ok(animationEl.classList.contains("fast-track"),
|
||||
"The animation element has the fast-track css class");
|
||||
ok(hasTooltip(animationEl,
|
||||
ANIMATION_L10N.getStr("player.allPropertiesOnCompositorTooltip")),
|
||||
L10N.getStr("player.allPropertiesOnCompositorTooltip")),
|
||||
"The animation element has the right tooltip content");
|
||||
|
||||
info("Select a node we know doesn't have an animation on the compositor");
|
||||
|
@ -31,10 +36,10 @@ add_task(function* () {
|
|||
ok(!animationEl.classList.contains("fast-track"),
|
||||
"The animation element does not have the fast-track css class");
|
||||
ok(!hasTooltip(animationEl,
|
||||
ANIMATION_L10N.getStr("player.allPropertiesOnCompositorTooltip")),
|
||||
L10N.getStr("player.allPropertiesOnCompositorTooltip")),
|
||||
"The animation element does not have oncompositor tooltip content");
|
||||
ok(!hasTooltip(animationEl,
|
||||
ANIMATION_L10N.getStr("player.somePropertiesOnCompositorTooltip")),
|
||||
L10N.getStr("player.somePropertiesOnCompositorTooltip")),
|
||||
"The animation element does not have oncompositor tooltip content");
|
||||
|
||||
info("Select a node we know has animation on the compositor and not on the" +
|
||||
|
@ -45,7 +50,7 @@ add_task(function* () {
|
|||
ok(animationEl.classList.contains("fast-track"),
|
||||
"The animation element has the fast-track css class");
|
||||
ok(hasTooltip(animationEl,
|
||||
ANIMATION_L10N.getStr("player.somePropertiesOnCompositorTooltip")),
|
||||
L10N.getStr("player.somePropertiesOnCompositorTooltip")),
|
||||
"The animation element has the right tooltip content");
|
||||
});
|
||||
|
||||
|
|
|
@ -14,8 +14,6 @@ Services.scriptloader.loadSubScript(
|
|||
const FRAME_SCRIPT_URL = CHROME_URL_ROOT + "doc_frame_script.js";
|
||||
const COMMON_FRAME_SCRIPT_URL = "chrome://devtools/content/shared/frame-script-utils.js";
|
||||
const TAB_NAME = "animationinspector";
|
||||
const ANIMATION_L10N =
|
||||
new LocalizationHelper("devtools/locale/animationinspector.properties");
|
||||
|
||||
// Auto clean-up when a test ends
|
||||
registerCleanupFunction(function* () {
|
||||
|
|
|
@ -8,8 +8,10 @@
|
|||
// in an attribute.
|
||||
|
||||
const TEST_URL = URL_ROOT + "doc_markup_links.html";
|
||||
|
||||
const TOOLBOX_L10N = new LocalizationHelper("devtools/locale/toolbox.properties");
|
||||
const STRINGS = Services.strings
|
||||
.createBundle("chrome://devtools/locale/inspector.properties");
|
||||
const TOOLBOX_STRINGS = Services.strings
|
||||
.createBundle("chrome://devtools/locale/toolbox.properties");
|
||||
|
||||
// The test case array contains objects with the following properties:
|
||||
// - selector: css selector for the node to select in the inspector
|
||||
|
@ -26,9 +28,9 @@ const TEST_DATA = [{
|
|||
popupNodeSelector: ".link",
|
||||
isLinkFollowItemVisible: true,
|
||||
isLinkCopyItemVisible: true,
|
||||
linkFollowItemLabel: TOOLBOX_L10N.getStr(
|
||||
linkFollowItemLabel: TOOLBOX_STRINGS.GetStringFromName(
|
||||
"toolbox.viewCssSourceInStyleEditor.label"),
|
||||
linkCopyItemLabel: INSPECTOR_L10N.getStr(
|
||||
linkCopyItemLabel: STRINGS.GetStringFromName(
|
||||
"inspector.menu.copyUrlToClipboard.label")
|
||||
}, {
|
||||
selector: "link[rel=icon]",
|
||||
|
@ -36,9 +38,9 @@ const TEST_DATA = [{
|
|||
popupNodeSelector: ".link",
|
||||
isLinkFollowItemVisible: true,
|
||||
isLinkCopyItemVisible: true,
|
||||
linkFollowItemLabel: INSPECTOR_L10N.getStr(
|
||||
linkFollowItemLabel: STRINGS.GetStringFromName(
|
||||
"inspector.menu.openUrlInNewTab.label"),
|
||||
linkCopyItemLabel: INSPECTOR_L10N.getStr(
|
||||
linkCopyItemLabel: STRINGS.GetStringFromName(
|
||||
"inspector.menu.copyUrlToClipboard.label")
|
||||
}, {
|
||||
selector: "link",
|
||||
|
@ -52,17 +54,17 @@ const TEST_DATA = [{
|
|||
popupNodeSelector: ".link",
|
||||
isLinkFollowItemVisible: true,
|
||||
isLinkCopyItemVisible: false,
|
||||
linkFollowItemLabel: INSPECTOR_L10N.getFormatStr(
|
||||
"inspector.menu.selectElement.label", "name")
|
||||
linkFollowItemLabel: STRINGS.formatStringFromName(
|
||||
"inspector.menu.selectElement.label", ["name"], 1)
|
||||
}, {
|
||||
selector: "script",
|
||||
attributeName: "src",
|
||||
popupNodeSelector: ".link",
|
||||
isLinkFollowItemVisible: true,
|
||||
isLinkCopyItemVisible: true,
|
||||
linkFollowItemLabel: TOOLBOX_L10N.getStr(
|
||||
linkFollowItemLabel: TOOLBOX_STRINGS.GetStringFromName(
|
||||
"toolbox.viewJsSourceInDebugger.label"),
|
||||
linkCopyItemLabel: INSPECTOR_L10N.getStr(
|
||||
linkCopyItemLabel: STRINGS.GetStringFromName(
|
||||
"inspector.menu.copyUrlToClipboard.label")
|
||||
}, {
|
||||
selector: "p[for]",
|
||||
|
|
|
@ -22,7 +22,7 @@ function* addNewRuleFromContextMenu(inspector, view) {
|
|||
|
||||
let allMenuItems = openStyleContextMenuAndGetAllItems(view, view.element);
|
||||
let menuitemAddRule = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.addNewRule"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.addNewRule"));
|
||||
|
||||
ok(menuitemAddRule.visible, "Add rule is visible");
|
||||
|
||||
|
|
|
@ -17,6 +17,9 @@ const CONTENT = `
|
|||
</body>
|
||||
`;
|
||||
|
||||
const STRINGS = Services.strings
|
||||
.createBundle("chrome://devtools-shared/locale/styleinspector.properties");
|
||||
|
||||
add_task(function* () {
|
||||
let tab = yield addTab("data:text/html;charset=utf-8," + CONTENT);
|
||||
|
||||
|
@ -33,13 +36,13 @@ function checkRuleViewContent({styleDocument}) {
|
|||
is(headers.length, 3, "There are 3 headers for inherited rules");
|
||||
|
||||
is(headers[0].textContent,
|
||||
STYLE_INSPECTOR_L10N.getFormatStr("rule.inheritedFrom", "p"),
|
||||
STRINGS.formatStringFromName("rule.inheritedFrom", ["p"], 1),
|
||||
"The first header is correct");
|
||||
is(headers[1].textContent,
|
||||
STYLE_INSPECTOR_L10N.getFormatStr("rule.inheritedFrom", "div"),
|
||||
STRINGS.formatStringFromName("rule.inheritedFrom", ["div"], 1),
|
||||
"The second header is correct");
|
||||
is(headers[2].textContent,
|
||||
STYLE_INSPECTOR_L10N.getFormatStr("rule.inheritedFrom", "body"),
|
||||
STRINGS.formatStringFromName("rule.inheritedFrom", ["body"], 1),
|
||||
"The third header is correct");
|
||||
|
||||
let rules = styleDocument.querySelectorAll(".ruleview-rule");
|
||||
|
@ -47,14 +50,17 @@ function checkRuleViewContent({styleDocument}) {
|
|||
|
||||
for (let rule of rules) {
|
||||
let selector = rule.querySelector(".ruleview-selectorcontainer");
|
||||
is(selector.textContent, STYLE_INSPECTOR_L10N.getStr("rule.sourceElement"),
|
||||
is(selector.textContent,
|
||||
STRINGS.GetStringFromName("rule.sourceElement"),
|
||||
"The rule's selector is correct");
|
||||
|
||||
let propertyNames = [...rule.querySelectorAll(".ruleview-propertyname")];
|
||||
is(propertyNames.length, 1, "There's only one property name, as expected");
|
||||
is(propertyNames.length, 1,
|
||||
"There's only one property name, as expected");
|
||||
|
||||
let propertyValues = [...rule.querySelectorAll(".ruleview-propertyvalue")];
|
||||
is(propertyValues.length, 1, "There's only one property value, as expected");
|
||||
is(propertyValues.length, 1,
|
||||
"There's only one property value, as expected");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ function* testMdnContextMenuItemVisibility(view) {
|
|||
info("Creating context menu with " + node + " as popupNode");
|
||||
let allMenuItems = openStyleContextMenuAndGetAllItems(view, node);
|
||||
let menuitemShowMdnDocs = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.showMdnDocs"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.showMdnDocs"));
|
||||
|
||||
let isVisible = menuitemShowMdnDocs.visible;
|
||||
let shouldBeVisible = isPropertyNameNode(node);
|
||||
|
|
|
@ -45,7 +45,7 @@ add_task(function* () {
|
|||
|
||||
let allMenuItems = openStyleContextMenuAndGetAllItems(view, nameSpan.firstChild);
|
||||
let menuitemShowMdnDocs = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.showMdnDocs"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.showMdnDocs"));
|
||||
|
||||
let cssDocs = view.tooltips.cssDocs;
|
||||
|
||||
|
|
|
@ -105,7 +105,7 @@ function* testMdnContextMenuItemVisibility(view, shouldBeVisible) {
|
|||
let node = root.querySelector("." + PROPERTY_NAME_CLASS).firstChild;
|
||||
let allMenuItems = openStyleContextMenuAndGetAllItems(view, node);
|
||||
let menuitemShowMdnDocs = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.showMdnDocs"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.showMdnDocs"));
|
||||
|
||||
let isVisible = menuitemShowMdnDocs.visible;
|
||||
is(isVisible, shouldBeVisible,
|
||||
|
|
|
@ -215,21 +215,21 @@ add_task(function* () {
|
|||
function* checkCopyStyle(view, node, menuItemLabel, expectedPattern, visible) {
|
||||
let allMenuItems = openStyleContextMenuAndGetAllItems(view, node);
|
||||
let menuItem = allMenuItems.find(item =>
|
||||
item.label === STYLE_INSPECTOR_L10N.getStr(menuItemLabel));
|
||||
item.label === _STRINGS.GetStringFromName(menuItemLabel));
|
||||
let menuitemCopy = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.copy"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.copy"));
|
||||
let menuitemCopyLocation = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.copyLocation"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.copyLocation"));
|
||||
let menuitemCopyPropertyDeclaration = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.copyPropertyDeclaration"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.copyPropertyDeclaration"));
|
||||
let menuitemCopyPropertyName = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.copyPropertyName"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.copyPropertyName"));
|
||||
let menuitemCopyPropertyValue = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.copyPropertyValue"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.copyPropertyValue"));
|
||||
let menuitemCopySelector = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.copySelector"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.copySelector"));
|
||||
let menuitemCopyRule = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.copyRule"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.copyRule"));
|
||||
|
||||
ok(menuitemCopy.disabled,
|
||||
"Copy disabled is as expected: true");
|
||||
|
|
|
@ -16,7 +16,10 @@ add_task(function* () {
|
|||
|
||||
let elementStyle = view._elementStyle;
|
||||
|
||||
let inline = STYLE_INSPECTOR_L10N.getStr("rule.sourceInline");
|
||||
let _strings = Services.strings
|
||||
.createBundle("chrome://devtools-shared/locale/styleinspector.properties");
|
||||
|
||||
let inline = _strings.GetStringFromName("rule.sourceInline");
|
||||
|
||||
is(elementStyle.rules.length, 3, "Should have 3 rules.");
|
||||
is(elementStyle.rules[0].title, inline, "check rule 0 title");
|
||||
|
|
|
@ -69,7 +69,7 @@ function* checkCopySelection(view) {
|
|||
|
||||
let allMenuItems = openStyleContextMenuAndGetAllItems(view, prop);
|
||||
let menuitemCopy = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.copy"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.copy"));
|
||||
|
||||
ok(menuitemCopy.visible,
|
||||
"Copy menu item is displayed as expected");
|
||||
|
@ -103,7 +103,7 @@ function* checkSelectAll(view) {
|
|||
|
||||
let allMenuItems = openStyleContextMenuAndGetAllItems(view, prop);
|
||||
let menuitemCopy = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.copy"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.copy"));
|
||||
|
||||
ok(menuitemCopy.visible,
|
||||
"Copy menu item is displayed as expected");
|
||||
|
@ -131,7 +131,7 @@ function* checkCopyEditorValue(view) {
|
|||
|
||||
let allMenuItems = openStyleContextMenuAndGetAllItems(view, editor.input);
|
||||
let menuitemCopy = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.copy"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.copy"));
|
||||
|
||||
ok(menuitemCopy.visible,
|
||||
"Copy menu item is displayed as expected");
|
||||
|
|
|
@ -19,8 +19,8 @@ var {getInplaceEditorForSpan: inplaceEditor} =
|
|||
|
||||
const ROOT_TEST_DIR = getRootDirectory(gTestPath);
|
||||
const FRAME_SCRIPT_URL = ROOT_TEST_DIR + "doc_frame_script.js";
|
||||
|
||||
const STYLE_INSPECTOR_L10N = new LocalizationHelper("chrome://devtools-shared/locale/styleinspector.properties");
|
||||
const _STRINGS = Services.strings.createBundle(
|
||||
"chrome://devtools-shared/locale/styleinspector.properties");
|
||||
|
||||
registerCleanupFunction(() => {
|
||||
Services.prefs.clearUserPref("devtools.defaultColorUnit");
|
||||
|
|
|
@ -35,7 +35,7 @@ function* testCopyToClipboard(inspector, view) {
|
|||
|
||||
let allMenuItems = openStyleContextMenuAndGetAllItems(view, element);
|
||||
let menuitemCopyColor = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.copyColor"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.copyColor"));
|
||||
|
||||
ok(menuitemCopyColor.visible, "Copy color is visible");
|
||||
|
||||
|
|
|
@ -5,13 +5,17 @@
|
|||
|
||||
/* Tests both Copy URL and Copy Data URL context menu items */
|
||||
|
||||
const PROPERTIES_URL = "chrome://devtools-shared/locale/styleinspector.properties";
|
||||
const TEST_DATA_URI = "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=";
|
||||
|
||||
// Invalid URL still needs to be reachable otherwise getImageDataUrl will
|
||||
// timeout. DevTools chrome:// URLs aren't content accessible, so use some
|
||||
// random resource:// URL here.
|
||||
const INVALID_IMAGE_URI = "resource://devtools/client/definitions.js";
|
||||
const ERROR_MESSAGE = STYLE_INSPECTOR_L10N.getStr("styleinspector.copyImageDataUrlError");
|
||||
|
||||
const ERROR_MESSAGE = Services.strings
|
||||
.createBundle(PROPERTIES_URL)
|
||||
.GetStringFromName("styleinspector.copyImageDataUrlError");
|
||||
|
||||
add_task(function* () {
|
||||
const TEST_URI = `<style type="text/css">
|
||||
|
@ -75,9 +79,9 @@ function* testCopyUrlToClipboard({view, inspector}, type, selector, expected) {
|
|||
info("Simulate right click on the background-image URL");
|
||||
let allMenuItems = openStyleContextMenuAndGetAllItems(view, imageLink);
|
||||
let menuitemCopyUrl = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.copyUrl"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.copyUrl"));
|
||||
let menuitemCopyImageDataUrl = allMenuItems.find(item => item.label ===
|
||||
STYLE_INSPECTOR_L10N.getStr("styleinspector.contextmenu.copyImageDataUrl"));
|
||||
_STRINGS.GetStringFromName("styleinspector.contextmenu.copyImageDataUrl"));
|
||||
|
||||
info("Context menu is displayed");
|
||||
ok(menuitemCopyUrl.visible,
|
||||
|
|
|
@ -21,7 +21,8 @@ const TEST_URL_ROOT_SSL =
|
|||
"https://example.com/browser/devtools/client/inspector/shared/test/";
|
||||
const ROOT_TEST_DIR = getRootDirectory(gTestPath);
|
||||
const FRAME_SCRIPT_URL = ROOT_TEST_DIR + "doc_frame_script.js";
|
||||
const STYLE_INSPECTOR_L10N = new LocalizationHelper("chrome://devtools-shared/locale/styleinspector.properties");
|
||||
const _STRINGS = Services.strings.createBundle(
|
||||
"chrome://devtools-shared/locale/styleinspector.properties");
|
||||
|
||||
// Clean-up all prefs that might have been changed during a test run
|
||||
// (safer here because if the test fails, then the pref is never reverted)
|
||||
|
|
|
@ -34,9 +34,6 @@ Services.scriptloader.loadSubScript(
|
|||
"chrome://mochitests/content/browser/devtools/client/inspector/test/shared-head.js",
|
||||
this);
|
||||
|
||||
const {LocalizationHelper} = require("devtools/client/shared/l10n");
|
||||
const INSPECTOR_L10N = new LocalizationHelper("devtools/locale/inspector.properties");
|
||||
|
||||
flags.testing = true;
|
||||
registerCleanupFunction(() => {
|
||||
flags.testing = false;
|
||||
|
@ -231,8 +228,9 @@ var focusSearchBoxUsingShortcut = Task.async(function* (panelWin, callback) {
|
|||
let focused = once(searchBox, "focus");
|
||||
|
||||
panelWin.focus();
|
||||
|
||||
synthesizeKeyShortcut(INSPECTOR_L10N.getStr("inspector.searchHTML.key"));
|
||||
let strings = Services.strings.createBundle(
|
||||
"chrome://devtools/locale/inspector.properties");
|
||||
synthesizeKeyShortcut(strings.GetStringFromName("inspector.searchHTML.key"));
|
||||
|
||||
yield focused;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче