Граф коммитов

2755 Коммитов

Автор SHA1 Сообщение Дата
Nika Layzell 1eff455532 Bug 1673711 - Part 2: Use CanSend instead of mIPCOpen in ContentParent, r=kmag
mIPCOpen would incorrectly be `true` before the actual IPC channel had been
opened. By instead using the IPC-provided CanSend() method, we can avoid this.

Differential Revision: https://phabricator.services.mozilla.com/D95890
2020-11-05 19:26:19 +00:00
Nika Layzell f5dcbe1c65 Bug 1673711 - Part 1: Don't shutdown processes before launching, r=jesup
Previously, it was possible to accidentally shut down a content process while it
was still launching if the process switch which requested the switch was
cancelled.

Differential Revision: https://phabricator.services.mozilla.com/D95889
2020-11-05 19:25:40 +00:00
Nika Layzell f17e6c21c5 Bug 1657028 - Mark as dead earlier during shutdown, r=kmag
Previously we would call RemoveFromList, without calling MarkAsDead, when
ShutDownProcess was called called from ContentParent::LaunchSubprocessResolve.
This tripped some assertions in BrowsingContextGroup's host code.

Differential Revision: https://phabricator.services.mozilla.com/D95888
2020-11-05 19:29:48 +00:00
Jean-Yves Avenard c938c7416c Bug 1674043 - P6. Remove sync PDecoderMananger::Supports API. r=mattwoodrow,bryce,mjf,ipc-reviewers,nika
In bug 1595994 we attempted to streamline the ability to determine which decoder was available regardless of the process they would be running in. This was subsequently done via the PDMFactory.

As there are several JS API that can query which codec are supported, it requires a synchronous mechanism.
This allowed to make a determination during the PlatformDecoderModule::Supports call, depending on which process it was going to be called frome.

Having a synchronous IPC call to the RemoteDecoderManagerParent has too many caveats to be workable.
So what we do instead is first determine at launch if the required external framework are available and pass this information to each content process.

When checking if a decoder is available, we make a best guess at determining if the PDM would support such codec, without actually loading such framework when running in the content process.

Supports can no longer make a decision based on the process currently running and as such PDM::CreateAudio/VideoDecoder using an optional system framework now need to further check the validity of the CreateDecoderParam argument.

Differential Revision: https://phabricator.services.mozilla.com/D95245
2020-11-04 02:22:33 +00:00
Jean-Yves Avenard bedf73be6e Bug 1674043 - P5. Don't attempt to synchronize preferences until ContentParent has compleded initialization. r=nika
Initialization of the ContentParent could modify some preferences, and we wouldn't be ready to send them to the ContentChild yet.
So we split a ALIVE into another INITIALIZED state to distinguist the two.

Differential Revision: https://phabricator.services.mozilla.com/D95244
2020-11-02 15:32:59 +00:00
Christoph Kerschbaumer f6868ae514 Bug 1672648: Add SiteOriginPrincipal to ContentParent r=nika
Differential Revision: https://phabricator.services.mozilla.com/D95156
2020-11-03 07:25:41 +00:00
Olli Pettay 1856a4dec3 Bug 1671962 - Iframes loaded from restored session are loaded out of order when Fission enabled, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D94904
2020-10-30 22:10:15 +00:00
Narcis Beleuzu 8042432b13 Backed out 2 changesets (bug 1673947, bug 1671962) for wpt failure on nested-context-navigations-iframe.html . CLOSED TREE
Backed out changeset 8c71945d53bd (bug 1673947)
Backed out changeset 84ed543cd810 (bug 1671962)
2020-10-30 21:05:41 +02:00
Olli Pettay d07f915174 Bug 1671962 - Iframes loaded from restored session are loaded out of order when Fission enabled, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D94904
2020-10-30 11:48:23 +00:00
Randell Jesup 904b53869f Bug 1670848: Handling aborting history navigations when others run r=smaug
Handles edge cases around history.go() with one event loop spin

Differential Revision: https://phabricator.services.mozilla.com/D93302
2020-10-23 20:27:50 +00:00
Kris Maglione 7f1732b64e Bug 1671773: Add ContentParent to ContentProcessManager before we call InitInternal. r=nika
Otherwise, if we return early, it will never get added, and we will crash when
trying to remove it when it's destroyed.

Differential Revision: https://phabricator.services.mozilla.com/D94487
2020-10-22 21:34:43 +00:00
Jean-Yves Avenard d06384295b Bug 1595994 - P25. Have launch rdd be signalled over the PBackground channel. r=mattwoodrow,nika,ipc-reviewers
This remove the need for a sync dispatch to the main thread, that lead to deadlocks.

Depends on D93316

Differential Revision: https://phabricator.services.mozilla.com/D93317
2020-10-20 23:32:54 +00:00
Tom Tung 45a97b5b83 Bug 1654080 - Use PBackground for syncing SessionStorageCache and use LSWriteOptimizer to send data changes; r=dom-workers-and-storage-reviewers,janv,nika
This patch does:
- Use LSWriteOptimizer
- Remove SessionStorageService since it's unused.
- Move IPC from PContent to PBackground
(by SessionStorageManager{Child, Parent} and SessionStorageCache{Child, Parent}).
- Extract SessionStorageManagerBase and add PBackgroundSessionStorageManager.
- Expose a getter function to get a BackgroundParentManager for top context id
on the parent.

IPC
- Before this patch:
  - Copy from parent while loading a document.
    - Mark cache entry on the parent process as loaded by the child id.
  - Update change on checkpoint.
  - Unmark cache entry on the parent process as unloaded for the child id while
  the parent actor is destorying.
- After this patch:
  - Sync IPC load in the first SessionStorage operation.
  - Update change on checkpoint

`BackgroundSessionStorageManager`'s lifecycle on the parent process.
- Create by `SessionStorageManagerParent` and register to the `sManagers`.
- Hold by `SessionStorageManagerParent` and `sManagers`.
- Remove from the `sManagers` while the corresponding `BrowsingContext` is
destructed (on the parent process).

Depends on D89341

Differential Revision: https://phabricator.services.mozilla.com/D89342
2020-10-14 00:19:33 +00:00
Nika Layzell 6e69a9db71 Bug 1660539 - Make StructuredCloneData args optional in JSActor RawMessage, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D93122
2020-10-13 17:43:56 +00:00
Aaron Klotz 3a1effb0ce Bug 1668376: Part 2 - On Android, do not mark content processes as dead in ContentParent::NotifyTabDestroying; r=nika
Because GeckoView content processes are hosted inside Android `Service`s, and because
there is a hard limit on those services, we cannot assume that it is safe to launch
a new content process while another one is still in the process of shutting down.

Calling `ContentParent::MarkAsDead` from `ContentParent::NotifyTabDestroying`
triggers such a scenario. By excluding this code from GeckoView builds, we
ensure that content processes remain live until GeckoView (or Android itself)
forcibly terminates them.

Differential Revision: https://phabricator.services.mozilla.com/D92650
2020-10-13 15:55:16 +00:00
Aaron Klotz 865e038207 Bug 1668376: Part 1 - Rename GeckoProcessManager::MarkAsDead to GeckoProcessManager::ShutdownProcess; r=geckoview-reviewers,necko-reviewers,agi,dragana
Since the semantics of `ContentParent::MarkAsDead` are significantly different
from `GeckoProcessManager::MarkAsDead`, let's rename the latter to better
reflect what it actually does.

Differential Revision: https://phabricator.services.mozilla.com/D92649
2020-10-06 20:25:02 +00:00
Jonathan Kew a85cb4bb2b Bug 1668253 - Convert hyphenation from ipc::SharedMemoryBasic to base::SharedMemory, and freeze blocks before sharing to content processes. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D91945
2020-10-12 10:24:06 +00:00
Emilio Cobos Álvarez 4e68e78542 Bug 1669925 - Add a printing.trigger keyed scalar to record what triggers a particular print dialog. r=jwatt,marionette-reviewers,maja_zf
In order to avoid over/under-counting, we need to treat window.print()
specially. The new UI was using aOpenWindowInfo.isForPrintPreview for
that, but that doesn't quite work for the old UI (because it will
trigger a regular print, not a preview).

But since isForPrintPreview was only really needed to distinguish
window.print(), just rename it and set it to true when the old UI is
triggered by window.print() as well.

Differential Revision: https://phabricator.services.mozilla.com/D92925
2020-10-09 14:59:46 +00:00
Nika Layzell c69565e02f Bug 1661364 - Part 6: Give the recycled process background process priority, r=kmag,jesup
Differential Revision: https://phabricator.services.mozilla.com/D89485
2020-09-14 13:45:49 +00:00
Nika Layzell bc478ec278 Bug 1661364 - Part 4: Disable process recycling when prealloc is disabled, r=kmag,jesup
Various tests disable process preallocation in order to get "stable" process
counts for testing purposes. In order to keep this behaviour, we need to disable
and shut down the recycled E10S process whenever the preallocator is disabled.

This is accomplished by having the preallocator expose its enabled status to
ContentParent, and by having the preallocator trigger ContentParent shutdown
when it is disabled.

This also has the benefit of hooking the recycler back into memory pressure
notifications, meaning it will be shut down if not in use when a memory pressure
event occurs.

Differential Revision: https://phabricator.services.mozilla.com/D88628
2020-09-14 13:45:48 +00:00
Nika Layzell 6659bba1f6 Bug 1661364 - Part 3: Add a MaybeBeginShutDown method, r=kmag,jesup
This helper method abstracts over the common tasks performed in every normal
shutdown codepath. This will be useful for making process recycling respect
preallocation being disabled.

Differential Revision: https://phabricator.services.mozilla.com/D88627
2020-09-14 13:45:48 +00:00
Nika Layzell 8ba59b4f56 Bug 1661364 - Part 2: Don't recycle web processes with Fission enabled, r=kmag,jesup
It is uncommon to have long-lived "web" processes when Fission is enabled, so in
general we probably don't want to be performing content process recycling.

We also skip recycling web processes when E10s is disabled, as the process
preallocator would be disabled in that case, so recycling processes can lead to
mochitest-chrome test failures.

Differential Revision: https://phabricator.services.mozilla.com/D88626
2020-09-14 13:45:48 +00:00
Nika Layzell bdeb969b66 Bug 1661364 - Part 1: Don't remove recycled content processes from the pool, r=kmag,jesup
Previously, we would use the PreallocatedProcessManager to handle recycled
"web" content processes, which would remove them from the pool and try to make
them act like "prealloc" content processes.

Unlike true preallocated content processes, we can end up having content loaded
in recycled "web" content processes, such as due to a new pop-up being created
at an inconvenient time during process teardown. The complexity around this
semi-prealloc state caused some assertion failures in other related code.

This new approach doesn't remove the recycled process from the process selection
pool. Instead, after process selection decides to spawn a new "web" process, a
pointer to the specific "recycled" content process is fetched and returned by
the process selection algorithm before asking the preallocator.

This new approach should have similar behaviour, but avoids some of the pitfalls
caused by removing the entry from the process selection pool after it has begun
hosting content.

Differential Revision: https://phabricator.services.mozilla.com/D88625
2020-09-14 13:45:48 +00:00
Nika Layzell a008f5cdae Bug 1660342 - Add more assertions around host state, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D87928
2020-09-16 04:43:54 +00:00
julianwels 341416588c Bug 1653026 - Added HTTPS-Only Mode upgrade info to browser UI state. r=mattwoodrow,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D86566
2020-10-06 00:34:55 +00:00
Olli Pettay 1c44b2f115 Bug 1668577 - Make child process to send offset to parent process, not index, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D92074
2020-10-02 16:15:47 +00:00
Brindusan Cristian 2a9b39efce Backed out 2 changesets (bug 1653026) for mochitest failures at WindowGlobalParent.cpp. CLOSED TREE
Backed out changeset 54c69c99b241 (bug 1653026)
Backed out changeset e70649f78910 (bug 1653026)
2020-10-03 10:49:04 +03:00
julianwels 30a6225652 Bug 1653026 - Added HTTPS-Only Mode upgrade info to browser UI state. r=mattwoodrow,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D86566
2020-10-03 01:22:19 +00:00
Razvan Maries 59c799b78f Backed out changeset a3cbffeb24a3 (bug 1668577) for perma failures on location_reload.html. CLOSED TREE 2020-10-02 19:11:53 +03:00
Olli Pettay 29e269dd12 Bug 1668577 - Make child process to send offset to parent process, not index, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D92074
2020-10-02 12:05:57 +00:00
Peter Van der Beken fb9ae54dbd Bug 1659102 - Fix fragment navigation for session history in parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D91593
2020-09-29 12:09:59 +00:00
Peter Van der Beken 7a59804081 Bug 1659102 - Merge SetActiveSessionHistoryEntryForTop and SetActiveSessionHistoryEntryForFrame. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D91592
2020-09-29 12:04:20 +00:00
Simon Giesecke de7bab0f06 Bug 1650145 - Replace all value uses of Empty[C]String by 0-length _ns literals. r=froydnj,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D82325
2020-09-23 15:17:15 +00:00
Christoph Kerschbaumer c9b352a0f3 Bug 1666751: Use simple and never failing LoadInfo() getter because all channels should have a loadinfo r=freddyb,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D91119
2020-09-23 12:49:40 +00:00
Olli Pettay caf80ded58 Bug 1666596 - Ensure location.reload(true) removes entries for iframes, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D91050
2020-09-23 10:04:57 +00:00
Nico Grunbaum c9ad55f22d Bug 1664900 - P5 - mv peerconnection to jsapi;r=dminor
Differential Revision: https://phabricator.services.mozilla.com/D90951
2020-09-23 04:28:03 +00:00
Nico Grunbaum 54d899d308 Bug 1664900 - move /media/webrtc/signaling/src to /dom/media/webrtc;r=dminor,webidl,smaug
Differential Revision: https://phabricator.services.mozilla.com/D90179
2020-09-23 04:22:29 +00:00
Kris Maglione afcc0476d6 Bug 1663747: Part 1 - Fix sCurrentShutdownPhase and add PastShutdownPhase() API. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D89809
2020-09-22 17:13:27 +00:00
Emilio Cobos Álvarez 6e955983d8 Bug 1557645 - Fix gcc warning.
MANUAL PUSH: Minor bustage fix in a CLOSED TREE
2020-09-22 14:31:07 +02:00
Emilio Cobos Álvarez a4e300194a Bug 1557645 - Clone OOP iframes in the right process. r=nika
This works, though probably we want to do some follow-up tweaks, like
the adding of the onload blocker and so on, so that we can avoid the
UpdateDimensions hack.

We may also want a PrintObject in the nsPrintJob tree, perhaps...

Differential Revision: https://phabricator.services.mozilla.com/D90310
2020-09-22 09:57:27 +00:00
Mihai Alexandru Michis a9f468308c Backed out 2 changesets (bug 1663747) for causing xpcshell failures in ThrottledEventQueue.
CLOSED TREE

Backed out changeset 643aa6baf458 (bug 1663747)
Backed out changeset 491472fe44f4 (bug 1663747)
2020-09-22 03:54:59 +03:00
Kris Maglione 5ae4ea4f07 Bug 1663747: Part 1 - Fix sCurrentShutdownPhase and add PastShutdownPhase() API. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D89809
2020-09-21 19:18:43 +00:00
Andreas Farre a26f502e34 Bug 1666196 - Part 1: Move decision to cancel to ProcessHangMonitor. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D90825
2020-09-21 10:05:21 +00:00
Peter Van der Beken aa030970db Bug 1664656 - Decide whether to add a new entry based on the load type. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D90028
2020-09-20 12:40:10 +00:00
Dorel Luca 594edf3c57 Backed out 3 changesets (bug 1664656, bug 1664655) for multiple failures in checkouts/gecko/docshell/base/nsDocShell.cpp
Backed out changeset ac1e652efeb6 (bug 1664655)
Backed out changeset c8c1abf5f616 (bug 1664656)
Backed out changeset 3c1e9e36a39e (bug 1664656)
2020-09-19 16:38:26 +03:00
Peter Van der Beken 9d54c7ab78 Bug 1664656 - Decide whether to add a new entry based on the load type. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D90028
2020-09-18 16:49:35 +00:00
Olli Pettay 208cca166b Bug 1574261 - Make nsDocShell::MaybeHandleSubFrameHistory work with session history in parent, r=peterv
This has couple of different pieces and one may want to focus on each of those separately when
reviewing. The first two as small changes.

- Moving mDynamicallyCreated from nsDocShell to be a sync'ed field on BrowsingContext.
  CanonicalBrowsingContext::CreateLoadingSessionHistoryEntryForLoad sets that on a newly created entry.
- Adding mActiveEntryIsLoadingFromSessionHistory. mLoadingEntry + mActiveEntryIsLoadingFromSessionHistory has roughly
  the same lifetime as mLSHE. mLoadingActiveEntry is needed so that child docshell can know whether its parent is loading from session history.
- The main part is in MaybeHandleSubframeHistory which checks if the parent docshell is loading from session history,
  and if so, asks for a LoadingSessionHistoryInfo. In the case of docshell living in a child process that operation is asynchronous,
  so when the data is back from the parent process, LoadURI is called again with the possibly updated data.
  One could possibly split the code to smaller methods and then deal with aContinueHandlingSubframeHistory only in LoadURI,
  but MaybeHandleSubframeHistory does have some early returns which would make that approach possibly hard to follow.

Differential Revision: https://phabricator.services.mozilla.com/D89685
2020-09-17 18:22:08 +00:00
Andreas Farre f9f96d23ca Bug 1662410 - Part 1: Fix usage of ChildSHistory.legacySHistory . r=peterv
ChildSHistory.legacySHistory isn't valid for content processes when
session history in the parent is enabled. We try to fix this by either
delegating to the parent by IPC or move the implementation partially
or as a whole to the parent.

Differential Revision: https://phabricator.services.mozilla.com/D89353
2020-09-16 14:51:01 +00:00
Andrea Marchesini e733096393 Bug 444222 - Update the window.name when doing the navigation, r=smaug,nika
This patch implements the window.name updating in the spec
https://html.spec.whatwg.org/#history-traversal.

Differential Revision: https://phabricator.services.mozilla.com/D81361
2020-09-15 17:51:05 +00:00
Barret Rennie f74cb16fd0 Bug 1657188 - Implement rel=preload load time telemetry r=Dexter,emilio,nika
Differential Revision: https://phabricator.services.mozilla.com/D86074
2020-09-14 21:03:52 +00:00
Doug Thayer 025f5fb9f0 Bug 1656261 - Back out all recent StartupCache work r=RyanVM
This backs out all work from bug 1627075 as well as all of its
descendents. There were a few conflicts when backing this out but
overall it was pretty clean, so I would say it's a fairly mild
level of risk. Historically Nathan Froyd has reviewed these patches,
but he is no longer at Mozilla, and no one else is particularly
familiar with the code, so I am passing this off to RyanVM who has
at least been familiar with the history of the bug.

Differential Revision: https://phabricator.services.mozilla.com/D90096
2020-09-14 17:00:53 +00:00
Bogdan Tara 11b8b5a61b Backed out 7 changesets (bug 1661364, bug 1660342) for making bug 1551615 perma fail CLOSED TREE
Backed out changeset a56449ddacc9 (bug 1661364)
Backed out changeset fc185ddca53b (bug 1661364)
Backed out changeset 99234e013005 (bug 1661364)
Backed out changeset eac6bfc4a98d (bug 1661364)
Backed out changeset 9cb0e2dc8d8a (bug 1661364)
Backed out changeset 37b78e402c23 (bug 1661364)
Backed out changeset ae991d4209a7 (bug 1660342)
2020-09-11 14:13:46 +03:00
Mark Banner 3d9ea7d179 Bug 1375244 - Remove sync KeywordToURI and related IPC messages as they are no longer required. r=Gijs,mak,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D89486
2020-09-11 07:15:21 +00:00
Nika Layzell 3b0aed3acd Bug 1661364 - Part 6: Give the recycled process background process priority, r=kmag,jesup
Differential Revision: https://phabricator.services.mozilla.com/D89485
2020-09-10 13:28:24 +00:00
Nika Layzell 5851505c99 Bug 1661364 - Part 4: Disable process recycling when prealloc is disabled, r=kmag,jesup
Various tests disable process preallocation in order to get "stable" process
counts for testing purposes. In order to keep this behaviour, we need to disable
and shut down the recycled E10S process whenever the preallocator is disabled.

This is accomplished by having the preallocator expose its enabled status to
ContentParent, and by having the preallocator trigger ContentParent shutdown
when it is disabled.

This also has the benefit of hooking the recycler back into memory pressure
notifications, meaning it will be shut down if not in use when a memory pressure
event occurs.

Differential Revision: https://phabricator.services.mozilla.com/D88628
2020-09-08 20:56:22 +00:00
Nika Layzell 15199373b5 Bug 1661364 - Part 3: Add a MaybeBeginShutDown method, r=kmag,jesup
This helper method abstracts over the common tasks performed in every normal
shutdown codepath. This will be useful for making process recycling respect
preallocation being disabled.

Differential Revision: https://phabricator.services.mozilla.com/D88627
2020-09-08 18:35:39 +00:00
Nika Layzell 74af6d97df Bug 1661364 - Part 2: Don't recycle web processes with Fission enabled, r=kmag,jesup
It is uncommon to have long-lived "web" processes when Fission is enabled, so in
general we probably don't want to be performing content process recycling.

We also skip recycling web processes when E10s is disabled, as the process
preallocator would be disabled in that case, so recycling processes can lead to
mochitest-chrome test failures.

Differential Revision: https://phabricator.services.mozilla.com/D88626
2020-09-08 18:35:37 +00:00
Nika Layzell 23445d16af Bug 1661364 - Part 1: Don't remove recycled content processes from the pool, r=kmag,jesup
Previously, we would use the PreallocatedProcessManager to handle recycled
"web" content processes, which would remove them from the pool and try to make
them act like "prealloc" content processes.

Unlike true preallocated content processes, we can end up having content loaded
in recycled "web" content processes, such as due to a new pop-up being created
at an inconvenient time during process teardown. The complexity around this
semi-prealloc state caused some assertion failures in other related code.

This new approach doesn't remove the recycled process from the process selection
pool. Instead, after process selection decides to spawn a new "web" process, a
pointer to the specific "recycled" content process is fetched and returned by
the process selection algorithm before asking the preallocator.

This new approach should have similar behaviour, but avoids some of the pitfalls
caused by removing the entry from the process selection pool after it has begun
hosting content.

Differential Revision: https://phabricator.services.mozilla.com/D88625
2020-09-09 19:15:51 +00:00
Nika Layzell da8cbf8277 Bug 1660342 - Add more assertions around host state, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D87928
2020-09-08 18:35:27 +00:00
Razvan Maries 90b7948378 Backed out 2 changesets (bug 1663963, bug 1657188) for perma failures on browser_Telemetry_loadTimePreload.js. CLOSED TREE
Backed out changeset 643f16da7b99 (bug 1657188)
Backed out changeset 0c9661a5c8f9 (bug 1663963)
2020-09-10 03:48:48 +03:00
Barret Rennie 423307263a Bug 1657188 - Implement rel=preload load time telemetry r=Dexter,emilio,nika
Differential Revision: https://phabricator.services.mozilla.com/D86074
2020-09-09 21:44:48 +00:00
Peter Van der Beken f5c5e66824 Bug 1663488 - Forward ChildSHistory::Reload to the parent process with session history in the parent. r=smaug
Depends on D89420

Differential Revision: https://phabricator.services.mozilla.com/D89421
2020-09-08 14:10:31 +00:00
Peter Van der Beken d1ecf2821d Bug 1662407 - Call nsSHistory::GotoIndex directly when loading from session history in the parent process. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D88976
2020-09-08 19:32:27 +00:00
Kris Maglione 5f2d674982 Bug 1650257: Part 1 - Stop discarding BCs from the parent on WindowGlobal destruction. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87485
2020-08-31 18:51:45 +00:00
Noemi Erli 0c682c4f01 Backed out changeset db52cf052477 (bug 1660342) for causing Bug 1661364 a=backout 2020-08-31 12:15:29 +03:00
Anny Gakhokidze 8b553ecfcf Bug 1589102 - Part 1: Enable about:srcdoc loads via DocumentChannel, r=mattwoodrow
This patch enables sandboxed srcdoc loads to take place via DocumentChannel,
and adds mechanisms for enabling unsandboxed ones.

Both unsandboxed srcdoc, and in subsequent patches, about:blank, loads require
that the triggering principal and the principal to inherit point to the same
instance if the load takes place in the same process as where we are inheriting
those principals from. We save those principals on a target browsing context before
we load the URI, and later, when we are deserializing LoadInfoArgs into
LoadInfo in the content process, we retrieve the saved principals if the
current load identifier of the target BC matches the load identifier saved
along with the principals.

We also need to make sure that during a process switch for about:srcdoc load,
we don't use the original URI for about:srcdoc to determine the remote type and
instead we use channel's result principal.

Differential Revision: https://phabricator.services.mozilla.com/D85079
2020-08-28 17:20:30 +00:00
Henri Sivonen 812f93262d Bug 1646537 - Use BrowsingContext (and IPC) in place of GetInProcessParent usage in nsGlobalWindowOuter::FocusOuter. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87576
2020-08-26 15:53:18 +00:00
Nika Layzell c8dab1397c Bug 1660342 - Add more assertions around host state, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D87928
2020-08-24 18:58:00 +00:00
Peter Van der Beken 7f6d4f154e Bug 1660869 - Forward RemoveFromSessionHistory to the parent process for session history in the parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D88061
2020-08-25 16:20:17 +00:00
Peter Van der Beken f0aa8ed5fe Bug 1660868 - Forward RemoveDynEntries to the parent process for session history in the parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D88060
2020-08-25 16:04:51 +00:00
Emilio Cobos Álvarez 044b3c4332 Bug 1636728 - Centralize printing entry points in nsGlobalWindowOuter, and move cloning out of nsPrintJob. r=jwatt,geckoview-reviewers,smaug,agi
This centralizes our print and preview setup in nsGlobalWindowOuter so
that we never re-clone a clone, and so that we reuse the window.open()
codepath to create the browsing context to clone into.

For window.print, for both old print dialog / silent printing and new
print preview UI, we now create a hidden browser (as in with visibility:
collapse, which takes no space but still gets a layout box).

 * In the modern UI case, this browser is swapped with the actual print
   preview clone, and the UI takes care of removing the browser.

 * In the print dialog / silent printing case, the printing code calls
   window.close() from nsDocumentViewer::OnDonePrinting().

 * We don't need to care about the old print preview UI for this case
   because it can't be open from window.print().

We need to fall back to an actual window when there's no
nsIBrowserDOMWindow around for WPT print tests and the like, which don't
have one. That seems fine, we could special-case this code path more if
needed but it doesn't seem worth it.

Differential Revision: https://phabricator.services.mozilla.com/D87063
2020-08-25 17:45:12 +00:00
Peter Van der Beken a4a8b3da89 Bug 1649131 - Implement history.pushState/.replaceState for session history in the parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D87039
2020-08-23 17:41:03 +00:00
Olli Pettay 0bd5beeadf Bug 1658821 - Move Id from SessionHistoryInfo to LoadingSessionHistoryInfo, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D86864
2020-08-20 16:55:21 +00:00
Butkovits Atila 5c5df0b663 Backed out changeset 24d6087acc64 (bug 1658821) for build bustage at SessionHistoryEntry.cpp. CLOSED TREE 2020-08-20 17:37:53 +03:00
Olli Pettay cd47973905 Bug 1658821 - Move Id from SessionHistoryInfo to LoadingSessionHistoryInfo, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D86864
2020-08-20 12:02:17 +00:00
Agi Sferro 6c2e9aa154 Bug 1660049 - Broadcast application-{background,foreground} to content processes. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87646
2020-08-19 20:46:29 +00:00
Andrea Marchesini 27d564c279 Bug 1658878 - Isolate BlobURLs per agent-cluster, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D86914
2020-08-14 19:45:52 +00:00
Olli Pettay 9c7b1aa59d Bug 1658649 - Make session-history-in-parent nsISHEntry setters to rely on active entry, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D86770
2020-08-13 22:51:47 +00:00
Olli Pettay 5192276b89 Bug 1658454 - nsISHEntry.cacheKey setter for session-history-in-parent, r=peterv
SessionHistoryEntry::MaybeSynchronizeSharedStateToInfo call is a tad controversial, but
something like that is needed for the cases when the actual value lives in the SHEntrySharedParentState.

Differential Revision: https://phabricator.services.mozilla.com/D86640
2020-08-13 22:51:17 +00:00
Olli Pettay b4c699ff11 Bug 1658280 - nsISHEntry.scrollRestorationIsManual setter for session-history-in-parent, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D86547
2020-08-13 23:17:48 +00:00
Olli Pettay 33a7c472fa Bug 1657757 - nsISHEntry.title setter for session-history-in-parent, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D86275
2020-08-13 23:38:36 +00:00
Bogdan Tara 694be205aa Backed out 4 changesets (bug 1658878) for blob related leaks CLOSED TREE
Backed out changeset 0288ef9ab65b (bug 1658878)
Backed out changeset a5af0e097560 (bug 1658878)
Backed out changeset 33c4b81f99a1 (bug 1658878)
Backed out changeset 16a33c7b4ff3 (bug 1658878)
2020-08-14 22:41:05 +03:00
Andrea Marchesini 91ce718928 Bug 1658878 - Isolate BlobURLs per agent-cluster, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D86914
2020-08-14 16:59:44 +00:00
Mihai Alexandru Michis 33c1daa575 Backed out 4 changesets (bug 1658878) for causing failures in browser_blobURLIsolation.js
CLOSED TREE

Backed out changeset f69f80e5659f (bug 1658878)
Backed out changeset 20401a2adaa6 (bug 1658878)
Backed out changeset a8620aecc29f (bug 1658878)
Backed out changeset 3609760c1e5d (bug 1658878)
2020-08-14 19:55:25 +03:00
Andrea Marchesini 5c2811edd6 Bug 1658878 - Isolate BlobURLs per agent-cluster, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D86914
2020-08-14 10:41:22 +00:00
Noemi Erli 9858638fe8 Backed out 2 changesets (bug 1657757, bug 1658280) for causing build bustages in nsDocShell.cpp CLOSED TREE
Backed out changeset 0f03a74f24a5 (bug 1658280)
Backed out changeset 3aaeea6bd201 (bug 1657757)
2020-08-14 02:12:48 +03:00
Noemi Erli b7c6d9d228 Backed out changeset 404955e976d6 (bug 1658454) for causing build bustages in nsDocShell.cpp CLOSED TREE 2020-08-14 01:30:50 +03:00
Olli Pettay 510e721d9e Bug 1658454 - nsISHEntry.cacheKey setter for session-history-in-parent, r=peterv
SessionHistoryEntry::MaybeSynchronizeSharedStateToInfo call is a tad controversial, but
something like that is needed for the cases when the actual value lives in the SHEntrySharedParentState.

Differential Revision: https://phabricator.services.mozilla.com/D86640
2020-08-13 19:18:29 +00:00
Olli Pettay 9805690970 Bug 1658280 - nsISHEntry.scrollRestorationIsManual setter for session-history-in-parent, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D86547
2020-08-13 19:18:06 +00:00
Olli Pettay 83814cae84 Bug 1657757 - nsISHEntry.title setter for session-history-in-parent, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D86275
2020-08-13 19:17:38 +00:00
Jed Davis dc948b0c6a Bug 1654957 - Enable the GfxInfo component in the GPU process on Linux. r=jgilbert
Out-of-process WebGL needs GfxInfo to exist in the composition
process (which is the GPU process if it exists and the parent process
otherwise).  This patch enables the Linux version of that component in
the GPU process; the IPC currently used to give content processes copies
of the parent's GPU info is extended to also send it to the GPU process.

Differential Revision: https://phabricator.services.mozilla.com/D85443
2020-08-07 21:31:53 +00:00
Butkovits Atila 3bd0e5497c Backed out 10 changesets (bug 1589102) for failure at browser_saveHeapSnapshot_e10s_01.js CLOSED TREE
Backed out changeset 0d22ad297b19 (bug 1589102)
Backed out changeset 14bcaf2a452c (bug 1589102)
Backed out changeset 20905f91e2bb (bug 1589102)
Backed out changeset 29ee0fbe855f (bug 1589102)
Backed out changeset d1f6185030af (bug 1589102)
Backed out changeset 31949872cc1d (bug 1589102)
Backed out changeset ec04e1a20597 (bug 1589102)
Backed out changeset ffe8da473b91 (bug 1589102)
Backed out changeset 3b92f7306c64 (bug 1589102)
Backed out changeset b187548e258f (bug 1589102)
2020-08-05 21:47:50 +03:00
ssengupta 8d095d15bf Bug 1619953 - P5 - BlobURLChannel allows loading blob data that is very recently revoked r=baku
Previously similar logic existed in BlobURLProtocolHandler, which has now been removed, since such checks are now for parent process only and should be abstracted from BlobURLProtocolHandler.

Depends on D75293

Differential Revision: https://phabricator.services.mozilla.com/D81126
2020-08-05 17:06:01 +00:00
ssengupta 562ceea795 Bug 1619953 - P2 - Asynchronous BlobURLDataRequest introduced r=baku
The content process should use this method to send blob url and triggering principal to the parent process and expect blobImpl in return, if the blob is found and the triggering principal subsumes the blob's principal.

Differential Revision: https://phabricator.services.mozilla.com/D75291
2020-08-05 17:05:54 +00:00
Anny Gakhokidze e903c66d34 Bug 1589102 - Part 1: Enable about:srcdoc loads via DocumentChannel, r=mattwoodrow
This patch enables sandboxed srcdoc loads to take place via DocumentChannel,
and adds mechanisms for enabling unsandboxed ones.

Both unsandboxed srcdoc, and in subsequent patches, about:blank, loads require
that the triggering principal and the principal to inherit point to the same
instance if the load takes place in the same process as where we are inheriting
those principals from. We save those principals on a target browsing context before
we load the URI, and later, when we are deserializing LoadInfoArgs into
LoadInfo in the content process, we retrieve the saved principals if the
current load identifier of the target BC matches the load identifier saved
along with the principals.

We also need to make sure that during a process switch for about:srcdoc load,
we don't use the original URI for about:srcdoc to determine the remote type and
instead we use channel's result principal.

Differential Revision: https://phabricator.services.mozilla.com/D85079
2020-08-05 16:44:01 +00:00
Nika Layzell 475bf900c6 Bug 1653729 - Part 2: Add methods for do_QueryActor from nsIDOMProcess*, r=kmag
Before this change, nsIDOMProcess{Parent,Child} could not directly be used in
do_QueryActor, as they don't directly inherit from JSActorManager.

The std::enable_if_t trickery is required in order to avoid overload issues when
passing types like ContentChild which inherit from both JSActorManager and
nsIDOMProcess{Parent,Child}.

Differential Revision: https://phabricator.services.mozilla.com/D84068
2020-08-04 21:35:25 +00:00
Nika Layzell ca8ccd9569 Bug 1653407 - Part 2: Fix issue with NoteJSContextException, r=kmag
Previously we would end up throwing an uncatchable exception if actor
construction failed with an exception, due to calling
NoteJSContextException(cx), and then exiting a AutoEntryScript, which will clear
the exception on the JSContext and report it.

Differential Revision: https://phabricator.services.mozilla.com/D84066
2020-08-04 21:38:47 +00:00
Andrew McCreight 3d43d61e95 Bug 1656953 - Add remoteType to nsIDOMProcessParent. r=nika
This will let people get information about the process more easily.

remoteType can't be infallible because it is a ACString.

Differential Revision: https://phabricator.services.mozilla.com/D85776
2020-08-04 16:50:00 +00:00
Mihai Alexandru Michis 9fa46e7850 Backed out 2 changesets (bug 1654957) for causing leaks.
CLOSED TREE

Backed out changeset 14761127f6bb (bug 1654957)
Backed out changeset 49a529a1cc20 (bug 1654957)
2020-08-04 19:31:06 +03:00
Jed Davis 24b6995b46 Bug 1654957 - Enable the GfxInfo component in the GPU process on Linux. r=jgilbert
Out-of-process WebGL needs GfxInfo to exist in the composition
process (which is the GPU process if it exists and the parent process
otherwise).  This patch enables the Linux version of that component in
the GPU process; the IPC currently used to give content processes copies
of the parent's GPU info is extended to also send it to the GPU process.

Differential Revision: https://phabricator.services.mozilla.com/D85443
2020-07-30 22:08:15 +00:00
Andrew McCreight f6f2bd8f6e Bug 1655536, part 2 - Don't wait for memory reports from child processes that no longer exist. r=froydnj
This patch uses IPDL's return feature to ensure that the memory
reporter manager won't wait for a report from a child process
that has already exited.

This fixes a memory reporter hang that can happen if a child process
exits during a memory report, when the parent half of the actor is
being held alive. (If the parent half of the actor is not being held
alive, then mMemoryReportRequest will be naturally cleared when it
goes away.)

This was happening frequently on Windows Fission AWSY because that test
does a minimize memory right before it attempts to get a memory report,
and the preallocated content process exits when it sees a message to
minimize memory.

Differential Revision: https://phabricator.services.mozilla.com/D85499
2020-08-03 18:29:45 +00:00
Chris Martin 552aa91269 Bug 1652561 - Remote Win32k calls in nsLookAndFeel::GetFontImpl() r=emilio,geckoview-reviewers,agi,froydnj
Content processes will now receive cached values for GetFontImpl() from the
parent process during initialization and whenever the theme changes.

This eliminates the use of several Win32k calls in content.

Differential Revision: https://phabricator.services.mozilla.com/D83406
2020-07-31 16:21:44 +00:00
Andreas Farre b13577d8e4 Bug 1613431 - Part 3: Handle synced setters return value. r=nika
Depends on D83646

Differential Revision: https://phabricator.services.mozilla.com/D83647
2020-07-31 13:37:13 +00:00
Nika Layzell 5ed1074194 Bug 1652085 - Delay BrowsingContextGroup destruction until acked, r=farre
This should ensure that any BrowsingContexts racily created during the discard
process don't end up creating a separate BrowsingContextGroup from their
relatives, and triggering group mismatch assertions.

Differential Revision: https://phabricator.services.mozilla.com/D84548
2020-07-30 20:27:41 +00:00
Nika Layzell 06dd04520e Bug 1652144 - Part 2: Consider current BrowsingContextGroup for process selection, r=farre
This requires keeping track of the current process used to host documents with a
particular remote type loaded in each BrowsingContextGroup. Due to lifecycle
oddities, this set is kept separate from the existing subscribers set on
BrowsingContextGroup.

Differential Revision: https://phabricator.services.mozilla.com/D84061
2020-07-30 20:27:37 +00:00
Nika Layzell 59bd2d5f83 Bug 1652144 - Part 1: Remove unused argument from process launch methods, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D84060
2020-07-30 20:27:34 +00:00
Jonathan Kew eb8be4d270 Bug 1648355 - When doing a global font fallback search, load cmaps eagerly in the parent process. r=jwatt
This reduces IPC traffic, and avoids the (severe) impact of file access interception
and proxying by the sandbox on DirectWrite in content processes.

Differential Revision: https://phabricator.services.mozilla.com/D83240
2020-07-22 21:12:11 +00:00
Butkovits Atila cf561cece0 Backed out 5 changesets (bug 1652144, bug 1654569, bug 1652085) for assertion failure nsDocShell.cpp. CLOSED TREE
Backed out changeset 4388af0c7d95 (bug 1654569)
Backed out changeset 66d5bb2ff027 (bug 1652085)
Backed out changeset 05132c178b4f (bug 1652144)
Backed out changeset fbdc7fd9cb96 (bug 1652144)
Backed out changeset 920a06a52b8b (bug 1652144)
2020-07-26 11:12:52 +03:00
Nika Layzell 9ad094035e Bug 1652085 - Delay BrowsingContextGroup destruction until acked, r=farre
This should ensure that any BrowsingContexts racily created during the discard
process don't end up creating a separate BrowsingContextGroup from their
relatives, and triggering group mismatch assertions.

Differential Revision: https://phabricator.services.mozilla.com/D84548
2020-07-24 20:24:45 +00:00
Nika Layzell fc494ad88c Bug 1652144 - Part 2: Consider current BrowsingContextGroup for process selection, r=farre
This requires keeping track of the current process used to host documents with a
particular remote type loaded in each BrowsingContextGroup. Due to lifecycle
oddities, this set is kept separate from the existing subscribers set on
BrowsingContextGroup.

Differential Revision: https://phabricator.services.mozilla.com/D84061
2020-07-24 20:24:36 +00:00
Nika Layzell 03de005ca0 Bug 1652144 - Part 1: Remove unused argument from process launch methods, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D84060
2020-07-24 20:24:33 +00:00
Junior Hsu ddaa9f30b2 Bug 1652189 - SendOnStartRequestSent only for main document, r=mayhemer,necko-reviewers
Even if loadflag contains LOAD_DOCUMENT_NEEDS_COOKIE, we update cookie only for
the main documen
https://searchfox.org/mozilla-central/rev/9b282b34b5aa0f836beb735656c55efb2cc4c617/dom/ipc/ContentParent.cpp#5704

Hence, we don't need to wait for main thread IPC to proceed HttpChannelChild::OnStartRequest

Differential Revision: https://phabricator.services.mozilla.com/D84275
2020-07-24 05:13:26 +00:00
Olli Pettay 1b3d2a37fb Bug 1647229 - Synchronize layouthistorystate to parent process, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D81753
2020-07-23 19:35:29 +00:00
Doug Thayer a538eb7804 Bug 1651941 - Avoid unnecessary empty StartupCaches r=froydnj
Prior to this patch, we were sending a boolean from InitContentChild (which
creates our StartupCache IPC actors) indicating whether we wanted to collect
new entries from a given process or not. This was so that we wouldn't accept
PutBuffer requests in these processes, since collecting them in one process
would be enough, and we don't want to waste memory. However, we actually
want the cache to be available before we can even get that IPC constructor
to the child process, so there's a window where we accept new entries
no matter what. This patch changes this by sending a boolean argument via
the command line indicating that we want to disable the Startupcache in this
process entirely. We send this when we didn't load a StartupCache off disk,
as this should be the only circumstance in which we're actually collecting
a substantial number of entries in content processes.

Differential Revision: https://phabricator.services.mozilla.com/D83400
2020-07-22 20:31:21 +00:00
Simon Giesecke e443211b53 Bug 1653229 - Remove unnecessary includes for BindingUtils.h. r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D83771
2020-07-22 15:12:10 +00:00
Doug Thayer 8f54209ef6 Bug 1651165 - Rename idle service r=Gijs,geckoview-reviewers,snorp
Differential Revision: https://phabricator.services.mozilla.com/D83413
2020-07-20 16:06:59 +00:00
Olli Pettay 306b718cb8 Bug 1602115, make it possible to test async history.length handling even when session history lives in the child process, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D79198
2020-07-16 23:04:18 +00:00
Olli Pettay 41fc87999f Bug 1602115 - Make history.length Fission compatible, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D79197
2020-07-16 22:23:29 +00:00
Razvan Maries 4ccaec8564 Backed out 3 changesets (bug 1653123, bug 1602115) for perma failures on test_history_length_during_pageload.html. CLOSED TREE
Backed out changeset 6b3c0f542ef3 (bug 1653123)
Backed out changeset 951c0fd65a00 (bug 1602115)
Backed out changeset 258d0ebd9e34 (bug 1602115)
2020-07-16 23:21:18 +03:00
Olli Pettay e702898d75 Bug 1602115, make it possible to test async history.length handling even when session history lives in the child process, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D79198
2020-07-16 19:02:49 +00:00
Olli Pettay c142af0f58 Bug 1602115 - Make history.length Fission compatible, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D79197
2020-07-16 19:01:36 +00:00
Andrew McCreight 543079d871 Bug 1648590 - Set the crash report remote annotation when we set the remote type. r=kmag
This patch moves the remote type crash annotation code from RecvSetProcessSandbox() to
RecvRemoteType(), where we actually set the remote type. This matters because
RecvSetProcessSandbox() only happens once when the process is created. If the process
is a preallocated process, it will get its remote type updated later, so we need to
also update the annotation.

It seems odd that we were setting the remote type annotation in a method related to
the sandbox and not where we set the remote type. My only guess is that prior to
bug 1332522 RecvSetProcessSandbox() happened first, so maybe they wanted to make sure
the annotation was set as early as possible. At that point in time, the remote type
never changed, so it was okay to just set it wherever, as early as possible.

Anyways, after that bug, the first call to RecvRemoteType() happens earlier, so this
change is strictly better.

I also fixed a typo in ContentParent.

Differential Revision: https://phabricator.services.mozilla.com/D82625
2020-07-10 01:56:13 +00:00
Butkovits Atila 2a1d404458 Backed out changeset 4c0909f105b2 (bug 1648590) for build bustage at ContentChild.cpp. CLOSED TREE 2020-07-10 03:03:30 +03:00
Andrew McCreight 2eef496a85 Bug 1648590 - Set the crash report remote annotation when we set the remote type. r=kmag
This patch moves the remote type crash annotation code from RecvSetProcessSandbox() to
RecvRemoteType(), where we actually set the remote type. This matters because
RecvSetProcessSandbox() only happens once when the process is created. If the process
is a preallocated process, it will get its remote type updated later, so we need to
also update the annotation.

It seems odd that we were setting the remote type annotation in a method related to
the sandbox and not where we set the remote type. My only guess is that prior to
bug 1332522 RecvSetProcessSandbox() happened first, so maybe they wanted to make sure
the annotation was set as early as possible. At that point in time, the remote type
never changed, so it was okay to just set it wherever, as early as possible.

Anyways, after that bug, the first call to RecvRemoteType() happens earlier, so this
change is strictly better.

I also fixed a typo in ContentParent.

Differential Revision: https://phabricator.services.mozilla.com/D82625
2020-07-08 00:48:43 +00:00
Matt Woodrow 655377eb57 Bug 1649879 - Don't create nsIURIFixupInfo in content process nsDocShellLoadState construction. r=kmag
Rather than constructing an nsIURIFixupInfo from the IPC call return valuess, and then immediately querying the same data, this just use the results directly.

It also moves the firing of "keyword-uri-fixup" observers to the parent process side. As far as I can tell, the only consumer was URIFixupChild, which was also forwarding them to the parent process.

Differential Revision: https://phabricator.services.mozilla.com/D81944
2020-07-08 23:37:29 +00:00
Nika Layzell 54d298d667 Bug 1648109 - Report GetActor exceptions directly to the JSContext, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D82446
2020-07-06 21:17:17 +00:00
Nika Layzell 22a65a237e Bug 1650163 - Part 1: Switch native remoteType values to nsCString, r=farre,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D82104
2020-07-08 20:15:59 +00:00
Mihai Alexandru Michis 1ba2a3f6f6 Backed out 3 changesets (bug 1650163) for causing bustages in nsContentSecurityManager.cpp
CLOSED TREE

Backed out changeset 51d7c644a1e6 (bug 1650163)
Backed out changeset 3d2b6908447a (bug 1650163)
Backed out changeset 79141707d47b (bug 1650163)
2020-07-08 21:18:44 +03:00
Nika Layzell c850a94434 Bug 1650163 - Part 1: Switch native remoteType values to nsCString, r=farre,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D82104
2020-07-08 14:54:48 +00:00
Nika Layzell 60f3afe23e Bug 1649477 - Part 3: Handle ReceiveRawMessage generically, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D82102
2020-07-08 14:22:22 +00:00
Nika Layzell 4d6fb8dcc5 Bug 1649477 - Part 2: Unify JSActor manager logic, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D82101
2020-07-08 14:22:22 +00:00
Doug Thayer fcbcc674d2 Bug 1627075 - OMT and OMP StartupCache access r=froydnj
The overall goal of this patch is to make the StartupCache accessible anywhere.
There's two main pieces to that equation:

1. Allowing it to be accessed off main thread, which means modifying the
   mutex usage to ensure that all data accessed from non-main threads is
   protected.
2. Allowing it to be accessed out of the chrome process, which means passing
   a handle to a shared cache buffer down to child processes.

Number 1 is somewhat fiddly, but it's all generally straightforward work. I'll
hope that the comments and the code are sufficient to explain what's going on
there.

Number 2 has some decisions to be made:
- The first decision was to pass a handle to a frozen chunk of memory down to
  all child processes, rather than passing a handle to an actual file. There's
  two reasons for this: 1) since we want to compress the underlying file on
  disk, giving that file to child processes would mean they have to decompress
  it themselves, eating CPU time. 2) since they would have to decompress it
  themselves, they would have to allocate the memory for the decompressed
  buffers, meaning they cannot all simply share one big decompressed buffer.

  - The drawback of this decision is that we have to load and decompress the
    buffer up front, before we spawn any child processes. We attempt to
    mitigate this by keeping track of all the entries that child processes
    access, and only including those in the frozen decompressed shared buffer.

  - We base our implementation of this approach off of the shared preferences
    implementation. Hopefully I got all of the pieces to fit together
    correctly. They seem to work in local testing and on try, but I think
    they require a set of experienced eyes looking carefully at them.

- Another decision was whether to send the handles to the buffers over IPC or
  via command line. We went with the command line approach, because the startup
  cache would need to be accessed very early on in order to ensure we do not
  read from any omnijars, and we could not make that work via IPC.

  - Unfortunately this means adding another hard-coded FD, similar to
    kPrefMapFileDescriptor. It seems like at the very least we need to rope all
    of these together into one place, but I think that should be filed as a
    follow-up?

Lastly, because this patch is a bit of a monster to review - first, thank you
for looking at it, and second, the reason we're invested in this is because we
saw a >10% improvement in cold startup times on reference hardware, with a p
value less than 0.01. It's still not abundantly clear how reference hardware
numbers translate to numbers on release, and they certainly don't translate
well to Nightly numbers, but it's enough to convince me that it's worth some
effort.

Depends on D78584

Differential Revision: https://phabricator.services.mozilla.com/D77635
2020-07-08 02:46:11 +00:00
Narcis Beleuzu 8359f16846 Backed out 7 changesets (bug 1650163, bug 1649477) for bustages on JSActor.cpp . CLOSED TREE
Backed out changeset 4a21afb65254 (bug 1650163)
Backed out changeset c41753a56f5a (bug 1650163)
Backed out changeset 5fb444c35764 (bug 1650163)
Backed out changeset 830aa93d2b0c (bug 1649477)
Backed out changeset eca6e9dce450 (bug 1649477)
Backed out changeset 5b217aa88289 (bug 1649477)
Backed out changeset 8959d02b840f (bug 1649477)
2020-07-08 04:09:27 +03:00
Nika Layzell df351180c3 Bug 1650163 - Part 1: Switch native remoteType values to nsCString, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D82104
2020-07-06 20:30:58 +00:00
Nika Layzell a3579f6f46 Bug 1458043 - Stop converting promises to nsISupports in xpconnect, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D82616
2020-07-07 22:20:01 +00:00
Nika Layzell bb178eecd5 Bug 1649477 - Part 3: Handle ReceiveRawMessage generically, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D82102
2020-07-06 20:27:11 +00:00
Nika Layzell b3dc16424c Bug 1649477 - Part 2: Unify JSActor manager logic, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D82101
2020-07-06 20:27:08 +00:00
Narcis Beleuzu a182c015f5 Backed out 6 changesets (bug 1627075) for bustages on startupcache/StartupCache.cpp . CLOSED TREE
Backed out changeset 21605186687e (bug 1627075)
Backed out changeset e29b15980da2 (bug 1627075)
Backed out changeset eb5265addd5e (bug 1627075)
Backed out changeset dfd71f4ecb81 (bug 1627075)
Backed out changeset 13ecd68b3c0d (bug 1627075)
Backed out changeset 333d035afe92 (bug 1627075)
2020-07-07 23:30:48 +03:00
Doug Thayer 4d6b5a1f91 Bug 1627075 - OMT and OMP StartupCache access r=froydnj
The overall goal of this patch is to make the StartupCache accessible anywhere.
There's two main pieces to that equation:

1. Allowing it to be accessed off main thread, which means modifying the
   mutex usage to ensure that all data accessed from non-main threads is
   protected.
2. Allowing it to be accessed out of the chrome process, which means passing
   a handle to a shared cache buffer down to child processes.

Number 1 is somewhat fiddly, but it's all generally straightforward work. I'll
hope that the comments and the code are sufficient to explain what's going on
there.

Number 2 has some decisions to be made:
- The first decision was to pass a handle to a frozen chunk of memory down to
  all child processes, rather than passing a handle to an actual file. There's
  two reasons for this: 1) since we want to compress the underlying file on
  disk, giving that file to child processes would mean they have to decompress
  it themselves, eating CPU time. 2) since they would have to decompress it
  themselves, they would have to allocate the memory for the decompressed
  buffers, meaning they cannot all simply share one big decompressed buffer.

  - The drawback of this decision is that we have to load and decompress the
    buffer up front, before we spawn any child processes. We attempt to
    mitigate this by keeping track of all the entries that child processes
    access, and only including those in the frozen decompressed shared buffer.

  - We base our implementation of this approach off of the shared preferences
    implementation. Hopefully I got all of the pieces to fit together
    correctly. They seem to work in local testing and on try, but I think
    they require a set of experienced eyes looking carefully at them.

- Another decision was whether to send the handles to the buffers over IPC or
  via command line. We went with the command line approach, because the startup
  cache would need to be accessed very early on in order to ensure we do not
  read from any omnijars, and we could not make that work via IPC.

  - Unfortunately this means adding another hard-coded FD, similar to
    kPrefMapFileDescriptor. It seems like at the very least we need to rope all
    of these together into one place, but I think that should be filed as a
    follow-up?

Lastly, because this patch is a bit of a monster to review - first, thank you
for looking at it, and second, the reason we're invested in this is because we
saw a >10% improvement in cold startup times on reference hardware, with a p
value less than 0.01. It's still not abundantly clear how reference hardware
numbers translate to numbers on release, and they certainly don't translate
well to Nightly numbers, but it's enough to convince me that it's worth some
effort.

Depends on D78584

Differential Revision: https://phabricator.services.mozilla.com/D77635
2020-07-07 17:03:28 +00:00
Mihai Alexandru Michis 87cb0ad6fa Backed out 6 changesets (bug 1627075) for causing bustages in StartupCache.cpp
CLOSED TREE

Backed out changeset fc144caf5d06 (bug 1627075)
Backed out changeset a345e05df151 (bug 1627075)
Backed out changeset 288a67aed661 (bug 1627075)
Backed out changeset 2cb021a493d8 (bug 1627075)
Backed out changeset 920398d1c3d3 (bug 1627075)
Backed out changeset ebdcd96a9d20 (bug 1627075)
2020-07-07 08:47:14 +03:00
Doug Thayer 5ff30b60fa Bug 1627075 - OMT and OMP StartupCache access r=froydnj
The overall goal of this patch is to make the StartupCache accessible anywhere.
There's two main pieces to that equation:

1. Allowing it to be accessed off main thread, which means modifying the
   mutex usage to ensure that all data accessed from non-main threads is
   protected.
2. Allowing it to be accessed out of the chrome process, which means passing
   a handle to a shared cache buffer down to child processes.

Number 1 is somewhat fiddly, but it's all generally straightforward work. I'll
hope that the comments and the code are sufficient to explain what's going on
there.

Number 2 has some decisions to be made:
- The first decision was to pass a handle to a frozen chunk of memory down to
  all child processes, rather than passing a handle to an actual file. There's
  two reasons for this: 1) since we want to compress the underlying file on
  disk, giving that file to child processes would mean they have to decompress
  it themselves, eating CPU time. 2) since they would have to decompress it
  themselves, they would have to allocate the memory for the decompressed
  buffers, meaning they cannot all simply share one big decompressed buffer.

  - The drawback of this decision is that we have to load and decompress the
    buffer up front, before we spawn any child processes. We attempt to
    mitigate this by keeping track of all the entries that child processes
    access, and only including those in the frozen decompressed shared buffer.

  - We base our implementation of this approach off of the shared preferences
    implementation. Hopefully I got all of the pieces to fit together
    correctly. They seem to work in local testing and on try, but I think
    they require a set of experienced eyes looking carefully at them.

- Another decision was whether to send the handles to the buffers over IPC or
  via command line. We went with the command line approach, because the startup
  cache would need to be accessed very early on in order to ensure we do not
  read from any omnijars, and we could not make that work via IPC.

  - Unfortunately this means adding another hard-coded FD, similar to
    kPrefMapFileDescriptor. It seems like at the very least we need to rope all
    of these together into one place, but I think that should be filed as a
    follow-up?

Lastly, because this patch is a bit of a monster to review - first, thank you
for looking at it, and second, the reason we're invested in this is because we
saw a >10% improvement in cold startup times on reference hardware, with a p
value less than 0.01. It's still not abundantly clear how reference hardware
numbers translate to numbers on release, and they certainly don't translate
well to Nightly numbers, but it's enough to convince me that it's worth some
effort.

Depends on D78584

Differential Revision: https://phabricator.services.mozilla.com/D77635
2020-07-07 04:35:08 +00:00
Coroiu Cristina 057efa89c8 Backed out 5 changesets (bug 1649879) for browser-chrome failures at browser/base/content/test/tabs/browser_progress_keyword_search_handling.js
Backed out changeset f9670eed4ac5 (bug 1649879)
Backed out changeset 76ab8adad34b (bug 1649879)
Backed out changeset 6dc2e9474f43 (bug 1649879)
Backed out changeset 6f905d33681f (bug 1649879)
Backed out changeset 13b19e14a332 (bug 1649879)
2020-07-06 10:44:56 +03:00
Matt Woodrow 970c9c00b8 Bug 1649879 - Don't create nsIURIFixupInfo in content process nsDocShellLoadState construction. r=kmag
Rather than constructing an nsIURIFixupInfo from the IPC call return valuess, and then immediately querying the same data, this just use the results directly.

It also moves the firing of "keyword-uri-fixup" observers to the parent process side. As far as I can tell, the only consumer was URIFixupChild, which was also forwarding them to the parent process.

Differential Revision: https://phabricator.services.mozilla.com/D81944
2020-07-06 04:29:06 +00:00
Jean-Yves Avenard 8fd158d479 Bug 1649684 - Use the current nsISerialEventTarget with the various process hosts. r=nika
In all those cases, the current nsISerialEventTarget is either the main thread or the MessageChannel's nsISerialEventTarget (since bug 1634846)

Differential Revision: https://phabricator.services.mozilla.com/D81966
2020-07-02 22:59:24 +00:00
alwu f7b14399a5 Bug 1643513 - part2 : notify position state change when media session updates the position state. r=chunmin
What this patch do are
- propagate the position state change from the media session

The advantage of doing so is
- to allow us to notify this change to `MediaController` and eventually would notify that to `MediaControlKeySource`

Differential Revision: https://phabricator.services.mozilla.com/D80790
2020-07-02 01:23:24 +00:00
Tim Huang 3f37746e66 Bug 1648812 - Moving ReportUnblockingToConsole to the parent process and fix the console message. r=dimi
Differential Revision: https://phabricator.services.mozilla.com/D81842
2020-07-02 12:37:37 +00:00
Csoregi Natalia 4dcffa68cd Backed out 9 changesets (bug 1619953) for causing leaks. CLOSED TREE
Backed out changeset 9f610c8c44de (bug 1619953)
Backed out changeset 4e66983a4f00 (bug 1619953)
Backed out changeset 38aac5691967 (bug 1619953)
Backed out changeset 062c0c9b132f (bug 1619953)
Backed out changeset 830eb658d70e (bug 1619953)
Backed out changeset fccda4625d51 (bug 1619953)
Backed out changeset 4668c99560de (bug 1619953)
Backed out changeset 77c24528c8c2 (bug 1619953)
Backed out changeset b79dc688bfc9 (bug 1619953)
2020-07-02 17:58:57 +03:00
ssengupta 30cf4ca723 Bug 1619953 - P5 - BlobURLChannel allows loading blob data that is very recently revoked r=baku
Previously similar logic existed in BlobURLProtocolHandler, which has now been removed, since such checks are now for parent process only and should be abstracted from BlobURLProtocolHandler.

Depends on D75293

Differential Revision: https://phabricator.services.mozilla.com/D81126
2020-07-02 13:38:26 +00:00
ssengupta 3ee6bf808a Bug 1619953 - P2 - Asynchronous BlobURLDataRequest introduced r=baku
The content process should use this method to send blob url and triggering principal to the parent process and expect blobImpl in return, if the blob is found and the triggering principal subsumes the blob's principal.

Differential Revision: https://phabricator.services.mozilla.com/D75291
2020-07-02 13:37:51 +00:00
Noemi Erli b13f2bcb47 Backed out 7 changesets (bug 1627075) for causing @nsZipArchive crashes CLOSED TREE
Backed out changeset 9705b2759d45 (bug 1627075)
Backed out changeset 699212a443c3 (bug 1627075)
Backed out changeset 7ae4df10749c (bug 1627075)
Backed out changeset ece9a4223349 (bug 1627075)
Backed out changeset 6c4eedaa0d04 (bug 1627075)
Backed out changeset f5106898239f (bug 1627075)
Backed out changeset b6029c7c0016 (bug 1627075)
2020-07-02 14:05:53 +03:00
Doug Thayer a493fefece Bug 1627075 - OMT and OMP StartupCache access r=froydnj
The overall goal of this patch is to make the StartupCache accessible anywhere.
There's two main pieces to that equation:

1. Allowing it to be accessed off main thread, which means modifying the
   mutex usage to ensure that all data accessed from non-main threads is
   protected.
2. Allowing it to be accessed out of the chrome process, which means passing
   a handle to a shared cache buffer down to child processes.

Number 1 is somewhat fiddly, but it's all generally straightforward work. I'll
hope that the comments and the code are sufficient to explain what's going on
there.

Number 2 has some decisions to be made:
- The first decision was to pass a handle to a frozen chunk of memory down to
  all child processes, rather than passing a handle to an actual file. There's
  two reasons for this: 1) since we want to compress the underlying file on
  disk, giving that file to child processes would mean they have to decompress
  it themselves, eating CPU time. 2) since they would have to decompress it
  themselves, they would have to allocate the memory for the decompressed
  buffers, meaning they cannot all simply share one big decompressed buffer.

  - The drawback of this decision is that we have to load and decompress the
    buffer up front, before we spawn any child processes. We attempt to
    mitigate this by keeping track of all the entries that child processes
    access, and only including those in the frozen decompressed shared buffer.

  - We base our implementation of this approach off of the shared preferences
    implementation. Hopefully I got all of the pieces to fit together
    correctly. They seem to work in local testing and on try, but I think
    they require a set of experienced eyes looking carefully at them.

- Another decision was whether to send the handles to the buffers over IPC or
  via command line. We went with the command line approach, because the startup
  cache would need to be accessed very early on in order to ensure we do not
  read from any omnijars, and we could not make that work via IPC.

  - Unfortunately this means adding another hard-coded FD, similar to
    kPrefMapFileDescriptor. It seems like at the very least we need to rope all
    of these together into one place, but I think that should be filed as a
    follow-up?

Lastly, because this patch is a bit of a monster to review - first, thank you
for looking at it, and second, the reason we're invested in this is because we
saw a >10% improvement in cold startup times on reference hardware, with a p
value less than 0.01. It's still not abundantly clear how reference hardware
numbers translate to numbers on release, and they certainly don't translate
well to Nightly numbers, but it's enough to convince me that it's worth some
effort.

Depends on D78584

Differential Revision: https://phabricator.services.mozilla.com/D77635
2020-07-02 03:39:46 +00:00
Mihai Alexandru Michis bab20702a8 Backed out 6 changesets (bug 1627075) for causing failures regarding startupcache.
CLOSED TREE

Backed out changeset cf23b456ba12 (bug 1627075)
Backed out changeset b07887474f51 (bug 1627075)
Backed out changeset 65c0e6790a33 (bug 1627075)
Backed out changeset 6cd31f17a931 (bug 1627075)
Backed out changeset 0f0d1bd2a8ac (bug 1627075)
Backed out changeset 763a5a7b43a0 (bug 1627075)
2020-07-01 22:16:28 +03:00
Doug Thayer 42ac8f4294 Bug 1627075 - OMT and OMP StartupCache access r=froydnj
The overall goal of this patch is to make the StartupCache accessible anywhere.
There's two main pieces to that equation:

1. Allowing it to be accessed off main thread, which means modifying the
   mutex usage to ensure that all data accessed from non-main threads is
   protected.
2. Allowing it to be accessed out of the chrome process, which means passing
   a handle to a shared cache buffer down to child processes.

Number 1 is somewhat fiddly, but it's all generally straightforward work. I'll
hope that the comments and the code are sufficient to explain what's going on
there.

Number 2 has some decisions to be made:
- The first decision was to pass a handle to a frozen chunk of memory down to
  all child processes, rather than passing a handle to an actual file. There's
  two reasons for this: 1) since we want to compress the underlying file on
  disk, giving that file to child processes would mean they have to decompress
  it themselves, eating CPU time. 2) since they would have to decompress it
  themselves, they would have to allocate the memory for the decompressed
  buffers, meaning they cannot all simply share one big decompressed buffer.

  - The drawback of this decision is that we have to load and decompress the
    buffer up front, before we spawn any child processes. We attempt to
    mitigate this by keeping track of all the entries that child processes
    access, and only including those in the frozen decompressed shared buffer.

  - We base our implementation of this approach off of the shared preferences
    implementation. Hopefully I got all of the pieces to fit together
    correctly. They seem to work in local testing and on try, but I think
    they require a set of experienced eyes looking carefully at them.

- Another decision was whether to send the handles to the buffers over IPC or
  via command line. We went with the command line approach, because the startup
  cache would need to be accessed very early on in order to ensure we do not
  read from any omnijars, and we could not make that work via IPC.

  - Unfortunately this means adding another hard-coded FD, similar to
    kPrefMapFileDescriptor. It seems like at the very least we need to rope all
    of these together into one place, but I think that should be filed as a
    follow-up?

Lastly, because this patch is a bit of a monster to review - first, thank you
for looking at it, and second, the reason we're invested in this is because we
saw a >10% improvement in cold startup times on reference hardware, with a p
value less than 0.01. It's still not abundantly clear how reference hardware
numbers translate to numbers on release, and they certainly don't translate
well to Nightly numbers, but it's enough to convince me that it's worth some
effort.

Depends on D78584

Differential Revision: https://phabricator.services.mozilla.com/D77635
2020-07-01 17:55:38 +00:00
Alexandre Poirot bbc5fb63fa Bug 1644795 - Expose OS Pid on nsIDOMProcessParent. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D81122
2020-07-01 09:09:52 +00:00
Simon Giesecke 9364b353d4 Bug 1648010 - Remove NS_NAMED_LITERAL_CSTRING and NS_NAMED_LITERAL_STRING macros. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80631
2020-07-01 08:42:31 +00:00
Simon Giesecke e3c223da3e Bug 1648010 - Fix uses of NS_LITERAL_STRING with C string literals. r=geckoview-reviewers,agi,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80861
2020-07-01 08:34:12 +00:00
Simon Giesecke cd8b8939b9 Bug 1648010 - Replace uses of NS_LITERAL_STRING/NS_LITERAL_CSTRING macros by _ns literals. r=geckoview-reviewers,jgilbert,agi,hsivonen,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80860
2020-07-01 08:29:29 +00:00
Andrea Marchesini 4c6f89824d Bug 1648141 - IPCBlobInputStream to RemoteLazyInputStream - part 8 - mozilla namespace, r=smaug,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D80931
2020-06-29 13:40:27 +00:00
Andrea Marchesini 5fc1253731 Bug 1648141 - IPCBlobInputStream to RemoteLazyInputStream - part 4 - IPDL actors, r=smaug,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D80927
2020-06-29 11:03:02 +00:00
Razvan Maries f7cb24cc7e Backed out 8 changesets (bug 1648141) for build bustages on RemoteLazyInputStreamThread.cpp. CLOSED TREE
Backed out changeset e9b4ca0ee700 (bug 1648141)
Backed out changeset b9bb847cee47 (bug 1648141)
Backed out changeset 11dfce46ec14 (bug 1648141)
Backed out changeset d824d2f67f27 (bug 1648141)
Backed out changeset e5b8292e7095 (bug 1648141)
Backed out changeset c1a3d5fa0c61 (bug 1648141)
Backed out changeset 24fdb83db3cd (bug 1648141)
Backed out changeset 749d894dde52 (bug 1648141)
2020-06-29 13:59:16 +03:00
Andrea Marchesini c71431ab1b Bug 1648141 - IPCBlobInputStream to RemoteLazyInputStream - part 8 - mozilla namespace, r=smaug,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D80931
2020-06-29 10:30:00 +00:00
Andrea Marchesini 87e1daec9f Bug 1648141 - IPCBlobInputStream to RemoteLazyInputStream - part 4 - IPDL actors, r=smaug,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D80927
2020-06-29 10:27:20 +00:00
Aaron Klotz 6ff329ef81 Bug 1647470: Fix MinTabSelector to take into account empty but reusable content processes; r=nika
When the current number of existing content processes is less than the maximum,
`MinTabSelector` previously always created a new process. This is inefficient in
the case where we have `dom.ipc.keepProcessesAlive.web` set and there are
content processes that are idle with zero tabs -- we should allow those to be
reused.

Differential Revision: https://phabricator.services.mozilla.com/D80560
2020-06-27 06:14:27 +00:00
Kris Maglione c04b0a1b46 Bug 1648270: Get rid of unused ContentParent 'opener' field. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80971
2020-06-26 16:26:50 +00:00
Peter Van der Beken 26e71bd99d Bug 1648033 - Call session history listener for reload in the parent process if session history in the parent is on. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D80882
2020-06-26 14:34:12 +00:00
Nika Layzell c7f85b7fac Bug 1633379 - Part 2: Add support for in-process JSWindowActors, r=kmag,Yoric
This switches the `nsIContent{Parent,Child}` interface to be
`nsIDOMProcess{Parent,Child}`, and also implements it on
`InProcess{Parent,Child}`, along with the `ProcessActor` interface.

Differential Revision: https://phabricator.services.mozilla.com/D80582
2020-06-25 20:35:18 +00:00
Butkovits Atila f47ca94618 Backed out changeset 840d3dc313f1 (bug 1648270) for causing build bustages on ProtocolFuzzer.cpp. CLOSED TREE 2020-06-26 01:57:49 +03:00
Kris Maglione f1d85755a8 Bug 1648270: Get rid of unused ContentParent 'opener' field. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80971
2020-06-25 20:30:33 +00:00
Butkovits Atila 366cbc5518 Backed out changeset 3468660179b1 (bug 1648270) for bustages at ContentParent.h. CLOSED TREE 2020-06-25 22:06:46 +03:00
Kris Maglione f465a90bb0 Bug 1648270: Get rid of unused ContentParent 'opener' field. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80971
2020-06-25 17:53:39 +00:00
Cosmin Sabou 4d79f57fed Backed out 2 changesets (bug 1633379) for windows build bustages on ContentChild.obj. CLOSED TREE
Backed out changeset a26037f3225b (bug 1633379)
Backed out changeset efef0b59bcd8 (bug 1633379)
2020-06-25 20:47:03 +03:00
Nika Layzell 0fefabd35b Bug 1633379 - Part 2: Add support for in-process JSWindowActors, r=kmag,Yoric
This switches the `nsIContent{Parent,Child}` interface to be
`nsIDOMProcess{Parent,Child}`, and also implements it on
`InProcess{Parent,Child}`, along with the `ProcessActor` interface.

Differential Revision: https://phabricator.services.mozilla.com/D80582
2020-06-25 16:28:11 +00:00
David Major 4dfc13f0d6 Bug 1646211 - Fix some clang-11 warnings -Wvoid-pointer-to-int-cast in ContentParent.cpp r=nika
clang-11 doesn't like the `(long)` casts:
`error: cast to smaller integer type 'long' from 'void *' [-Werror,-Wvoid-pointer-to-int-cast]`

Differential Revision: https://phabricator.services.mozilla.com/D79919
2020-06-25 03:18:14 +00:00
Chris H-C c1a1045511 Bug 1635255 - Don't compile FOG IPC layer and tests if not MOZ_GLEAN r=janerik
Differential Revision: https://phabricator.services.mozilla.com/D80722
2020-06-24 16:16:48 +00:00
Chris H-C b661a96155 Bug 1635255 - Flesh out FOG IPC one additional layer r=janerik
Introducing FOGIPC, the central clearinghouse for the C++ layer between
PContent and FOG's Rust impl.

Gotta add tests.

Differential Revision: https://phabricator.services.mozilla.com/D79742
2020-06-24 16:16:07 +00:00
Chris H-C f177f29a3f Bug 1635255 - Add FOG IPC to PContent r=janerik
Temporarily on PContent instead of managed by PBackground, there's one
parentbound message for occasionally uplifting Glean data from child processes
and one childbound message for forcing the immediate flush of Glean data in the
async return.

Can't write gtests for this as ContentChild and ContentParent include things
that aren't present in gtest.

Differential Revision: https://phabricator.services.mozilla.com/D78077
2020-06-24 16:15:50 +00:00
Mihai Alexandru Michis fe89d1f20e Backed out 11 changesets (bug 1635255) for causing bustages in FOGIPC.cpp
CLOSED TREE

Backed out changeset d3e93edb1c76 (bug 1635255)
Backed out changeset 27df18486bff (bug 1635255)
Backed out changeset 4675772344eb (bug 1635255)
Backed out changeset 4d0c4beb910e (bug 1635255)
Backed out changeset 9b79c8208144 (bug 1635255)
Backed out changeset cb54f7a3177d (bug 1635255)
Backed out changeset d0591dc8d5a1 (bug 1635255)
Backed out changeset 5fc5e1070d4d (bug 1635255)
Backed out changeset bfcfda9cb19d (bug 1635255)
Backed out changeset 49447f10ad6e (bug 1635255)
Backed out changeset 0862a33399cf (bug 1635255)
2020-06-24 17:21:10 +03:00
Chris H-C e5c7e3f262 Bug 1635255 - Don't compile FOG IPC layer and tests if not MOZ_GLEAN r=janerik
Depends on D80516

Differential Revision: https://phabricator.services.mozilla.com/D80722
2020-06-24 07:54:16 +00:00
Chris H-C b876426809 Bug 1635255 - Flesh out FOG IPC one additional layer r=janerik
Introducing FOGIPC, the central clearinghouse for the C++ layer between
PContent and FOG's Rust impl.

Gotta add tests.

Differential Revision: https://phabricator.services.mozilla.com/D79742
2020-06-23 21:20:12 +00:00
Chris H-C f2d85a24e8 Bug 1635255 - Add FOG IPC to PContent r=janerik
Temporarily on PContent instead of managed by PBackground, there's one
parentbound message for occasionally uplifting Glean data from child processes
and one childbound message for forcing the immediate flush of Glean data in the
async return.

Can't write gtests for this as ContentChild and ContentParent include things
that aren't present in gtest.

Differential Revision: https://phabricator.services.mozilla.com/D78077
2020-06-23 20:43:16 +00:00
alwu 1c96a4a7d4 Bug 1642715 - part4 : notify media controller when media enters/leaves fullscreen. r=chunmin,smaug
This patch would
- notify media controller when media enters/leaves fullscreen

The advantage of doing this is
- prework of being able to control media when media enters fullscreen

Differential Revision: https://phabricator.services.mozilla.com/D79765
2020-06-24 05:53:08 +00:00
Cosmin Sabou 76255bd145 Backed out changeset 481e9149f22f (bug 1647470) for bc failures on browser_resource_uri.js. 2020-06-24 02:44:33 +03:00
Aaron Klotz 94aa2853b2 Bug 1647470: Fix MinTabSelector to take into account empty but reusable content processes; r=nika
When the current number of existing content processes is less than the maximum,
`MinTabSelector` previously always created a new process. This is inefficient in
the case where we have `dom.ipc.keepProcessesAlive.web` set and there are
content processes that are idle with zero tabs -- we should allow those to be
reused.

Differential Revision: https://phabricator.services.mozilla.com/D80560
2020-06-23 21:26:42 +00:00
Kris Maglione 0313fc865c Bug 1647624: Add assertions that we don't return dead processes from process selector. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80705
2020-06-23 19:38:17 +00:00
Andrew McCreight 01610277f9 Bug 1647795 - Remove some uses of "blacklist" from dom/ipc/. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80694
2020-06-23 17:50:23 +00:00
Andreas Farre ca5db92916 Bug 1590762 - Part 2: Bump the id for channel registration to uint64_t. r=mattwoodrow,necko-reviewers,valentin
This patch also makes the identifier for channels global, in the sense
that the generated identifier is generated outside of and passed to
the nsIRedirectChannelRegistrar.

Differential Revision: https://phabricator.services.mozilla.com/D79820
2020-06-23 13:18:56 +00:00
Jean-Yves Avenard 87438519f0 Bug 1637500 - P2. Rename methods as they are not always dealing with "threads". r=froydnj
Before P1, GetCurrentThreadSerialEventTarget would have always returned the same data as NS_GetCurrentThread, making the comment incorrect Now it will properly return the running TaskQueue if any.

This change of name more clearly exposes what they are doing, as we aren't always dealing with threads directly; but a nsISerialEventTarget

Differential Revision: https://phabricator.services.mozilla.com/D80354
2020-06-23 05:05:36 +00:00
Kris Maglione 99694471ec Bug 1641211: Clear crashed processes from the e10s preallocator. r=jesup
Differential Revision: https://phabricator.services.mozilla.com/D80292
2020-06-22 10:24:48 +00:00
Nika Layzell 35d7a8696d Bug 1646088 - Part 2: Create ScriptableCPInfo in the constructor, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D79889
2020-06-18 18:51:56 +00:00
Nika Layzell 7c209a23b1 Bug 1646088 - Part 1: Keep processes alive during process switches, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D79888
2020-06-18 18:51:54 +00:00
Mihai Alexandru Michis 287d6c29db Backed out 3 changesets (bug 1646088) for causing failures in test_multiple_nav_process_switches.
CLOSED TREE

Backed out changeset 8c4a24b91c88 (bug 1646088)
Backed out changeset ef746bdcbaf6 (bug 1646088)
Backed out changeset 77d15266af3c (bug 1646088)
2020-06-17 23:47:15 +03:00
Nika Layzell cb137789e8 Bug 1646088 - Part 2: Create ScriptableCPInfo in the constructor, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D79889
2020-06-17 15:43:37 +00:00
Nika Layzell 05df8f2a96 Bug 1646088 - Part 1: Keep processes alive during process switches, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D79888
2020-06-17 15:43:35 +00:00
Kris Maglione 822b21f7e5 Bug 1641211: Part 2 - Stop using raw pointers for ContentParent static members. r=jesup
Differential Revision: https://phabricator.services.mozilla.com/D77527
2020-06-17 17:20:53 +00:00
Kris Maglione 2ed12f2fb5 Bug 1641211: Part 1 - Add stronger checks for ContentParent pool membership consistency. r=jesup
Differential Revision: https://phabricator.services.mozilla.com/D77526
2020-06-17 17:20:53 +00:00
Mike Conley 3833074ebe Bug 1622088 - Fire process-type-set when transitioning from preallocated process type to another type. r=jesup
The about:home startup cache needs this so that it knows when a content process has transitioned
to the privileged about content process (since, at that point, it then sends the nsIInputStreams
for the cache down to that process).

Differential Revision: https://phabricator.services.mozilla.com/D78908
2020-06-17 16:07:33 +00:00
Nicholas Nethercote a8f5f49b8a Bug 1645982 - Rename some service getters in `Services.py` to better match the types. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D79791
2020-06-16 23:32:21 +00:00
Nika Layzell cde53b3bec Bug 1508306 - Part 1: Migate the Large-Allocation handler to DocumentLoadListener, r=mattwoodrow,necko-reviewers,geckoview-reviewers,agi,valentin
This removes the diagnostic warnings which used to be logged when the
Large-Allocation header was present, but failed to switch into a
Large-Allocation process. Due to the low adoption of the header, this shouldn't
be too large of a problem, but we can look into re-adding the diagnostics if
needed in the future.

The new codepath no longer performs multiple network requests for
Large-Allocation resources, and now relies on the battle-tested
DocumentLoadListener codepath for process switching.

Differential Revision: https://phabricator.services.mozilla.com/D78998
2020-06-15 23:24:07 +00:00
Nika Layzell 212943c862 Bug 1640019 - Part 1: Support toplevel process switches outside of tabbrowser, r=mattwoodrow
This new process switching behavior is only enabled for some browser elements,
which have specified a specific attribute. Turning this on for all browsers with
a `remote` attribute causes breakage in reftests.

The initial version does not handle switching from remote to parent or
vice-versa, that is covered in a later part.

Differential Revision: https://phabricator.services.mozilla.com/D78969
2020-06-15 23:23:43 +00:00
Chris Martin 16126fa7a5 Bug 1400317 - Add new async calls/singleton for remoting system parameters r=jmathies
There are a number of system parameters that return simple floats and bools
and are just different forms of system parameter query.

This introduces a new singleton and IPDL calls to send these values from parent
to content processes and cache them in content.

I started with these 2 variables because their values don't go stale. In a
later changeset, I will add more logic to invalidate cached values that go
stale, such as for the SPI_GETFLATMENU metric.

Differential Revision: https://phabricator.services.mozilla.com/D76639
2020-06-14 14:23:03 +00:00