Skip to content
GitLab
Menu
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
a5efefd4
Commit
a5efefd4
authored
Aug 23, 2021
by
Carsten Schoenert
Browse files
New upstream version 91.0.2
parent
5c87a00f
Changes
695
Hide whitespace changes
Inline
Side-by-side
accessible/atk/AccessibleWrap.cpp
View file @
a5efefd4
...
...
@@ -636,6 +636,10 @@ AtkRole getRoleCB(AtkObject* aAtkObj) {
}
static
AtkAttributeSet
*
ConvertToAtkAttributeSet
(
AccAttributes
*
aAttributes
)
{
if
(
!
aAttributes
)
{
return
nullptr
;
}
AtkAttributeSet
*
objAttributeSet
=
nullptr
;
for
(
auto
iter
:
*
aAttributes
)
{
...
...
browser/base/content/tabbrowser.css
View file @
a5efefd4
...
...
@@ -42,6 +42,11 @@
.tab-label
{
white-space
:
nowrap
;
line-height
:
1.7
;
/* override 'normal' in case of fallback math fonts with huge metrics */
}
.tab-secondary-label
{
margin
:
-.3em
0
.3em
;
/* adjust margins to compensate for line-height of .tab-label */
}
.tab-label-container
{
...
...
browser/components/urlbar/UrlbarProviderInputHistory.jsm
View file @
a5efefd4
...
...
@@ -20,6 +20,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
PlacesUtils: "resource://gre/modules/PlacesUtils.jsm",
UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm",
UrlbarProvider: "resource:///modules/UrlbarUtils.jsm",
UrlbarProviderOpenTabs: "resource:///modules/UrlbarProviderOpenTabs.jsm",
UrlbarResult: "resource:///modules/UrlbarResult.jsm",
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
});
...
...
@@ -197,7 +198,10 @@ class ProviderInputHistory extends UrlbarProvider {
search_string: queryContext.searchString,
matchBehavior: Ci.mozIPlacesAutoComplete.MATCH_ANYWHERE,
searchBehavior: UrlbarPrefs.get("defaultBehavior"),
userContextId: queryContext.userContextId,
userContextId: UrlbarProviderOpenTabs.getUserContextIdForOpenPagesTable(
queryContext.userContextId,
queryContext.isPrivate
),
maxResults: queryContext.maxResults,
},
];
...
...
browser/components/urlbar/UrlbarProviderQuickSuggest.jsm
View file @
a5efefd4
...
...
@@ -242,10 +242,14 @@ class ProviderQuickSuggest extends UrlbarProvider {
sponsoredBlockId,
} = result.payload;
// impression
//
// Set `search_query` and `matched_keywords` to empty string, both of
// them are required fields for the impression, so we need to keep them
// in the payload. See bug 1725492 for more details.
PartnerLinkAttribution.sendContextualServicesPing(
{
search_query:
details.searchString
,
matched_keywords:
details.searchString
,
search_query:
""
,
matched_keywords:
""
,
advertiser: sponsoredAdvertiser,
block_id: sponsoredBlockId,
position: telemetryResultIndex,
...
...
browser/components/urlbar/tests/browser/browser_inputHistory.js
View file @
a5efefd4
...
...
@@ -7,7 +7,15 @@
"
use strict
"
;
async
function
bumpScore
(
uri
,
searchString
,
counts
,
useMouseClick
=
false
)
{
let
win
;
async
function
bumpScore
(
uri
,
searchString
,
counts
,
useMouseClick
=
false
,
needToLoad
=
false
)
{
if
(
counts
.
visits
)
{
let
visits
=
new
Array
(
counts
.
visits
).
fill
(
uri
);
await
PlacesTestUtils
.
addVisits
(
visits
);
...
...
@@ -15,22 +23,24 @@ async function bumpScore(uri, searchString, counts, useMouseClick = false) {
if
(
counts
.
picks
)
{
for
(
let
i
=
0
;
i
<
counts
.
picks
;
++
i
)
{
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
,
window
:
win
,
value
:
searchString
,
});
let
promise
=
BrowserTestUtils
.
waitForDocLoadAndStopIt
(
uri
,
gBrowser
.
selectedBrowser
);
let
promise
=
needToLoad
?
BrowserTestUtils
.
browserLoaded
(
win
.
gBrowser
.
selectedBrowser
)
:
BrowserTestUtils
.
waitForDocLoadAndStopIt
(
uri
,
win
.
gBrowser
.
selectedBrowser
);
// Look for the expected uri.
while
(
gURLBar
.
untrimmedValue
!=
uri
)
{
EventUtils
.
synthesizeKey
(
"
KEY_ArrowDown
"
);
while
(
win
.
gURLBar
.
untrimmedValue
!=
uri
)
{
EventUtils
.
synthesizeKey
(
"
KEY_ArrowDown
"
,
{},
win
);
}
if
(
useMouseClick
)
{
let
element
=
UrlbarTestUtils
.
getSelectedRow
(
win
dow
);
EventUtils
.
synthesizeMouseAtCenter
(
element
,
{});
let
element
=
UrlbarTestUtils
.
getSelectedRow
(
win
);
EventUtils
.
synthesizeMouseAtCenter
(
element
,
{}
,
win
);
}
else
{
EventUtils
.
synthesizeKey
(
"
KEY_Enter
"
);
EventUtils
.
synthesizeKey
(
"
KEY_Enter
"
,
{},
win
);
}
await
promise
;
}
...
...
@@ -44,6 +54,9 @@ async function decayInputHistory() {
}
add_task
(
async
function
setup
()
{
// Use new window to avoid timeout failure for autocomplete popup happens on Linux TV.
win
=
await
BrowserTestUtils
.
openNewBrowserWindow
();
await
SpecialPowers
.
pushPrefEnv
({
set
:
[
// We don't want autofill to influence this test.
...
...
@@ -51,6 +64,9 @@ add_task(async function setup() {
],
});
registerCleanupFunction
(
async
()
=>
{
await
BrowserTestUtils
.
closeWindow
(
win
);
// Avoid memory leaking, need to set null explicitly.
win
=
null
;
await
PlacesUtils
.
history
.
clear
();
await
PlacesUtils
.
bookmarks
.
eraseEverything
();
});
...
...
@@ -65,12 +81,12 @@ add_task(async function test_adaptive_with_search_terms() {
await
bumpScore
(
url1
,
"
si
"
,
{
visits
:
3
,
picks
:
3
});
await
bumpScore
(
url2
,
"
site
"
,
{
visits
:
3
,
picks
:
3
});
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
,
window
:
win
,
value
:
"
si
"
,
});
let
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
1
);
let
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
1
);
Assert
.
equal
(
result
.
url
,
url1
,
"
Check first result
"
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
2
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
2
);
Assert
.
equal
(
result
.
url
,
url2
,
"
Check second result
"
);
info
(
...
...
@@ -80,12 +96,12 @@ add_task(async function test_adaptive_with_search_terms() {
await
bumpScore
(
url1
,
"
site
"
,
{
visits
:
3
,
picks
:
3
});
await
bumpScore
(
url2
,
"
si
"
,
{
visits
:
3
,
picks
:
3
});
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
,
window
:
win
,
value
:
"
si
"
,
});
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
1
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
1
);
Assert
.
equal
(
result
.
url
,
url2
,
"
Check first result
"
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
2
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
2
);
Assert
.
equal
(
result
.
url
,
url1
,
"
Check second result
"
);
info
(
"
Same visit count, different picks, both exact match
"
);
...
...
@@ -93,12 +109,12 @@ add_task(async function test_adaptive_with_search_terms() {
await
bumpScore
(
url1
,
"
si
"
,
{
visits
:
3
,
picks
:
3
});
await
bumpScore
(
url2
,
"
si
"
,
{
visits
:
3
,
picks
:
1
});
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
,
window
:
win
,
value
:
"
si
"
,
});
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
1
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
1
);
Assert
.
equal
(
result
.
url
,
url1
,
"
Check first result
"
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
2
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
2
);
Assert
.
equal
(
result
.
url
,
url2
,
"
Check second result
"
);
info
(
"
Same visit count, different picks, both exact match, invert
"
);
...
...
@@ -106,12 +122,12 @@ add_task(async function test_adaptive_with_search_terms() {
await
bumpScore
(
url1
,
"
si
"
,
{
visits
:
3
,
picks
:
1
});
await
bumpScore
(
url2
,
"
si
"
,
{
visits
:
3
,
picks
:
3
});
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
,
window
:
win
,
value
:
"
si
"
,
});
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
1
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
1
);
Assert
.
equal
(
result
.
url
,
url2
,
"
Check first result
"
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
2
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
2
);
Assert
.
equal
(
result
.
url
,
url1
,
"
Check second result
"
);
info
(
"
Same visit count, different picks, both partial match
"
);
...
...
@@ -119,12 +135,12 @@ add_task(async function test_adaptive_with_search_terms() {
await
bumpScore
(
url1
,
"
site
"
,
{
visits
:
3
,
picks
:
3
});
await
bumpScore
(
url2
,
"
site
"
,
{
visits
:
3
,
picks
:
1
});
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
,
window
:
win
,
value
:
"
si
"
,
});
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
1
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
1
);
Assert
.
equal
(
result
.
url
,
url1
,
"
Check first result
"
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
2
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
2
);
Assert
.
equal
(
result
.
url
,
url2
,
"
Check second result
"
);
info
(
"
Same visit count, different picks, both partial match, invert
"
);
...
...
@@ -132,12 +148,12 @@ add_task(async function test_adaptive_with_search_terms() {
await
bumpScore
(
url1
,
"
site
"
,
{
visits
:
3
,
picks
:
1
});
await
bumpScore
(
url2
,
"
site
"
,
{
visits
:
3
,
picks
:
3
});
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
,
window
:
win
,
value
:
"
si
"
,
});
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
1
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
1
);
Assert
.
equal
(
result
.
url
,
url2
,
"
Check first result
"
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
2
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
2
);
Assert
.
equal
(
result
.
url
,
url1
,
"
Check second result
"
);
});
...
...
@@ -151,12 +167,12 @@ add_task(async function test_adaptive_with_decay() {
await
decayInputHistory
();
await
bumpScore
(
url2
,
"
si
"
,
{
visits
:
3
,
picks
:
3
});
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
,
window
:
win
,
value
:
"
si
"
,
});
let
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
1
);
let
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
1
);
Assert
.
equal
(
result
.
url
,
url2
,
"
Check first result
"
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
2
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
2
);
Assert
.
equal
(
result
.
url
,
url1
,
"
Check second result
"
);
info
(
"
Same visit count, same picks, both exact match, decay second
"
);
...
...
@@ -165,12 +181,12 @@ add_task(async function test_adaptive_with_decay() {
await
decayInputHistory
();
await
bumpScore
(
url1
,
"
si
"
,
{
visits
:
3
,
picks
:
3
});
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
,
window
:
win
,
value
:
"
si
"
,
});
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
1
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
1
);
Assert
.
equal
(
result
.
url
,
url1
,
"
Check first result
"
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
2
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
2
);
Assert
.
equal
(
result
.
url
,
url2
,
"
Check second result
"
);
});
...
...
@@ -184,12 +200,12 @@ add_task(async function test_adaptive_limited() {
await
decayInputHistory
();
await
bumpScore
(
url2
,
"
si
"
,
{
visits
:
3
,
picks
:
3
});
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
,
window
:
win
,
value
:
"
si
"
,
});
let
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
1
);
let
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
1
);
Assert
.
equal
(
result
.
url
,
url2
,
"
Check first result
"
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
2
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
2
);
Assert
.
equal
(
result
.
url
,
url1
,
"
Check second result
"
);
info
(
"
Same visit count, same picks, both exact match, decay second
"
);
...
...
@@ -198,12 +214,12 @@ add_task(async function test_adaptive_limited() {
await
decayInputHistory
();
await
bumpScore
(
url1
,
"
si
"
,
{
visits
:
3
,
picks
:
3
});
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
,
window
:
win
,
value
:
"
si
"
,
});
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
1
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
1
);
Assert
.
equal
(
result
.
url
,
url1
,
"
Check first result
"
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
2
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
2
);
Assert
.
equal
(
result
.
url
,
url2
,
"
Check second result
"
);
});
...
...
@@ -233,17 +249,17 @@ add_task(async function test_adaptive_limited() {
// After 1 heuristic and 3 input history results.
let
expectedBookmarkIndex
=
4
;
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
,
window
:
win
,
value
:
"
site
"
,
});
let
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
win
,
expectedBookmarkIndex
);
Assert
.
equal
(
result
.
url
,
url
,
"
Check bookmarked result
"
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
n
-
1
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
n
-
1
);
Assert
.
equal
(
UrlbarTestUtils
.
getResultCount
(
win
dow
),
UrlbarTestUtils
.
getResultCount
(
win
),
n
,
"
Check all the results are filled
"
);
...
...
@@ -280,14 +296,14 @@ add_task(async function test_adaptive_behaviors() {
],
});
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
,
window
:
win
,
value
:
"
site
"
,
});
let
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
1
);
let
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
1
);
Assert
.
equal
(
result
.
url
,
url
,
"
Check bookmarked result
"
);
Assert
.
equal
(
UrlbarTestUtils
.
getResultCount
(
win
dow
),
UrlbarTestUtils
.
getResultCount
(
win
),
2
,
"
Check there are no unexpected results
"
);
...
...
@@ -308,12 +324,12 @@ add_task(async function test_adaptive_mouse() {
await
bumpScore
(
url1
,
"
site
"
,
{
visits
:
3
,
picks
:
3
},
true
);
await
bumpScore
(
url2
,
"
site
"
,
{
visits
:
3
,
picks
:
1
},
true
);
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
,
window
:
win
,
value
:
"
si
"
,
});
let
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
1
);
let
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
1
);
Assert
.
equal
(
result
.
url
,
url1
,
"
Check first result
"
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
2
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
2
);
Assert
.
equal
(
result
.
url
,
url2
,
"
Check second result
"
);
info
(
"
Same visit count, different picks, invert
"
);
...
...
@@ -321,12 +337,12 @@ add_task(async function test_adaptive_mouse() {
await
bumpScore
(
url1
,
"
site
"
,
{
visits
:
3
,
picks
:
1
},
true
);
await
bumpScore
(
url2
,
"
site
"
,
{
visits
:
3
,
picks
:
3
},
true
);
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
,
window
:
win
,
value
:
"
si
"
,
});
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
1
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
1
);
Assert
.
equal
(
result
.
url
,
url2
,
"
Check first result
"
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
2
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
2
);
Assert
.
equal
(
result
.
url
,
url1
,
"
Check second result
"
);
});
...
...
@@ -345,17 +361,76 @@ add_task(async function test_adaptive_searchmode() {
await
bumpScore
(
url1
,
"
site
"
,
{
visits
:
3
,
picks
:
3
},
true
);
await
bumpScore
(
url2
,
"
site
"
,
{
visits
:
3
,
picks
:
1
},
true
);
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
,
window
:
win
,
value
:
"
si
"
,
});
let
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
1
);
let
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
1
);
Assert
.
equal
(
result
.
url
,
url1
,
"
Check first result
"
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
dow
,
2
);
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
win
,
2
);
Assert
.
equal
(
result
.
url
,
url2
,
"
Check second result
"
);
info
(
"
Entering search mode.
"
);
// enterSearchMode checks internally that our site.tld URLs are not shown.
await
UrlbarTestUtils
.
enterSearchMode
(
win
dow
,
{
await
UrlbarTestUtils
.
enterSearchMode
(
win
,
{
engineName
:
suggestionsEngine
.
name
,
});
await
Services
.
search
.
removeEngine
(
suggestionsEngine
);
});
add_task
(
async
function
test_adaptive_history_in_privatewindow
()
{
info
(
"
Check adaptive history is not shown in private window as tab switching candidate.
"
);
await
PlacesUtils
.
history
.
clear
();
info
(
"
Add a test url as an input history.
"
);
const
url
=
"
http://example.com/
"
;
// We need to wait for loading the page in order to register the url into
// moz_openpages_temp table.
await
bumpScore
(
url
,
"
exa
"
,
{
visits
:
1
,
picks
:
1
},
false
,
true
);
info
(
"
Check the url could be registered properly.
"
);
const
connection
=
await
PlacesUtils
.
promiseLargeCacheDBConnection
();
const
rows
=
await
connection
.
executeCached
(
"
SELECT userContextId FROM moz_openpages_temp WHERE url = :url
"
,
{
url
}
);
Assert
.
equal
(
rows
.
length
,
1
,
"
Length of rows for the url is 1.
"
);
Assert
.
greaterOrEqual
(
rows
[
0
].
getResultByName
(
"
userContextId
"
),
0
,
"
The url is registered as non-private-browsing context.
"
);
info
(
"
Open popup in private window.
"
);
const
privateWindow
=
await
BrowserTestUtils
.
openNewBrowserWindow
({
private
:
true
,
});
await
UrlbarTestUtils
.
promiseAutocompleteResultPopup
({
window
:
privateWindow
,
value
:
"
ex
"
,
});
info
(
"
Check the popup results.
"
);
let
hasResult
=
false
;
for
(
let
i
=
0
;
i
<
UrlbarTestUtils
.
getResultCount
(
privateWindow
);
i
++
)
{
const
result
=
await
UrlbarTestUtils
.
getDetailsOfResultAt
(
privateWindow
,
i
);
if
(
result
.
url
!==
url
)
{
continue
;
}
Assert
.
notEqual
(
result
.
type
,
UrlbarUtils
.
RESULT_TYPE
.
TAB_SWITCH
,
"
Result type of the url is not for tab switch.
"
);
hasResult
=
true
;
}
Assert
.
ok
(
hasResult
,
"
Popup has a result for the url.
"
);
await
BrowserTestUtils
.
closeWindow
(
privateWindow
);
});
browser/components/urlbar/tests/browser/browser_urlbar_telemetry_quicksuggest.js
View file @
a5efefd4
...
...
@@ -415,13 +415,13 @@ function assertCustomImpression(index) {
Assert
.
equal
(
payload
.
position
,
index
+
1
,
"
Should set the position
"
);
Assert
.
equal
(
payload
.
search_query
,
TEST_SEARCH_STRING
,
"
Should set the search_query
"
""
,
"
Should set the search_query
to an empty string
"
);
Assert
.
equal
(
payload
.
matched_keywords
,
TEST_SEARCH_STRING
,
"
Should set the matched_keywords
"
""
,
"
Should set the matched_keywords
to an empty string
"
);
}
...
...
browser/config/version.txt
View file @
a5efefd4
91.0
91.0
.1
browser/config/version_display.txt
View file @
a5efefd4
91.0esr
91.0
.1
esr
comm/.gecko_rev.yml
View file @
a5efefd4
---
GECKO_BASE_REPOSITORY
:
https://hg.mozilla.org/mozilla-unified
GECKO_HEAD_REPOSITORY
:
https://hg.mozilla.org/releases/mozilla-esr91
GECKO_HEAD_REF
:
FIREFOX_91_0esr_
BUILD2
GECKO_HEAD_REV
:
42e1acb39affae65d50ced864d28672d67aa0181
GECKO_HEAD_REF
:
FIREFOX_91_0
_1
esr_
RELEASE
GECKO_HEAD_REV
:
8046f1ae74749dd164478750e0d7a0d529313403
### For comm-central
# GECKO_BASE_REPOSITORY: https://hg.mozilla.org/mozilla-unified
...
...
comm/calendar/base/content/calendar-chrome-startup.js
View file @
a5efefd4
...
...
@@ -571,7 +571,7 @@ function customizeMailToolbarForTabType() {
function
initViewCalendarPaneMenu
()
{
let
calSidebar
=
document
.
getElementById
(
"
calSidebar
"
);
document
.
getElementById
(
"
calViewCalendarPane
"
).
checked
=
!
calSidebar
.
collapsed
;
document
.
getElementById
(
"
calViewCalendarPane
"
).
setAttribute
(
"
checked
"
,
!
calSidebar
.
collapsed
)
;
if
(
document
.
getElementById
(
"
appmenu_calViewCalendarPane
"
))
{
document
.
getElementById
(
"
appmenu_calViewCalendarPane
"
).
checked
=
!
calSidebar
.
collapsed
;
...
...
comm/calendar/base/src/calApplicationUtils.js
View file @
a5efefd4
...
...
@@ -30,6 +30,12 @@ function launchBrowser(url, event) {
return
;
}
if
(
/^mid:/i
.
test
(
url
))
{
let
{
MailUtils
}
=
ChromeUtils
.
import
(
"
resource:///modules/MailUtils.jsm
"
);
MailUtils
.
openMessageByMessageId
(
url
.
slice
(
4
));
return
;
}
Cc
[
"
@mozilla.org/uriloader/external-protocol-service;1
"
]
.
getService
(
Ci
.
nsIExternalProtocolService
)
.
loadURI
(
Services
.
io
.
newURI
(
url
));
...
...
comm/calendar/base/themes/common/calendar.css
View file @
a5efefd4
...
...
@@ -119,10 +119,13 @@
/* iMIP notification bar */
.calendar-notification-bar
{
background-color
:
#baeeff
;
color
:
#000
;
padding
:
3px
;
}
:root
[
lwt-tree-brighttext
]
.calendar-notification-bar
{
background-color
:
#464cb9
;
}
.calendar-notification-bar
{
margin
:
0
4px
4px
;
border-radius
:
4px
;
...
...
@@ -130,9 +133,7 @@
}
:root
[
lwt-tree
]
#imip-view-toolbar
{
--imip-button-color
:
var
(
--toolbar-color
);
--imip-button-background
:
var
(
--toolbar-bgcolor
);
color
:
var
(
--lwt-text-color
);
}
#imip-bar
>
img
{
...
...
comm/calendar/base/themes/linux/calendar.css
View file @
a5efefd4
...
...
@@ -60,6 +60,5 @@
}
#imip-view-toolbar
{
--imip-button-color
:
WindowText
;
--imip-button-background
:
AppWorkspace
;
}
comm/calendar/base/themes/osx/calendar.css
View file @
a5efefd4
...
...
@@ -20,7 +20,6 @@
}
#imip-view-toolbar
{
--imip-button-color
:
-moz-DialogText
;
--imip-button-background
:
#fff
;
}
...
...
comm/calendar/base/themes/windows/calendar.css
View file @
a5efefd4
...
...
@@ -66,7 +66,6 @@
}
#imip-view-toolbar
{
--imip-button-color
:
WindowText
;
--imip-button-background
:
ButtonFace
;
}
...
...
comm/ldap/modules/LDAPClient.jsm
View file @
a5efefd4
...
...
@@ -3,6 +3,8 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
const EXPORTED_SYMBOLS = ["LDAPClient"];
var { setTimeout } = ChromeUtils.import("resource://gre/modules/Timer.jsm");
var {
AbandonRequest,
BindRequest,
...
...
@@ -32,6 +34,8 @@ class LDAPClient {
maxLogLevel: "Warn",
maxLogLevelPref: "mailnews.ldap.loglevel",
});
this._dataEventsQueue = [];
}
connect() {
...
...
@@ -132,10 +136,16 @@ class LDAPClient {
};
/**
* The data event handler.
* The data event handler. Server may send multiple data events after a
* search, we want to handle them asynchonosly and in sequence.
* @param {TCPSocketEvent} event - The data event.
*/
_onData = event => {
_onData = async event => {
if (this._processingData) {
this._dataEventsQueue.push(event);
return;
}
this._processingData = true;
let data = event.data;