Summary:
This moves the load of favicons into the content process. We use the same logic
for finding favicons (based on waiting until none have shown up for a short
time) but then load the favicon and convert it to a data uri which we then
dispatch to the parent process. Along the way this fixes asssociating the load
with the tab for WebExtension and devtools, fixes CSP usage for the load, fixes
expiry detection of the favicon and stops us from loading the same resource
twice.
This change also merges the prefs browser.chrome.site_icons and
browser.chrome.favicons leaving just the former controlling favicon loading. It
adds the pref browser.chrome.guess_favicon to allow disabling guessing where
a favicon might be located for a site (at <hostname>/favicon.ico). This is
mainly to allow disabling this in tests where those additional yet automatic
requests are uninteresting for the test.
There are multiple clean-ups that can follow this but this is a first step along
that path.
MozReview-Commit-ID: E0Cs59UnxaF
Reviewers: mak
Tags: #secure-revision
Bug #: 1453751
Differential Revision: https://phabricator.services.mozilla.com/D1672
Differential Revision: https://phabricator.services.mozilla.com/D1673
Differential Revision: https://phabricator.services.mozilla.com/D1674
Differential Revision: https://phabricator.services.mozilla.com/D1850
Differential Revision: https://phabricator.services.mozilla.com/D1869
Summary:
This moves the load of favicons into the content process. We use the same logic
for finding favicons (based on waiting until none have shown up for a short
time) but then load the favicon and convert it to a data uri which we then
dispatch to the parent process. Along the way this fixes asssociating the load
with the tab for WebExtension and devtools, fixes CSP usage for the load, fixes
expiry detection of the favicon and stops us from loading the same resource
twice.
This change also merges the prefs browser.chrome.site_icons and
browser.chrome.favicons leaving just the former controlling favicon loading. It
adds the pref browser.chrome.guess_favicon to allow disabling guessing where
a favicon might be located for a site (at <hostname>/favicon.ico). This is
mainly to allow disabling this in tests where those additional yet automatic
requests are uninteresting for the test.
There are multiple clean-ups that can follow this but this is a first step along
that path.
MozReview-Commit-ID: E0Cs59UnxaF
Reviewers: mak
Tags: #secure-revision
Bug #: 1453751
Differential Revision: https://phabricator.services.mozilla.com/D1672
Differential Revision: https://phabricator.services.mozilla.com/D1673
Differential Revision: https://phabricator.services.mozilla.com/D1674
Differential Revision: https://phabricator.services.mozilla.com/D1850
Summary:
This moves the load of favicons into the content process. We use the same logic
for finding favicons (based on waiting until none have shown up for a short
time) but then load the favicon and convert it to a data uri which we then
dispatch to the parent process. Along the way this fixes asssociating the load
with the tab for WebExtension and devtools, fixes CSP usage for the load, fixes
expiry detection of the favicon and stops us from loading the same resource
twice.
This change also merges the prefs browser.chrome.site_icons and
browser.chrome.favicons leaving just the former controlling favicon loading. It
adds the pref browser.chrome.guess_favicon to allow disabling guessing where
a favicon might be located for a site (at <hostname>/favicon.ico). This is
mainly to allow disabling this in tests where those additional yet automatic
requests are uninteresting for the test.
There are multiple clean-ups that can follow this but this is a first step along
that path.
MozReview-Commit-ID: E0Cs59UnxaF
Reviewers: mak
Tags: #secure-revision
Bug #: 1453751
Differential Revision: https://phabricator.services.mozilla.com/D1672
Differential Revision: https://phabricator.services.mozilla.com/D1673
Differential Revision: https://phabricator.services.mozilla.com/D1674
This also removes any redundant Ci.nsISupports elements in the interface
lists.
This was done using the following script:
acecb401b7/processors/chromeutils-generateQI.jsm
MozReview-Commit-ID: AIx10P8GpZY
Async-ify some tests.
Moves some tests from browser-chrome to xpcshell.
Due to the move, I found out that we are fetching icons from network even when
we are not supposed to, so fix this bug (automatically tested by xpcshell through
disallowing remote network access).
Add a missing test for bookmark redirects, to cover the moved around code.
MozReview-Commit-ID: EB2Z0huovJh
There are 3 issues here:
- the runtime changing of the title causes issues where the content title is
not set. This is fixed by setting it to the private title by default;
there is very little (if any) UI that allows users to even open
about:privatebrowsing in 'normal' windows so we care a lot less about
flicker there. To be able to include this title in the markup, we switched
to a dtd.
- the 'empty tab' title we set on the tab initially is set when the tab is
created. This has been updated to check for private windows, and default to
'Private Browsing' instead. This will obviously also affect other new tabs
in private browsing, but that seems desirable/consistent.
- Likewise, we use this title when updating a tab's title that we don't yet
have a content title for (which can still happen while about:privatebrowsing
is loading because e10s), and so that is updated, too.
MozReview-Commit-ID: nVfXD2M6UZ
There are 3 issues here:
- the runtime changing of the title causes issues where the content title is
not set. This is fixed by setting it to the private title by default;
there is very little (if any) UI that allows users to even open
about:privatebrowsing in 'normal' windows so we care a lot less about
flicker there. To be able to include this title in the markup, we switched
to a dtd.
- the 'empty tab' title we set on the tab initially is set when the tab is
created. This has been updated to check for private windows, and default to
'Private Browsing' instead. This will obviously also affect other new tabs
in private browsing, but that seems desirable/consistent.
- Likewise, we use this title when updating a tab's title that we don't yet
have a content title for (which can still happen while about:privatebrowsing
is loading because e10s), and so that is updated, too.
MozReview-Commit-ID: nVfXD2M6UZ
This patch was autogenerated by my decomponents.py
It covers almost every file with the extension js, jsm, html, py,
xhtml, or xul.
It removes blank lines after removed lines, when the removed lines are
preceded by either blank lines or the start of a new block. The "start
of a new block" is defined fairly hackily: either the line starts with
//, ends with */, ends with {, <![CDATA[, """ or '''. The first two
cover comments, the third one covers JS, the fourth covers JS embedded
in XUL, and the final two cover JS embedded in Python. This also
applies if the removed line was the first line of the file.
It covers the pattern matching cases like "var {classes: Cc,
interfaces: Ci, utils: Cu, results: Cr} = Components;". It'll remove
the entire thing if they are all either Ci, Cr, Cc or Cu, or it will
remove the appropriate ones and leave the residue behind. If there's
only one behind, then it will turn it into a normal, non-pattern
matching variable definition. (For instance, "const { classes: Cc,
Constructor: CC, interfaces: Ci, utils: Cu } = Components" becomes
"const CC = Components.Constructor".)
MozReview-Commit-ID: DeSHcClQ7cG
This cleans up all tests that were not moved into the sanitize directory
as part of the previous commit, but still use sanitize.js
MozReview-Commit-ID: 1CVa0ByVYDk
This was initially removed when we added support for setting the favicon
ahead of parsing the page for newtab-like pages. Turns out we need it in
some scenarios, such as navigating back and forth or duplicating the tab.
MozReview-Commit-ID: HuMeEnqpLLB
We apply a custom workaround to show about:home and about:newtab favicons
as early as possible for perceived performance, but didn't previously consider
the about:privatebrowsing page (which can act as both about:home and about:newtab).
MozReview-Commit-ID: gPiV08h0j0