Commit Graph

1193 Commits

Author SHA1 Message Date
Razvan Maries
c350ad5bd6 Backed out changeset f56d5efc5e43 (bug 1644943) for build bustages on nsFrameLoaderOwner.cpp. CLOSED TREE 2020-06-17 02:55:01 +03:00
Matt Woodrow
645b2bc301 Bug 1644943 - Create single webprogress for CanonicalBrowsingContext, regardless of process the browser element contents are in. r=nika,kmag,Gijs
I think at this point we can remove all of RemoteWebProgressManager, some/all of the TabProgressListener recreations, and probably a bunch more.

Differential Revision: https://phabricator.services.mozilla.com/D79240
2020-06-16 23:24:49 +00:00
Kashav Madan
1a71fed80e Bug 1580766 - Add a unique ID for the BrowsingContext tree inside a browser element. r=kmag
This adds a `browserId` property to all browsing contexts. This ID is the same
for the entire tree of contexts inside a frame element. Each new top-level
context created for a given frame also inherits this ID. This allows identifying
the frame element for a given browsing context.

Originally authored by :mossop in D56245.

Differential Revision: https://phabricator.services.mozilla.com/D77911
2020-06-16 18:12:46 +00:00
Razvan Maries
73dfe9d277 Backed out changeset 585e0230b2d5 (bug 1580766) as requested. CLOSED TREE 2020-06-16 21:01:26 +03:00
Dave Townsend
7a5ade2788 Bug 1580766 - Add a unique ID for the BrowsingContext tree inside a browser element. r=kmag
This adds a `browserId` property to all browsing contexts. This ID is the same
for the entire tree of contexts inside a frame element. Each new top-level
context created for a given frame also inherits this ID. This allows identifying
the frame element for a given browsing context.

Originally authored by :mossop in D56245.

Differential Revision: https://phabricator.services.mozilla.com/D77911
2020-06-16 17:25:16 +00:00
Bogdan Tara
74ca6cc819 Backed out changeset 26231891f004 (bug 1644943) for browser_backforward_userinteraction.js and browser_sessionHistory.js failures CLOSED TREE 2020-06-16 02:46:15 +03:00
Matt Woodrow
d075fa7e08 Bug 1644943 - Create single webprogress for CanonicalBrowsingContext, regardless of process the browser element contents are in. r=nika,kmag,Gijs
I think at this point we can remove all of RemoteWebProgressManager, some/all of the TabProgressListener recreations, and probably a bunch more.

Differential Revision: https://phabricator.services.mozilla.com/D79240
2020-06-15 22:01:34 +00:00
Logan Smyth
25d491b792 Bug 1601179 - Enable async stacks but limit captured async stacks to debuggees. r=jorendorff,smaug
The 'asyncStack' flag on JS execution contexts is used as a general switch
to enable async stack capture across all locations in SpiderMonkey, but
this causes problems because it can at times be too much of a performance
burden to general and track all of these stacks.

Since the introduction of this option, we have only enabled it on Nightly
and DevEdition for non-mobile builds, which has left a lot of users unable
to take advantage of this data while debugging.

This patch enables async stack traces across all of Firefox, but introduces
a new pref to toggle the scope of the actual expensive part of async stacks,
which is _capturing_ them and keeping them alive in memory. The new pref
limits the capturing of async stack traces to only debuggees, unless an
explicit pref is flipped to capture async traces for all cases.

This means that while async stacks are technically enabled, and code could
manually capture a stack and pass it back to SpiderMonkey and see that stack
reflected in later captured stacks, SpiderMonkey itself and related async
DOM APIs, among others, will not capture stacks or pass them to SpiderMonkey,
so there should be no general change in performance by enabling the broader
feature itself, unless the user is actively debugging the page.

One effect of this patch is that if you have the debugger open and then close
it, objects that have async stacks associated with them will retain those
stacks and they will continue to show up in stack traces, no _new_ stacks
will be captured. jorendorff and I have decided that this is okay because
the expectation that the debugger fully revert every possible effect that it
could have on a page is a nice goal but not a strict requirement.

Differential Revision: https://phabricator.services.mozilla.com/D68503
2020-06-14 02:41:45 +00:00
Kartikaya Gupta
65e2a40d98 Bug 1531971 - Make the test wait for the second page to actually paint before attempting to restore the first page from bfcache. r=smaug
The first page's content viewer is only saved in the bfcache when the second
page is painted. This can happen after the load event is fired, and in that
scenario, attempting to go back to the first page will reload it rather than
restore it from the bfcache. So for the test to work properly it needs to
wait until the second page is actually painted before it attempts go back.

Differential Revision: https://phabricator.services.mozilla.com/D79347
2020-06-11 21:19:10 +00:00
Johann Hofmann
20b1b77919 Bug 1515073 - Part 5 - Disable browser.navigation.requireUserInteraction in tests. r=Gijs
Depends on D27588

Differential Revision: https://phabricator.services.mozilla.com/D31604
2020-06-09 14:51:06 +00:00
Johann Hofmann
157f7e64a5 Bug 1515073 - Part 4 - Add test for skipping pages without user interaction on back-forward. r=Gijs
Depends on D27587

Differential Revision: https://phabricator.services.mozilla.com/D27588
2020-06-09 14:50:25 +00:00
Dorel Luca
3e35e21538 Backed out 2 changesets (bug 1580766) for XPCshell failures in unit/test_browsing_context_structured_clone.js. CLOSED TREE
Backed out changeset 6b9926a5ab88 (bug 1580766)
Backed out changeset 3722901b6309 (bug 1580766)
2020-06-09 03:39:22 +03:00
Dave Townsend
9c61384069 Bug 1580766: Add a unique ID for the BrowsingContext tree inside a browser element. r=kmag
Adds a `browserId` property to all browsing contexts which the same for the
entire tree of contexts inside a frame element. If a new top-level context is
created for the frame then it is assigned the same value.

This allows identifying the frame element for a given browsing context.

Currently this is only done for XUL frame elements (browser/iframe). Not sure
if we want this for others.

Differential Revision: https://phabricator.services.mozilla.com/D56245
2020-06-08 21:58:33 +00:00
Razvan Maries
a36bb7751f Backed out 3 changesets (bug 1638153) for perma failures on cross-origin-objects.html. CLOSED TREE
Backed out changeset f7aedc92d396 (bug 1638153)
Backed out changeset 07ec713926c6 (bug 1638153)
Backed out changeset 5a656842e241 (bug 1638153)
2020-06-01 23:51:35 +03:00
Razvan Maries
c5a8f831d4 Backed out changeset 30c061da89d8 (bug 1580766) for perma failures on BrowsingContext.cpp. CLOSED TREE 2020-06-01 21:50:12 +03:00
Kris Maglione
b3fcd970ec Bug 1638153: Part 2 - Fix uses of .rootTreeItem to get top browser window. r=geckoview-reviewers,nika,snorp
Differential Revision: https://phabricator.services.mozilla.com/D75429
2020-06-01 17:59:01 +00:00
Dave Townsend
38ef8fecd1 Bug 1580766: Add a unique ID for the BrowsingContext tree inside a browser element. r=kmag
Adds a `browserId` property to all browsing contexts which the same for the
entire tree of contexts inside a frame element. If a new top-level context is
created for the frame then it is assigned the same value.

This allows identifying the frame element for a given browsing context.

Currently this is only done for XUL frame elements (browser/iframe). Not sure
if we want this for others.

Differential Revision: https://phabricator.services.mozilla.com/D56245
2020-06-01 16:52:31 +00:00
Masatoshi Kimura
b9a2ffc214 Bug 1482279 - Stop using Cu.forcePermissiveCOWs() in SpecialPowers. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D74641
2020-05-31 03:41:03 +00:00
Marco Bonardo
e8fd1b7c50 Bug 1398567 - Invert URIFixup default behavior to search unless the string looks like a URI. r=Gijs
With recent fixes that can properly identify whitelisted domains, whitelisted
domain suffixed, valid known public suffixes, and forcing to visit URI-like
strings that end with a slash, it's time to re-evaluate the URIFixup behavior.
Until now URIFixup considered everything a URI unless it had specific search
characteristics, this patch inverts that behavior.
The scope of this change is to improve the urlbar behavior as the main Search
Access Point, since that's the direction we're moving towards.

This lands with a temporary hidden feature pref browser.fixup.defaultToSearch,
that will be removed once the feature has been released.

Differential Revision: https://phabricator.services.mozilla.com/D76852
2020-05-27 16:55:14 +00:00
Matt Woodrow
5cf1f845a8 Bug 1631405 - Update tests to account for security UI only living in the parent process. r=kmag,ckerschb,webcompat-reviewers,twisniewski
This is mostly changes to handle retrieving the security state asynchronously via the parent process, needing lots of async/await additions.

It also removes the docshell mixed content flag checks (which don't seem to be used in code, only tests), which are mostly still covered by checks of the security UI.

Differential Revision: https://phabricator.services.mozilla.com/D75448
2020-05-27 00:31:25 +00:00
Bogdan Tara
a54ec3073f Backed out 4 changesets (bug 1631405) for multiple mochitest failures CLOSED TREE
Backed out changeset 9963cc0b23cb (bug 1631405)
Backed out changeset 469ac933ed7c (bug 1631405)
Backed out changeset 0c5f55864268 (bug 1631405)
Backed out changeset 20dcbcc2f3b8 (bug 1631405)
2020-05-27 01:30:20 +03:00
Matt Woodrow
d692732bdd Bug 1631405 - Update tests to account for security UI only living in the parent process. r=kmag,ckerschb,webcompat-reviewers,twisniewski
This is mostly changes to handle retrieving the security state asynchronously via the parent process, needing lots of async/await additions.

It also removes the docshell mixed content flag checks (which don't seem to be used in code, only tests), which are mostly still covered by checks of the security UI.

Differential Revision: https://phabricator.services.mozilla.com/D75448
2020-05-26 21:19:28 +00:00
Marco Bonardo
5a5863e4ae Bug 1636583 - Make the urlbar always go through pickResult. r=adw
This changes the urlbar to always generate a result and then confirm it through
pickResult. This way we obtain a consistent behavior independently from whether
the view has a result or an action like Paste&Go happened.
Before this we used to go through getShortcutOrURIAndPostData, that implements
only a part of the urlbar logic, often causing different behavior depending on
the view state, and thus requiring constant maintenance to sync it up.
In a follow-up bug we will evaluate the complete removal of
getShortcutOrURIAndPostData in favor of direct calls to
UrlbarUtils.getHeuristicResultFor().

This also moves up a bit closer to always pass a final url to the docshell, and
stop trying to do complex URIFixup calls in it. For now we still rely
on its fix-ups for browser.fixup.dns_first_for_single_words, where we pass a
url, and if it's invalid it will instead search. See UrlbarUtils.RESULT_TYPE.URL
handling in pickResult().

Differential Revision: https://phabricator.services.mozilla.com/D75911
2020-05-23 13:25:27 +00:00
Marco Bonardo
27e6788fd3 Bug 1636583 - URIFixup should force a visit when an uri-like search string ends with a slash. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D75910
2020-05-23 13:24:44 +00:00
Dorel Luca
1b427eb7aa Backed out 3 changesets (bug 1636583) for Browser-chrome failures in browser/components/urlbar/tests/browser/browser_handleCommand_fallback.js. CLOSED TREE
Backed out changeset a2e636ff03c2 (bug 1636583)
Backed out changeset 660b7de89215 (bug 1636583)
Backed out changeset 9fd142817919 (bug 1636583)
2020-05-22 19:07:07 +03:00
Marco Bonardo
505406e25d Bug 1636583 - Make the urlbar always go through pickResult. r=adw
This changes the urlbar to always generate a result and then confirm it through
pickResult. This way we obtain a consistent behavior independently from whether
the view has a result or an action like Paste&Go happened.
Before this we used to go through getShortcutOrURIAndPostData, that implements
only a part of the urlbar logic, often causing different behavior depending on
the view state, and thus requiring constant maintenance to sync it up.
In a follow-up bug we will evaluate the complete removal of
getShortcutOrURIAndPostData in favor of direct calls to
UrlbarUtils.getHeuristicResultFor().

This also moves up a bit closer to always pass a final url to the docshell, and
stop trying to do complex URIFixup calls in it. For now we still rely
on its fix-ups for browser.fixup.dns_first_for_single_words, where we pass a
url, and if it's invalid it will instead search. See UrlbarUtils.RESULT_TYPE.URL
handling in pickResult().

Differential Revision: https://phabricator.services.mozilla.com/D75911
2020-05-21 15:00:08 +00:00
Marco Bonardo
36118c93a3 Bug 1636583 - URIFixup should force a visit when an uri-like search string ends with a slash. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D75910
2020-05-21 14:58:15 +00:00
Sid Stamm
a69fe1db1b Bug 1002724 - Test that HTTPS is tried if typed host name doesn't respond via HTTP. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D75085
2020-05-21 17:33:30 +00:00
Tim Huang
f522897351 Bug 1639195 - Part 2: Add a test. r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D75966
2020-05-19 18:59:36 +00:00
Noemi Erli
c1cca03e21 Backed out 6 changesets (bug 1002724) for failing in browser_fall_back_to_https.js CLOSED TREE
Backed out changeset e487b4cd9223 (bug 1002724)
Backed out changeset 37473a8ba1fd (bug 1002724)
Backed out changeset e868f1e0af0e (bug 1002724)
Backed out changeset 1c57f8717b15 (bug 1002724)
Backed out changeset 782808a05ff8 (bug 1002724)
Backed out changeset c60c48d170e1 (bug 1002724)
2020-05-18 19:22:19 +03:00
Sid Stamm
4f2852cbc8 Bug 1002724 - Test that HTTPS is tried if typed host name doesn't respond via HTTP. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D75085
2020-05-18 15:08:32 +00:00
Csoregi Natalia
179b0c82b2 Backed out 6 changesets (bug 1002724) for bustage on nsDocShell.cpp. CLOSED TREE
Backed out changeset 56ba616e2644 (bug 1002724)
Backed out changeset d481cf074d3b (bug 1002724)
Backed out changeset da26540ecee5 (bug 1002724)
Backed out changeset 01cbf611158a (bug 1002724)
Backed out changeset b60ba645f1f4 (bug 1002724)
Backed out changeset 4ebad0d2ca0a (bug 1002724)
2020-05-18 16:06:55 +03:00
Sid Stamm
0cc5d3ea23 Bug 1002724 - Test that HTTPS is tried if typed host name doesn't respond via HTTP. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D75085
2020-05-15 18:42:15 +00:00
Dan Glastonbury
27835d15d1 Bug 1637472 - Refactor to set customUserAgent from Parent process. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D75007
2020-05-15 14:12:22 +00:00
Marco Bonardo
b53ba0122e Bug 1634650 - Add whitelisting of domain suffixes for URIFixup. r=harry
Differential Revision: https://phabricator.services.mozilla.com/D74015
2020-05-13 16:05:04 +00:00
Dorel Luca
bdddaad896 Backed out changeset 57d78ba110be (bug 1634650) for marionette failures in migration/tests/marionette/test_refresh_firefox.py. CLOSED TREE 2020-05-07 19:36:39 +03:00
Marco Bonardo
410cff4774 Bug 1634650 - Add whitelisting of domain suffixes for URIFixup. r=harry
Differential Revision: https://phabricator.services.mozilla.com/D74015
2020-05-07 08:42:10 +00:00
Ian Moody
011b59d595 Bug 1536556 - Replace raw thrown Cr.ERRORs with Components.Exception. r=mossop,remote-protocol-reviewers,marionette-reviewers,whimboo,necko-reviewers,geckoview-reviewers,valentin,agi
Raw Cr.ERROR don't get stack information, same as throwing JS literals instead
of `new Error()`s.

This was done automatically with a new eslint rule that will be introduced in
the next commit.  One instance of a raw Cr.ERROR was not replaced since it is
used in a test that specifically checks the preservation of raw Cr values in
XPCJS.  The rule will be disabled for that instance.

Differential Revision: https://phabricator.services.mozilla.com/D28073
2020-05-05 17:41:36 +00:00
Gijs Kruitbosch
7073bb6903 Bug 1634075 - back out changeset 0aa77ee04caa (bug 1583696) over regressions with overly long non-wrapping prompt text and visual appearance with lightweight themes, r=MattN
Things that were broken:

- prompts become unreadable when using dark-background lwthemes, because they
  keep the window text-shadow (due to the namespace change of tabmodalprompt)
- prompts with long text without word-wrap possibilities
  (e.g. `alert("x".repeat(1000))`) cause the text to escape its container.

Differential Revision: https://phabricator.services.mozilla.com/D73131
2020-04-29 20:30:37 +00:00
Jean-Yves Avenard
071771cdc7 Bug 1633319 - Wait for load before resolving promise. r=Gijs,zombie
Differential Revision: https://phabricator.services.mozilla.com/D72593
2020-04-27 22:42:25 +00:00
Jean-Yves Avenard
ff4bc77f97 Bug 1607984 - P12-4. Start parent load via DocumentChannel. r=mayhemer,nika,mattwoodrow,necko-reviewers
Add ParentProcessDocumentChannel object. This object is a DocumentChannel that will start a channel load from the parent process via a DocumentChannel.

The aim of this task is two-fold.
1- Be consistent on how we handle redirects before continuing the load on the final channel.
2- Prepare to initiate a process switch when needed without having to go via an intermediary content process, saving a process switch. This task will be done in a follow-up task.

The behaviour of the ParentProcessDocumentChannel is similar in logic to the DocumentChannelChild/DocumentChannelParent pair. The ParentProcessDocumentChannel sets up a DocumentLoadListener, have it handle the redirects and upon completion continue the load on the final channel.

Differential Revision: https://phabricator.services.mozilla.com/D70009
2020-04-24 01:58:23 +00:00
Tim Nguyen
059c4f1854 Bug 1583696 - Remove XUL grid from toolkit/components/prompts/content/tabprompts.jsm. r=MattN,marionette-reviewers,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D61442
2020-04-23 09:48:17 +00:00
Csoregi Natalia
448f2f3c76 Backed out 16 changesets (bug 1607984) for leaks on browser_ext_webRequest.js. CLOSED TREE
Backed out changeset 6c6ffa908c06 (bug 1607984)
Backed out changeset e973911e67e6 (bug 1607984)
Backed out changeset 28af6418ac16 (bug 1607984)
Backed out changeset 9a15a605f91a (bug 1607984)
Backed out changeset 52566b3564ba (bug 1607984)
Backed out changeset 142148a95181 (bug 1607984)
Backed out changeset 108e2cb6b2a9 (bug 1607984)
Backed out changeset 77fda525ee12 (bug 1607984)
Backed out changeset 980067f3ac1d (bug 1607984)
Backed out changeset 12b82a39c910 (bug 1607984)
Backed out changeset 7657023a763b (bug 1607984)
Backed out changeset 1ab8758802a6 (bug 1607984)
Backed out changeset 35f22d0817e1 (bug 1607984)
Backed out changeset b8c6277207d8 (bug 1607984)
Backed out changeset 244d3cb006be (bug 1607984)
Backed out changeset 9fc1a237829c (bug 1607984)
2020-04-23 11:49:51 +03:00
Jean-Yves Avenard
faa627b41e Bug 1607984 - P12. Start parent load via DocumentChannel. r=mayhemer,nika,mattwoodrow,necko-reviewers
Add ParentProcessDocumentChannel object. This object is a DocumentChannel that will start a channel load from the parent process via a DocumentChannel.

The aim of this task is two-fold.
1- Be consistent on how we handle redirects before continuing the load on the final channel.
2- Prepare to initiate a process switch when needed without having to go via an intermediary content process, saving a process switch. This task will be done in a follow-up task.

The behaviour of the ParentProcessDocumentChannel is similar in logic to the DocumentChannelChild/DocumentChannelParent pair.
The ParentProcessDocumentChannel sets up a DocumentLoadListener, have it handle the redirects and upon completion continue the load on the final channel.

Differential Revision: https://phabricator.services.mozilla.com/D70009
2020-04-23 03:29:22 +00:00
Andreea Pavel
b9c773a74f Backed out changeset 2f06fd7ef8b6 (bug 1583696) for failing test_bug619644.html on a CLOSED TREE 2020-04-23 05:16:18 +03:00
Andreea Pavel
cac786a35c Backed out 16 changesets (bug 1607984) for multiple test failures e.g test timeouts on a CLOSED TREE
Backed out changeset 4509808243f5 (bug 1607984)
Backed out changeset 0cb21bedf65f (bug 1607984)
Backed out changeset 4e5d89f68293 (bug 1607984)
Backed out changeset 0c0169ed4f04 (bug 1607984)
Backed out changeset ce527a6ffba4 (bug 1607984)
Backed out changeset 63175f596762 (bug 1607984)
Backed out changeset 107be8f3737d (bug 1607984)
Backed out changeset d7600d4d3528 (bug 1607984)
Backed out changeset e11b1b0ecfbf (bug 1607984)
Backed out changeset bed3f6bee79e (bug 1607984)
Backed out changeset abe692da4556 (bug 1607984)
Backed out changeset e02b12515d60 (bug 1607984)
Backed out changeset 7a2ef225a41e (bug 1607984)
Backed out changeset c173bde5106b (bug 1607984)
Backed out changeset dc8b37e10dc7 (bug 1607984)
Backed out changeset 09a651daf344 (bug 1607984)
2020-04-23 03:47:24 +03:00
Tim Nguyen
09f305d392 Bug 1583696 - Remove XUL grid from toolkit/components/prompts/content/tabprompts.jsm. r=MattN,marionette-reviewers,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D61442
2020-04-22 23:46:35 +00:00
Jean-Yves Avenard
fce4dd9e1f Bug 1607984 - P12. Start parent load via DocumentChannel. r=mayhemer,nika,mattwoodrow,necko-reviewers
Add ParentProcessDocumentChannel object. This object is a DocumentChannel that will start a channel load from the parent process via a DocumentChannel.

The aim of this task is two-fold.
1- Be consistent on how we handle redirects before continuing the load on the final channel.
2- Prepare to initiate a process switch when needed without having to go via an intermediary content process, saving a process switch. This task will be done in a follow-up task.

The behaviour of the ParentProcessDocumentChannel is similar in logic to the DocumentChannelChild/DocumentChannelParent pair.
The ParentProcessDocumentChannel sets up a DocumentLoadListener, have it handle the redirects and upon completion continue the load on the final channel.

Differential Revision: https://phabricator.services.mozilla.com/D70009
2020-04-22 10:27:11 +00:00
Marco Bonardo
45a8a38b0b Bug 1080682 - Use the Public Suffix List to distinguish foo.bar searches in URIFixup (and consequently the Address Bar). r=Gijs,dao
Use the PSL list to evaluate whether user typed strings in urlbar are valid URLs.
Cleanup the URIFixupInfo.fixupChangedProtocol property to be set appropriately.
Auto-correct the most common suffix typos for com, net, org.

Stop using URIFixup to trim urls when the urlbar value is set, instead always trim,
then untrim on focus if the trimmed string would cause, on navigation, a search
instead of a visit. This saves us from doing the URIfixup work on page load and
tab switch, running it only when strictly necessary.

Fix the "Did you mean to go to" prompt to show a protocol, avoiding the
confusing (but funny) "did you mean to go to 'space'" prompts.

Differential Revision: https://phabricator.services.mozilla.com/D68796
2020-04-20 12:39:08 +00:00
Stefan Hindli
fb36126f61 Backed out 15 changesets (bug 1607984) for causing very frequent reftest faiures CLOSED TREE
Backed out changeset 5497c90b03de (bug 1607984)
Backed out changeset 71dffa590c10 (bug 1607984)
Backed out changeset fdacabac2c54 (bug 1607984)
Backed out changeset 5f9fe17e46b8 (bug 1607984)
Backed out changeset 8f9058eb821d (bug 1607984)
Backed out changeset 025af7792f2a (bug 1607984)
Backed out changeset c7edd070b2f3 (bug 1607984)
Backed out changeset 8e7c95d322e8 (bug 1607984)
Backed out changeset e51f6b7a745c (bug 1607984)
Backed out changeset 979d99eb12d1 (bug 1607984)
Backed out changeset f554d4ce6718 (bug 1607984)
Backed out changeset fe84e5c64b4e (bug 1607984)
Backed out changeset 05d2032060db (bug 1607984)
Backed out changeset 07ce7b11fee9 (bug 1607984)
Backed out changeset 718d89be09d2 (bug 1607984)
2020-04-15 18:33:24 +03:00