Commit Graph

193 Commits

Author SHA1 Message Date
Tooru Fujisawa
4e330b2155 Bug 1772101 - Part 40: Remove lazy getter from toolkit/components/sessionstore/. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D147981
2022-06-07 04:31:04 +00:00
Cristian Tuns
9b5c5999f2 Backed out changeset 6ad49f7d560a (bug 1756995) for causing mochitest failures on browser_firefoxview_tab.js CLOSED TREE 2022-05-25 14:27:30 -04:00
Andreas Farre
139b0999f2 Bug 1756995 - Optimize docshell load end session store collection. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D146207
2022-05-25 16:33:54 +00:00
Emilio Cobos Álvarez
2fe1cf801b Bug 1769775 - Add a MozPromise version of CanonicalBrowsingContext::Print. r=jwatt
And use it to implement the JS version of the method. This should avoid
the various complications that bug 1659819 hit.

Differential Revision: https://phabricator.services.mozilla.com/D146590
2022-05-17 16:02:35 +00:00
Kagami Sascha Rosylight
6ff3ad1110 Bug 1768189 - Part 47: Apply modernize-concat-nested-namespaces to layout/style/MediaQueryList.h ... r=andi
Depends on D145782

Differential Revision: https://phabricator.services.mozilla.com/D145783
2022-05-09 20:41:21 +00:00
Andreas Farre
4a384c5081 Bug 1739450 - Part 2: Collect session history when wireframes are collected. r=peterv,mconley
Because wireframes are collected together with the session history
entry for its docshell, we need to collect session history to make
sure that collected wireframes show up.

Differential Revision: https://phabricator.services.mozilla.com/D143368
2022-04-19 15:19:22 +00:00
Andreas Farre
ea19a48880 Bug 1739450 - Part 1: Move ownership of session store scroll and form data to platform. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D130389
2022-04-19 15:19:22 +00:00
Paul Zuehlcke
4faa9743bc Bug 1746383 - Set URLBar pageProxyState to invalid for onLocationChange triggered by SessionStore. r=nika,dao
Differential Revision: https://phabricator.services.mozilla.com/D138823
2022-04-12 14:41:06 +00:00
Nika Layzell
6b07821859 Bug 1754037 - Part 3c: Automatically update all ParamTraits implementations, r=ipc-reviewers,media-playback-reviewers,bryce,mccr8
Automatically generated rewrites of all ParamTraits and IPDLParamTraits
implementations in-tree to use IPC::Message{Reader,Writer}.

Differential Revision: https://phabricator.services.mozilla.com/D140004
2022-03-04 15:39:41 +00:00
Kagami Sascha Rosylight
547ef40ad3 Bug 1748874 - Part 3: Mark the decl of SessionStoreRestoreData::RestoreInto as CAN_RUN_SCRIPT r=masayuki
Depends on D135402

Differential Revision: https://phabricator.services.mozilla.com/D135403
2022-01-11 11:52:27 +00:00
Kagami Sascha Rosylight
a5b54c623d Bug 1748874 - Part 2: Mark SessionStoreUtils method decls as CAN_RUN_SCRIPT r=masayuki
Depends on D135400

Differential Revision: https://phabricator.services.mozilla.com/D135402
2022-01-11 11:52:26 +00:00
Timothy Nikkel
84260ed38d Bug 1735266. Call GetExtantDoc instead of GetDoc in CollectFrameTreeData so we don't potentially create a doc where non existed before. r=farre
See https://bugzilla.mozilla.org/show_bug.cgi?id=1725569#c18 for how this causes a test to fail.

Differential Revision: https://phabricator.services.mozilla.com/D128155
2021-10-12 08:47:28 +00:00
Masayuki Nakano
ffa5244e07 Bug 1732845 - Add nsINode::IsInDesignMode() to check whether the node is directly in design mode r=smaug
There are a lot of check of `Document`'s editable state **with** comments. This
means that it's unclear for developers that only `Document` node is editable in
design mode.

Additionally, there are some points which use composed document rather than
uncomposed document even though the raw API uses uncomposed document. Comparing
with the other browsers, checking uncomposed document is compatible behavior,
i.e., nodes in shadow trees are not editable unless `contenteditable`.

Therefore, `nsINode` should have a method to check whether it's in design mode
or not.

Note that it may be called with a node in UA widget.  Therefore, this patch
adds new checks if it's in UA widget subtree or native anonymous subtree,
checking whether it's in design mode with its host.

Differential Revision: https://phabricator.services.mozilla.com/D126764
2021-10-12 03:14:43 +00:00
Andreas Farre
82eb7af79a Bug 1711886 - Part 1: Store PrincipalInfo in SessionStorageCacheParent. r=asuth
By storing the PrincipalInfo in the parent copy it is possible to
query the BackgroundSessionStorageManager withouth the need of a
preprocessing step matching resulting data to principals using the
browsing context tree. Instead the result from the query contains the
principal info.

To be able to initialize the parent actor lazily with a principal
info, it was needed to make clearing the storage be a less fine
grained transaction. Instead of sending updates per cache, we after
clearing in the child process we send a message to the parent that in
turn performs the same steps.

Differential Revision: https://phabricator.services.mozilla.com/D125680
2021-09-22 15:42:46 +00:00
Andreas Farre
a5a6092cfb Bug 1727367 - Part 2: Limit the size of form fields collected in session store. r=kashav
We need two limits, one for the size of values, and one for the total
size collected.

Differential Revision: https://phabricator.services.mozilla.com/D125196
2021-09-14 15:02:20 +00:00
Florian Quèze
e0a9074d75 Bug 1728760 - require all nsITimerCallback native implementations to also implement nsINamed, r=smaug.
Differential Revision: https://phabricator.services.mozilla.com/D124349
2021-09-07 08:01:18 +00:00
Andreas Farre
c176448af3 Bug 1728727 - Remove unused code in TabListener. r=kashav
Differential Revision: https://phabricator.services.mozilla.com/D124316
2021-09-03 12:20:05 +00:00
Timothy Nikkel
f4f176df2b Bug 1728665. Use IsRootContentDocumentCrossProcess for a few places dealing with visual scroll offsets. r=botond
Visual scroll offsets can only differ on the cross process root content document.

Differential Revision: https://phabricator.services.mozilla.com/D124257
2021-09-01 23:25:44 +00:00
Andi-Bogdan Postelnicu
f221c438ca Bug 1725145 - Preparation for the hybrid build env. r=necko-reviewers,firefox-build-system-reviewers,valentin,glandium
Automatically generated path that adds flag `REQUIRES_UNIFIED_BUILD = True` to `moz.build`
when the module governed by the build config file is not buildable outside on the unified environment.

This needs to be done in order to have a hybrid build system that adds the possibility of combing
unified build components with ones that are built outside of the unified eco system.

Differential Revision: https://phabricator.services.mozilla.com/D122345
2021-08-25 10:46:17 +00:00
Kashav Madan
2c7bb98e69 Bug 1725107 - Ensure we're throwing whenever we return a null promise, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D122783
2021-08-21 17:13:42 +00:00
Kris Maglione
412d136e74 Bug 1716849: Add crash annotation for error when aborting for failed module import. r=mccr8
There are a number of modules that we import from C++ and can't continue
running without. We have a number of crashes for some of those failed loads. A
lot of them are from OOMs or corruption, but we're not sure about the rest.

This patch adds a crash annotation with the details of the error wherever we
abort for failing to load a module.

Differential Revision: https://phabricator.services.mozilla.com/D120290
2021-07-22 16:58:02 +00:00
Butkovits Atila
d3af3666d1 Backed out changeset ef812b3d914d (bug 1716849) for causing assertion failures at nsImportModule.cpp. CLOSED TREE 2021-07-22 06:49:23 +03:00
Kris Maglione
078a3d821a Bug 1716849: Add crash annotation for error when aborting for failed module import. r=mccr8
There are a number of modules that we import from C++ and can't continue
running without. We have a number of crashes for some of those failed loads. A
lot of them are from OOMs or corruption, but we're not sure about the rest.

This patch adds a crash annotation with the details of the error wherever we
abort for failing to load a module.

Differential Revision: https://phabricator.services.mozilla.com/D120290
2021-07-22 01:28:22 +00:00
Tooru Fujisawa
0986662ce6 Bug 1708448 - Move property and element functions into js/public/PropertyAndElement.h. r=nbp
Differential Revision: https://phabricator.services.mozilla.com/D119619
2021-07-13 11:52:42 +00:00
Kashav Madan
85a4822ac7 Bug 1703692 - Use ChildOffset to build the offset path for flushes, r=nika
We can't rely on the Children list since it may have been cleared on shutdown.
Since we don't clear parent edges, walking the parent chain and using
mChildOffset works.

Differential Revision: https://phabricator.services.mozilla.com/D118384
2021-06-26 20:25:29 +00:00
Kashav Madan
a1f3331643 Bug 1703692 - Store the latest embedder's permanent key on CanonicalBrowsingContext, r=nika,mccr8
And include it in Session Store flushes to avoid dropping updates in case the
browser is unavailable.

Differential Revision: https://phabricator.services.mozilla.com/D118385
2021-06-26 20:25:29 +00:00
Dorel Luca
c293dee662 Backed out 3 changesets (bug 1703692) for Browser-chrome failures in browser/components/sessionstore/test/browser_broadcast.js. CLOSED TREE
Backed out changeset fe5703d7b580 (bug 1703692)
Backed out changeset eec4a4138ca7 (bug 1703692)
Backed out changeset 6745b363a745 (bug 1703692)
2021-06-26 10:09:23 +03:00
Kashav Madan
bc9322271d Bug 1703692 - Use ChildOffset to build the offset path for flushes, r=nika
We can't rely on the Children list since it may have been cleared on shutdown.
Since we don't clear parent edges, walking the parent chain and using
mChildOffset works.

Differential Revision: https://phabricator.services.mozilla.com/D118384
2021-06-26 05:49:12 +00:00
Kashav Madan
bb26572412 Bug 1703692 - Store the latest embedder's permanent key on CanonicalBrowsingContext, r=nika,mccr8
And include it in Session Store flushes to avoid dropping updates in case the
browser is unavailable.

Differential Revision: https://phabricator.services.mozilla.com/D118385
2021-06-26 05:49:12 +00:00
Iulian Moraru
6f300817be Backed out 3 changesets (bug 1703692) for causing bc failures on multiple files.
Backed out changeset a199dfd8ce8d (bug 1703692)
Backed out changeset 599a0a99ded9 (bug 1703692)
Backed out changeset 14fe807e6be4 (bug 1703692)
2021-06-25 00:43:23 +03:00
Kashav Madan
4123bae8ce Bug 1703692 - Use ChildOffset to build the offset path for flushes, r=nika
We can't rely on the Children list since it may have been cleared on shutdown.
Since we don't clear parent edges, walking the parent chain and using
mChildOffset works.

Differential Revision: https://phabricator.services.mozilla.com/D118384
2021-06-24 20:26:14 +00:00
Kashav Madan
bc90a488f7 Bug 1703692 - Store the latest embedder's permanent key on CanonicalBrowsingContext, r=nika,mccr8
And include it in Session Store flushes to avoid dropping updates in case the
browser is unavailable.

Differential Revision: https://phabricator.services.mozilla.com/D118385
2021-06-24 20:26:13 +00:00
Kashav Madan
ac8b44d604 Bug 1717497 - Only assert we have a timer if we expect to have created one, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D118482
2021-06-22 15:08:41 +00:00
Kashav Madan
d2b4f475d7 Bug 1701337 - Respect browser.sessionstore.debug.no_auto_updates in native flushers, r=nika
We should not be doing any timed flushes if the pref is set to true.

See https://searchfox.org/mozilla-central/rev/d97dca5907e2a0a77a2435b24ef980268cd3c4fe/browser/components/sessionstore/ContentSessionStore.jsm#402
for how the pref is used in non-SHIP code.

Fixes browser_async_window_flushing.js, which relies on us not sending automatic
updates.

Differential Revision: https://phabricator.services.mozilla.com/D117953
2021-06-16 00:37:53 +00:00
Kris Maglione
799bf19224 Bug 1646560: Part 2 - Move allowJavascript and friends from DocShell to BrowsingContext and WindowContext. r=jdescottes,nika,geckoview-reviewers,devtools-backward-compat-reviewers,agi
This is slightly complicated by the fact that the editor code wants to be able
to set this from the content process, so we really need separate
BrowsingContext and WindowContext flags, the latter of which can be set by the
owning process.

Differential Revision: https://phabricator.services.mozilla.com/D114899
2021-06-15 04:40:11 +00:00
Anny Gakhokidze
f50e5a2271 Bug 1709136 - Part 1: Remove the explicit remoteness switch that happens during the restore process, r=nika,kashav
Differential Revision: https://phabricator.services.mozilla.com/D116209
2021-06-11 20:12:10 +00:00
Kashav Madan
8e1b580c53 Bug 1715264 - Cleanup how Session Store collects SessionHistory, r=farre
This does a few things:

1. Removes the `aImmediately` flag from the RequestSHistoryUpdate path, and
   moves that responsibility to SessionStore
1. Simplifies how and when SessionStore calls SessionHistory.collectFromParent()
1. Attempts to clean-up SessionStore's SHistoryListener (again)

Differential Revision: https://phabricator.services.mozilla.com/D117230
2021-06-10 14:30:59 +00:00
Andreas Farre
7f00bb04af Bug 1710004 - Part 3: Restore session storage from the parent process. r=kashav,asuth
Depends on D116007

Differential Revision: https://phabricator.services.mozilla.com/D116213
2021-06-08 13:42:33 +00:00
Andreas Farre
4ae50334b4 Bug 1710004 - Part 1: Remove dataset concept from Session Storage. r=asuth
Session Storage used to share implementation with Local Storage, where
a distinction of a default data set from a session data set made
sense. In Session Storage all data is actually scoped by the
session. Since Bug 1322316 Session Storage no longer share
implementation with Local Storage, which makes it safe to collapse the
datasets in Session Storage to one dataset, which makes life easier,
especially for Session (Re-)Store.

Differential Revision: https://phabricator.services.mozilla.com/D116609
2021-06-08 13:42:33 +00:00
Emilio Cobos Álvarez
3daca083b1 Bug 1715134 - Make form control type an enum class. r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D117087
2021-06-08 09:43:59 +00:00
Kashav Madan
3ea6f755ce Bug 1706445 - Handle isFinal updates through native code, r=nika
Replaces the `isFinal` bit with a "browser-shutdown-tabstate-updated" observer
notification, which is fired after all frames in the document are flushed.

Differential Revision: https://phabricator.services.mozilla.com/D116146
2021-06-01 20:06:47 +00:00
Andreas Farre
7d16a604f9 Part 7: Bug 1700623 - Make session storage session store work with Fission. r=nika
Use the newly added session storage data getter to access the session
storage in the parent and store it in session store without a round
trip to content processes.

Depends on D111433

Differential Revision: https://phabricator.services.mozilla.com/D111434
2021-05-26 07:14:06 +00:00
Alexandru Michis
26d8e32b13 Backed out 9 changesets (bug 1700623) for causing bc failures in browser_history_menu.js
CLOSED TREE

Backed out changeset 5eae296ad8b5 (bug 1700623)
Backed out changeset 97c3add3b00a (bug 1700623)
Backed out changeset 7ab483627a27 (bug 1700623)
Backed out changeset a4e673640de5 (bug 1700623)
Backed out changeset 513ea16be430 (bug 1700623)
Backed out changeset 88b4add342df (bug 1700623)
Backed out changeset c13bdee1b526 (bug 1700623)
Backed out changeset 26df421dac02 (bug 1700623)
Backed out changeset 6cd0b7a269e5 (bug 1700623)
2021-05-21 11:43:54 +03:00
Andreas Farre
d3c8a2e68d Part 7: Bug 1700623 - Make session storage session store work with Fission. r=nika
Use the newly added session storage data getter to access the session
storage in the parent and store it in session store without a round
trip to content processes.

Depends on D111433

Differential Revision: https://phabricator.services.mozilla.com/D111434
2021-05-20 12:48:23 +00:00
Anny Gakhokidze
f97d657a0f Bug 1703326 - Stop relying on ContentSessionStore for SessionStore:crashedTabRevived, r=kashav
Differential Revision: https://phabricator.services.mozilla.com/D113425
2021-05-12 19:33:47 +00:00
Kashav Madan
eac70e8972 Bug 1702055 - Ensure SSTabRestoring is only fired once per browser, r=nika
A previous patch made it so we'd fire this after the full restore finished, but
some consumers expect this event prior to the completion of the load.

Differential Revision: https://phabricator.services.mozilla.com/D114001
2021-05-03 18:16:41 +00:00
Kashav Madan
3bfc3cb594 Bug 1702055 - Move the "restore DocShell state" process out of ContentSessionStore, r=nika
This also makes it so that we will never fire SSTabRestored without first having
sent the associated SSTabRestoring event.

Differential Revision: https://phabricator.services.mozilla.com/D110335
2021-05-03 18:16:41 +00:00
Kashav Madan
556162f994 Bug 1702055 - Replace CallRestoreTabContentComplete with a Promise, r=nika
This should help avoid message ordering issues in the next patches. To ensure
that we're not firing events too early, we now do a "full" restore even if we
don't have form or scroll data, including for about:blank URIs.

This also moves all restore state on the CanonicalBrowsingContext into a
separate `mRestoreState` struct.

Differential Revision: https://phabricator.services.mozilla.com/D110333
2021-05-03 18:16:40 +00:00
Butkovits Atila
80c415a4fc Backed out 4 changesets (bug 1702055) for causing failures on /browser_UsageTelemetry_private_and_restore.js. CLOSED TREE
Backed out changeset af21e2d8324e (bug 1702055)
Backed out changeset ff67df9befe5 (bug 1702055)
Backed out changeset b5f0638dcbc4 (bug 1702055)
Backed out changeset bffaa2c203b3 (bug 1702055)
2021-04-28 04:42:09 +03:00
Kashav Madan
5032f65750 Bug 1702055 - Move the "restore DocShell state" process out of ContentSessionStore.jsm, r=nika
This also makes it so that we will never fire SSTabRestored without first having
sent the associated SSTabRestoring event.

Differential Revision: https://phabricator.services.mozilla.com/D110335
2021-04-27 19:54:57 +00:00