Commit Graph

4001 Commits

Author SHA1 Message Date
Paul Zuehlcke
89b9ce04f7 Bug 1735746 - Block external protocol navigation from sandboxed contexts. r=nika,ckerschb,Gijs,smaug
Differential Revision: https://phabricator.services.mozilla.com/D141131
2022-04-20 11:06:50 +00:00
Andreas Farre
4a384c5081 Bug 1739450 - Part 2: Collect session history when wireframes are collected. r=peterv,mconley
Because wireframes are collected together with the session history
entry for its docshell, we need to collect session history to make
sure that collected wireframes show up.

Differential Revision: https://phabricator.services.mozilla.com/D143368
2022-04-19 15:19:22 +00:00
Andreas Farre
ea19a48880 Bug 1739450 - Part 1: Move ownership of session store scroll and form data to platform. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D130389
2022-04-19 15:19:22 +00:00
Olli Pettay
3bacd66749 Bug 1763617, GetPerformance may return null, so null-check it before use in bfcache, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D143506
2022-04-19 13:34:52 +00:00
Mike Conley
360fc14ba5 Bug 1764790 - Remove TopLevelNavigationDelegate support. r=nika
Depends on D143926

Differential Revision: https://phabricator.services.mozilla.com/D143927
2022-04-18 17:46:10 +00:00
Mike Conley
3970205f09 Bug 1763672 - Introduce targetTopLevelLinkClicksToBlank on BrowsingContext. r=nika
This property defaults to false. When set to true, user-initiated link clicks in
the top-level BrowsingContext will default target to _blank. This is similar to what
we do for App Tabs, but is slightly more aggressive in that in will also occur for
same-origin navigations.

Differential Revision: https://phabricator.services.mozilla.com/D143374
2022-04-13 16:00:27 +00:00
criss
3901d02fd6 Backed out changeset 2e69a9d98234 (bug 1763672) for causing bustages on nsDocShell.cpp. CLOSED TREE 2022-04-13 18:03:11 +03:00
Mike Conley
73cb33e939 Bug 1763672 - Introduce targetTopLevelLinkClicksToBlank on BrowsingContext. r=nika
This property defaults to false. When set to true, user-initiated link clicks in
the top-level BrowsingContext will default target to _blank. This is similar to what
we do for App Tabs, but is slightly more aggressive in that in will also occur for
same-origin navigations.

Differential Revision: https://phabricator.services.mozilla.com/D143374
2022-04-13 13:16:38 +00:00
Paul Zuehlcke
4faa9743bc Bug 1746383 - Set URLBar pageProxyState to invalid for onLocationChange triggered by SessionStore. r=nika,dao
Differential Revision: https://phabricator.services.mozilla.com/D138823
2022-04-12 14:41:06 +00:00
Dana Keeler
bcf86d718f Bug 1608307 - remove redundant flags parameters from nsISiteSecurityService r=jschanck,necko-reviewers,kershaw
Before this patch, nsISiteSecurityService APIs took "flags" parameters that
differentiated private contexts from not private contexts. However, these
parameters were redundant with respect to origin attributes, which led to some
confusion for consumers of these APIs. This patch removes these parameters in
favor of using origin attributes.

Differential Revision: https://phabricator.services.mozilla.com/D142901
2022-04-06 17:37:23 +00:00
Butkovits Atila
32db6f40c0 Backed out 4 changesets (bug 1735746) for causing failures at browser_protocol_custom_sandbox.js. CLOSED TREE
Backed out changeset 703dfd92c775 (bug 1735746)
Backed out changeset 3b06ed08d93b (bug 1735746)
Backed out changeset 9968278b9efe (bug 1735746)
Backed out changeset 49f2e283115d (bug 1735746)
2022-04-05 16:04:29 +03:00
Paul Zuehlcke
feb6ddebe7 Bug 1735746 - Block external protocol navigation from sandboxed contexts. r=nika,ckerschb,Gijs,smaug
Differential Revision: https://phabricator.services.mozilla.com/D141131
2022-04-05 11:31:53 +00:00
Henri Sivonen
99fdcabfad Bug 1712928 - Gather telemetry about encoding-unlabeled pages and about Repair Text Encoding usage situations. r=emk
In particular, gather telemetry to evaluate the impact of unlabeled UTF-8
and how detector-triggered reloads would change if ASCII-only at initial
guess was treated as UTF-8.

Differential Revision: https://phabricator.services.mozilla.com/D140818
2022-03-29 08:04:25 +00:00
Sean Feng
2a8d01ac3a Bug 1620690 - Fix BFCACHE_COMBO telemetry is double counted r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D141259
2022-03-17 14:59:28 +00:00
Olli Pettay
6578f106a0 Bug 1758664, don't try to recheck possible session history entry in the parent process if we're doing such check already, r=peterv
The code which this patch removes was clearly an oversight in the regressing patch.

Differential Revision: https://phabricator.services.mozilla.com/D140690
2022-03-10 10:19:57 +00:00
Peter Van der Beken
4d8ac4392a Bug 1747033 - "Back" does not work correctly for pages with multipart/x-mixed-replace and history.replaceState. r=smaug,necko-reviewers,valentin
multipart/x-mixed-replace loads don't start a new load for parts other than the first,
they just call OnStartRequest/OnStopRequest for every part. The nsDocShell code was
trying to set the active entry to the loading entry for these loads, but because we
never started a new load after the first part, the loading entry would be null and we'd
just clear the active entry. history.replaceState would then try to replace the active
entry, but finding none it would just add a new one.

Differential Revision: https://phabricator.services.mozilla.com/D138464
2022-02-19 08:30:35 +00:00
Henri Sivonen
81ebfedbf3 Bug 1736570 - Avoid DocumentChannel for nsParser-created initial about:blank replacement. r=nika,smaug
Differential Revision: https://phabricator.services.mozilla.com/D135106
2022-02-17 13:27:15 +00:00
Emilio Cobos Álvarez
2d7e089508 Bug 1754813 - Make Hal::ScreenOrientation an enum class. r=gsvelto,m_kato,geckoview-reviewers
This adds proper IPC validation too.

Differential Revision: https://phabricator.services.mozilla.com/D138461
2022-02-14 07:51:06 +00:00
Mike Conley
5aa4fc508a Bug 1753990 - Only collect wireframes for top content BrowsingContexts. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D138050
2022-02-07 18:11:20 +00:00
Olli Pettay
f5ed5abaee Bug 1750973, don't replace the nsILayoutHistoryState object when doing same document history navigations, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D137703
2022-02-04 11:37:14 +00:00
Olli Pettay
f71572e725 Bug 1745638, allow stopping session history load to an iframe, r=peterv
The previous version had two issues:
It revealed an issue in the old implementation which causes an assertion to fire.
There was also a problem with mDocumentRequest, so the new approach tries to be less clever
and just adds a new boolean member variable mCheckingSessionHistory,
which GetIsAttemptingToNavigate() then uses.

Differential Revision: https://phabricator.services.mozilla.com/D136041
2022-02-01 18:59:05 +00:00
Iulian Moraru
c5f471100b Backed out changeset e15925b76a27 (bug 1745638) for causing mochitest failures on test_bug1745638.html. 2022-01-28 21:33:34 +02:00
Olli Pettay
82f9943857 Bug 1745638, allow stopping session history load to an iframe, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D136041
2022-01-28 18:21:28 +00:00
Olli Pettay
7a4d596e8c Bug 1747019 - set cache key on session history entry, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D136979
2022-01-28 17:00:08 +00:00
Mike Conley
0514cf28ed Bug 1749008 - Create a wireframe for history states during navigation / pushState. and hang them off of nsISHEntry. r=peterv,emilio
This is preffed off by default via browser.history.collectWireframes.

Differential Revision: https://phabricator.services.mozilla.com/D135341
2022-01-26 15:53:34 +00:00
Peter Van der Beken
0395f71906 Bug 1267614 - Update meta refresh parsing to match the new spec. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D134225
2021-12-26 17:03:30 +00:00
Butkovits Atila
3a4907e3d3 Backed out changeset 69ac7afb9489 (bug 1267614) for causing failures at navigate.window.html. CLOSED TREE 2021-12-26 13:13:46 +02:00
Peter Van der Beken
1a2b0d201e Bug 1267614 - Update meta refresh parsing to match the new spec. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D134225
2021-12-26 10:09:44 +00:00
Peter Van der Beken
e3ef4b903e Bug 1744397 - Simplify refresh code: pass around delay as an unsigned int. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D132863
2021-12-16 22:27:08 +00:00
Peter Van der Beken
b821e8d182 Bug 1744397 - Simplify refresh code: clean up meta refresh code in nsDocShell. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D132862
2021-12-16 22:27:07 +00:00
Peter Van der Beken
18e4f88acb Bug 1744397 - Simplify refresh code: remove aMetaRefresh argument. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D132861
2021-12-16 22:27:07 +00:00
Peter Van der Beken
8672f6bcba Bug 1744397 - Simplify refresh code: remove aRepeat argument. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D132860
2021-12-16 22:27:06 +00:00
Peter Van der Beken
0997cc99bd Bug 1742865 - Handle meta refresh correctly with session history in the parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D132837
2021-12-16 15:31:56 +00:00
Butkovits Atila
60d0aa134a Backed out changeset e55eb174b342 (bug 1742865) for causin failures at attr-meta-http-equiv-refresh/parsing.html?131 2021-12-16 12:15:59 +02:00
Peter Van der Beken
8e4b092406 Bug 1742865 - Handle meta refresh correctly with session history in the parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D132837
2021-12-16 08:19:45 +00:00
Dennis Jackson
cc5d5f279a Bug 1742617 - Add null pointer check for missing cert in MaybeFixBadCertDomainErrorURI r=keeler
Differential Revision: https://phabricator.services.mozilla.com/D132153
2021-12-15 12:24:39 +00:00
Norisz Fay
d281685db4 Backed out 5 changesets (bug 1742865, bug 1744397) for causing wpt failures on attr-meta-http-equiv-refresh/parsing.html CLOSED TREE
Backed out changeset 7b01edc5a0e0 (bug 1744397)
Backed out changeset 41abd4b7d2c0 (bug 1744397)
Backed out changeset 634641e3a05a (bug 1744397)
Backed out changeset 6e7755177481 (bug 1744397)
Backed out changeset e9fc94b33da9 (bug 1742865)
2021-12-14 13:25:58 +02:00
Peter Van der Beken
d15e0b1095 Bug 1744397 - Simplify refresh code: pass around delay as an unsigned int. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D132863
2021-12-14 10:14:00 +00:00
Peter Van der Beken
69d82a04b2 Bug 1744397 - Simplify refresh code: clean up meta refresh code in nsDocShell. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D132862
2021-12-14 10:13:59 +00:00
Peter Van der Beken
1523e69a53 Bug 1744397 - Simplify refresh code: remove aMetaRefresh argument. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D132861
2021-12-14 10:13:59 +00:00
Peter Van der Beken
f3c4acfa27 Bug 1744397 - Simplify refresh code: remove aRepeat argument. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D132860
2021-12-14 10:13:58 +00:00
Peter Van der Beken
3303fb66bd Bug 1742865 - Handle meta refresh correctly with session history in the parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D132837
2021-12-14 10:13:58 +00:00
Mike Conley
e7645bc9fa Bug 1745484 - Pass full nsIReferrerInfo through nsITopLevelNavigationDelegate. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D133511
2021-12-12 18:02:07 +00:00
Henri Sivonen
a8ed2707bb Bug 1701828 - meta charset rewrite. r=smaug
Implements https://github.com/whatwg/html/issues/6962 . Improves performance
when <meta charset> occurs in head but after the first kilobyte and aligns
behavior better with WebKit and Blink.

The main change is to avoid reloads when meta appears within head but
after the first kilobyte. Prior to this change, Gecko reloaded in that
case (in compliance with the spec!) even though WebKit and Blink did not.

Differences from WebKit and Blink:

* WebKit and Blink honor <meta charset> in <noscript>. This implementation
  does not.
* WebKit and Blink look for meta as if the tree builder was unaware of
  foreign content. This implementation is foreign content-aware. This
  makes a difference for CDATA sections that contain a > before the meta
  as well as style and script elements within foreign content. This could
  happen if the CDATA section that has mysteriously been introduced around
  a what looks like a meta tag also contains another prior tag-looking
  run of text.
* This implementation processes rel=preload and speculative loads that are
  seen before <meta charset> has been seen. WebKit and Blink instead first
  look for the meta and rewind before starting speculative parsing.
* Unlike WebKit, if there is neither an honored meta nor syntax resembling
  an XML declaration, detection from content takes place (as in Blink).
* Unlike Blink, if there is neither an honored meta nor syntax resembling
  an XML declaration, the detection from content is not dependent of network
  buffer boundaries.
* Unlike Blink, detection from content can trigger a reload at the end of
  the stream if the guess made at that point differs from the first guess.
  (See below for the definition of the input to the first guess.)

Differences from the old spec and Gecko previously:

* Meta inside script and RCDATA elements is no longer honored.
* Late meta is now ignored and no longer triggers a reload.
* Later meta counts as early enough meta: In addition to the previous
  meta within the first 1024 bytes, now a meta that started within the first
  1024 bytes counts as early enough. Additionally, if by then there hasn't
  been a template start tag and head hasn't ended, meta occurring before the
  earlier of the end of the head or a template start tag counts as early
  enough.
* Meta now counts as not-late even if the encoding label has numeric
  character reference escapes.
* Syntax resembling an XML declaration longer than a kilobyte is honored if
  there is no honored meta.
* If there is neither an honored meta nor syntax resembling an XML declaration,
  the initial chardetng scan is potentially longer than before: the first 1024
  bytes, the token spanning the 1024-byte boundary if there is such a token,
  and, if by then head hasn't ended and there hasn't been a template start tag
  until the end of the template start tag or the end of the token that causes
  head to end, ever comes first. However, if the token implying the end of the
  head is a text token, bytes only to the end of the previous non-text token is
  considered. (This definition avoids depending on network buffer boundaries.)
* XML View Source now uses the code for syntax resembling an XML declaration
  instead of expat for extracting the internal encoding label.

Reftest are added as both WPT and Gecko reftests in order to test both http:
and file: URL scenarios. The Gecko tests retain the WPT <link> tags in order
to use the exact same bytes.

An encoding declaration has been added to a number of old tests that didn't
intend to test the new speculation behavior especially in the context of
https://bugzilla.mozilla.org/show_bug.cgi?id=1727750 .

Differential Revision: https://phabricator.services.mozilla.com/D125808
2021-12-08 11:34:20 +00:00
Norisz Fay
e844dde8a6 Backed out changeset 3dfd3c94a105 (bug 1701828) for causing mochitest failures on browser_hsts_host.js CLOSED TREE 2021-12-07 12:05:44 +02:00
Henri Sivonen
37fade70f0 Bug 1701828 - meta charset rewrite. r=smaug
Implements https://github.com/whatwg/html/issues/6962 . Improves performance
when <meta charset> occurs in head but after the first kilobyte and aligns
behavior better with WebKit and Blink.

The main change is to avoid reloads when meta appears within head but
after the first kilobyte. Prior to this change, Gecko reloaded in that
case (in compliance with the spec!) even though WebKit and Blink did not.

Differences from WebKit and Blink:

* WebKit and Blink honor <meta charset> in <noscript>. This implementation
  does not.
* WebKit and Blink look for meta as if the tree builder was unaware of
  foreign content. This implementation is foreign content-aware. This
  makes a difference for CDATA sections that contain a > before the meta
  as well as style and script elements within foreign content. This could
  happen if the CDATA section that has mysteriously been introduced around
  a what looks like a meta tag also contains another prior tag-looking
  run of text.
* This implementation processes rel=preload and speculative loads that are
  seen before <meta charset> has been seen. WebKit and Blink instead first
  look for the meta and rewind before starting speculative parsing.
* Unlike WebKit, if there is neither an honored meta nor syntax resembling
  an XML declaration, detection from content takes place (as in Blink).
* Unlike Blink, if there is neither an honored meta nor syntax resembling
  an XML declaration, the detection from content is not dependent of network
  buffer boundaries.
* Unlike Blink, detection from content can trigger a reload at the end of
  the stream if the guess made at that point differs from the first guess.
  (See below for the definition of the input to the first guess.)

Differences from the old spec and Gecko previously:

* Meta inside script and RCDATA elements is no longer honored.
* Late meta is now ignored and no longer triggers a reload.
* Later meta counts as early enough meta: In addition to the previous
  meta within the first 1024 bytes, now a meta that started within the first
  1024 bytes counts as early enough. Additionally, if by then there hasn't
  been a template start tag and head hasn't ended, meta occurring before the
  earlier of the end of the head or a template start tag counts as early
  enough.
* Meta now counts as not-late even if the encoding label has numeric
  character reference escapes.
* Syntax resembling an XML declaration longer than a kilobyte is honored if
  there is no honored meta.
* If there is neither an honored meta nor syntax resembling an XML declaration,
  the initial chardetng scan is potentially longer than before: the first 1024
  bytes, the token spanning the 1024-byte boundary if there is such a token,
  and, if by then head hasn't ended and there hasn't been a template start tag
  until the end of the template start tag or the end of the token that causes
  head to end, ever comes first. However, if the token implying the end of the
  head is a text token, bytes only to the end of the previous non-text token is
  considered. (This definition avoids depending on network buffer boundaries.)
* XML View Source now uses the code for syntax resembling an XML declaration
  instead of expat for extracting the internal encoding label.

Reftest are added as both WPT and Gecko reftests in order to test both http:
and file: URL scenarios. The Gecko tests retain the WPT <link> tags in order
to use the exact same bytes.

An encoding declaration has been added to a number of old tests that didn't
intend to test the new speculation behavior especially in the context of
https://bugzilla.mozilla.org/show_bug.cgi?id=1727750 .

Differential Revision: https://phabricator.services.mozilla.com/D125808
2021-12-07 07:35:32 +00:00
Gijs Kruitbosch
fd9be387e5 Bug 1705211, r=nika,ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D131856
2021-12-01 12:36:07 +00:00
Marian-Vasile Laza
88cecf0d56 Backed out changeset 9c044551012e (bug 1705211) for causing bc test failures on browser_protocol_ask_dialog_external.js. CLOSED TREE 2021-12-01 03:09:59 +02:00
Olli Pettay
f00c7a0d7e Bug 1742168, increase maxStateObjectSize to 16MB and make the pref a StaticPref, r=peterv
Keeping the pref as signed, since the existing code explicitly handles that case, so someone may have -1 as the pref value.

Differential Revision: https://phabricator.services.mozilla.com/D132020
2021-12-01 00:11:41 +00:00
Gijs Kruitbosch
e4890e84f5 Bug 1705211, r=nika,ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D131856
2021-11-30 23:38:57 +00:00