Commit Graph

2248 Commits

Author SHA1 Message Date
Dave Townsend
0f2c3bd648 Bug 1453751: Load favicons in the content process. r=mak, r=gijs, r=aswan, r=mixedpuppy
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
2018-06-28 16:06:09 -07:00
Brindusan Cristian
d94fd86e60 Backed out changeset b11aa832c41a (bug 1453751) for Mochitest-15 failures in toolkit/components/extensions/test/mochitest/test_ext_webrequest_filter.html. CLOSED TREE 2018-06-28 23:15:49 +03:00
Dave Townsend
ebc2c6ff75 Bug 1453751: Load favicons in the content process. r=mak, r=gijs, r=aswan
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
2018-06-04 12:53:55 -07:00
Cosmin Sabou
42e854deed Backed out changeset 638eb8a41245 (bug 1453751) for frequent linux debug e-10s failures on test_ext_webrequest_filter.html 2018-06-26 07:29:35 +03:00
Dave Townsend
e6cce6de21 Bug 1453751: Load favicons in the content process. r=mak, r=gijs, r=aswan
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
2018-06-04 12:53:55 -07:00
Shane Caraveo
eea40688af Bug 1422588 fix discard if tab sessionstate is not ready, r=Gijs,mikedeboer
If discard is used immediately after creating a tab, restoring the tab
resulted in an unusable tab.  This was due to the sessionstate not being
ready.  This adds enough sessionstate to restore when this occurs.

MozReview-Commit-ID: 6PIc71BS8VU
2018-06-19 10:47:25 -04:00
Valentin Gosu
125632f6cb Bug 1389251 - Do not escape spaces in nsSimpleURI r=bz
This change makes nsEscape::T_EscapeURL not escape spaces when passed esc_OnlyNonASCII.
This fixes a web-compat issue for URLs such as "javascript: alert('hello');" and the fact that data: URIs with spaces around MIME type are rejected.

MozReview-Commit-ID: 91Qw9foW6Y3
2018-06-18 15:06:24 +02:00
Dorel Luca
b3c3b7410f Backed out 3 changesets (bug 1389251) for browser-chrome failure on browser/base/content/test/pageinfo/browser_pageinfo_image_info.js. CLOSED TREE
Backed out changeset a76a3251a9d2 (bug 1389251)
Backed out changeset c6baebf7b34c (bug 1389251)
Backed out changeset 6e89a11ae28e (bug 1389251)
2018-06-15 06:18:04 +03:00
Dorel Luca
2c9ce02243 Merge mozilla-central to autoland 2018-06-15 05:43:31 +03:00
Valentin Gosu
7b6053e728 Bug 1389251 - Do not escape spaces in nsSimpleURI r=bz
This change makes nsEscape::T_EscapeURL not escape spaces when passed esc_OnlyNonASCII.
This fixes a web-compat issue for URLs such as "javascript: alert('hello');" and the fact that data: URIs with spaces around MIME type are rejected.

MozReview-Commit-ID: B78AacLxGBp
2018-06-12 03:03:57 +02:00
Adam Gashlin
caa22bc11f Bug 1466071: Part 2: Fix aborting flush on normal content shutdown. r=mikedeboer 2018-06-08 15:16:16 -07:00
Joel Maher
d0823df1ef Bug 1405428 - skip-if = verify on mochitests which do not pass test-verify. r=gbrown 2018-06-10 05:01:47 -04:00
Adam Gashlin
a60a4084d4 Bug 1458119: Part 1: Use idleDispatch to be independent from a content window. r=mikedeboer
When using content.requestIdleCallback(), the idle callback may not be
run by the time the content goes away, resulting in a missed send.
ChromeUtils.idleDispatch does not have this issue.

MozReview-Commit-ID: DdGMr6j80sZ
2018-05-27 11:21:49 -07:00
Boris Zbarsky
25e7cf107f Bug 1466727 part 1. Mark nsITreeColumn builtinclass. r=mossop
The only JS implementation seems to be in a test, and we can stop doing that.
2018-06-05 23:01:36 -04:00
Andrea Marchesini
bdda208a64 Bug 1422365 - Introduce nsIClearDataService - part 8 - DOM Quota, r=johannh 2018-06-01 14:30:00 +02:00
Adam Gashlin
df3ac62beb Bug 603903 - Part 2: restore session when restarted by Windows r=mikedeboer
MozReview-Commit-ID: EEKZAZZ9E98
2018-05-15 18:28:08 -07:00
Mike de Boer
1b45f26475 Bug 1434252 - nsICookieService may throw an error in certain circumstances, so let's make SessionCookies::restore infallible. r=dao
Please see bug 1462402 for more details and the root cause.
SessionCookies.jsm uses nsICookieService::CookieExists and nsICookieService::Add
to restore session-cookies. These currently throw for hostnames that contain a
leading '.' and maybe other cases, so we need to wrap the calls in a try..catch
block to prevent breakage, leading to an unrestored session.

MozReview-Commit-ID: 9gZ7K6lwcQF
2018-05-17 19:09:08 +02:00
Mark Banner
a6205d63b1 Bug 1461997 - Enable ESLint rule mozilla/require-expected-throws-or-rejects for browser/components. r=Gijs
MozReview-Commit-ID: JXqwIyF6v6k
2018-05-16 20:23:06 +01:00
Eliza Balazs
e5bcea9583 Bug 1418627 - disable browser_524745.js on Windows 10 !ccov for frequent failures. r=jmaher 2018-05-16 00:31:00 +03:00
Chris Pearce
35c33d46de Bug 1458383 - Don't session restore browser.mediaBlocked. r=mikedeboer
This is a backout of Bug 1347791 part 4; 49b533231388.

49b533231388 took the mediaBlocked attribute and stored it in session store,
and caused us to call browser.resumeMedia() or blockMedia() as appropriate
upon restore. We don't want to session restore whether tabs have had delay
playback start unblocked anymore, so remove the code that session stores
that attribute.

MozReview-Commit-ID: AkRVlufrUAK
2018-05-04 16:22:16 +12:00
Jan Henning
03f30dc140 Bug 1456391 - Part 7: Move PrivacyFilter to Toolkit. r=mikedeboer
Since we want to start collecting all form data through mapFrameTree on Fennec,
too, we need to change our filtering strategy for form data.
We can no longer bail out directly during the data collection loop and instead
have to filter the data after having collected all of it.

The easiest way to do that is to start using PrivacyFilter.filterFormData() on
Android as well.

MozReview-Commit-ID: GBos4Zn3l2U
2018-04-25 22:33:50 +02:00
Jan Henning
cef18fd372 Bug 1456391 - Part 3: Use new mapFrameTree version on Desktop. r=mikedeboer
MozReview-Commit-ID: AUQXLPnO1CH
2018-04-25 22:07:31 +02:00
Jan Henning
152d7804ea Bug 1456391 - Part 1: Move nsISessionStoreUtils to Toolkit. r=Nika
We want to use forEachNonDynamicChildFrame() on Android as well.

MozReview-Commit-ID: E4sJa6gbyuq
2018-04-24 21:52:46 +02:00
Adrian Wielgosik
65b770c17d Bug 1418078 - Convert JS users of nsIDOMHTMLInputElement. r=bz
MozReview-Commit-ID: 55aIiNHS0xs
2018-04-18 22:29:50 +02:00
Kris Maglione
fd7e9e6a69 Bug 1456035: Part 4 - Convert callers of XPCOMUtils.generateQI to ChromeUtils.generateQI. r=mccr8
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
2018-04-22 20:55:06 -07:00
Kris Maglione
b3990a2d91 Bug 1456686: Part 1 - Fix unused and shadowed explicit imports. r=standard8
These issues were previously ignored due to the nature of our global import
rules. They need to be fixed before that rule can be updated.

MozReview-Commit-ID: DCChktTc5TW
2018-04-24 20:18:09 -07:00
Dão Gottwald
769b1f3387 Bug 1410591 - Focus the content area when restoring the selected tab. r=mikedeboer 2018-04-23 19:13:58 +02:00
Boris Zbarsky
7396d0b5a7 Bug 1429903 part 2. Stop using nsIDOMEventTarget in xpidl. r=mccr8
MozReview-Commit-ID: HQw7TyJUapY
2018-04-20 00:49:30 -04:00
Boris Zbarsky
ced355935b Bug 1455055 part 7. Clean up remaining HandleEvent implementations. r=masayuki
MozReview-Commit-ID: LezJYKK74H5
2018-04-20 00:49:30 -04:00
Boris Zbarsky
65759d684b Bug 1455055 part 1. Convert nsIDOMEventListener to taking an Event, not an nsIDOMEvent. r=masayuki
This does no cleanup other than what's needed to compile.  Cleanup coming up in
later patches.

MozReview-Commit-ID: 3sOnkj71n09
2018-04-20 00:49:29 -04:00
Mike de Boer
fb8d750fae Bug 1034036 - Part 7: Test that we stored window z-indices correctly and in order of creation. Ensure that we restore windows in reverse z-index order. r=dao
MozReview-Commit-ID: 6z1zHUKDf9
2018-04-11 12:06:16 +02:00
Mike de Boer
84755893e0 Bug 1034036 - Part 6: Tests that use ss.setBrowserState() or ss.setWindowState() should wait until the window is restored to continue. r=dao
MozReview-Commit-ID: 5d1E5TjKnIR
2018-04-11 12:06:12 +02:00
Mike de Boer
a2f68d29db Bug 1034036 - Part 5: restore windows in reverse z-order, so that the last focused window is restored first and stays in front. r=dao
MozReview-Commit-ID: 22OIFutLgmx
2018-04-11 12:06:09 +02:00
Mike de Boer
28713f6c1d Bug 1034036 - Part 4: move away from keeping state on the living objects, like windows, tabs and browsers, but keep it truly privately stored in WeakMaps. r=dao
NOTE: The '__SSi' and '__SS_lastSessionWindowID' properties on windows are kept,
      because they are expected to stick around longer during application shutdown.

The benefits is are:
1. Cleaner code - Sessionstore implementation details are not leaked outside its
   module.
2. Observing the lifetime of objects becomes unnecessary, because the WeakMaps are
   cleaned up when objects are GC'd, making leakage of their references impossible
   and Sessionstore can't hold objects hostage anymore.
3. Simplification - all state is now maintained in SessionStore.jsm, which allows
   for additional refactoring later on to simplify the implementation further.

MozReview-Commit-ID: C1II8qHkQ6F
2018-04-11 12:06:06 +02:00
Mike de Boer
15e60d9e71 Bug 1034036 - Part 2: Rename and shorten getMostRecentBrowserWindow to getTopWindow and modernize the style used in BrowserWindowTracker.jsm. r=dao
MozReview-Commit-ID: EvgAhq4uR3a
2018-04-11 12:05:59 +02:00
Mike de Boer
2271d50b55 Bug 1034036 - Part 1: Merge RecentWindow.jsm and UpdateTopLevelContentWindowIDHelper.jsm into one module called 'BrowserWindowTracker.jsm'. r=dao
MozReview-Commit-ID: 9qzq1aGvjDu
2018-04-11 12:05:56 +02:00
Boris Zbarsky
60c4cef055 Bug 1453487 part 1. Stop using XPCWrappedNative for nsIDOMEventListener. r=smaug
MozReview-Commit-ID: Es4fEdGDzbx
2018-04-12 00:05:38 -04:00
Boris Zbarsky
0e6ee1bab5 Bug 1453345 part 5. Remove pointless JS implemenations of QI to nsIDOMEventListener. r=smaug
MozReview-Commit-ID: Db0v6GZ0deo
2018-04-12 00:03:45 -04:00
Boris Zbarsky
9b3d2984f3 Bug 1453345 part 1. Switch session storage content scripts to not rely on XPCWrappedJS implementing nsIDOMEventListener. r=smaug
MozReview-Commit-ID: LPYKxngcXJw
2018-04-12 00:03:44 -04:00
Nika Layzell
3d4a532d9d Bug 1434768 - Part 3: Rewrite JS consumers of .sessionHistory, r=bz 2018-04-10 17:49:45 -04:00
Jonathan Kingston
9b880fdc20 Bug 1374741 - Within browser/ make openUILinkIn() provide the correct triggeringPrincipal. r=gijs
MozReview-Commit-ID: 1NQrlWzIBja
2018-02-21 14:28:48 +00:00
Tooru Fujisawa
6876df089a Bug 1448531 - Part 2: Make BrowserTestUtils.waitForNewWindow receive parameters object. r=enndeakin 2018-04-10 12:18:35 +09:00
Xidorn Quan
3f55f4e5c1 Bug 1446343 part 2 - Convert size attributes to outer size for sessionstore. r=mikedeboer
MozReview-Commit-ID: FS6yrGggD7o
2018-04-06 15:01:04 +10:00
Dão Gottwald
db43d4f919 Bug 1451709 - Remove code for the "Restore Tabs From Last Time" button in the tab bar. r=mikedeboer
MozReview-Commit-ID: JMmkE6axBBK
2018-04-05 14:02:55 +02:00
Dão Gottwald
81e69d1b32 Bug 1450559 - Remove nsISessionStore in favor of SessionStore.jsm. r=mikedeboer
MozReview-Commit-ID: 8spvIOus9ai
2018-04-05 16:30:48 +02:00
Shane Caraveo
8e351cf3e5 Bug 1344749 followup fix for session restore when using insertAfterCurrent and intermittent test failure, r=dao
Relying on this._browserSetState was incorrect as that is only set via tests.  It needs to be always true so session restore works in the right order.

The lazy restore is fine in the test, and avoids the about:blank intermittent (or at least makes it much much harder to reproduce on my linux vm).
2018-04-04 09:23:32 -05:00
Manish Kumar
5e5cd56966 Bug 1446719 - Rename getTabValue / setTabValue / deleteTabValue to getCustomTabValue / setCustomTabValue / deleteCustomTabValue. r=dao 2018-04-01 16:05:34 +02:00
Andreea Pavel
1f89e006d3 Backed out changeset f80a1b8f781b (bug 1446719) for failing browser chrome at browser/components/sessionstore/test/browser_350525.js on a CLOSED TREE 2018-04-01 16:16:09 +03:00
Manish Kumar
4e76537e9d Bug 1446719 - Rename getTabValue / setTabValue / deleteTabValue to getCustomTabValue / setCustomTabValue / deleteCustomTabValue. r=dao 2018-04-01 11:15:54 +02:00
Bob Silverberg
53970dbf30 Bug 1344749 - Expose API to customize where new tabs open, r=dao
This patch implements the preference "browser.tabs.insertAfterCurrent" which,
when set to true, will cause all tabs (related and unrelated) to be opened next
to the current tab.

It also implements the browserSettings API "newTabPosition", which allows
extensions to control both "browser.tabs.insertRelatedAfterCurrent", and
"browser.tabs.insertAfterCurrent" via values for "afterCurrent",
"relatedAfterCurrent" and "atEnd".

The code for "browser.tabs.insertAfterCurrent" including the test for it is
mostly taken from a patch attached to bug 933532 written by Masayuki Nakano.

MozReview-Commit-ID: KQE7M2FGpc7
2018-01-19 12:59:53 -05:00