mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 03:15:11 +00:00
Merge mozilla-central to mozilla-inbound
This commit is contained in:
commit
455239782b
@ -331,3 +331,4 @@ toolkit/webapps/**
|
||||
|
||||
# Third party
|
||||
toolkit/modules/third_party/**
|
||||
third_party/**
|
||||
|
@ -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",
|
||||
}
|
||||
};
|
||||
|
@ -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 {
|
||||
|
@ -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.
|
||||
|
@ -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';
|
||||
|
@ -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 {};
|
||||
|
@ -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 */
|
||||
|
||||
/******************************************************************************
|
||||
|
@ -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';
|
||||
|
@ -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';
|
||||
|
@ -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';
|
||||
|
@ -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';
|
||||
|
@ -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';
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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",
|
||||
|
@ -4,8 +4,7 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
/* global EVENT_FOCUS */
|
||||
|
||||
/* import-globals-from ../../mochitest/attributes.js */
|
||||
loadScripts({ name: 'attributes.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
/**
|
||||
|
@ -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 });
|
||||
|
||||
/**
|
||||
|
@ -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 });
|
||||
|
||||
/**
|
||||
|
@ -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 });
|
||||
|
||||
/**
|
||||
|
@ -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 });
|
||||
|
||||
|
@ -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 });
|
||||
|
||||
/**
|
||||
|
@ -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';
|
||||
|
||||
/**
|
||||
|
@ -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';
|
||||
|
||||
/**
|
||||
|
@ -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';
|
||||
|
||||
/**
|
||||
|
@ -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 });
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
|
@ -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) {
|
||||
|
@ -4,8 +4,7 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
/* global EVENT_SHOW */
|
||||
|
||||
/* import-globals-from ../../mochitest/role.js */
|
||||
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
addAccessibleTask(`
|
||||
|
@ -4,8 +4,7 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
/* global EVENT_REORDER */
|
||||
|
||||
/* import-globals-from ../../mochitest/role.js */
|
||||
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
addAccessibleTask(`
|
||||
|
@ -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,
|
||||
|
@ -4,8 +4,7 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
/* global EVENT_REORDER */
|
||||
|
||||
/* import-globals-from ../../mochitest/role.js */
|
||||
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
addAccessibleTask(`
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -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>',
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -4,8 +4,7 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
/* global EVENT_REORDER */
|
||||
|
||||
/* import-globals-from ../../mochitest/role.js */
|
||||
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
addAccessibleTask(`
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -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,
|
||||
|
@ -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');
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
7
accessible/tests/crashtests/.eslintrc.js
Normal file
7
accessible/tests/crashtests/.eslintrc.js
Normal file
@ -0,0 +1,7 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = {
|
||||
"extends": [
|
||||
"plugin:mozilla/mochitest-test"
|
||||
],
|
||||
};
|
@ -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>
|
||||
|
24
accessible/tests/mochitest/.eslintrc.js
Normal file
24
accessible/tests/mochitest/.eslintrc.js
Normal 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",
|
||||
}
|
||||
};
|
@ -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;
|
||||
}
|
||||
|
@ -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 = [
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
|
@ -185,9 +185,6 @@
|
||||
|
||||
this.invoke = function removeTextFromInput_invoke()
|
||||
{
|
||||
const nsIDOMNSEditableElement =
|
||||
Components.interfaces.nsIDOMNSEditableElement;
|
||||
|
||||
this.DOMNode.focus();
|
||||
this.DOMNode.setSelectionRange(aStart, aEnd);
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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
|
||||
|
@ -1,7 +1,5 @@
|
||||
'use strict';
|
||||
|
||||
/* global getMainChromeWindow, AccessFuTest, GestureSettings, GestureTracker,
|
||||
SimpleTest, getBoundsForDOMElm, Point, Utils */
|
||||
/* exported loadJSON, eventMap */
|
||||
|
||||
var Ci = Components.interfaces;
|
||||
|
@ -300,7 +300,6 @@
|
||||
}
|
||||
},
|
||||
action: function action() {
|
||||
var region = document.getElementById("to_replace_region");
|
||||
var child = document.getElementById("to_replace");
|
||||
child.setAttribute("role", "main");
|
||||
}
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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.");
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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 + "!");
|
||||
}
|
||||
|
@ -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) {
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
|
@ -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,
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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");
|
||||
}
|
||||
|
||||
|
@ -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 = () => {
|
||||
|
@ -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
|
||||
|
@ -65,7 +65,7 @@
|
||||
{
|
||||
return "add li";
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// Test
|
||||
|
@ -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
|
||||
|
@ -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'),
|
||||
};
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
||||
<!--
|
||||
|
@ -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 |
3
browser/base/content/abouthome/mozilla.svg
Normal file
3
browser/base/content/abouthome/mozilla.svg
Normal 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 |
@ -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;
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -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]
|
||||
|
@ -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;
|
||||
}
|
@ -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"},
|
||||
|
@ -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";
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
},
|
||||
|
@ -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;"
|
||||
|
@ -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++) {
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user