Merge mozilla-central to mozilla-inbound

This commit is contained in:
Carsten "Tomcat" Book 2017-05-10 15:30:44 +02:00
commit 455239782b
380 changed files with 23743 additions and 20154 deletions

View File

@ -331,3 +331,4 @@ toolkit/webapps/**
# Third party
toolkit/modules/third_party/**
third_party/**

View File

@ -2,23 +2,30 @@
module.exports = {
"extends": [
"../.eslintrc.js"
"plugin:mozilla/recommended"
],
"globals": {
"Cc": true,
"Ci": true,
"Components": true,
"console": true,
"Cu": true,
"dump": true,
"Services": true,
"XPCOMUtils": true
},
"rules": {
// Warn about cyclomatic complexity in functions.
"complexity": ["error", 42],
// Maximum depth callbacks can be nested.
"max-nested-callbacks": ["error", 10],
// XXX These are rules that are enabled in the recommended configuration, but
// disabled here due to failures when initially implemented. They should be
// removed (and hence enabled) at some stage.
"brace-style": "off",
"consistent-return": "off",
"func-call-spacing": "off",
"quotes": "off",
"object-shorthand": "off",
"space-before-function-paren": "off",
"space-infix-ops": "off",
"key-spacing": "off",
"keyword-spacing": "off",
"no-else-return": "off",
"no-multi-spaces": "off",
"no-trailing-spaces": "off",
"no-unexpected-multiline": "off",
"no-unsafe-finally": "off",
"no-useless-call": "off",
"spaced-comment": "off",
}
};

View File

@ -396,7 +396,7 @@ void
logging::DocLoad(const char* aMsg, nsIWebProgress* aWebProgress,
nsIRequest* aRequest, uint32_t aStateFlags)
{
MsgBegin(sDocLoadTitle, aMsg);
MsgBegin(sDocLoadTitle, "%s", aMsg);
nsCOMPtr<mozIDOMWindowProxy> DOMWindow;
aWebProgress->GetDOMWindow(getter_AddRefs(DOMWindow));
@ -433,7 +433,7 @@ logging::DocLoad(const char* aMsg, nsIWebProgress* aWebProgress,
void
logging::DocLoad(const char* aMsg, nsIDocument* aDocumentNode)
{
MsgBegin(sDocLoadTitle, aMsg);
MsgBegin(sDocLoadTitle, "%s", aMsg);
DocAccessible* document = GetExistingDocAccessible(aDocumentNode);
LogDocInfo(aDocumentNode, document);
@ -497,7 +497,7 @@ logging::DocCreate(const char* aMsg, nsIDocument* aDocumentNode,
DocAccessible* document = aDocument ?
aDocument : GetExistingDocAccessible(aDocumentNode);
MsgBegin(sDocCreateTitle, aMsg);
MsgBegin(sDocCreateTitle, "%s", aMsg);
LogDocInfo(aDocumentNode, document);
MsgEnd();
}
@ -509,7 +509,7 @@ logging::DocDestroy(const char* aMsg, nsIDocument* aDocumentNode,
DocAccessible* document = aDocument ?
aDocument : GetExistingDocAccessible(aDocumentNode);
MsgBegin(sDocDestroyTitle, aMsg);
MsgBegin(sDocDestroyTitle, "%s", aMsg);
LogDocInfo(aDocumentNode, document);
MsgEnd();
}
@ -526,7 +526,7 @@ void
logging::FocusNotificationTarget(const char* aMsg, const char* aTargetDescr,
Accessible* aTarget)
{
MsgBegin(sFocusTitle, aMsg);
MsgBegin(sFocusTitle, "%s", aMsg);
AccessibleNNode(aTargetDescr, aTarget);
MsgEnd();
}
@ -535,7 +535,7 @@ void
logging::FocusNotificationTarget(const char* aMsg, const char* aTargetDescr,
nsINode* aTargetNode)
{
MsgBegin(sFocusTitle, aMsg);
MsgBegin(sFocusTitle, "%s", aMsg);
Node(aTargetDescr, aTargetNode);
MsgEnd();
}
@ -544,7 +544,7 @@ void
logging::FocusNotificationTarget(const char* aMsg, const char* aTargetDescr,
nsISupports* aTargetThing)
{
MsgBegin(sFocusTitle, aMsg);
MsgBegin(sFocusTitle, "%s", aMsg);
if (aTargetThing) {
nsCOMPtr<nsINode> targetNode(do_QueryInterface(aTargetThing));
@ -628,7 +628,7 @@ logging::TreeInfo(const char* aMsg, uint32_t aExtraFlags, ...)
}
}
else {
MsgBegin("TREE", aMsg);
MsgBegin("TREE", "%s", aMsg);
}
va_end(vl);
MsgEnd();
@ -677,7 +677,7 @@ logging::Tree(const char* aTitle, const char* aMsgText,
Accessible* aRoot, GetTreePrefix aPrefixFunc,
void* aGetTreePrefixData)
{
logging::MsgBegin(aTitle, aMsgText);
logging::MsgBegin(aTitle, "%s", aMsgText);
nsAutoString level;
Accessible* root = aRoot;
@ -717,7 +717,7 @@ void
logging::DOMTree(const char* aTitle, const char* aMsgText,
DocAccessible* aDocument)
{
logging::MsgBegin(aTitle, aMsgText);
logging::MsgBegin(aTitle, "%s", aMsgText);
nsAutoString level;
nsINode* root = aDocument->DocumentNode();
do {

View File

@ -9,6 +9,7 @@
#include "nscore.h"
#include "nsStringFwd.h"
#include "mozilla/Attributes.h"
class nsIDocument;
class nsINode;
@ -152,7 +153,7 @@ void DOMTree(const char* aTitle, const char* aMsgText, DocAccessible* aDoc);
* boundaries of the message body designated by '{' and '}' (2 spaces indent for
* body).
*/
void MsgBegin(const char* aTitle, const char* aMsgText, ...);
void MsgBegin(const char* aTitle, const char* aMsgText, ...) MOZ_FORMAT_PRINTF(2, 3);
void MsgEnd();
/**
@ -165,7 +166,7 @@ void SubMsgEnd();
/**
* Log the entry into message body (4 spaces indent).
*/
void MsgEntry(const char* aEntryText, ...);
void MsgEntry(const char* aEntryText, ...) MOZ_FORMAT_PRINTF(1, 2);
/**
* Log the text, two spaces offset is used.

View File

@ -2,8 +2,6 @@
* 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/. */
/* global AccessFu, Components, Utils, PrefCache, Logger, Services,
PointerAdapter, dump, Presentation, Rect */
/* exported AccessFu */
'use strict';

View File

@ -98,7 +98,6 @@ this.EventManager.prototype = {
switch (aEvent.type) {
case 'wheel':
{
let attempts = 0;
let delta = aEvent.deltaX || aEvent.deltaY;
this.contentControl.autoMove(
null,
@ -271,7 +270,6 @@ this.EventManager.prototype = {
{
// Put vc where the focus is at
let acc = aEvent.accessible;
let doc = aEvent.accessibleDocument;
this._setEditingMode(aEvent);
if ([Roles.CHROME_WINDOW,
Roles.DOCUMENT,
@ -486,7 +484,7 @@ this.EventManager.prototype = {
}
return {};
};
let {live, relevant, busy, atomic, memberOf} = getLiveAttributes(aEvent);
let {live, relevant, /* busy, atomic, memberOf */ } = getLiveAttributes(aEvent);
// If container-live is not present or is set to |off| ignore the event.
if (!live || live === 'off') {
return {};

View File

@ -2,7 +2,6 @@
* 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/. */
/* global Components, GestureSettings, XPCOMUtils, Utils, Promise, Logger */
/* exported GestureSettings, GestureTracker */
/******************************************************************************

View File

@ -2,7 +2,6 @@
* 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/. */
/* global Components, XPCOMUtils, Utils, PrefCache, States, Roles, Logger */
/* exported UtteranceGenerator, BrailleGenerator */
'use strict';

View File

@ -2,8 +2,6 @@
* 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/. */
/* global Components, XPCOMUtils, Utils, Logger, GestureSettings,
GestureTracker */
/* exported PointerRelay, PointerAdapter */
'use strict';

View File

@ -2,8 +2,6 @@
* 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/. */
/* global Components, XPCOMUtils, Utils, Logger, BraillePresenter, Presentation,
UtteranceGenerator, BrailleGenerator, States, Roles, PivotContext */
/* exported Presentation */
'use strict';

View File

@ -2,8 +2,6 @@
* 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/. */
/* global PrefCache, Roles, Prefilters, States, Filters, Utils,
TraversalRules, Components, XPCOMUtils */
/* exported TraversalRules, TraversalHelper */
'use strict';

View File

@ -2,8 +2,6 @@
* 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/. */
/* global Components, XPCOMUtils, Services, PluralForm, Logger, Rect, Utils,
States, Relations, Roles, dump, Events, PivotContext, PrefCache */
/* exported Utils, Logger, PivotContext, PrefCache */
'use strict';

View File

@ -2,6 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
/* eslint-env mozilla/frame-script */
var Ci = Components.interfaces;
var Cu = Components.utils;

View File

@ -1,66 +1,18 @@
"use strict";
module.exports = { // eslint-disable-line no-undef
module.exports = {
"extends": [
"plugin:mozilla/browser-test"
],
// All globals made available in the test environment.
"globals": {
// Content scripts have global 'content' object
"content": true,
"add_task": true,
// Defined in accessible/tests/mochitest/ common.js, name.js, states.js
"prettyName": true,
"statesToString": true,
"eventTypeToString": true,
"testAttrs": true,
"testAbsentAttrs": true,
"testName": true,
"testDescr": true,
"testStates": true,
"testRelation": true,
"testValue": true,
"testAccessibleTree": true,
"isAccessible": true,
"getAccessibleDOMNodeID": true,
// Defined for all top level accessibility browser tests.
"setE10sPrefs": true,
"unsetE10sPrefs": true,
"initPromise": true,
"shutdownPromise": true,
"forceGC": true,
// Defined for all e10s accessibility browser tests.
"addAccessibleTask": true,
"BrowserTestUtils": true,
"ContentTask": true,
"gBrowser": true,
"isDefunct": true,
"loadScripts": true,
"loadFrameScripts": true,
"Logger": true,
"MOCHITESTS_DIR": true,
"waitForEvent": true,
"waitForMultipleEvents": true,
"invokeSetAttribute": true,
"invokeSetStyle": true,
"invokeFocus": true,
"findAccessibleChildByID": true
},
"rules": {
"mozilla/no-aArgs": "warn",
"mozilla/no-cpows-in-tests": "warn",
"mozilla/reject-importGlobalProperties": "warn",
"mozilla/var-only-at-top-level": "warn",
"mozilla/no-aArgs": "error",
"mozilla/no-cpows-in-tests": "error",
"mozilla/reject-importGlobalProperties": "error",
"mozilla/var-only-at-top-level": "error",
"block-scoped-var": "error",
"brace-style": ["error", "1tbs"],
"camelcase": "error",
"comma-dangle": ["error", "never"],
"comma-spacing": "error",
"comma-style": ["error", "last"],
"complexity": ["error", 20],
"consistent-this": "off",
@ -68,18 +20,12 @@ module.exports = { // eslint-disable-line no-undef
"default-case": "off",
"dot-location": ["error", "property"],
"dot-notation": "error",
"eol-last": "error",
"eqeqeq": "off",
"func-call-spacing": "error",
"func-names": "off",
"func-style": "off",
"generator-star": "off",
"global-strict": "off",
"generator-star-spacing": "off",
"handle-callback-err": ["error", "er"],
"indent": ["error", 2, {"SwitchCase": 1}],
"key-spacing": ["error", {"beforeColon": false, "afterColon": true}],
"linebreak-style": "off",
"max-depth": "off",
"max-nested-callbacks": ["error", 4],
"max-params": "off",
"max-statements": "off",
@ -90,73 +36,47 @@ module.exports = { // eslint-disable-line no-undef
"no-caller": "error",
"no-catch-shadow": "error",
"no-comma-dangle": "off",
"no-cond-assign": "error",
"no-console": "off",
"no-constant-condition": "off",
"no-continue": "off",
"no-control-regex": "error",
"no-debugger": "error",
"no-delete-var": "error",
"no-div-regex": "off",
"no-dupe-args": "error",
"no-dupe-keys": "error",
"no-duplicate-case": "error",
"no-else-return": "error",
"no-empty": "error",
"no-empty-character-class": "error",
"no-eval": "error",
"no-ex-assign": "error",
"no-extend-native": "error",
"no-extra-bind": "error",
"no-extra-boolean-cast": "error",
"no-extra-parens": "off",
"no-extra-semi": "error",
"no-extra-strict": "off",
"no-fallthrough": "error",
"no-floating-decimal": "off",
"no-inline-comments": "off",
"no-lonely-if": "error",
"no-mixed-requires": "off",
"no-mixed-spaces-and-tabs": "error",
"no-multi-spaces": "error",
"no-multi-str": "error",
"no-multiple-empty-lines": ["error", {"max": 1}],
"no-native-reassign": "error",
"no-nested-ternary": "error",
"no-new-require": "off",
"no-octal": "error",
"no-param-reassign": "off",
"no-path-concat": "off",
"no-plusplus": "off",
"no-process-env": "off",
"no-process-exit": "off",
"no-proto": "error",
"no-redeclare": "error",
"no-regex-spaces": "error",
"no-reserved-keys": "off",
"no-restricted-modules": "off",
"no-return-assign": "error",
"no-script-url": "off",
"no-self-compare": "error",
"no-sequences": "error",
"no-shadow": "error",
"no-shadow-restricted-names": "error",
"no-space-before-semi": "off",
"no-sparse-arrays": "error",
"no-sync": "off",
"no-ternary": "off",
"no-throw-literal": "error",
"no-trailing-spaces": "error",
"no-undef": "error",
"no-underscore-dangle": "off",
"no-undefined": "off",
"no-unneeded-ternary": "error",
"no-unreachable": "error",
"no-unused-vars": ["error", {"vars": "all", "args": "none"}],
"no-use-before-define": "off",
"no-var": "off",
"no-warning-comments": "off",
"no-with": "error",
"object-shorthand": "off",
"one-var": ["error", "never"],
"padded-blocks": ["error", "never"],
@ -165,21 +85,11 @@ module.exports = { // eslint-disable-line no-undef
"semi": ["error", "always"],
"semi-spacing": ["error", {"before": false, "after": true}],
"sort-vars": "off",
"space-after-function-name": "off",
"keyword-spacing": "error",
"space-before-blocks": "error",
"space-before-function-parentheses": "off",
"space-before-function-paren": ["error", "never"],
"space-in-brackets": "off",
"space-in-parens": ["error", "never"],
"space-infix-ops": ["error", {"int32Hint": true}],
"space-unary-ops": ["error", { "words": true, "nonwords": false }],
"space-unary-word-ops": "off",
"spaced-comment": ["error", "always"],
"strict": ["error", "global"],
"use-isnan": "error",
"valid-jsdoc": "off",
"valid-typeof": "error",
"vars-on-top": "off",
"wrap-iife": "off",
"wrap-regex": "off",

View File

@ -4,8 +4,7 @@
'use strict';
/* global EVENT_FOCUS */
/* import-globals-from ../../mochitest/attributes.js */
loadScripts({ name: 'attributes.js', dir: MOCHITESTS_DIR });
/**

View File

@ -4,8 +4,7 @@
'use strict';
/* global EVENT_DESCRIPTION_CHANGE, EVENT_NAME_CHANGE, EVENT_REORDER */
/* import-globals-from ../../mochitest/name.js */
loadScripts({ name: 'name.js', dir: MOCHITESTS_DIR });
/**

View File

@ -4,8 +4,7 @@
'use strict';
/* global EVENT_REORDER, EVENT_TEXT_INSERTED */
/* import-globals-from ../../mochitest/name.js */
loadScripts({ name: 'name.js', dir: MOCHITESTS_DIR });
/**

View File

@ -4,10 +4,7 @@
'use strict';
/* global RELATION_LABELLED_BY, RELATION_LABEL_FOR, RELATION_DESCRIBED_BY,
RELATION_DESCRIPTION_FOR, RELATION_CONTROLLER_FOR,
RELATION_CONTROLLED_BY, RELATION_FLOWS_TO, RELATION_FLOWS_FROM */
/* import-globals-from ../../mochitest/relations.js */
loadScripts({ name: 'relations.js', dir: MOCHITESTS_DIR });
/**

View File

@ -4,9 +4,8 @@
'use strict';
/* global EVENT_STATE_CHANGE, STATE_CHECKED, STATE_BUSY, STATE_REQUIRED,
STATE_INVALID, EXT_STATE_ENABLED */
/* import-globals-from ../../mochitest/role.js */
/* import-globals-from ../../mochitest/states.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR },
{ name: 'states.js', dir: MOCHITESTS_DIR });

View File

@ -4,8 +4,7 @@
'use strict';
/* global nsIAccessibleValue, EVENT_VALUE_CHANGE, EVENT_TEXT_VALUE_CHANGE */
/* import-globals-from ../../mochitest/value.js */
loadScripts({ name: 'value.js', dir: MOCHITESTS_DIR });
/**

View File

@ -2,8 +2,6 @@
* 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/. */
/* global EVENT_TEXT_CARET_MOVED, nsIAccessibleCaretMoveEvent */
'use strict';
/**

View File

@ -2,8 +2,6 @@
* 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/. */
/* global EVENT_HIDE */
'use strict';
/**

View File

@ -2,8 +2,6 @@
* 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/. */
/* global EVENT_SHOW */
'use strict';
/**

View File

@ -2,11 +2,10 @@
* 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/. */
/* global STATE_CHECKED, EXT_STATE_EDITABLE, nsIAccessibleStateChangeEvent,
EVENT_STATE_CHANGE */
'use strict';
/* import-globals-from ../../mochitest/role.js */
/* import-globals-from ../../mochitest/states.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR },
{ name: 'states.js', dir: MOCHITESTS_DIR });

View File

@ -2,9 +2,6 @@
* 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/. */
/* global EVENT_TEXT_INSERTED, EVENT_TEXT_REMOVED,
nsIAccessibleTextChangeEvent */
'use strict';
function checkTextChangeEvent(event, id, text, start, end, isInserted, isFromUserInput) {

View File

@ -4,9 +4,7 @@
'use strict';
/* global EVENT_SHOW, ROLE_DIALOG, ROLE_PUSHBUTTON, ROLE_TEXT_LEAF, ROLE_ENTRY,
ROLE_DOCUMENT */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
// Test ARIA Dialog

View File

@ -4,8 +4,7 @@
'use strict';
/* global EVENT_REORDER */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
function* testContainer1(browser, accDoc) {

View File

@ -4,8 +4,7 @@
'use strict';
/* global EVENT_SHOW */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
addAccessibleTask(`

View File

@ -4,8 +4,7 @@
'use strict';
/* global EVENT_REORDER */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
addAccessibleTask(`

View File

@ -4,9 +4,7 @@
'use strict';
/* global ROLE_PUSHBUTTON, ROLE_TEXT_LEAF, EVENT_REORDER, ROLE_DOCUMENT,
nsIAccessibleDocument */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
const iframeSrc = `data:text/html,

View File

@ -4,8 +4,7 @@
'use strict';
/* global EVENT_REORDER */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
addAccessibleTask(`

View File

@ -4,8 +4,7 @@
'use strict';
/* global EVENT_REORDER */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
function* setHidden(browser, value) {

View File

@ -4,8 +4,7 @@
'use strict';
/* global EVENT_REORDER, ROLE_LINK */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
function* testImageMap(browser, accDoc) {

View File

@ -4,8 +4,7 @@
'use strict';
/* global ROLE_TEXT_LEAF, EVENT_REORDER, ROLE_STATICTEXT, ROLE_LISTITEM */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
function* setDisplayAndWaitForReorder(browser, value) {

View File

@ -4,9 +4,7 @@
'use strict';
/* global ROLE_TEXT_LEAF, EVENT_REORDER, ROLE_LISTITEM, ROLE_LIST,
ROLE_STATICTEXT */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
addAccessibleTask('<ol id="list"></ol>', function*(browser, accDoc) {

View File

@ -4,8 +4,7 @@
'use strict';
/* global EVENT_REORDER */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
addAccessibleTask('<span id="parent"><span id="child"></span></span>',

View File

@ -4,8 +4,7 @@
'use strict';
/* global EVENT_REORDER */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
addAccessibleTask('<select id="select"></select>', function*(browser, accDoc) {

View File

@ -4,8 +4,7 @@
'use strict';
/* global EVENT_REORDER */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
addAccessibleTask('doc_treeupdate_removal.xhtml', function*(browser, accDoc) {

View File

@ -4,8 +4,7 @@
'use strict';
/* global EVENT_REORDER */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
addAccessibleTask(`

View File

@ -4,8 +4,7 @@
'use strict';
/* global EVENT_REORDER, ROLE_TEXT_CONTAINER ROLE_PARAGRAPH, ROLE_TEXT_LEAF */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
function* removeTextData(browser, accessible, id, role) {

View File

@ -4,8 +4,7 @@
'use strict';
/* global EVENT_REORDER */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
function* testTreeOnHide(browser, accDoc, containerID, id, before, after) {

View File

@ -4,8 +4,7 @@
'use strict';
/* global EVENT_REORDER */
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
addAccessibleTask('doc_treeupdate_whitespace.html', function*(browser, accDoc) {

View File

@ -4,8 +4,9 @@
'use strict';
/* global nsIAccessibleEvent, nsIAccessibleDocument,
nsIAccessibleStateChangeEvent, nsIAccessibleTextChangeEvent */
// This is loaded by head.js, so has the same globals, hence we import the
// globals from there.
/* import-globals-from head.js */
/* exported EVENT_REORDER, EVENT_SHOW, EVENT_TEXT_INSERTED, EVENT_TEXT_REMOVED,
EVENT_DOCUMENT_LOAD_COMPLETE, EVENT_HIDE, EVENT_TEXT_CARET_MOVED,

View File

@ -4,11 +4,10 @@
'use strict';
/* global EVENT_DOCUMENT_LOAD_COMPLETE, CURRENT_CONTENT_DIR, loadFrameScripts */
/* exported addAccessibleTask */
/* exported addAccessibleTask, findAccessibleChildByID, isDefunct */
// Load the shared-head file first.
/* import-globals-from ../shared-head.js */
Services.scriptloader.loadSubScript(
'chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js',
this);
@ -79,6 +78,48 @@ function addAccessibleTask(doc, task) {
});
}
/**
* Check if an accessible object has a defunct test.
* @param {nsIAccessible} accessible object to test defunct state for
* @return {Boolean} flag indicating defunct state
*/
function isDefunct(accessible) {
let defunct = false;
try {
let extState = {};
accessible.getState({}, extState);
defunct = extState.value & Ci.nsIAccessibleStates.EXT_STATE_DEFUNCT;
} catch (x) {
defunct = true;
} finally {
if (defunct) {
Logger.log(`Defunct accessible: ${prettyName(accessible)}`);
}
}
return defunct;
}
/**
* Traverses the accessible tree starting from a given accessible as a root and
* looks for an accessible that matches based on its DOMNode id.
* @param {nsIAccessible} accessible root accessible
* @param {String} id id to look up accessible for
* @return {nsIAccessible?} found accessible if any
*/
function findAccessibleChildByID(accessible, id) {
if (getAccessibleDOMNodeID(accessible) === id) {
return accessible;
}
for (let i = 0; i < accessible.children.length; ++i) {
let found = findAccessibleChildByID(accessible.getChildAt(i), id);
if (found) {
return found;
}
}
}
// Loading and common.js from accessible/tests/mochitest/ for all tests, as
// well as events.js.
/* import-globals-from ../../mochitest/common.js */
/* import-globals-from events.js */
loadScripts({ name: 'common.js', dir: MOCHITESTS_DIR }, 'e10s/events.js');

View File

@ -33,6 +33,7 @@ function unsetE10sPrefs() {
}
// Load the shared-head file first.
/* import-globals-from shared-head.js */
Services.scriptloader.loadSubScript(
'chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js',
this);

View File

@ -4,8 +4,8 @@
'use strict';
/* exported Logger, MOCHITESTS_DIR, isDefunct, invokeSetAttribute, invokeFocus,
invokeSetStyle, findAccessibleChildByID, getAccessibleDOMNodeID,
/* exported Logger, MOCHITESTS_DIR, invokeSetAttribute, invokeFocus,
invokeSetStyle, getAccessibleDOMNodeID,
CURRENT_CONTENT_DIR, loadScripts, loadFrameScripts, Cc, Cu */
const { interfaces: Ci, utils: Cu, classes: Cc } = Components;
@ -77,27 +77,6 @@ let Logger = {
}
};
/**
* Check if an accessible object has a defunct test.
* @param {nsIAccessible} accessible object to test defunct state for
* @return {Boolean} flag indicating defunct state
*/
function isDefunct(accessible) {
let defunct = false;
try {
let extState = {};
accessible.getState({}, extState);
defunct = extState.value & Ci.nsIAccessibleStates.EXT_STATE_DEFUNCT;
} catch (x) {
defunct = true;
} finally {
if (defunct) {
Logger.log(`Defunct accessible: ${prettyName(accessible)}`);
}
}
return defunct;
}
/**
* Asynchronously set or remove content element's attribute (in content process
* if e10s is enabled).
@ -171,25 +150,6 @@ function invokeFocus(browser, id) {
});
}
/**
* Traverses the accessible tree starting from a given accessible as a root and
* looks for an accessible that matches based on its DOMNode id.
* @param {nsIAccessible} accessible root accessible
* @param {String} id id to look up accessible for
* @return {nsIAccessible?} found accessible if any
*/
function findAccessibleChildByID(accessible, id) {
if (getAccessibleDOMNodeID(accessible) === id) {
return accessible;
}
for (let i = 0; i < accessible.children.length; ++i) {
let found = findAccessibleChildByID(accessible.getChildAt(i), id);
if (found) {
return found;
}
}
}
/**
* Load a list of scripts into the test
* @param {Array} scripts a list of scripts to load

View File

@ -0,0 +1,7 @@
"use strict";
module.exports = {
"extends": [
"plugin:mozilla/mochitest-test"
],
};

View File

@ -20,13 +20,13 @@
<script>
function dumpAccessibleNode(aNode, level) {
var msg = "";
try {
msg += "name=\"" + aNode.name + "\" ";
} catch (e) {
msg += " noName ";
}
dump(msg + '\n');
}
@ -35,7 +35,7 @@ function dumpAccessibleTree(aNode, level) {
level = level || 0;
dumpAccessibleNode(aNode, level);
try {
try {
var child = aNode.firstChild;
while (child) {
dumpAccessibleTree(child, level + 1);
@ -46,14 +46,14 @@ function dumpAccessibleTree(aNode, level) {
}
}
function A(o) {
function A(o) {
var acc = SpecialPowers.Cc['@mozilla.org/accessibilityService;1']
.getService(SpecialPowers.Ci.nsIAccessibilityService);
return acc.getAccessibleFor(o);
}
function beginAccessible() {
dumpAccessibleTree(A(document),0);
dumpAccessibleTree(A(document), 0);
}
setTimeout(beginAccessible, 100);
@ -62,9 +62,9 @@ setTimeout(doe, 200);
function doe() {
document.getElementById('mw_a').appendChild(document.getElementById('mw_b'));
document.getElementById('mw_c').appendChild(document.getElementById('mw_d'));
document.getElementById('mw_e').appendChild(document.getElementById('mw_f'));
document.getElementById('mw_g').appendChild(document.getElementById('mw_b'));
document.getElementById('mw_e').appendChild(document.getElementById('mw_f'));
document.getElementById('mw_g').appendChild(document.getElementById('mw_b'));
}
</script>
</body>
</html>
</html>

View File

@ -0,0 +1,24 @@
"use strict";
module.exports = {
"extends": [
"plugin:mozilla/mochitest-test"
],
"rules": {
"mozilla/no-cpows-in-tests": "error",
"mozilla/reject-importGlobalProperties": "error",
// XXX These are rules that are enabled in the recommended configuration, but
// disabled here due to failures when initially implemented. They should be
// removed (and hence enabled) at some stage.
"comma-spacing": "off",
"no-cond-assign": "off",
"no-lonely-if": "off",
"no-nested-ternary": "off",
"no-new-object": "off",
"no-redeclare": "off",
"no-shadow": "off",
"no-undef": "off",
"space-unary-ops": "off",
}
};

View File

@ -41,7 +41,7 @@ const XUL_EVENTS = CLICK_EVENTS | COMMAND_EVENT;
*
* // [optional] an array of invoker's checker objects (see eventQueue
* // constructor events.js)
* get eventSeq() {}
* get eventSeq() {}
* };
*
*
@ -134,7 +134,7 @@ function actionInvoker(aAccOrElmOrId, aActionIndex, aActionName, aEventSeq)
try {
acc.doAction(aActionIndex);
}
catch (e){
catch (e) {
ok(false, "doAction(" + aActionIndex + ") failed with: " + e.name);
return INVOKER_ACTION_FAILED;
}

View File

@ -64,7 +64,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=483573
var audioElm = getAccessible("audio");
var playBtn = audioElm.firstChild;
var scrubber = playBtn.nextSibling.nextSibling.nextSibling;
// var scrubber = playBtn.nextSibling.nextSibling.nextSibling;
var muteBtn = audioElm.lastChild.previousSibling;
var actions = [

View File

@ -133,7 +133,7 @@ function editableTextTest(aID)
}
this.generateTest(aID, null, [aStartPos, aEndPos, getTextFromClipboard],
copyNPasteInvoke, getValueChecker(aID, aResStr), testID);
copyNPasteTextInvoke, getValueChecker(aID, aResStr), testID);
}
/**
@ -222,7 +222,6 @@ function editableTextTest(aID)
function getValue(aID)
{
var value = "";
var elm = getNode(aID);
if (elm instanceof Components.interfaces.nsIDOMNSEditableElement)
return elm.value;
@ -258,21 +257,6 @@ function editableTextTest(aID)
return checker;
}
function getValueNClipboardChecker(aID, aValue, aText)
{
var valueChecker = getValueChecker(aID, aValue);
var clipboardChecker = getClipboardChecker(aID, aText);
var checker = {
check: function()
{
valueChecker.check();
clipboardChecker.check();
}
};
return checker;
}
/**
* Process next scheduled test.
*/
@ -350,4 +334,3 @@ function editableTextTest(aID)
this.mEventQueue = new eventQueue();
this.mEventQueueReady = false;
}

View File

@ -29,7 +29,7 @@
context.addHitRegion({control: element});
var input = getAccessible("showA");
var [cnvX, cnvY, cnvWidth, cnvHeight] = getBoundsForDOMElm(canv);
var [cnvX, cnvY, /*cnvWidth*/, /*cnvHeight*/] = getBoundsForDOMElm(canv);
var [accX, accY, accWidth, accHeight] = getBounds(input);
var [x, y, w, h] = CSSToDevicePixels(window, kX, kY, kWidth, kHeight);

View File

@ -505,7 +505,7 @@ function eventQueue(aEventType)
// (i.e. event types are matched, targets differs).
if (!checker.unexpected && checker.unique &&
eventQueue.compareEventTypes(checker, aEvent)) {
var isExppected = false;
var isExpected = false;
for (var jdx = 0; jdx < eventSeq.length; jdx++) {
isExpected = eventQueue.compareEvents(eventSeq[jdx], aEvent);
if (isExpected)
@ -969,7 +969,7 @@ eventQueue.logEvent = function eventQueue_logEvent(aOrigEvent, aMatchedChecker,
var currType = eventQueue.getEventTypeAsString(aMatchedChecker);
var currTargetDescr = eventQueue.getEventTargetDescr(aMatchedChecker);
var consoleMsg = "*****\nScenario " + aScenarioIdx +
var consoleMsg = "*****\nScenario " + aScenarioIdx +
", event " + aEventIdx + " matched: " + currType + "\n" + infoMsg + "\n*****";
gLogger.logToConsole(consoleMsg);
@ -1315,8 +1315,8 @@ function synthFocus(aNodeOrID, aCheckerOrEventSeq)
this.DOMNode.focus();
}
this.getID = function synthFocus_getID()
{
this.getID = function synthFocus_getID()
{
return prettyName(aNodeOrID) + " focus";
}
}
@ -1336,8 +1336,8 @@ function synthFocusOnFrame(aNodeOrID, aCheckerOrEventSeq)
this.DOMNode.body.focus();
}
this.getID = function synthFocus_getID()
{
this.getID = function synthFocus_getID()
{
return prettyName(aNodeOrID) + " frame document focus";
}
}
@ -1991,7 +1991,7 @@ function selChangeSeq(aUnselectedID, aSelectedID)
}
// Return two possible scenarios: depending on widget type when selection is
// moved the the order of items that get selected and unselected may vary.
// moved the the order of items that get selected and unselected may vary.
return [
[
new stateChangeChecker(STATE_SELECTED, false, false, aUnselectedID),
@ -2151,7 +2151,7 @@ function removeA11yEventListener(aEventType, aEventHandler)
return false;
listenersArray.splice(index, 1);
if (!listenersArray.length) {
gA11yEventListeners[aEventType] = null;
delete gA11yEventListeners[aEventType];
@ -2270,21 +2270,19 @@ var gLogger =
function sequenceItem(aProcessor, aEventType, aTarget, aItemID)
{
// private
this.startProcess = function sequenceItem_startProcess()
{
this.queue.invoke();
}
var item = this;
this.queue = new eventQueue();
this.queue.onFinish = function()
{
aProcessor.onProcessed();
return DO_NOT_FINISH_TEST;
}
var invoker = {
invoke: function invoker_invoke() {
return aProcessor.process();
@ -2295,7 +2293,7 @@ function sequenceItem(aProcessor, aEventType, aTarget, aItemID)
},
eventSeq: [ new invokerChecker(aEventType, aTarget) ]
};
this.queue.push(invoker);
}

View File

@ -31,9 +31,6 @@
this.invoke = function removeTextFromInput_invoke()
{
const nsIDOMNSEditableElement =
Components.interfaces.nsIDOMNSEditableElement;
this.DOMNode.focus();
this.DOMNode.setSelectionRange(aStart, aEnd);
@ -60,9 +57,6 @@
this.invoke = function removeTextFromContentEditable_invoke()
{
const nsIDOMNSEditableElement =
Components.interfaces.nsIDOMNSEditableElement;
this.DOMNode.focus();
this.textNode = getNode(aID).firstChild;
var selection = window.getSelection();

View File

@ -185,9 +185,6 @@
this.invoke = function removeTextFromInput_invoke()
{
const nsIDOMNSEditableElement =
Components.interfaces.nsIDOMNSEditableElement;
this.DOMNode.focus();
this.DOMNode.setSelectionRange(aStart, aEnd);

View File

@ -26,7 +26,6 @@ function grid(aTableIdentifier)
this.getCellAtIndex = function getCellAtIndex(aIndex)
{
var rowCount = this.getRowCount();
var colsCount = this.getColsCount();
var rowIdx = Math.floor(aIndex / colsCount);
@ -133,7 +132,7 @@ function grid(aTableIdentifier)
{
if (aEvent.target.localName != "td")
return;
var curCell = this.getCurrentCell();
var cell = aEvent.target;

View File

@ -51,7 +51,7 @@
var hitcanvas = getAccessible("hitcanvas");
var hitcheck = getAccessible("hitcheck");
var [hitX, hitY, hitWidth, hitHeight] = getBounds(hitcanvas);
var [hitX, hitY, /*hitWidth, hitHeight */] = getBounds(hitcanvas);
var [deltaX, deltaY] = CSSToDevicePixels(window, offsetX, offsetY);
var docAcc = getAccessible(document);

View File

@ -48,9 +48,8 @@ if (!MAC) {
// Not specific case, point is inside of btn accessible.
var btn = getAccessible("btn");
var btnText = btn.firstChild;
testChildAtPoint(btn, 1, 1, btn, btn);
// Not specific case, point is outside of btn accessible.
testChildAtPoint(btn, -1, 1, null, null);

View File

@ -72,7 +72,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=418368
[nsIAccessibleHyperLink]);
testThis("NormalHyperlink", normalHyperlinkAcc, ROLE_LINK, 1,
"Mozilla Foundation", true, 17, 18);
is(normalHyperlinkAcc.getURI(0).spec, "http://www.mozilla.org/",
is(normalHyperlinkAcc.getURI(0).spec, "http://www.mozilla.org/",
"URI wrong for normalHyperlinkElement!");
testStates(normalHyperlinkAcc, STATE_LINKED, 0);
@ -133,7 +133,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=418368
[nsIAccessibleHyperLink]);
testThis("LinkWithSpan", hyperlinkWithSpanAcc, ROLE_LINK, 1,
"Heise Online", true, 119, 120);
is(hyperlinkWithSpanAcc.getURI(0).spec, "http://www.heise.de/",
is(hyperlinkWithSpanAcc.getURI(0).spec, "http://www.heise.de/",
"URI wrong for hyperlinkElementWithSpan!");
testStates(hyperlinkWithSpanAcc, STATE_LINKED, 0);
testAction("LinkWithSpan", hyperlinkWithSpanAcc, "jump");
@ -168,7 +168,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=418368
//////////////////////////////////////////////////////////////////////////
// Maps to group links (bug 431615).
var linksMapAcc = getAccessible("linksmap");
// var linksMapAcc = getAccessible("linksmap");
//////////////////////////////////////////////////////////////////////////
// Link with title attribute, no name from the subtree (bug 438325).
@ -260,13 +260,13 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=418368
>This should never be of state_linked</a
><br>Link with registered 'click' event: <a id="linkWithClick" onclick="var clicked = true;"
>This should have state_linked</a
><br>Link with title attribute (no name from subtree): <a
><br>Link with title attribute (no name from subtree): <a
id="linkWithTitleNoNameFromSubtree" href="http://www.heise.de/"
title="Link with title"><img src=""/></a
><br>Link with title attribute (name from subtree): <a
><br>Link with title attribute (name from subtree): <a
id="linkWithTitleNameFromSubtree" href="http://www.heise.de/"
title="Link with title">the name from subtree</a
><br>Link with title attribute (name from nested image): <a
><br>Link with title attribute (name from nested image): <a
id="linkWithTitleNameFromImg" href="http://www.heise.de/"
title="Link with title"><img src="" alt="The title for link"/></a
><br><br>Map that is used to group links (www.w3.org/TR/WCAG10-HTML-TECHS/#group-bypass), also see the bug 431615:<br

View File

@ -1,7 +1,5 @@
'use strict';
/* global getMainChromeWindow, AccessFuTest, GestureSettings, GestureTracker,
SimpleTest, getBoundsForDOMElm, Point, Utils */
/* exported loadJSON, eventMap */
var Ci = Components.interfaces;

View File

@ -300,7 +300,6 @@
}
},
action: function action() {
var region = document.getElementById("to_replace_region");
var child = document.getElementById("to_replace");
child.setAttribute("role", "main");
}

View File

@ -139,8 +139,6 @@ function testNamesForMarkupRules(aMarkupElm, aContainer)
if (gDumpToConsole)
dump("\nProcessing markup rules '" + testID + "'\n");
var serializer = new XMLSerializer();
var expr = "//html/body/div[@id='test']/" + aMarkupElm.getAttribute("ref");
var elm = evaluateXPath(document, expr, htmlDocResolver)[0];

View File

@ -115,7 +115,6 @@ function testAbsentRelation(aIdentifier, aRelType, aUnrelatedIdentifiers)
var relation = getRelationByType(aIdentifier, aRelType);
var relDescr = getRelationErrorMsg(aIdentifier, aRelType);
var relDescrStart = getRelationErrorMsg(aIdentifier, aRelType, true);
if (!aUnrelatedIdentifiers) {
ok(false, "No identifiers given for unrelated accessibles.");

View File

@ -22,7 +22,7 @@
{
// scrollToPoint relative screen
var anchor = getAccessible("bottom1");
var [x, y] = getPos(anchor);
var [x, /*y*/] = getPos(anchor);
var [docX, docY] = getPos(document);
anchor.scrollToPoint(COORDTYPE_SCREEN_RELATIVE, docX, docY);
@ -30,7 +30,7 @@
// scrollToPoint relative window
anchor = getAccessible("bottom2");
var [x, y] = getPos(anchor);
var [x, /*y*/] = getPos(anchor);
var wnd = getRootAccessible().DOMDocument.defaultView;
var [screenX, screenY] = CSSToDevicePixels(wnd, wnd.screenX, wnd.screenY);
var scrollToX = docX - screenX, scrollToY = docY - screenY;
@ -40,7 +40,7 @@
// scrollToPoint relative parent
anchor = getAccessible("bottom3");
var [x, y] = getPos(anchor);
var [x, /*y*/] = getPos(anchor);
var [parentX, parentY] = getPos(anchor.parent);
var scrollToX = parentX - docX, scrollToY = parentY - docY;

View File

@ -27,7 +27,7 @@
var paragraph = getAccessible(paragraphNode, [nsIAccessibleText]);
var offset = 64; // beginning of 4th stanza
var [x, y] = getPos(paragraph);
var [x, /*y*/] = getPos(paragraph);
var [docX, docY] = getPos(tabDocument);
paragraph.scrollSubstringToPoint(offset, offset,
@ -39,7 +39,7 @@
paragraphNode = tabDocument.getElementById("paragraph2");
paragraph = getAccessible(paragraphNode, [nsIAccessibleText]);
offset = 52; // // beginning of 4th stanza
var [x, y] = getPos(paragraph);
var [x, /*y*/] = getPos(paragraph);
paragraph.scrollSubstringToPoint(offset, offset,
COORDTYPE_SCREEN_RELATIVE, docX, docY);
testTextPos(paragraph, offset, [x, docY], COORDTYPE_SCREEN_RELATIVE);

View File

@ -52,7 +52,7 @@ function testIsItemSelected(aSelectAcc, aTraversedAcc, aIndexObj, aSelectedChild
var childCount = aTraversedAcc.childCount;
for (var idx = 0; idx < childCount; idx++) {
var child = aTraversedAcc.getChildAt(idx);
var [state, extraState] = getStates(child);
var [state, /*extraState*/] = getStates(child);
if (state & STATE_SELECTABLE) {
var isSelected = false;
var len = aSelectedChildren.length;

View File

@ -204,7 +204,7 @@ function testStatesInSubtree(aAccOrElmOrID, aState, aExtraState, aAbsentState)
function testIsDefunct(aAccessible, aTestName)
{
var id = prettyName(aAccessible) + (aTestName ? " [" + aTestName + "]" : "");
var [state, extraState] = getStates(aAccessible);
var [/*state*/, extraState] = getStates(aAccessible);
isState(extraState & EXT_STATE_DEFUNCT, EXT_STATE_DEFUNCT, true,
"no defuct state for " + id + "!");
}

View File

@ -34,7 +34,7 @@
if (!acc)
return;
var [state, extraState] = getStates(aAccOrElmOrID);
var [state, /*extraState*/] = getStates(aAccOrElmOrID);
if (state & STATE_UNAVAILABLE) {
var role = getRole(acc);
if (role != ROLE_GROUPING) {

View File

@ -16,7 +16,7 @@ const kRowHeaderCell = 2; // Indicates the cell is row header cell
const kColHeaderCell = 4; // Indicated the cell is column header cell
const kOrigin = kDataCell | kRowHeaderCell | kColHeaderCell;
const kRowSpanned = 8; // Indicates the cell is not origin and row spanned
const kRowSpanned = 8; // Indicates the cell is not origin and row spanned
const kColSpanned = 16; // Indicates the cell is not origin and column spanned
const kSpanned = kRowSpanned | kColSpanned;
@ -417,7 +417,6 @@ function testTableSelection(aIdentifier, aCellsArray, aMsg)
var selRows = new Array();
// isRowSelected test
var selrowCount = 0;
for (var rowIdx = 0; rowIdx < rowCount; rowIdx++) {
var isRowSelected = true;
for (var colIdx = 0; colIdx < colsCount; colIdx++) {
@ -539,7 +538,6 @@ function testUnselectTableColumn(aIdentifier, aColIdx, aCellsArray)
var rowCount = aCellsArray.length;
for (var rowIdx = 0; rowIdx < rowCount; rowIdx++) {
var cellState = aCellsArray[rowIdx][aColIdx];
// Unselect origin cell.
var [origRowIdx, origColIdx] =
getOrigRowAndColumn(aCellsArray, rowIdx, aColIdx);

View File

@ -50,9 +50,13 @@ function doTest()
is(accTable.selectedRowCount, 1, "no cells selected");
var columnDescription = accTable.getColumnDescription(1);
var rowDescription = accTable.getRowDescription(1);
// These shouldn't throw.
try {
accTable.getColumnDescription(1);
accTable.getRowDescription(1);
} catch (ex) {
ok(false, "getColumnDescription/getRowDescription shouldn't throw.");
}
SimpleTest.finish();
}
SimpleTest.waitForExplicitFinish();

View File

@ -40,9 +40,9 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=441519
// see bug 440770, no actions wanted on outer doc
is(outerDocAcc.actionCount, 0,
"Wrong number of actions for internal frame!");
var actionTempStr; // not really used, just needs to receive a value
try {
actionTempStr = outerDocAcc.getActionName(0);
outerDocAcc.getActionName(0);
do_throw("No exception thrown for actionName!");
} catch(e) {
ok(e.result, ns_error_invalid_arg,

View File

@ -261,8 +261,8 @@ function testWordCount(aElement, aCount, aToDoFlag)
var offset = 0;
var wordCount = 0;
while (true) {
var text = acc.getTextAtOffset(offset, BOUNDARY_WORD_START,
startOffsetObj, endOffsetObj);
acc.getTextAtOffset(offset, BOUNDARY_WORD_START,
startOffsetObj, endOffsetObj);
if (offset >= length)
break;

View File

@ -42,7 +42,7 @@
for (var idx = 0; idx < globalIds.length; idx++) {
ok(isAccessible(globalIds[idx]),
"Must be accessible becuase of " + "aria-" + globalIds[idx] +
"Must be accessible becuase of aria-" + globalIds[idx] +
" presence");
}

View File

@ -587,15 +587,16 @@
];
this.invoke = () => {
getNode('t9_container').src =
`data:text/html,
<html><body></body>
<script>
let el = document.createElement('div');
el.id = 'container';
el.innerHTML = "<input id='input'>";
document.documentElement.appendChild(el);
</` + `script></html>`;
// The \ before the final /script avoids the script from being terminated
// by the html parser.
getNode('t9_container').src = `data:text/html,
<html><body></body>
<script>
let el = document.createElement('div');
el.id = 'container';
el.innerHTML = "<input id='input'>";
document.documentElement.appendChild(el);
<\/script></html>`;
}
this.finalCheck = () => {

View File

@ -68,7 +68,7 @@
0, this.li, this.liNode, this.bullet
);
}
};
}
function showProcessor()
{
@ -84,7 +84,7 @@
testLiAccessibleTree();
gSequence.processNext();
}
};
}
function textReplaceProcessor()
{
@ -106,7 +106,7 @@
testAccessibleTree(this.liNode, tree);
SimpleTest.finish();
}
};
}
////////////////////////////////////////////////////////////////////////////
// Test

View File

@ -65,7 +65,7 @@
{
return "add li";
}
};
}
////////////////////////////////////////////////////////////////////////////
// Test

View File

@ -36,7 +36,6 @@
is(acc.value, aValue, "Wrong value for " + aID + "!");
}
var rootDir = getRootDirectory(window.location.href);
var href = getRootDirectory(window.location.href) + "foo";
// roles that can't live as HTMLLinkAccessibles

View File

@ -259,9 +259,6 @@ const WorkerSandbox = Class({
table: genPropDesc('table'),
clear: genPropDesc('clear'),
dirxml: genPropDesc('dirxml'),
markTimeline: genPropDesc('markTimeline'),
timeline: genPropDesc('timeline'),
timelineEnd: genPropDesc('timelineEnd'),
timeStamp: genPropDesc('timeStamp'),
};

View File

@ -238,7 +238,7 @@ pref("browser.shell.skipDefaultBrowserCheckOnFirstRun", false);
#else
pref("browser.shell.skipDefaultBrowserCheckOnFirstRun", true);
#endif
pref("browser.shell.skipDefaultBrowserCheck", true);
pref("browser.shell.didSkipDefaultBrowserCheckOnFirstRun", false);
pref("browser.shell.defaultBrowserCheckCount", 0);
pref("browser.defaultbrowser.notificationbar", false);

View File

@ -1,4 +1,4 @@
<?xml version="1.0"?> <!-- -*- Mode: HTML -*- -->
<?xml version="1.0"?> <!-- -*- Mode: HTML -*- -->
# 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
@ -104,7 +104,7 @@
<label>&update.unsupported.start;</label><label id="unsupportedLink" class="text-link">&update.unsupported.linkText;</label><label>&update.unsupported.end;</label>
</hbox>
<hbox id="restarting" align="center">
<label>&update.restarting;</label>
<image class="update-throbber"/><label>&update.restarting;</label>
</hbox>
</deck>
#endif
@ -144,7 +144,7 @@
<description id="trademark">&trademarkInfo.part1;</description>
</vbox>
</vbox>
<keyset>
<key keycode="VK_ESCAPE" oncommand="window.close();"/>
</keyset>

View File

@ -575,7 +575,6 @@
<!-- PAGE CONTAINER (for styling purposes only) -->
<div id="errorPageContainer" class="container">
<!-- Error Title -->
<div class="title">
<h1 class="title-text"/>
@ -605,6 +604,15 @@
<p><a href="https://support.mozilla.org/kb/what-does-your-connection-is-not-secure-mean" id="learnMoreLink" target="new">&errorReporting.learnMore;</a></p>
</div>
<!-- UI for option to report certificate errors to Mozilla. Removed on
init for other error types .-->
<div id="certificateErrorReporting">
<p class="toggle-container-with-text">
<input type="checkbox" id="automaticallyReportInFuture" role="checkbox" />
<label for="automaticallyReportInFuture" id="automaticallyReportInFuture">&errorReporting.automatic2;</label>
</p>
</div>
<div id="prefChangeContainer" class="button-container">
<p>&prefReset.longDesc;</p>
<button id="prefResetButton" class="primary" autocomplete="off">&prefReset.label;</button>
@ -613,7 +621,6 @@
<div id="certErrorAndCaptivePortalButtonContainer" class="button-container">
<button id="returnButton" class="primary" autocomplete="off">&returnToPreviousPage.label;</button>
<button id="openPortalLoginPageButton" class="primary" autocomplete="off">&openPortalLoginPage.label2;</button>
<div class="button-spacer"></div>
<button id="advancedButton" autocomplete="off">&advanced.label;</button>
</div>
</div>
@ -622,28 +629,20 @@
<button id="errorTryAgain" class="primary" autocomplete="off" onclick="retryThis(this);">&retry.label;</button>
</div>
<!-- UI for option to report certificate errors to Mozilla. Removed on
init for other error types .-->
<div id="certificateErrorReporting">
<p class="toggle-container-with-text">
<input type="checkbox" id="automaticallyReportInFuture" role="checkbox" />
<label for="automaticallyReportInFuture" id="automaticallyReportInFuture">&errorReporting.automatic2;</label>
</p>
</div>
<div id="advancedPanelContainer">
<div id="badCertAdvancedPanel" class="advanced-panel">
<p id="badCertTechnicalInfo"/>
<button id="exceptionDialogButton">&securityOverride.exceptionButtonLabel;</button>
<div class="exceptionDialogButtonContainer">
<button id="exceptionDialogButton">&securityOverride.exceptionButtonLabel;</button>
</div>
</div>
<div id="certificateErrorDebugInformation">
<button id="copyToClipboard">&certerror.copyToClipboard.label;</button>
<div id="certificateErrorText"/>
<button id="copyToClipboard">&certerror.copyToClipboard.label;</button>
</div>
</div>
</div>
<div id="certificateErrorDebugInformation">
<button id="copyToClipboard">&certerror.copyToClipboard.label;</button>
<div id="certificateErrorText"/>
<button id="copyToClipboard">&certerror.copyToClipboard.label;</button>
</div>
<!--

View File

@ -364,22 +364,22 @@ body[narrow] #restorePreviousSession::before {
display: block;
position: relative; /* pin wordmark to edge of document, not of viewport */
-moz-box-ordinal-group: 0;
opacity: .5;
opacity: .2;
transition: opacity 150ms;
}
#aboutMozilla:hover {
opacity: 1;
opacity: .6;
}
#aboutMozilla::before {
content: url("chrome://browser/content/abouthome/mozilla.png");
content: url("chrome://browser/content/abouthome/mozilla.svg");
display: block;
position: absolute;
top: 12px;
right: 12px;
width: 69px;
height: 19px;
width: 70px;
height: 20px;
}
/* [HiDPI]
@ -452,9 +452,5 @@ body[narrow] #restorePreviousSession::before {
transform: scale(-0.5, 0.5) translateX(24px);
transform-origin: top center;
}
#aboutMozilla::before {
content: url("chrome://browser/content/abouthome/mozilla@2x.png");
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 134 38">
<path d="M54.2,21.8c0,3.2-1.6,5.2-4.1,5.2s-3.9-2.2-3.9-5.1,1.5-4.9,3.9-4.9S54.2,18.4,54.2,21.8Zm61.1,3.5a1.7,1.7,0,0,0,2,1.9c1.7,0,3.5-1.2,3.6-4l-2.4-.2C116.8,23,115.3,23.4,115.3,25.3ZM134,0V38H0V0ZM39.2,26.6H37V19a5.4,5.4,0,0,0-5.7-5.8,5.6,5.6,0,0,0-5.4,3.6,5.4,5.4,0,0,0-5.4-3.6,5.5,5.5,0,0,0-5.1,2.8V13.6h-7v3.6h2.2v9.4H8.4v3.6H18.6V26.6H15.4V20.8c0-2.3.9-3.9,3.2-3.9s2.8,1.1,2.8,4v9.4h7V26.6H26.2V20.8c0-2.3.9-3.9,3.2-3.9s2.8,1.1,2.8,4v9.4h7Zm19.9-4.7c0-4.6-2.9-8.7-8.9-8.7s-8.9,4-8.9,8.9,3.5,8.4,8.7,8.4S59.1,27.2,59.1,21.9Zm18.7,2.5L74,24l-.8,2.6H67.9l9.2-10.5-.4-2.5H62.1l-.6,5.8,3.4.4.7-2.6h5.2L61.8,27.7l.5,2.5H76.8Zm8.5-.1h-5v6h5Zm0-10.7h-5v6h5ZM94,30.2l7.2-25.4H96.6L89.4,30.2Zm9.7,0,7.2-25.4h-4.7L99,30.2Zm23.8-.4V27.3h-.7c-.8,0-1.1-.3-1.1-1.3V18.9c0-3.8-3-5.6-6.6-5.6a16,16,0,0,0-7.1,1.5l-.6,3.8,3.8.4.5-1.9a5.2,5.2,0,0,1,2.5-.5c2.7,0,2.7,2,2.7,3.7v.6h-2.7c-3.8,0-7.7,1-7.7,5.1s2.7,4.8,5.1,4.8a6,6,0,0,0,5.3-3.3,3.4,3.4,0,0,0,3.6,3.3A6.4,6.4,0,0,0,127.5,29.8Z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -224,38 +224,54 @@ if (AppConstants.platform != "macosx") {
["gNavigatorBundle", "bundle_browser"]
].forEach(function(elementGlobal) {
var [name, id] = elementGlobal;
window.__defineGetter__(name, function() {
var element = document.getElementById(id);
if (!element)
return null;
delete window[name];
return window[name] = element;
});
window.__defineSetter__(name, function(val) {
delete window[name];
return window[name] = val;
Object.defineProperty(window, name, {
configurable: true,
enumerable: true,
get() {
var element = document.getElementById(id);
if (!element)
return null;
delete window[name];
return window[name] = element;
},
set(val) {
delete window[name];
return window[name] = val;
},
});
});
// Smart getter for the findbar. If you don't wish to force the creation of
// the findbar, check gFindBarInitialized first.
this.__defineGetter__("gFindBar", function() {
return window.gBrowser.getFindBar();
Object.defineProperty(this, "gFindBar", {
configurable: true,
enumerable: true,
get() {
return window.gBrowser.getFindBar();
},
});
this.__defineGetter__("gFindBarInitialized", function() {
return window.gBrowser.isFindBarInitialized();
Object.defineProperty(this, "gFindBarInitialized", {
configurable: true,
enumerable: true,
get() {
return window.gBrowser.isFindBarInitialized();
},
});
this.__defineGetter__("AddonManager", function() {
let tmp = {};
Cu.import("resource://gre/modules/AddonManager.jsm", tmp);
return this.AddonManager = tmp.AddonManager;
});
this.__defineSetter__("AddonManager", function(val) {
delete this.AddonManager;
return this.AddonManager = val;
Object.defineProperty(this, "AddonManager", {
configurable: true,
enumerable: true,
get() {
let tmp = {};
Cu.import("resource://gre/modules/AddonManager.jsm", tmp);
return this.AddonManager = tmp.AddonManager;
},
set(val) {
delete this.AddonManager;
return this.AddonManager = val;
},
});
@ -2931,6 +2947,10 @@ var gMenuButtonUpdateBadge = {
this.clearCallbacks();
this.showUpdateAvailableNotification(update, false);
break;
case "cant-apply":
this.clearCallbacks();
this.showManualUpdateNotification(update, false);
break;
}
},

View File

@ -9,6 +9,8 @@ support-files =
skip-if = asan
reason = Bug 1168003
[browser_updatesBasicPromptNoStaging.js]
[browser_updatesCantApply.js]
skip-if = os != 'win'
[browser_updatesCompleteAndPartialPatchesWithBadCompleteSize.js]
[browser_updatesCompleteAndPartialPatchesWithBadPartialSize.js]
[browser_updatesCompleteAndPartialPatchesWithBadSizes.js]

View File

@ -0,0 +1,37 @@
add_task(function* testBasicPrompt() {
SpecialPowers.pushPrefEnv({set: [
[PREF_APP_UPDATE_SERVICE_ENABLED, false],
]});
let updateParams = "promptWaitTime=0";
let file = getWriteTestFile();
file.create(file.NORMAL_FILE_TYPE, 0o444);
file.fileAttributesWin |= file.WFA_READONLY;
file.fileAttributesWin &= ~file.WFA_READWRITE;
yield runUpdateTest(updateParams, 1, [
{
notificationId: "update-manual",
button: "button",
*cleanup() {
yield BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
is(gBrowser.selectedBrowser.currentURI.spec,
URL_MANUAL_UPDATE, "Landed on manual update page.")
gBrowser.removeTab(gBrowser.selectedTab);
getWriteTestFile();
}
},
]);
});
function getWriteTestFile() {
let file = getAppBaseDir();
file.append(FILE_UPDATE_TEST);
file.QueryInterface(Ci.nsILocalFileWin);
if (file.exists()) {
file.fileAttributesWin |= file.WFA_READWRITE;
file.fileAttributesWin &= ~file.WFA_READONLY;
file.remove(true);
}
return file;
}

View File

@ -120,10 +120,6 @@ var whitelist = new Set([
// Bug 1339424 (wontfix?)
{file: "chrome://browser/locale/taskbar.properties",
platforms: ["linux", "macosx"]},
// Bug 1320156
{file: "chrome://browser/skin/Privacy-16.png", platforms: ["linux"]},
// Bug 1343584
{file: "chrome://browser/skin/click-to-play-warning-stripes.png"},
// Bug 1343824
{file: "chrome://browser/skin/customizableui/customize-illustration-rtl@2x.png",
platforms: ["linux", "win"]},
@ -189,8 +185,6 @@ var whitelist = new Set([
{file: "chrome://global/skin/icons/warning-64.png", platforms: ["linux", "win"]},
{file: "chrome://global/skin/icons/warning-large.png", platforms: ["linux"]},
{file: "chrome://global/skin/icons/windowControls.png", platforms: ["linux"]},
// Bug 1348521
{file: "chrome://global/skin/linkTree.css"},
// Bug 1348522
{file: "chrome://global/skin/media/clicktoplay-bgtexture.png"},
{file: "chrome://global/skin/media/videoClickToPlayButton.svg"},

View File

@ -18,13 +18,17 @@ XPCOMUtils.defineLazyServiceGetter(this, "aboutNewTabService",
"@mozilla.org/browser/aboutnewtab-service;1",
"nsIAboutNewTabService");
this.__defineGetter__("BROWSER_NEW_TAB_URL", () => {
if (PrivateBrowsingUtils.isWindowPrivate(window) &&
!PrivateBrowsingUtils.permanentPrivateBrowsing &&
!aboutNewTabService.overridden) {
return "about:privatebrowsing";
}
return aboutNewTabService.newTabURL;
Object.defineProperty(this, "BROWSER_NEW_TAB_URL", {
configurable: true,
enumerable: true,
get() {
if (PrivateBrowsingUtils.isWindowPrivate(window) &&
!PrivateBrowsingUtils.permanentPrivateBrowsing &&
!aboutNewTabService.overridden) {
return "about:privatebrowsing";
}
return aboutNewTabService.newTabURL;
},
});
var TAB_DROP_TYPE = "application/x-moz-tabbrowser-tab";

View File

@ -27,7 +27,7 @@ browser.jar:
content/browser/abouthome/settings.png (content/abouthome/settings.png)
content/browser/abouthome/restore.png (content/abouthome/restore.png)
content/browser/abouthome/restore-large.png (content/abouthome/restore-large.png)
content/browser/abouthome/mozilla.png (content/abouthome/mozilla.png)
content/browser/abouthome/mozilla.svg (content/abouthome/mozilla.svg)
content/browser/abouthome/snippet1@2x.png (content/abouthome/snippet1@2x.png)
content/browser/abouthome/snippet2@2x.png (content/abouthome/snippet2@2x.png)
content/browser/abouthome/downloads@2x.png (content/abouthome/downloads@2x.png)
@ -38,7 +38,6 @@ browser.jar:
content/browser/abouthome/settings@2x.png (content/abouthome/settings@2x.png)
content/browser/abouthome/restore@2x.png (content/abouthome/restore@2x.png)
content/browser/abouthome/restore-large@2x.png (content/abouthome/restore-large@2x.png)
content/browser/abouthome/mozilla@2x.png (content/abouthome/mozilla@2x.png)
content/browser/aboutNetError.xhtml (content/aboutNetError.xhtml)

View File

@ -546,6 +546,35 @@
command="cmd_printPreview"
#endif
/>
<toolbarseparator/>
<toolbarbutton id="appMenu-library-button"
class="subviewbutton subviewbutton-iconic"
label="&places.library.title;"
command="Browser:ShowAllBookmarks"
/>
<toolbarbutton id="appMenu-addons-button"
class="subviewbutton subviewbutton-iconic"
label="&addons.label;"
key="key_openAddons"
command="Tools:Addons"
/>
<toolbarbutton id="appMenu-preferences-button"
class="subviewbutton subviewbutton-iconic"
#ifdef XP_WIN
label="&preferencesCmd2.label;"
#else
label="&preferencesCmdUnix.label;"
#ifdef XP_MACOSX
key="key_preferencesCmdMac"
#endif
#endif
oncommand="openPreferences()"
/>
<toolbarbutton id="appMenu-customize-button"
class="subviewbutton subviewbutton-iconic"
label="&viewCustomizeToolbar.label;"
command="cmd_CustomizeToolbars"
/>
</vbox>
</panelview>
</panelmultiview>

View File

@ -301,6 +301,9 @@ const PanelUI = {
updateEditUIVisibility();
// Fall through
case "popupshown":
if (gPhotonStructure && aEvent.type == "popupshown") {
CustomizableUI.addPanelCloseListeners(this.panel);
}
// Fall through
case "popuphiding":
if (aEvent.type == "popuphiding") {
@ -310,6 +313,9 @@ const PanelUI = {
case "popuphidden":
this._updateNotifications();
this._updatePanelButton(aEvent.target);
if (gPhotonStructure && aEvent.type == "popuphidden") {
CustomizableUI.removePanelCloseListeners(this.panel);
}
break;
case "mousedown":
if (aEvent.button == 0)

View File

@ -136,11 +136,13 @@ async function spawnProcess(name, cmdArgs, processData, stdin = null) {
await readAllData(proc.stdout, processData);
}
async function getSymbolsFromNM(path) {
async function getSymbolsFromNM(path, arch) {
const parser = new NMParser();
const args = [path];
if (Services.appinfo.OS !== "Darwin") {
if (Services.appinfo.OS === "Darwin") {
args.unshift("-arch", arch);
} else {
// Mac's `nm` doesn't support the demangle option, so we have to
// post-process the symbols with c++filt.
args.unshift("--demangle");
@ -209,8 +211,8 @@ function filePathForSymFileInObjDir(binaryPath, debugName, breakpadId) {
const symbolCache = new Map();
function primeSymbolStore(libs) {
for (const {debugName, breakpadId, path} of libs) {
symbolCache.set(urlForSymFile(debugName, breakpadId), path);
for (const {debugName, breakpadId, path, arch} of libs) {
symbolCache.set(urlForSymFile(debugName, breakpadId), {path, arch});
}
}
@ -305,10 +307,10 @@ this.geckoProfiler = class extends ExtensionAPI {
primeSymbolStore(Services.profiler.sharedLibraries);
}
const path = symbolCache.get(urlForSymFile(debugName, breakpadId));
const cachedLibInfo = symbolCache.get(urlForSymFile(debugName, breakpadId));
const symbolRules = Services.prefs.getCharPref(PREF_GET_SYMBOL_RULES, "localBreakpad,remoteBreakpad");
const haveAbsolutePath = path && OS.Path.split(path).absolute;
const haveAbsolutePath = cachedLibInfo && OS.Path.split(cachedLibInfo.path).absolute;
// We have multiple options for obtaining symbol information for the given
// binary.
@ -322,6 +324,7 @@ this.geckoProfiler = class extends ExtensionAPI {
switch (rule) {
case "localBreakpad":
if (haveAbsolutePath) {
const {path} = cachedLibInfo;
const filepath = filePathForSymFileInObjDir(path, debugName, breakpadId);
if (filepath) {
// NOTE: here and below, "return await" is used to ensure we catch any
@ -335,7 +338,11 @@ this.geckoProfiler = class extends ExtensionAPI {
const url = urlForSymFile(debugName, breakpadId);
return await parseSym({url});
case "nm":
return await getSymbolsFromNM(path);
if (haveAbsolutePath) {
const {path, arch} = cachedLibInfo;
return await getSymbolsFromNM(path, arch);
}
break;
}
} catch (e) {
// Each of our options can go wrong for a variety of reasons, so on failure

View File

@ -1070,7 +1070,7 @@ BrowserGlue.prototype = {
const skipDefaultBrowserCheck =
Services.prefs.getBoolPref("browser.shell.skipDefaultBrowserCheckOnFirstRun") &&
Services.prefs.getBoolPref("browser.shell.skipDefaultBrowserCheck");
!Services.prefs.getBoolPref("browser.shell.didSkipDefaultBrowserCheckOnFirstRun");
const usePromptLimit = !AppConstants.RELEASE_OR_BETA;
let promptCount =
@ -1104,7 +1104,7 @@ BrowserGlue.prototype = {
// browser has been run a few times.
if (willPrompt) {
if (skipDefaultBrowserCheck) {
Services.prefs.setBoolPref("browser.shell.skipDefaultBrowserCheck", false);
Services.prefs.setBoolPref("browser.shell.didSkipDefaultBrowserCheckOnFirstRun", true);
willPrompt = false;
} else {
promptCount++;
@ -1666,8 +1666,9 @@ BrowserGlue.prototype = {
AlertsService.showAlertNotification(null, title, body, true, null, clickCallback);
},
// eslint-disable-next-line complexity
_migrateUI: function BG__migrateUI() {
const UI_VERSION = 44;
const UI_VERSION = 45;
const BROWSER_DOCURL = "chrome://browser/content/browser.xul";
let currentUIVersion;
@ -1961,6 +1962,15 @@ BrowserGlue.prototype = {
Services.prefs.clearUserPref("alerts.disableSlidingEffect");
}
if (currentUIVersion < 45) {
const LEGACY_PREF = "browser.shell.skipDefaultBrowserCheck";
if (Services.prefs.prefHasUserValue(LEGACY_PREF)) {
Services.prefs.setBoolPref("browser.shell.didSkipDefaultBrowserCheckOnFirstRun",
!Services.prefs.getBoolPref(LEGACY_PREF));
Services.prefs.clearUserPref(LEGACY_PREF);
}
}
// Update the migration version.
Services.prefs.setIntPref("browser.migration.version", UI_VERSION);
},

View File

@ -155,7 +155,7 @@
disabled="true"/>
</hbox>
<hbox id="restarting" align="center">
<label>&update.restarting;</label>
<image class="update-throbber"/><label>&update.restarting;</label>
<spacer flex="1"/>
<button label="&update.updateButton.label3;"
accesskey="&update.updateButton.accesskey;"

View File

@ -202,9 +202,8 @@ var gSearchResultsPane = {
let resultsFound = false;
// Building the range for highlighted areas
let rootPreferences = document.getElementById("mainPrefPane")
let rootPreferencesChildren = rootPreferences
.querySelectorAll(":not([data-hidden-from-search])");
let rootPreferencesChildren = document
.querySelectorAll("#mainPrefPane > *:not([data-hidden-from-search])");
// Showing all the children to bind JS, Access Keys, etc
for (let i = 0; i < rootPreferencesChildren.length; i++) {

View File

@ -3278,8 +3278,6 @@ var SessionStoreInternal = {
initialTabs = Array.slice(tabbrowser.tabs);
}
let numVisibleTabs = 0;
let restoreTabsLazily = this._prefBranch.getBoolPref("sessionstore.restore_tabs_lazily") &&
this._prefBranch.getBoolPref("sessionstore.restore_on_demand");
@ -3309,9 +3307,6 @@ var SessionStoreInternal = {
if (winData.tabs[t].hidden) {
tabbrowser.hideTab(tabs[t]);
} else {
tabbrowser.showTab(tabs[t]);
numVisibleTabs++;
}
}
@ -3335,12 +3330,6 @@ var SessionStoreInternal = {
}
}
// if all tabs to be restored are hidden, make the first one visible
if (!numVisibleTabs && winData.tabs.length) {
winData.tabs[0].hidden = false;
tabbrowser.showTab(tabs[0]);
}
// We want to correlate the window with data from the last session, so
// assign another id if we have one. Otherwise clear so we don't do
// anything with it.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 822 B

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