Commit graph

70 commits

Author SHA1 Message Date
Dorel Luca
88828e1dc0 Backed out 2 changesets (bug 1654192) for Talos failures in \xulstore\data.safe.bin. CLOSED TREE
Backed out changeset bad6faf26935 (bug 1654192)
Backed out changeset 6657944c0b63 (bug 1654192)
2020-07-31 19:39:01 +03:00
Victor Porof
36be5b2aaa Bug 1654192 - Part 2: Update xulstore to use RKV in safe mode, r=nanj
Differential Revision: https://phabricator.services.mozilla.com/D85315
2020-07-31 10:41:33 +00:00
Jed Davis
c3572e2dda Bug 1644917 - Part 1: Construct content sandbox "common" policy lazily. r=gcp,Gijs
When the SandboxBrokerPolicyFactory is constructed, prefs aren't
available, which constrains the cached subset of the content process
policy to entries that don't depend on prefs.  Delaying the computation
until a content process is started removes that restriction.

(This also delays the reading of dynamic linker configuration to discover
library directories, so a test needs to be adjusted.)

Differential Revision: https://phabricator.services.mozilla.com/D81423
2020-07-02 11:27:21 +00:00
Gerald Squelart
9de7e9a9b5 Bug 1640325 - Implement IOInterposeObserver::Observation::FileType() on Windows - r=canaltinova
Use `GetFileType(HANDLE)` on Windows.
Unlike `HandleToFilename`, `GetFileType` is fast enough that we don't need to use a `SmallArrayLRUCache` for it.

The pipe I/Os should not be visible anymore in the startup tests.

Differential Revision: https://phabricator.services.mozilla.com/D82303
2020-07-06 23:43:18 +00:00
Gerald Squelart
f3b8c9b60a Bug 1529610 - LRU cache of Windows filenames in WinIOAutoObservation - r=canaltinova,florian
Caching filenames in 32-entry LRU array covers >95% of calls, and makes the average `Filename()` call 5 to 10 times cheaper.

browser_start_content_mainthreadio.js needed to be updated to handle operations that now have a filename thanks to the cache.

Since `ClearPoisonIOInterposer()` is never called (see bug 1647107), during Firefox shutdown we put LRUCache in a shutdown mode, which bypasses the cache in case it is still used at that time.

Differential Revision: https://phabricator.services.mozilla.com/D79767
2020-07-06 23:42:38 +00:00
Sarah Bird
d1626da38c Bug 1647501 - Rename "test slave" -> "test machine", r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D81908
2020-07-02 01:06:01 +00:00
Gijs Kruitbosch
b4623ffd8b Bug 1647787 - remove use of whitelist/blacklist from front-end performance tests, r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D80697
2020-06-24 14:23:49 +00:00
Butkovits Atila
44b8ac984c Backed out changeset e33817395845 (bug 1529610) as requested by dev. CLOSED TREE 2020-06-18 15:38:56 +03:00
Gerald Squelart
61581471a7 Bug 1529610 - LRU cache of Windows filenames in WinIOAutoObservation - r=canaltinova,florian
Caching filenames in 32-entry LRU array covers >95% of calls, and makes the average `Filename()` call 5 to 10 times cheaper.

browser_start_content_mainthreadio.js needed to be updated to handle operations that now have a filename thanks to the cache.

Differential Revision: https://phabricator.services.mozilla.com/D79767
2020-06-18 08:26:51 +00:00
Shane Caraveo
56e61eda29 Bug 1575948 add new system-extensions location for Normandy r=aswan
Add a new extension location in the user profile that Normandy will use to install mozilla signed addons.  These are used to update builtin addons, experiments, etc. as well as take over functionality currently supported by Balrog.

Differential Revision: https://phabricator.services.mozilla.com/D70636
2020-05-15 23:10:33 +00:00
Andrea Marchesini
a765ed14dd Bug 1363541 - Modernize the PermissionManager - part 3 - DB handling in a separate thread, r=timhuang
Differential Revision: https://phabricator.services.mozilla.com/D69965

--HG--
extra : moz-landing-system : lando
2020-04-11 13:41:19 +00:00
Razvan Maries
b74e338c98 Backed out 6 changesets (bug 1363541) for perma failures. CLOSED TREE
Backed out changeset a775f6e9eb41 (bug 1363541)
Backed out changeset 9212bfd89eca (bug 1363541)
Backed out changeset bf41b0c139f6 (bug 1363541)
Backed out changeset aa7c6668b249 (bug 1363541)
Backed out changeset 9f413a8a47bb (bug 1363541)
Backed out changeset 827a9a2866bd (bug 1363541)

--HG--
rename : extensions/permissions/Permission.cpp => extensions/permissions/nsPermission.cpp
rename : extensions/permissions/Permission.h => extensions/permissions/nsPermission.h
rename : extensions/permissions/PermissionManager.cpp => extensions/permissions/nsPermissionManager.cpp
rename : extensions/permissions/PermissionManager.h => extensions/permissions/nsPermissionManager.h
2020-04-10 11:31:20 +03:00
Andrea Marchesini
f78d7b4bd4 Bug 1363541 - Modernize the PermissionManager - part 3 - DB handling in a separate thread, r=timhuang
Differential Revision: https://phabricator.services.mozilla.com/D69965

--HG--
extra : moz-landing-system : lando
2020-04-10 06:36:03 +00:00
Chris Martin
64e1fb7a45 Bug 1540776 - Have parent send color profile to child during launch r=aosmond,jld,jfkthame,florian
For Win32k lockdown, we need to remove the content processes' ability to
call GetICMProfileW(). Since it needs this to retrieve the output color
profile, a new synchronous call is added that allows it to request the
parent process to read this file on its behalf.

The contents of the file are now being cached as well, as this should help
ease some of the increased parent process I/O caused by the children not
being able to do this in their process anymore.

For performance reasons, during launch this information is passed directly
to the child through the SetXPCOMProcessAttributes call

Differential Revision: https://phabricator.services.mozilla.com/D66126

--HG--
extra : moz-landing-system : lando
2020-04-02 15:42:15 +00:00
Gijs Kruitbosch
a3d7372669 Bug 1545167 - write default pdf behaviour to handlers.json without going to the OS, r=florian,mkaply
I'm taking the opportunity to remove isDefaultHandlerApp messaging as the
content-side calls were removed in bug 1353029.

Depends on D59788

Differential Revision: https://phabricator.services.mozilla.com/D59789

--HG--
extra : moz-landing-system : lando
2020-02-10 23:52:21 +00:00
Gijs Kruitbosch
a65f26ec64 Bug 1547693 - do not bother looking up protocol information with the OS just to store the default shipped options, r=florian
Differential Revision: https://phabricator.services.mozilla.com/D59788

--HG--
extra : moz-landing-system : lando
2020-02-10 23:51:43 +00:00
Narcis Beleuzu
c8f08e0930 Backed out 2 changesets (bug 1547693, bug 1545167) for xpcshell failures on test_handlerService.js . CLOSED TREE
Backed out changeset 0e6e758f47b5 (bug 1545167)
Backed out changeset f74a32d5753a (bug 1547693)
2020-02-06 18:49:44 +02:00
Gijs Kruitbosch
f3a6914b76 Bug 1545167 - write default pdf behaviour to handlers.json without going to the OS, r=florian,mkaply
I'm taking the opportunity to remove isDefaultHandlerApp messaging as the
content-side calls were removed in bug 1353029.

Depends on D59788

Differential Revision: https://phabricator.services.mozilla.com/D59789

--HG--
extra : moz-landing-system : lando
2020-01-23 15:27:26 +00:00
Gijs Kruitbosch
d36408c366 Bug 1547693 - do not bother looking up protocol information with the OS just to store the default shipped options, r=florian
Differential Revision: https://phabricator.services.mozilla.com/D59788

--HG--
extra : moz-landing-system : lando
2020-02-06 13:01:19 +00:00
Ehsan Akhgari
77edf2c060 Bug 1603969 - Part 2: Update existing 'storageAccessAPI' permissions with granted origin used in them; r=baku
This permission manager migration drops the granted origin part of the
permission type.

Differential Revision: https://phabricator.services.mozilla.com/D57494

--HG--
extra : moz-landing-system : lando
2019-12-19 02:56:54 +00:00
Gurzau Raul
bed8b9f116 Backed out 4 changesets (bug 1603969) for failing at /browser_startup_mainthreadio.js on a CLOSED TREE.
Backed out changeset c4d79087eef1 (bug 1603969)
Backed out changeset 2c0198f3506c (bug 1603969)
Backed out changeset c5ad252c525b (bug 1603969)
Backed out changeset a334451b95eb (bug 1603969)
2019-12-19 02:08:09 +02:00
Ehsan Akhgari
5cd834fdd4 Bug 1603969 - Part 2: Update existing 'storageAccessAPI' permissions with granted origin used in them; r=baku
This permission manager migration drops the granted origin part of the
permission type.

Differential Revision: https://phabricator.services.mozilla.com/D57494

--HG--
extra : moz-landing-system : lando
2019-12-18 19:14:55 +00:00
Gijs Kruitbosch
9421776013 Bug 1263176 - get appropriate description on Windows 8/10 for apps/filetypes delegated via TWINUI / Windows Storage types, r=emk,mhowell
Differential Revision: https://phabricator.services.mozilla.com/D53370

--HG--
extra : moz-landing-system : lando
2019-11-22 00:07:21 +00:00
Gijs Kruitbosch
afb3b66abd Bug 1594521 - enable remote settings blocklist on nightly, r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D52939

--HG--
extra : moz-landing-system : lando
2019-11-19 00:23:55 +00:00
Narcis Beleuzu
d65afd5e9a Backed out changeset dea221c2e93e (bug 1594521) for xpcshell failures on test_isDebuggable.js . CLOSED TREE 2019-11-16 00:04:29 +02:00
Gijs Kruitbosch
bb1a101c48 Bug 1594521 - enable remote settings blocklist on nightly, r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D52939

--HG--
extra : moz-landing-system : lando
2019-11-15 16:54:23 +00:00
J.C. Jones
ffbc80ee26 Bug 1596430 - Permit an additional stat to the NSS certDB metadata files r=florian
Probably caused by Bug 1577803, which is a good change, so updating the tests.

Differential Revision: https://phabricator.services.mozilla.com/D53050

--HG--
extra : moz-landing-system : lando
2019-11-14 18:41:13 +00:00
Gijs Kruitbosch
ea58459bc1 Bug 1545123 - move reading pluginreg and scanning for plugins to a background thread, r=handyman,mconley
Finally, let's move the actual IO away from the main thread.

This means there are now 3 ways of looking for plugins:
1. looking for changes from ReloadPlugins. This runs the PluginFinder runnable
   on the main thread.
2. loading plugins from LoadPlugins. This will:
   a) first check prefs and report the flash plugin based on that information,
      if the prefs indicate it exists (using the callback provided by
      nsPluginHost).
   b) then hopefully dispatch to a background thread, where it will read
      pluginreg.dat, scan the appropriate folders on disk, and see if
      anything changed. Once done, it sets mFinishedFinding to true and
      re-dispatches itself to the main thread.
   c) then on the main thread, it reports any changes to nsPluginHost.
3. if dispatching in 2(b) fails, we will run steps (b) and (c) on the main
   thread.

Note: if ReloadPlugins is called, we intiially do (1), but if we find
changes, we clear out the set of known plugins and then run LoadPlugins
again (meaning we go through 2 (or 3 if 2(b) fails)). This is how
reloading plugins worked prior to my changes and I've attempted not to
change it.

In order for this to work, there are some other changes in this commit:

- the sandbox prefs are being read "early" and cached for flash vs
  "everything else". We can't access prefs on non-main threads without
  using StaticPrefs, which doesn't seem worth it here.
- some of the plugin tag classes are moved to threadsafe refcounting.
  This is a bit unfortunate, but because they're instantiated on a non-
  mainthread, and then later used on the main thread, despite the
  fact that the architecture means nothing tries to touch them from
  more than one thread at once, without threadsafe refcounting we hit
  asserts in debug mode if we add references to them back on the main thread.
- we add shutdown blocking for pluginfinding. We don't really want to
  be halfway through finding plugins and then trying to shut them down,
  or re-instantiating plugins after they've been unloaded.
- we keep a reference to the "pending" pluginfinder instance while
  doing lookups away from the main thread (ie (2)), to avoid re-entrancy or
  trying to write to pluginreg while we're reading it somewhere else,
  etc. If there's an attempt to do more plugin finding while this is
  ongoing, we flip mDoReloadOnceFindingFinished and do a reload once
  our initial lookups are complete.

Depends on D48331

Differential Revision: https://phabricator.services.mozilla.com/D48332

--HG--
extra : moz-landing-system : lando
2019-11-02 22:35:04 +00:00
Gijs Kruitbosch
608f3e7539 Bug 1545123 - simplify how we get directory information for plugins, r=handyman,mconley
In this change we:
- stop treating the nsPluginDirServiceProvider as a directory provider, as its
  GetFile implementation was a no-op anyway - registering it didn't make any
  difference.
- stop treating it as a class entirely, because the PLID getters were already
  static, so instantiating it also didn't do anything.
- move IO from the plugin directory list provider and the Windows-only PLID
  getters into nsPluginHost. This enables us to move it off of the main thread
  later - the directory getting has to happen on the main thread, but we can
  postpone further checks on the nsIFile instances.
- in the process, stop doing exists() calls on files because we can fail more
  lazily. This allows us to remove more allowlist entries from
  browser_startup_mainthreadio, though the `isDirectory` calls will actually
  still cause IO - they don't seem to create IO markers in the profiler.
  We will move this IO away from the main thread in subsequent commits.

Depends on D48328

Differential Revision: https://phabricator.services.mozilla.com/D48329

--HG--
extra : moz-landing-system : lando
2019-11-02 22:33:42 +00:00
Ciure Andrei
fdfd0105e6 Backed out 5 changesets (bug 1545123) for causing nsPluginTags.cpp build bustages CLOSED TREE
Backed out changeset 91313cceae8c (bug 1545123)
Backed out changeset d91549e68229 (bug 1545123)
Backed out changeset 269d89e09fbb (bug 1545123)
Backed out changeset a139ee115519 (bug 1545123)
Backed out changeset eb454f238f45 (bug 1545123)
2019-11-02 14:00:38 +02:00
Gijs Kruitbosch
dc78268f2e Bug 1545123 - move reading pluginreg and scanning for plugins to a background thread, r=handyman,mconley
Finally, let's move the actual IO away from the main thread.

This means there are now 3 ways of looking for plugins:
1. looking for changes from ReloadPlugins. This runs the PluginFinder runnable
   on the main thread.
2. loading plugins from LoadPlugins. This will:
   a) first check prefs and report the flash plugin based on that information,
      if the prefs indicate it exists (using the callback provided by
      nsPluginHost).
   b) then hopefully dispatch to a background thread, where it will read
      pluginreg.dat, scan the appropriate folders on disk, and see if
      anything changed. Once done, it sets mFinishedFinding to true and
      re-dispatches itself to the main thread.
   c) then on the main thread, it reports any changes to nsPluginHost.
3. if dispatching in 2(b) fails, we will run steps (b) and (c) on the main
   thread.

Note: if ReloadPlugins is called, we intiially do (1), but if we find
changes, we clear out the set of known plugins and then run LoadPlugins
again (meaning we go through 2 (or 3 if 2(b) fails)). This is how
reloading plugins worked prior to my changes and I've attempted not to
change it.

In order for this to work, there are some other changes in this commit:

- the sandbox prefs are being read "early" and cached for flash vs
  "everything else". We can't access prefs on non-main threads without
  using StaticPrefs, which doesn't seem worth it here.
- some of the plugin tag classes are moved to threadsafe refcounting.
  This is a bit unfortunate, but because they're instantiated on a non-
  mainthread, and then later used on the main thread, despite the
  fact that the architecture means nothing tries to touch them from
  more than one thread at once, without threadsafe refcounting we hit
  asserts in debug mode if we add references to them back on the main thread.
- we add shutdown blocking for pluginfinding. We don't really want to
  be halfway through finding plugins and then trying to shut them down,
  or re-instantiating plugins after they've been unloaded.
- we keep a reference to the "pending" pluginfinder instance while
  doing lookups away from the main thread (ie (2)), to avoid re-entrancy or
  trying to write to pluginreg while we're reading it somewhere else,
  etc. If there's an attempt to do more plugin finding while this is
  ongoing, we flip mDoReloadOnceFindingFinished and do a reload once
  our initial lookups are complete.

Depends on D48331

Differential Revision: https://phabricator.services.mozilla.com/D48332

--HG--
extra : moz-landing-system : lando
2019-10-30 15:53:15 +00:00
Gijs Kruitbosch
c04f0a7345 Bug 1545123 - simplify how we get directory information for plugins, r=handyman,mconley
In this change we:
- stop treating the nsPluginDirServiceProvider as a directory provider, as its
  GetFile implementation was a no-op anyway - registering it didn't make any
  difference.
- stop treating it as a class entirely, because the PLID getters were already
  static, so instantiating it also didn't do anything.
- move IO from the plugin directory list provider and the Windows-only PLID
  getters into nsPluginHost. This enables us to move it off of the main thread
  later - the directory getting has to happen on the main thread, but we can
  postpone further checks on the nsIFile instances.
- in the process, stop doing exists() calls on files because we can fail more
  lazily. This allows us to remove more allowlist entries from
  browser_startup_mainthreadio, though the `isDirectory` calls will actually
  still cause IO - they don't seem to create IO markers in the profiler.
  We will move this IO away from the main thread in subsequent commits.

Depends on D48328

Differential Revision: https://phabricator.services.mozilla.com/D48329

--HG--
extra : moz-landing-system : lando
2019-10-29 05:30:29 +00:00
Gijs Kruitbosch
b4ce4fda42 Bug 1580282 - Remove checks for plugins that are part of extensions and support for loading plugins from the app and profile dir, r=mconley,mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D45450

--HG--
extra : moz-landing-system : lando
2019-09-12 23:15:49 +00:00
mandy cheang
f97af149f2 Bug 1546931 - Remove installs.ini stat during early start-up on the main thread. r=mossop
Differential Revision: https://phabricator.services.mozilla.com/D43295

--HG--
extra : moz-landing-system : lando
2019-08-30 22:05:41 +00:00
ruthra kumar
69f0254ddd Bug 1003968 - avoid Exists() calls for search plugin directories in the browser directory provider r=daleharvey,Gijs
This Change removes all call to Exists() in Directory Provider component, which creates the possibility for the componenet to return an empty list. SearchService.jsm is modified to handle this possibility.

Differential Revision: https://phabricator.services.mozilla.com/D42772

--HG--
extra : moz-landing-system : lando
2019-08-22 09:05:43 +00:00
Dorel Luca
36ef7ebb68 Backed out changeset de151ad69bd6 (bug 1003968) for build bustage. CLOSED TREE 2019-08-21 12:48:14 +03:00
ruthra kumar
c4c97acc65 Bug 1003968 - avoid Exists() calls for search plugin directories in the browser directory provider r=daleharvey,Gijs
This Change removes all call to Exists() in Directory Provider component, which creates the possibility for the componenet to return an empty list. SearchService.jsm is modified to handle this possibility.

Differential Revision: https://phabricator.services.mozilla.com/D42772

--HG--
extra : moz-landing-system : lando
2019-08-21 09:34:49 +00:00
Robert Helmer
7b2e615378 Bug 1571472 - remove expectation of GreD and decrement XCurProcD omni jar file stats r=mconley
Corroborator.jsm no longer causes file I/O on early startup before user input is possible.

Depends on D41693

Differential Revision: https://phabricator.services.mozilla.com/D42585

--HG--
extra : moz-landing-system : lando
2019-08-20 00:52:25 +00:00
Jed Davis
51bcb910f3 Bug 1426526 - Remove references to the old Chromium temporary file prefix. r=gsvelto,florian
With the removal of the old Chromium file_util code, we should no longer
be using temporary files with names starting with "org.chromium.", so the
crash reporter and main thread I/O test no longer need to recognize that
prefix.

Differential Revision: https://phabricator.services.mozilla.com/D34629

--HG--
extra : moz-landing-system : lando
2019-08-14 22:48:43 +00:00
Jed Davis
8692675af1 Bug 1479960 - Fix the main thread I/O tests to handle the IPC shared memory changes. r=florian
The tests for unexpected main thread I/O had exemptions for the specific
paths that were being used for shared memory, which would cause it to
fail with the changes in this bug.  This patch does two things:

1. On Linux, /dev/shm is always tmpfs (a memory filesystem), so it's not
going to cause disk I/O, and it's used by glibc to implement the POSIX
standard shm_open API.  This allows all /dev/shm paths instead of
limiting it to a hard-coded prefix.

2. On MacOS, with the patches in this bug, we'll no longer use temporary
files for shared memory on current OS versions, but we still need them on
older versions to avoid an OS bug (https://crbug.com/project-zero/1671),
and they are backed by disk in this case, so we want to allow only the
IPC files.  However, the path prefix has changed.

Differential Revision: https://phabricator.services.mozilla.com/D34628

--HG--
extra : moz-landing-system : lando
2019-08-14 22:48:33 +00:00
Mike Conley
11fefe136c Bug 1569421 - Re-enable browser_startup_mainthreadio.js and browser_startup_syncIPC.js for macOS 10.14. r=florian
Differential Revision: https://phabricator.services.mozilla.com/D39607

--HG--
extra : moz-landing-system : lando
2019-07-29 14:01:12 +00:00
Andrew Swan
188dd811fb Bug 1543090 Clean up unused bits of XPIState r=zombie
XPIState.getModTime() was setting a .changed property that nothing ever
looks at.  It also sets lastModifiedTime which is used from about:addons
but built-in addons aren't visible there so there's no point setting it
for them.

Differential Revision: https://phabricator.services.mozilla.com/D39061

--HG--
extra : moz-landing-system : lando
2019-07-26 02:45:52 +00:00
Brindusan Cristian
535145f197 Backed out 2 changesets (bug 1556789) on request from aryx for causing Bug 1565836. a=backout
Backed out changeset ca5fdf3a0ddd (bug 1556789)
Backed out changeset 19419ff4e756 (bug 1556789)
2019-07-13 20:52:45 +03:00
Shane Caraveo
36bce0da93 Bug 1556789 - Refactor extension install in searchservice to use promises r=robwu,daleharvey
This provides a set of promises that the searchservice resolves once the search engine has been configured

Differential Revision: https://phabricator.services.mozilla.com/D33660

--HG--
extra : moz-landing-system : lando
2019-07-12 19:33:32 +00:00
Gurzau Raul
7a46596592 Backed out 2 changesets (bug 1556789) for assertion failures in FF functional tests on a CLOSED TREE.
Backed out changeset 2d10e95cf0cd (bug 1556789)
Backed out changeset 0acf6bafda0f (bug 1556789)
2019-07-12 04:45:46 +03:00
Shane Caraveo
b2cb7defd5 Bug 1556789 - Refactor extension install in searchservice to use promises r=robwu,daleharvey
This provides a set of promises that the searchservice resolves once the search engine has been configured

Differential Revision: https://phabricator.services.mozilla.com/D33660

--HG--
extra : moz-landing-system : lando
2019-07-11 18:42:00 +00:00
Gijs Kruitbosch
aac6c9089a Bug 1559195 - clean up PdfJs enabled checking code, r=bdahl
Differential Revision: https://phabricator.services.mozilla.com/D36771

--HG--
extra : moz-landing-system : lando
2019-07-09 15:44:30 +00:00
shindli
a060733df8 Backed out changeset b59c9bfa328d (bug 1541603) for causing xpcshell failure in toolkit/crashreporter/test/unit_ipc/test_content_annotation.js CLOSED TREE 2019-07-09 02:10:29 +03:00
mandy cheang
b5650ccc80 Bug 1541603 - remove creation of minidumps folder on startup, create it lazily in crash reporter. r=gsvelto
Differential Revision: https://phabricator.services.mozilla.com/D36370

--HG--
extra : moz-landing-system : lando
2019-07-08 18:25:09 +00:00
Victor Porof
f9f5914039 Bug 1561435 - Format browser/base/, a=automatic-formatting
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D36041

--HG--
extra : source : 96b3895a3b2aa2fcb064c85ec5857b7216884556
2019-07-05 09:48:57 +02:00