Fune (船) is a Firefox ESR fork with the intent of bringing back the Firefox 2.0 look and overall decrapifying the browser.
Find a file
Tom Ritter bc2e6a72ad Bug 1830070: Correctly apply RFP Checks to about: documents and deal with pop-ups r=smaug,necko-reviewers,emilio
This patch has three parts to it:

1) Use NS_IsContentAccessibleAboutURI to ensure that only safe
   about: documents get exempted.

   With this change, we will no longer allow about:blank or
   about:srcdoc to be exempted base on URI.  If they are to be
   exempted, it will need to be base on other information.

2) In Document::RecomputeResistFingerprinting we previously
   deferred to a Parent Document if we had one, and either the
   principals matched or we were a null principal.

   We will do the same thing, except we will also defer to our
   opener as well as the parent document.  Now about:blank
   documents can be exempted.

   However, this deferral only works if the opener is
   same-process. For cross-process openers, we make the decision
   ourselves.

We can make the wrong decision though. CookieJarSettings is
inherited through iframes but it is _not_ inherited through popups.
(Yet. There's some discussion there, but it's not implemented.)

Conceptually; however, we do want CJS to inherit, and we do want
RFP to inherit as well.  Because a popup can collude with its
opener to bypass RFP and Storage restrictions, we should propagate
the CJS information.

This does lead to an unusual situation: if you have exempted
b.com, and a.com (which is not exempted) creates a popup for b.com
then that popup will not be exempted.  But an open tab for b.com
would be.  And it might be hard to tell those two apart, or why
they behave differently.

The third part of the patch:

3) In LoadInfo we want to populate information down from the
   opener to the popup.  This is needed because otherwise a
   cross-origin popup will not defer to its opener (because in
   Fission they're in different processes) and will decide if
   it should be exempted itself. It's the CookieJarSettings
   object that prevents the cross-origin document from thinking
   it should be exempted - CJS tells it 'No, you're a child
   (either a subdocument or a popup) and if I say you don't get
   an exemption, you don't.'


Finally, there is one more caveat: we can only defer to a parent
document or opener if it still exists.  A popup may outlive its
opener. If that happens, and something induces a call to
RecomputeResistFingerprinting, then (e.g.) an about:blank popup
may lose an RFP exemption that it had received from its parent.
This isn't expected to happen in practice -
RecomputeResistFingerprinting is only called on document creation
and pref changes I believe.

It is not possible for a popup to _gain_ an exemption though,
because even if the parent document is gone, the CJS lives on and
restricts it.

Differential Revision: https://phabricator.services.mozilla.com/D178866
2023-06-19 20:03:27 +00:00
.cargo Bug 1839070 - Emit a start point if close is called immediately after move_to. r=jrmuizel 2023-06-19 19:54:24 +00:00
.vscode
accessible Bug 1837315: Avoid queueing a hide event on an accessible that's already being moved, r=Jamie 2023-06-15 23:12:00 +00:00
browser Bug 1830070: Correctly apply RFP Checks to about: documents and deal with pop-ups r=smaug,necko-reviewers,emilio 2023-06-19 20:03:27 +00:00
build Bug 1838566 - Update patch to fit clang upstream changes. r=firefox-build-system-reviewers,ahochheiden 2023-06-15 20:44:04 +00:00
caps Bug 1830070: Correctly apply RFP Checks to about: documents and deal with pop-ups r=smaug,necko-reviewers,emilio 2023-06-19 20:03:27 +00:00
chrome Bug 1834176 - Convert consumers of NetUtil.jsm to import the ES module directly. r=arai,webdriver-reviewers,perftest-reviewers,valentin,extension-reviewers,devtools-reviewers,sync-reviewers,cookie-reviewers,robwu,afinder,whimboo 2023-06-07 08:42:36 +00:00
config Bug 1749856 - Use GeneratedFile for rlbox.wasm.c. r=firefox-build-system-reviewers,andi 2023-06-07 07:28:31 +00:00
devtools Bug 1834831 - update imports of browser/modules JSMs r=webdriver-reviewers,perftest-reviewers,zeid,extension-reviewers,settings-reviewers,pip-reviewers,credential-management-reviewers,devtools-reviewers,fxview-reviewers,sessionstore-reviewers,tabbrowser-reviewers,whimboo,mhowell,sgalich,robwu,sparky,Standard8,mconley,dao,sclements 2023-06-19 18:44:48 +00:00
docs Backed out changeset 99fd2fc88cbf (bug 1821228) for causing bc failures in browser_contextmenu_iframe.js CLOSED TREE 2023-06-09 18:26:31 -04:00
docshell Bug 1817723 - Allow HTMLEditor can receive events when the focus is switched between elements in the same shadow tree. r=masayuki 2023-06-19 17:58:15 +00:00
dom Bug 1830070: Correctly apply RFP Checks to about: documents and deal with pop-ups r=smaug,necko-reviewers,emilio 2023-06-19 20:03:27 +00:00
editor Bug 1817723 - Allow HTMLEditor can receive events when the focus is switched between elements in the same shadow tree. r=masayuki 2023-06-19 17:58:15 +00:00
extensions Bug 1579517 - Added a check in removeAllSince to avoid deleting default permissions for new profiles. r=pbz 2023-06-19 19:34:31 +00:00
gfx Bug 1837103 - Support perspective transforms with new WR clip mask code path r=gfx-reviewers,lsalzman 2023-06-19 02:31:03 +00:00
gradle/wrapper
hal
image Bug 1826206 - Require nsISerialEventTarget for RetargetDeliveryTo, r=necko-reviewers,valentin 2023-06-07 14:48:38 +00:00
intl Bug 1838173: Allow to set the Gregorian change date for ISO-8601 calendars. r=platform-i18n-reviewers,dminor 2023-06-14 05:38:46 +00:00
ipc Backed out changeset 3cf2e1c625e4 (bug 1835804) for causing Bug 1839021 and Bug 1838931 CLOSED TREE 2023-06-17 11:38:40 -04:00
js Bug 1839062 - Check whether nursery is enabled before requesting minor GC during JIT BigInt allocation r=jandem 2023-06-19 15:18:48 +00:00
layout Bug 1825244 - follow-up: Move rule to html.css since now it's no longer just about forms. 2023-06-19 18:31:31 +00:00
media Bug 1834008 - Changed JSEP's default H264 level from 42e00d to 42e01f to better match the default pref.r=bwc 2023-06-13 23:04:12 +00:00
memory Backed out 2 changesets (bug 1829128) for causing failures at TestPrintf. 2023-06-14 18:12:10 +03:00
mfbt Bug 1812353 - Update GPUSupportedLimits in webgpu.webidl. r=webgpu-reviewers,webidl,saschanaz,jimb,emilio,smaug 2023-06-12 21:10:11 +00:00
mobile Bug 1839076 - Remove duplicate prefs from mobile.js r=geckoview-reviewers,amejiamarmol 2023-06-19 16:20:40 +00:00
modules Backed out 2 changesets (bug 1801198) for causing wpt failures in idlharness.worker.html CLOSED TREE 2023-06-19 13:19:05 -04:00
mozglue Bug 1829983 - Disabled assert that's invalid on Windows r=dthayer 2023-06-15 14:59:10 +00:00
netwerk Bug 1830070: Correctly apply RFP Checks to about: documents and deal with pop-ups r=smaug,necko-reviewers,emilio 2023-06-19 20:03:27 +00:00
nsprpub
other-licenses
parser Bug 1836191 - remove PerformanceCounter that was only used by ChromeUtils.requestPerformanceMetrics, r=smaug. 2023-06-08 21:53:18 +00:00
python Bug 1838632 - fix edit bookmarks dialog's use of non-standard fluent attributes to use more straightforward switches between messages, r=jsudiaman,fluent-reviewers,flod 2023-06-19 16:30:16 +00:00
remote Bug 1838381 - Extend waitForInitialPageLoaded for "WebDriver:NewSession" for desktop builds. r=webdriver-reviewers,Sasha 2023-06-19 09:49:28 +00:00
security Bug 1834831 - update imports of browser/modules JSMs r=webdriver-reviewers,perftest-reviewers,zeid,extension-reviewers,settings-reviewers,pip-reviewers,credential-management-reviewers,devtools-reviewers,fxview-reviewers,sessionstore-reviewers,tabbrowser-reviewers,whimboo,mhowell,sgalich,robwu,sparky,Standard8,mconley,dao,sclements 2023-06-19 18:44:48 +00:00
services Bug 1773051 - Remove identity.fxaccounts.commands.enabled pref r=markh 2023-06-19 16:20:00 +00:00
servo Bug 1837818 - Remove special selector-matching case in matches_simple_selector. r=boris 2023-06-19 09:51:38 +00:00
startupcache
storage
supply-chain Backed out changeset e637dc2466d4 (bug 1837473) for breaking CTAP2 PIN entry. a=backout 2023-06-17 02:35:10 +03:00
taskcluster Bug 1838018 - [ci] Create Wayland test tasks, r=releng-reviewers,gbrown 2023-06-19 14:39:40 +00:00
testing Bug 1752744 - Fix opening bookmarks from the library window in certain conditions. r=mak,webdriver-reviewers,whimboo 2023-06-19 19:00:30 +00:00
third_party Bug 1839070 - Emit a start point if close is called immediately after move_to. r=jrmuizel 2023-06-19 19:54:24 +00:00
toolkit Bug 1830070: Correctly apply RFP Checks to about: documents and deal with pop-ups r=smaug,necko-reviewers,emilio 2023-06-19 20:03:27 +00:00
tools Bug 1838632 - make fluent-lint complain about unknown attributes, r=flod,fluent-reviewers 2023-06-19 16:30:15 +00:00
uriloader Bug 1838874 - Remove remaining uses of FileUtils.getFile r=Gijs 2023-06-16 14:48:44 +00:00
view
widget Bug 1817723 - Allow HTMLEditor can receive events when the focus is switched between elements in the same shadow tree. r=masayuki 2023-06-19 17:58:15 +00:00
xpcom Bug 1839083 - Avoid out-of-line call to EnsureCapacity for the common case where the capacity is already sufficient. r=nika 2023-06-19 15:58:48 +00:00
xpfe/appshell Bug 1838330: Make AppWindow::FullscreenWillChange correctly compare window to screen using device scale. r=edgar 2023-06-14 18:53:34 +00:00
.arcconfig
.babel-eslint.rc.js
.clang-format
.clang-format-ignore
.cron.yml Bug 1833417 - Add OSX Chromium-as-Release to cron. r=perftest-reviewers,taskgraph-reviewers,bhearsum,sparky 2023-06-19 13:20:01 +00:00
.eslintignore Bug 1836719 - Include all js dot files in ESLint checks. r=cmkm 2023-06-06 16:44:07 +00:00
.eslintrc-test-paths.js
.eslintrc.js Bug 1837950 - Remove references to about:performance in .eslintrc.js, r=Standard8 DONTBUILD 2023-06-12 11:14:13 +00:00
.git-blame-ignore-revs
.gitattributes
.gitignore
.hg-annotate-ignore-revs
.hg-format-source
.hgignore
.hgtags No bug - tagging 8f983388de8ac77550eb07422e61c0444e7b8eb5 with FIREFOX_NIGHTLY_115_END a=release DONTBUILD CLOSED TREE 2023-06-05 14:40:48 +00:00
.lando.ini
.lldbinit
.mailmap
.prettierignore Bug 1836191 - remove ChromeUtils.requestPerformanceMetrics that was only used by about:performance, r=smaug. 2023-06-08 21:53:18 +00:00
.prettierrc.js
.stylelintignore Bug 1832765 - merge new tab linting into main stylelint config, r=Standard8,aminomancer 2023-05-30 22:41:22 +00:00
.stylelintrc.js Bug 1835028 - Change newtab stylelint problem severity from warning to error. r=Gijs,Standard8 2023-06-05 12:58:01 +00:00
.taskcluster.yml
.trackerignore
.yamllint
.ycm_extra_conf.py
aclocal.m4
AUTHORS
build.gradle Bug 1837142 - Update to Glean v53.0.0 r=TravisLong,supply-chain-reviewers 2023-06-14 10:48:26 +00:00
Cargo.lock Bug 1839070 - Emit a start point if close is called immediately after move_to. r=jrmuizel 2023-06-19 19:54:24 +00:00
Cargo.toml Bug 1836658 - Update cssparser to 0.31.2. r=emilio,supply-chain-reviewers 2023-06-14 20:50:14 +00:00
client.mk
client.py
CLOBBER Bug 1833237 - Vendor libwebrtc from 86163248f4 - moz.build file updates 2023-06-08 14:39:13 -07:00
configure
configure.py Bug 1835198 - Remove mozbuild.util.write_indented_repr. r=firefox-build-system-reviewers,nalexander 2023-05-29 20:28:56 +00:00
GNUmakefile
gradle.properties
gradlew
gradlew.bat
LICENSE
mach
mach.cmd
mach.ps1
Makefile.in
mots.yaml Bug 1834831 - update imports of browser/modules JSMs r=webdriver-reviewers,perftest-reviewers,zeid,extension-reviewers,settings-reviewers,pip-reviewers,credential-management-reviewers,devtools-reviewers,fxview-reviewers,sessionstore-reviewers,tabbrowser-reviewers,whimboo,mhowell,sgalich,robwu,sparky,Standard8,mconley,dao,sclements 2023-06-19 18:44:48 +00:00
moz.build
moz.configure Bug 1837122 - Fix typo introduced in bug 1834446. r=firefox-build-system-reviewers,sergesanspaille 2023-06-07 22:09:25 +00:00
mozilla-config.h.in
old-configure.in Bug 1831935: optimize android gecko for O2 r=firefox-build-system-reviewers,glandium 2023-06-14 15:13:40 +00:00
package-lock.json Bug 1832765 - start linting scss across the tree in our standard config, r=Standard8 2023-05-30 22:41:22 +00:00
package.json Bug 1832765 - start linting scss across the tree in our standard config, r=Standard8 2023-05-30 22:41:22 +00:00
pyproject.toml
README.txt
settings.gradle
substitute-local-geckoview.gradle
test.mozbuild

An explanation of the Firefox Source Code Directory Structure and links to
project pages with documentation can be found at:

    https://firefox-source-docs.mozilla.org/contributing/directory_structure.html

For information on how to build Firefox from the source code and create the patch see:

    https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html

If you have a question about developing Firefox, and can't find the solution
on https://firefox-source-docs.mozilla.org/, you can try asking your question on Matrix at chat.mozilla.org in `Introduction` (https://chat.mozilla.org/#/room/#introduction:mozilla.org) channel.


Nightly development builds can be downloaded from:

    https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/
            - or -
    https://www.mozilla.org/firefox/channel/desktop/#nightly

Keep in mind that nightly builds, which are used by Firefox developers for
testing, may be buggy.