Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
tails
thunderbird
Commits
7af1a0b8
Commit
7af1a0b8
authored
Apr 11, 2021
by
Carsten Schoenert
Browse files
New upstream version 88.0~b2
parent
d316a1c1
Changes
1000
Expand all
Hide whitespace changes
Inline
Side-by-side
Too many changes to show.
To preserve performance only
20 of 1000+
files are displayed.
Plain diff
Email patch
.cargo/config.in
View file @
7af1a0b8
...
...
@@ -2,16 +2,6 @@
# It was generated by `mach vendor rust`.
# Please do not edit.
[source."https://github.com/zakarumych/gpu-descriptor"]
git = "https://github.com/zakarumych/gpu-descriptor"
replace-with = "vendored-sources"
rev = "831460c4b5120d9a74744d542f39a95b9816b5ab"
[source."https://github.com/zakarumych/gpu-alloc"]
git = "https://github.com/zakarumych/gpu-alloc"
replace-with = "vendored-sources"
rev = "d07be73f9439a37c89f5b72f2500cbf0eb4ff613"
[source."https://github.com/shravanrn/nix/"]
git = "https://github.com/shravanrn/nix/"
replace-with = "vendored-sources"
...
...
@@ -20,17 +10,32 @@ rev = "4af6c367603869a30fddb5ffb0aba2b9477ba92e"
[source."https://github.com/msirringhaus/minidump_writer_linux.git"]
git = "https://github.com/msirringhaus/minidump_writer_linux.git"
replace-with = "vendored-sources"
rev = "
4ea371049a9cca212cc13c19b7952c1c014085c6
"
rev = "
01c7a0da8d34059f7dae8ab9e7512529ff16347a
"
[source."https://github.com/mozilla/neqo"]
git = "https://github.com/mozilla/neqo"
replace-with = "vendored-sources"
tag = "v0.4.
19
"
tag = "v0.4.
23
"
[source."https://github.com/mozilla/mp4parse-rust"]
git = "https://github.com/mozilla/mp4parse-rust"
replace-with = "vendored-sources"
rev = "3d9efdc868ce8c5767cea28708fa6512c0ab6d17"
rev = "94c3b1f368c82aefcbf51967f6aa296a9ccceb69"
[source."https://github.com/mozilla/cubeb-pulse-rs"]
git = "https://github.com/mozilla/cubeb-pulse-rs"
replace-with = "vendored-sources"
rev = "c87b50aebfa088c1ad30c74819d4e9829f88b2e3"
[source."https://github.com/mozilla/cubeb-coreaudio-rs"]
git = "https://github.com/mozilla/cubeb-coreaudio-rs"
replace-with = "vendored-sources"
rev = "ad56ea14ac915f1e7ecbcf6ac38182443b0dd29e"
[source."https://github.com/mozilla/audioipc-2"]
git = "https://github.com/mozilla/audioipc-2"
replace-with = "vendored-sources"
rev = "8fb5ff19fba7b09e8e66598122421e68a5c573ac"
[source."https://github.com/mozilla/application-services"]
git = "https://github.com/mozilla/application-services"
...
...
@@ -40,7 +45,7 @@ rev = "8a576fbe79199fa8664f64285524017f74ebcc5f"
[source."https://github.com/mozilla-spidermonkey/wasmtime"]
git = "https://github.com/mozilla-spidermonkey/wasmtime"
replace-with = "vendored-sources"
rev = "
3334d92350da40b90d2529c147db3ea44918b558
"
rev = "
a25399760e9f12b679aa267dd2af7cfedc72bb71
"
[source."https://github.com/mozilla-spidermonkey/wasm-tools"]
git = "https://github.com/mozilla-spidermonkey/wasm-tools"
...
...
@@ -55,10 +60,10 @@ rev = "fc5d1d33317b0fbd36725757f80a95127eff5109"
[source."https://github.com/mozilla-spidermonkey/jsparagus"]
git = "https://github.com/mozilla-spidermonkey/jsparagus"
replace-with = "vendored-sources"
rev = "d
910c7a0f2f836cc70ed14bb92b8d0437b4e4a24
"
rev = "d
5d8c00ebd3281d12e0be5dfddbb69f791f836f1
"
[source."https://github.com/kvark/spirv_cross"]
branch = "wgpu
4
"
branch = "wgpu
5
"
git = "https://github.com/kvark/spirv_cross"
replace-with = "vendored-sources"
...
...
@@ -90,17 +95,22 @@ rev = "fd4ed671ef495af4dcda4c4cba3ef8d426db8af1"
[source."https://github.com/gfx-rs/naga"]
git = "https://github.com/gfx-rs/naga"
replace-with = "vendored-sources"
rev = "96c80738650822de35f77ab6a589f309460c8f39"
tag = "gfx-12"
[source."https://github.com/gfx-rs/metal-rs"]
git = "https://github.com/gfx-rs/metal-rs"
replace-with = "vendored-sources"
rev = "439c986eb7a9b91e88b61def2daa66e4043fcbef"
[source."https://github.com/gfx-rs/gfx"]
git = "https://github.com/gfx-rs/gfx"
replace-with = "vendored-sources"
rev = "
1d14789011cb892f4c1a205d3f8a87d479c2e354
"
rev = "
0a201d1c406b5119ec11068293a40e50ec0be4c8
"
[source."https://github.com/
djg/cubeb-pulse
-rs"]
git = "https://github.com/
djg/cubeb-pulse
-rs"
[source."https://github.com/
gfx-rs/d3d12
-rs"]
git = "https://github.com/
gfx-rs/d3d12
-rs"
replace-with = "vendored-sources"
rev = "b
f31534d08b2c16fb5e4c5834944ae3271efbd63
"
rev = "b
e19a243b86e0bafb9937d661fc8eabb3e42b44e
"
[source."https://github.com/badboy/failure"]
git = "https://github.com/badboy/failure"
...
...
@@ -117,11 +127,6 @@ git = "https://github.com/PLSysSec/lucet_sandbox_compiler"
replace-with = "vendored-sources"
rev = "cd07861d1c92147b35b538e6f94fde7d1986f9ad"
[source."https://github.com/ChunMinChang/cubeb-coreaudio-rs"]
git = "https://github.com/ChunMinChang/cubeb-coreaudio-rs"
replace-with = "vendored-sources"
rev = "1e1222d6213e28eabd7f4302d00765ae1153a31e"
[source.crates-io]
replace-with = "vendored-sources"
...
...
.clang-format-ignore
View file @
7af1a0b8
...
...
@@ -172,6 +172,7 @@ modules/woff2/.*
modules/xz-embedded/.*
modules/zlib/.*
mozglue/misc/decimal/.*
mozglue/tests/glibc_printf_tests/.*
netwerk/dns/nsIDNKitInterface.h
netwerk/sctp/src/.*
netwerk/srtp/src/.*
...
...
.cron.yml
View file @
7af1a0b8
...
...
@@ -267,24 +267,6 @@ jobs:
-
{
weekday
:
'
Saturday'
,
hour
:
3
,
minute
:
0
}
-
{
weekday
:
'
Sunday'
,
hour
:
3
,
minute
:
0
}
-
name
:
raptor-tp6-windows10-64-ref-hw-2017
job
:
type
:
decision-task
treeherder-symbol
:
tp6
target-tasks-method
:
raptor_tp6_windows10_64_ref_hw_2017
include-push-tasks
:
true
run-on-projects
:
-
mozilla-central
when
:
-
{
weekday
:
'
Monday'
,
hour
:
3
,
minute
:
0
}
-
{
weekday
:
'
Tuesday'
,
hour
:
3
,
minute
:
0
}
-
{
weekday
:
'
Wednesday'
,
hour
:
3
,
minute
:
0
}
-
{
weekday
:
'
Thursday'
,
hour
:
3
,
minute
:
0
}
-
{
weekday
:
'
Friday'
,
hour
:
3
,
minute
:
0
}
-
{
weekday
:
'
Saturday'
,
hour
:
3
,
minute
:
0
}
-
{
weekday
:
'
Sunday'
,
hour
:
3
,
minute
:
0
}
-
name
:
condprof
job
:
type
:
decision-task
...
...
.eslintignore
View file @
7af1a0b8
...
...
@@ -61,7 +61,6 @@ browser/extensions/formautofill/phonenumberutils/PhoneNumberMetaData.jsm
# See https://github.com/firefox-devtools/debugger/blob/master/package.json#L24
devtools/client/debugger/configs/
devtools/client/debugger/dist/
devtools/client/debugger/flow-typed/
devtools/client/debugger/images/
devtools/client/debugger/test/
devtools/client/debugger/index.html
...
...
@@ -158,8 +157,8 @@ modules/libpref/test/unit/*data/
python/
# These are (mainly) imported code that we don't want to lint to make imports easier.
remote/Protocol.jsm
remote/test/browser/chrome-remote-interface.js
remote/
cdp/
Protocol.jsm
remote/
cdp/
test/browser/chrome-remote-interface.js
# services/ exclusions
...
...
@@ -220,3 +219,6 @@ tools/tryselect/selectors/chooser/templates/chooser.html
# Ignore preprocessed *(P)refs.js files in update-packaging.
tools/update-packaging/**/*refs.js
# Ignore backgroundtasks preferences files.
toolkit/components/backgroundtasks/defaults
.eslintrc.js
View file @
7af1a0b8
...
...
@@ -247,6 +247,7 @@ module.exports = {
"
dom/security/test/general/**
"
,
"
dom/security/test/https-only/**
"
,
"
dom/security/test/mixedcontentblocker/**
"
,
"
dom/security/test/sec-fetch/**
"
,
"
dom/security/test/sri/**
"
,
"
dom/security/test/referrer-policy/**
"
,
"
dom/serviceworkers/**
"
,
...
...
@@ -378,25 +379,13 @@ module.exports = {
"
docshell/test/chrome/test_viewsource_forbidden_in_iframe.xhtml
"
,
],
rules
:
{
"
dot-notation
"
:
"
off
"
,
"
no-global-assign
"
:
"
off
"
,
"
no-octal
"
:
"
off
"
,
"
object-shorthand
"
:
"
off
"
,
"
mozilla/consistent-if-bracing
"
:
"
off
"
,
"
mozilla/no-compare-against-boolean-literals
"
:
"
off
"
,
"
mozilla/no-useless-parameters
"
:
"
off
"
,
"
mozilla/no-useless-removeEventListener
"
:
"
off
"
,
"
mozilla/use-cc-etc
"
:
"
off
"
,
"
mozilla/use-services
"
:
"
off
"
,
"
mozilla/use-chromeutils-generateqi
"
:
"
off
"
,
"
consistent-return
"
:
"
off
"
,
"
no-delete-var
"
:
"
off
"
,
"
no-redeclare
"
:
"
off
"
,
"
no-sequences
"
:
"
off
"
,
"
no-shadow
"
:
"
off
"
,
"
no-undef
"
:
"
off
"
,
"
no-unused-vars
"
:
"
off
"
,
"
no-useless-call
"
:
"
off
"
,
},
},
{
...
...
@@ -519,6 +508,7 @@ module.exports = {
"
browser/components/customizableui/test/browser_989338_saved_placements_not_resaved.js
"
,
"
browser/components/customizableui/test/browser_currentset_post_reset.js
"
,
"
browser/components/customizableui/test/browser_panel_keyboard_navigation.js
"
,
"
browser/components/customizableui/test/browser_proton_toolbar_hide_toolbarbuttons.js
"
,
"
browser/components/enterprisepolicies/tests/browser/browser_policies_setAndLockPref_API.js
"
,
"
browser/components/enterprisepolicies/tests/browser/head.js
"
,
"
browser/components/enterprisepolicies/tests/xpcshell/head.js
"
,
...
...
@@ -657,61 +647,7 @@ module.exports = {
"
toolkit/mozapps/installer/precompile_cache.js
"
,
],
rules
:
{
"
mozilla/reject-chromeutils-import-null
"
:
"
off
"
,
},
},
{
files
:
[
"
browser/base/content/browser-gestureSupport.js
"
,
"
browser/base/content/tabbrowser-tab.js
"
,
"
browser/base/content/tabbrowser-tabs.js
"
,
"
browser/base/content/tabbrowser.js
"
,
"
browser/components/downloads/DownloadsCommon.jsm
"
,
"
browser/components/downloads/content/allDownloadsView.js
"
,
"
browser/components/downloads/content/downloads.js
"
,
"
browser/components/downloads/content/indicator.js
"
,
"
browser/components/payments/res/components/csc-input.js
"
,
"
browser/components/payments/res/components/labelled-checkbox.js
"
,
"
browser/components/pocket/content/Pocket.jsm
"
,
"
browser/components/preferences/search.js
"
,
"
browser/components/search/content/search-one-offs.js
"
,
"
browser/components/search/content/searchbar.js
"
,
"
browser/components/sessionstore/ContentSessionStore.jsm
"
,
"
browser/components/urlbar/UrlbarInput.jsm
"
,
"
browser/components/urlbar/UrlbarView.jsm
"
,
"
browser/extensions/formautofill/content/customElements.js
"
,
"
browser/modules/PageActions.jsm
"
,
"
devtools/client/shared/async-store-helper.js
"
,
"
devtools/client/shared/prefs.js
"
,
"
devtools/shared/task.js
"
,
"
dom/base/SlowScriptDebug.jsm
"
,
"
dom/media/PeerConnection.jsm
"
,
"
mobile/android/chrome/geckoview/SessionStateAggregator.js
"
,
"
mobile/android/modules/geckoview/DelayedInit.jsm
"
,
"
services/sync/modules/record.js
"
,
"
toolkit/actors/AutoCompleteChild.jsm
"
,
"
toolkit/components/autocomplete/tests/unit/test_stopSearch.js
"
,
"
toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm
"
,
"
toolkit/components/extensions/ExtensionParent.jsm
"
,
"
toolkit/components/osfile/modules/osfile_async_front.jsm
"
,
"
toolkit/components/osfile/modules/osfile_shared_allthreads.jsm
"
,
"
toolkit/content/aboutSupport.js
"
,
"
toolkit/content/customElements.js
"
,
"
toolkit/content/preferencesBindings.js
"
,
"
toolkit/content/tests/chrome/test_custom_element_base.xhtml
"
,
"
toolkit/content/viewZoomOverlay.js
"
,
"
toolkit/content/widgets/*.js
"
,
"
toolkit/modules/NewTabUtils.jsm
"
,
"
toolkit/modules/tests/modules/Task.jsm
"
,
"
toolkit/mozapps/extensions/AddonManager.jsm
"
,
"
toolkit/mozapps/extensions/internal/PluginProvider.jsm
"
,
"
toolkit/mozapps/extensions/internal/XPIDatabase.jsm
"
,
"
toolkit/mozapps/extensions/test/browser/head.js
"
,
"
toolkit/mozapps/extensions/test/xpcshell/head_addons.js
"
,
"
toolkit/mozapps/handling/content/dialog.js
"
,
],
rules
:
{
"
no-setter-return
"
:
"
off
"
,
"
mozilla/reject-chromeutils-import-params
"
:
"
off
"
,
},
},
],
...
...
.flake8
View file @
7af1a0b8
...
...
@@ -73,6 +73,7 @@ exclude =
testing/marionette/harness/marionette_harness/tests,
testing/mochitest/pywebsocket3,
testing/mozharness/configs/test/test_malformed.py,
testing/web-platform/mozilla/tests/tools/wptserve_py2,
testing/web-platform/tests,
tools/lint/test/files,
tools/infer/test/*.configure,
...
...
.prettierignore
View file @
7af1a0b8
...
...
@@ -58,3 +58,6 @@ devtools/client/debugger/src/test/mochitest/examples/ember/quickstart
# These are source mapped and the locations are asserted in the test case.
devtools/client/webconsole/test/browser/test-mangled-function.*
# Ignore backgroundtasks preferences files.
toolkit/components/backgroundtasks/defaults
.taskcluster.yml
View file @
7af1a0b8
...
...
@@ -222,7 +222,7 @@ tasks:
# Note: This task is built server side without the context or tooling that
# exist in tree so we must hard code the hash
image
:
'
taskcluster/
decision:
2.2.0
@sha256:
0e9689e94605eb8395f5b49141a48148416b0d825f6f7be04c29642d1a85e
e3
d
'
image
:
'
mozillareleases/gecko_
decision:
3.0.1
@sha256:
9964730ed951584e65032bd1d6a2b7ede6d880a8b7aefb72d0d7f82346d834
e3'
maxRunTime
:
1800
...
...
Cargo.lock
View file @
7af1a0b8
This diff is collapsed.
Click to expand it.
Cargo.toml
View file @
7af1a0b8
...
...
@@ -5,8 +5,6 @@
# and do not need to be listed here. Their external dependencies are vendored
# into `third_party/rust` by `mach vendor rust`.
members
=
[
"js/rust"
,
"js/src"
,
"js/src/frontend/smoosh"
,
"js/src/rust"
,
"js/src/wasm/cranelift"
,
...
...
@@ -33,8 +31,6 @@ exclude = [
# be included in the top-level one.
"gfx/wgpu"
,
"gfx/wr"
,
"media/audioipc"
,
"media/cubeb-rs"
,
# Excluded because they are used only as dependencies, not top-level targets,
# so we don't need to vendor their dev-dependencies.
...
...
@@ -70,6 +66,13 @@ opt-level = 1
[profile.release.build-override]
opt-level
=
1
# optimizing glsl more makes a big difference in swgl build times
[profile.dev.package.glsl]
opt-level
=
2
[profile.release.package.glsl]
opt-level
=
2
[patch.crates-io]
chardetng
=
{
git
=
"https://github.com/hsivonen/chardetng"
,
rev
=
"fd4ed671ef495af4dcda4c4cba3ef8d426db8af1"
}
chardetng_c
=
{
git
=
"https://github.com/hsivonen/chardetng_c"
,
rev
=
"ed8a4c6f900a90d4dbc1d64b856e61490a1c3570"
}
...
...
@@ -77,19 +80,19 @@ libudev-sys = { path = "dom/webauthn/libudev-sys" }
packed_simd
=
{
git
=
"https://github.com/hsivonen/packed_simd"
,
rev
=
"0917fe780032a6bbb23d71be545f9c1834128d75"
}
rlbox_lucet_sandbox
=
{
git
=
"https://github.com/PLSysSec/rlbox_lucet_sandbox/"
,
rev
=
"f3cace4fb8b53db0849c62af4fa62bade5a620f7"
}
nix
=
{
git
=
"https://github.com/shravanrn/nix/"
,
rev
=
"4af6c367603869a30fddb5ffb0aba2b9477ba92e"
}
spirv_cross
=
{
git
=
"https://github.com/kvark/spirv_cross"
,
branch
=
"wgpu
4
"
}
spirv_cross
=
{
git
=
"https://github.com/kvark/spirv_cross"
,
branch
=
"wgpu
5
"
}
# failure's backtrace feature might break our builds, see bug 1608157.
failure
=
{
git
=
"https://github.com/badboy/failure"
,
rev
=
"64af847bc5fdcb6d2438bec8a6030812a80519a5"
}
failure_derive
=
{
git
=
"https://github.com/badboy/failure"
,
rev
=
"64af847bc5fdcb6d2438bec8a6030812a80519a5"
}
minidump_writer_linux
=
{
git
=
"https://github.com/msirringhaus/minidump_writer_linux.git"
,
rev
=
"
4ea371049a9cca212cc13c19b7952c1c014085c6
"
}
minidump_writer_linux
=
{
git
=
"https://github.com/msirringhaus/minidump_writer_linux.git"
,
rev
=
"
01c7a0da8d34059f7dae8ab9e7512529ff16347a
"
}
[patch.crates-io.cranelift-codegen]
git
=
"https://github.com/mozilla-spidermonkey/wasmtime"
rev
=
"
3334d92350da40b90d2529c147db3ea44918b558
"
rev
=
"
a25399760e9f12b679aa267dd2af7cfedc72bb71
"
[patch.crates-io.cranelift-wasm]
git
=
"https://github.com/mozilla-spidermonkey/wasmtime"
rev
=
"
3334d92350da40b90d2529c147db3ea44918b558
"
rev
=
"
a25399760e9f12b679aa267dd2af7cfedc72bb71
"
# Patch autocfg to hide rustc output. Workaround for https://github.com/cuviper/autocfg/issues/30
[patch.crates-io.autocfg]
...
...
accessible/android/AccessibleWrap.cpp
View file @
7af1a0b8
...
...
@@ -6,7 +6,7 @@
#include
"AccessibleWrap.h"
#include
"JavaBuiltins.h"
#include
"Accessible-inl.h"
#include
"
Local
Accessible-inl.h"
#include
"HyperTextAccessible-inl.h"
#include
"AccEvent.h"
#include
"AndroidInputType.h"
...
...
@@ -45,7 +45,7 @@ IDSet sIDSet(31UL);
// construction
//-----------------------------------------------------
AccessibleWrap
::
AccessibleWrap
(
nsIContent
*
aContent
,
DocAccessible
*
aDoc
)
:
Accessible
(
aContent
,
aDoc
)
{
:
Local
Accessible
(
aContent
,
aDoc
)
{
if
(
aDoc
)
{
mID
=
AcquireID
();
DocAccessibleWrap
*
doc
=
static_cast
<
DocAccessibleWrap
*>
(
aDoc
);
...
...
@@ -100,7 +100,7 @@ nsresult AccessibleWrap::HandleAccEvent(AccEvent* aEvent) {
if
((
ht
&&
ht
->
SelectionCount
()))
{
DOMPoint
point
=
AsHyperText
()
->
OffsetToDOMPoint
(
caretEvent
->
GetCaretOffset
());
if
(
Accessible
*
newPos
=
if
(
Local
Accessible
*
newPos
=
doc
->
GetAccessibleOrContainer
(
point
.
node
))
{
static_cast
<
AccessibleWrap
*>
(
newPos
)
->
PivotTo
(
java
::
SessionAccessibility
::
HTML_GRANULARITY_DEFAULT
,
true
,
...
...
@@ -120,7 +120,7 @@ nsresult AccessibleWrap::HandleAccEvent(AccEvent* aEvent) {
}
}
nsresult
rv
=
Accessible
::
HandleAccEvent
(
aEvent
);
nsresult
rv
=
Local
Accessible
::
HandleAccEvent
(
aEvent
);
NS_ENSURE_SUCCESS
(
rv
,
rv
);
accessible
->
HandleLiveRegionEvent
(
aEvent
);
...
...
@@ -247,12 +247,12 @@ void AccessibleWrap::Shutdown() {
}
}
Accessible
::
Shutdown
();
Local
Accessible
::
Shutdown
();
}
bool
AccessibleWrap
::
DoAction
(
uint8_t
aIndex
)
const
{
if
(
ActionCount
())
{
return
Accessible
::
DoAction
(
aIndex
);
return
Local
Accessible
::
DoAction
(
aIndex
);
}
if
(
mContent
)
{
...
...
@@ -300,7 +300,7 @@ void AccessibleWrap::PivotTo(int32_t aGranularity, bool aForward,
a11y
::
Pivot
pivot
(
accOrProxyRoot
);
TraversalRule
rule
(
aGranularity
);
AccessibleOrProxy
accOrProxy
=
AccessibleOrProxy
(
this
);
Accessible
*
result
=
Local
Accessible
*
result
=
aForward
?
pivot
.
Next
(
accOrProxy
,
rule
,
aInclusive
).
AsAccessible
()
:
pivot
.
Prev
(
accOrProxy
,
rule
,
aInclusive
).
AsAccessible
();
if
(
result
&&
(
result
!=
this
||
aInclusive
))
{
...
...
@@ -317,7 +317,7 @@ void AccessibleWrap::ExploreByTouch(float aX, float aY) {
a11y
::
Pivot
pivot
(
RootAccessible
());
TraversalRule
rule
;
Accessible
*
result
=
pivot
.
AtPoint
(
aX
,
aY
,
rule
).
AsAccessible
();
Local
Accessible
*
result
=
pivot
.
AtPoint
(
aX
,
aY
,
rule
).
AsAccessible
();
if
(
result
&&
result
!=
this
)
{
RefPtr
<
AccEvent
>
event
=
...
...
@@ -357,7 +357,7 @@ void AccessibleWrap::NavigateText(int32_t aGranularity, int32_t aStartOffset,
}
int32_t
newOffset
;
Accessible
*
newAnchor
=
nullptr
;
Local
Accessible
*
newAnchor
=
nullptr
;
if
(
aForward
)
{
newAnchor
=
pivot
.
NextText
(
this
,
&
start
,
&
end
,
pivotGranularity
);
newOffset
=
end
;
...
...
@@ -367,7 +367,7 @@ void AccessibleWrap::NavigateText(int32_t aGranularity, int32_t aStartOffset,
}
if
(
newAnchor
&&
(
start
!=
aStartOffset
||
end
!=
aEndOffset
))
{
if
(
IsTextLeaf
()
&&
newAnchor
==
Parent
())
{
if
(
IsTextLeaf
()
&&
newAnchor
==
Local
Parent
())
{
// For paragraphs, divs, spans, etc., we put a11y focus on the text leaf
// node instead of the HyperTextAccessible. However, Pivot will always
// return a HyperTextAccessible. Android doesn't support text navigation
...
...
@@ -856,7 +856,7 @@ mozilla::java::GeckoBundle::LocalRef AccessibleWrap::ToBundle(
auto
childCount
=
ChildCount
();
nsTArray
<
int32_t
>
children
(
childCount
);
for
(
uint32_t
i
=
0
;
i
<
childCount
;
i
++
)
{
auto
child
=
static_cast
<
AccessibleWrap
*>
(
Get
ChildAt
(
i
));
auto
child
=
static_cast
<
AccessibleWrap
*>
(
Local
ChildAt
(
i
));
children
.
AppendElement
(
child
->
VirtualViewID
());
}
...
...
@@ -909,12 +909,12 @@ bool AccessibleWrap::HandleLiveRegionEvent(AccEvent* aEvent) {
nsString
atomic
;
rv
=
attributes
->
GetStringProperty
(
"container-atomic"
_ns
,
atomic
);
Accessible
*
announcementTarget
=
this
;
Local
Accessible
*
announcementTarget
=
this
;
nsAutoString
announcement
;
if
(
atomic
.
EqualsIgnoreCase
(
"true"
))
{
Accessible
*
atomicAncestor
=
nullptr
;
for
(
Accessible
*
parent
=
announcementTarget
;
parent
;
parent
=
parent
->
Parent
())
{
Local
Accessible
*
atomicAncestor
=
nullptr
;
for
(
Local
Accessible
*
parent
=
announcementTarget
;
parent
;
parent
=
parent
->
Local
Parent
())
{
dom
::
Element
*
element
=
parent
->
Elm
();
if
(
element
&&
element
->
AttrValueIs
(
kNameSpaceID_None
,
nsGkAtoms
::
aria_atomic
,
...
...
accessible/android/AccessibleWrap.h
View file @
7af1a0b8
...
...
@@ -6,8 +6,8 @@
#ifndef mozilla_a11y_AccessibleWrap_h_
#define mozilla_a11y_AccessibleWrap_h_
#include
"Accessible.h"
#include
"mozilla/a11y/
Proxy
Accessible.h"
#include
"
Local
Accessible.h"
#include
"mozilla/a11y/
Remote
Accessible.h"
#include
"mozilla/java/GeckoBundleWrappers.h"
#include
"mozilla/java/SessionAccessibilityWrappers.h"
#include
"nsCOMPtr.h"
...
...
@@ -15,7 +15,7 @@
namespace
mozilla
{
namespace
a11y
{
class
AccessibleWrap
:
public
Accessible
{
class
AccessibleWrap
:
public
Local
Accessible
{
public:
AccessibleWrap
(
nsIContent
*
aContent
,
DocAccessible
*
aDoc
);
virtual
~
AccessibleWrap
();
...
...
@@ -90,7 +90,7 @@ class AccessibleWrap : public Accessible {
private:
virtual
AccessibleWrap
*
WrapperParent
()
{
return
static_cast
<
AccessibleWrap
*>
(
Parent
());
return
static_cast
<
AccessibleWrap
*>
(
Local
Parent
());
}
virtual
bool
WrapperRangeInfo
(
double
*
aCurVal
,
double
*
aMinVal
,
...
...
@@ -112,7 +112,7 @@ class AccessibleWrap : public Accessible {
static
uint32_t
GetFlags
(
role
aRole
,
uint64_t
aState
,
uint8_t
aActionCount
);
};
static
inline
AccessibleWrap
*
WrapperFor
(
const
Proxy
Accessible
*
aProxy
)
{
static
inline
AccessibleWrap
*
WrapperFor
(
const
Remote
Accessible
*
aProxy
)
{
return
reinterpret_cast
<
AccessibleWrap
*>
(
aProxy
->
GetWrapper
());
}
...
...
accessible/android/DocAccessibleWrap.cpp
View file @
7af1a0b8
...
...
@@ -4,7 +4,7 @@
* 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/. */
#include
"Accessible-inl.h"
#include
"
Local
Accessible-inl.h"
#include
"AccessibleOrProxy.h"
#include
"DocAccessibleChild.h"
#include
"DocAccessibleWrap.h"
...
...
@@ -110,17 +110,25 @@ void DocAccessibleWrap::CacheViewportCallback(nsITimer* aTimer,
continue
;
}
Accessible
*
visibleAcc
=
docAcc
->
GetAccessibleOrContainer
(
content
);
Local
Accessible
*
visibleAcc
=
docAcc
->
GetAccessibleOrContainer
(
content
);
if
(
!
visibleAcc
)
{
continue
;
}
for
(
Accessible
*
acc
=
visibleAcc
;
acc
&&
acc
!=
docAcc
->
Parent
();
acc
=
acc
->
Parent
())
{
if
(
inViewAccs
.
Contains
(
acc
->
UniqueID
()))
{
for
(
LocalAccessible
*
acc
=
visibleAcc
;
acc
&&
acc
!=
docAcc
->
LocalParent
();
acc
=
acc
->
LocalParent
())
{
const
bool
alreadyPresent
=
inViewAccs
.
WithEntryHandle
(
acc
->
UniqueID
(),
[
&
](
auto
&&
entry
)
{
if
(
entry
)
{
return
true
;
}
entry
.
Insert
(
RefPtr
{
acc
});
return
false
;
});
if
(
alreadyPresent
)
{
break
;
}
inViewAccs
.
Put
(
acc
->
UniqueID
(),
RefPtr
{
acc
});
}
}
...
...
@@ -128,7 +136,7 @@ void DocAccessibleWrap::CacheViewportCallback(nsITimer* aTimer,
DocAccessibleChild
*
ipcDoc
=
docAcc
->
IPCDoc
();
nsTArray
<
BatchData
>
cacheData
(
inViewAccs
.
Count
());
for
(
auto
iter
=
inViewAccs
.
Iter
();
!
iter
.
Done
();
iter
.
Next
())
{
Accessible
*
accessible
=
iter
.
Data
();
Local
Accessible
*
accessible
=
iter
.
Data
();
nsAutoString
name
;
accessible
->
Name
(
name
);
nsAutoString
textValue
;
...
...
@@ -150,9 +158,8 @@ void DocAccessibleWrap::CacheViewportCallback(nsITimer* aTimer,
}
else
if
(
RefPtr
<
SessionAccessibility
>
sessionAcc
=
SessionAccessibility
::
GetInstanceFor
(
docAcc
))
{
nsTArray
<
AccessibleWrap
*>
accessibles
(
inViewAccs
.
Count
());
for
(
auto
iter
=
inViewAccs
.
Iter
();
!
iter
.
Done
();
iter
.
Next
())
{
accessibles
.
AppendElement
(
static_cast
<
AccessibleWrap
*>
(
iter
.
Data
().
get
()));
for
(
const
auto
&
entry
:
inViewAccs
)
{
accessibles
.
AppendElement
(
static_cast
<
AccessibleWrap
*>
(
entry
.
GetWeak
()));
}
sessionAcc
->
ReplaceViewportCache
(
accessibles
);
...
...
@@ -162,8 +169,8 @@ void DocAccessibleWrap::CacheViewportCallback(nsITimer* aTimer,
AccessibleOrProxy
accOrProxy
=
AccessibleOrProxy
(
docAcc
);
a11y
::
Pivot
pivot
(
accOrProxy
);
TraversalRule
rule
(
java
::
SessionAccessibility
::
HTML_GRANULARITY_DEFAULT
);
Accessible
*
first
=
pivot
.
First
(
rule
).
AsAccessible
();
Accessible
*
last
=
pivot
.
Last
(
rule
).
AsAccessible
();
Local
Accessible
*
first
=
pivot
.
First
(
rule
).
AsAccessible
();
Local
Accessible
*
last
=
pivot
.
Last
(
rule
).
AsAccessible
();
// If first/last are null, pass the root document as pivot boundary.
if
(
IPCAccessibilityActive
())
{
...
...
@@ -222,8 +229,8 @@ void DocAccessibleWrap::CacheFocusPath(AccessibleWrap* aAccessible) {
if
(
IPCAccessibilityActive
())
{
DocAccessibleChild
*
ipcDoc
=
IPCDoc
();
nsTArray
<
BatchData
>
cacheData
;
for
(
AccessibleWrap
*
acc
=
aAccessible
;
acc
&&
acc
!=
this
->
Parent
();
acc
=
static_cast
<
AccessibleWrap
*>
(
acc
->
Parent
()))
{
for
(
AccessibleWrap
*
acc
=
aAccessible
;
acc
&&
acc
!=
this
->
Local
Parent
();
acc
=
static_cast
<
AccessibleWrap
*>
(
acc
->
Local
Parent
()))
{
nsAutoString
name
;
acc
->
Name
(
name
);
nsAutoString
textValue
;
...
...
@@ -240,17 +247,17 @@ void DocAccessibleWrap::CacheFocusPath(AccessibleWrap* aAccessible) {
acc
->
Bounds
(),
acc
->
ActionCount
(),
name
,
textValue
,
nodeID
,
description
,
acc
->
CurValue
(),
acc
->
MinValue
(),
acc
->
MaxValue
(),
acc
->
Step
(),
attributes
));
mFocusPath
.
Put
(
acc
->
UniqueID
(),
RefPtr
{
acc
});
mFocusPath
.
InsertOrUpdate
(
acc
->
UniqueID
(),
RefPtr
{
acc
});
}
ipcDoc
->
SendBatch
(
eBatch_FocusPath
,
cacheData
);
}
else
if
(
RefPtr
<
SessionAccessibility
>
sessionAcc
=
SessionAccessibility
::
GetInstanceFor
(
this
))
{
nsTArray
<
AccessibleWrap
*>
accessibles
;
for
(
AccessibleWrap
*
acc
=
aAccessible
;
acc
&&
acc
!=
this
->
Parent
();
acc
=
static_cast
<
AccessibleWrap
*>
(
acc
->
Parent
()))
{
for
(
AccessibleWrap
*
acc
=
aAccessible
;
acc
&&
acc
!=
this
->
Local
Parent
();
acc
=
static_cast
<
AccessibleWrap
*>
(
acc
->
Local
Parent
()))
{
accessibles
.
AppendElement
(
acc
);
mFocusPath
.
Put
(
acc
->
UniqueID
(),
RefPtr
{
acc
});
mFocusPath
.
InsertOrUpdate
(
acc
->
UniqueID
(),
RefPtr
{
acc
});
}
sessionAcc
->
ReplaceFocusPathCache
(
accessibles
);
...
...
@@ -266,7 +273,7 @@ void DocAccessibleWrap::UpdateFocusPathBounds() {
DocAccessibleChild
*
ipcDoc
=
IPCDoc
();
nsTArray
<
BatchData
>
boundsData
(
mFocusPath
.
Count
());
for
(
auto
iter
=
mFocusPath
.
Iter
();
!
iter
.
Done
();
iter
.
Next
())
{
Accessible
*
accessible
=
iter
.
Data
();
Local
Accessible
*
accessible
=
iter
.
Data
();
if
(
!
accessible
||
accessible
->
IsDefunct
())
{
MOZ_ASSERT_UNREACHABLE
(
"Focus path cached accessible is gone."
);
continue
;
...
...
@@ -285,7 +292,7 @@ void DocAccessibleWrap::UpdateFocusPathBounds() {
SessionAccessibility
::
GetInstanceFor
(
this
))
{
nsTArray
<
AccessibleWrap
*>
accessibles
(
mFocusPath
.
Count
());
for
(
auto
iter
=
mFocusPath
.
Iter
();
!
iter
.
Done
();
iter
.
Next
())
{
Accessible
*
accessible
=
iter
.
Data
();
Local
Accessible
*
accessible
=
iter
.
Data
();
if
(
!
accessible
||
accessible
->
IsDefunct
())
{
MOZ_ASSERT_UNREACHABLE
(
"Focus path cached accessible is gone."
);