Commit Graph

143 Commits

Author SHA1 Message Date
Boris Zbarsky
75124bdd98 Bug 1517588. Use nsIPrincipal::IsSystemPrincipal instead of nsContentUtils::IsSystemPrincipal r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D53067

--HG--
extra : moz-landing-system : lando
2019-12-05 04:44:32 +00:00
Gijs Kruitbosch
b5a7317ab9 Bug 1595831 - use StaticPrefs for dom.ipc prefs for ContentParent and the hang monitor code, r=kmag
This additionally turns on dom.ipc.processHangMonitor on non-m-c consumers of gecko, as well as turning off dom.ipc.reportProcessHangs on debug geckoview.

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

--HG--
extra : moz-landing-system : lando
2019-11-12 21:30:11 +00:00
Emilio Cobos Álvarez
fa6f012317 Bug 1582042 - Remove useless threading of aForceRepaint around various IPC messages. r=mconley
aForceRepaint wasn't doing what it claimed to do at all, as we've recently
learned. In current mozilla-central:

 * All those arguments ended up in a RecvRenderLayers with aForceRepaint = true
   (so far so good, that's expected).

 * But it was ignored (so that aForceRepaint is always true to calls to
   MakeVisible) from UpdateVisibility:

https://searchfox.org/mozilla-central/rev/f43ae7e1c43a4a940b658381157a6ea6c5a185c1/dom/ipc/BrowserChild.cpp#2523

 * Plus that argument only does anything useful on current central if we get to
   the end of MakeVisible(true). And MakeVisible() early returns if already
   visible.

So all in all this seems somewhat useless, and nobody has complained about such
a thing in a long time.

It seemed to do what it promised when it was introduced in
https://hg.mozilla.org/mozilla-central/rev/27f6f789b194, but it seems the
refactoring in https://hg.mozilla.org/mozilla-central/rev/4df5fa6fa785 broke it.

I think the new setup is somewhat easier to reason about, and nobody seems to be
missing that.

I'll try to remove the forceRepaint() call itself on a follow-up.

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

--HG--
extra : moz-landing-system : lando
2019-09-26 22:11:17 +00:00
Nicholas Nethercote
83f0e39a49 Bug 1570212 - Convert browser.tabs.remote.force-paint to a static pref. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D40162

--HG--
extra : moz-landing-system : lando
2019-08-02 11:59:06 +00:00
Emilio Cobos Álvarez
9c34445fce Bug 1568051 - Don't paint during interrupt callbacks if it's not safe to run script. r=bzbarsky
So that paint doesn't reenter on layout, or mess with incomplete frame trees, or
what not.

I just early-returned rather than only skipping the PaintWhileInterruptingJS
call because I don't think we should be running untrusted scripts in the first
place when IsSafeToRunScript() is false.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 10:29:32 +00:00
Jim Porter
d1a1278982 Bug 1557243 - Fix crash in HangMonitorChild::InterruptCallback; r=smaug
This patch just adds a check to ensure that the BrowserChild from our window
is non-null. The other changes are just reordering some lines and removing a
level of indentation.

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

--HG--
extra : moz-landing-system : lando
2019-06-06 20:02:38 +00:00
Jim Porter
f665b313f3 Bug 1552017 - Expand the kinds of URLs that can cancel content JS when navigating; r=smaug
This patch makes several changes to the kinds of URLs where we can cancel
content JS when navigating between them:

 1) When navigating directly to a URL (e.g. by typing something into the
    location bar and hitting Enter), we allow canceling content JS if the URLs
    differ in any way *except* their ref ("#"). To help with this, we also
    attempt to fix up the URL (e.g. by prepending "http://" to it).

 2) When navigating through history, we allow canceling content JS if the
    `prePath` part of the URLs differ. Most notably, this allows canceling
    content JS when one of the URLs is an `about:` page (e.g. when hitting the
    Home button).

 3) We explicitly disallow cancelling content JS if the currently-running JS
    is trusted or if the page being navigated away from is anything but
    http(s): or file:.

 4) We also disallow cancelling content JS for windows that are still being
    created (e.g. when creating a new tab or window via `window.open`). For
    more background on this, see the comments about `mCreatingWindow` in
    dom/ipc/BrowserParent.h.

 5) We ensure that, when attempting to cancel JS, the tab ID of the
    currently-running script matches the original tab that requested the
    cancellation. This avoids a race condition in which a particular JSContext
    has already moved on to executing another tab's JS by the time we hit our
    interrupt callback.

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

--HG--
extra : moz-landing-system : lando
2019-06-04 16:19:27 +00:00
Jim Porter
679c9bfc7e Bug 1549177 - Fix a race condition when cancelling content JS during navigation; r=smaug
This patch fixes a race condition where we could request that a content page's
JS be cancelled during navigation in `HangMonitorChild::InterruptCallback`,
but the new page has already started loading by the time the JS is cancelled in
`XPCJSContext::InterruptCallback`, thus cancelling the JS of the new page. To
fix this, we now handle everything in `HangMonitorChild::InterruptCallback`,
making sure to only do anything for *content* scripts (to avoid inadvertently
cancelling the browser's JS).

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

--HG--
extra : moz-landing-system : lando
2019-05-07 21:56:58 +00:00
Brian Hackett
d061f61772 Bug 1548623 - Avoid performing recorded operations in the interrupt callback, r=smaug.
Differential Revision: https://phabricator.services.mozilla.com/D29714

--HG--
extra : rebase_source : e94e928e43c64a3f313217855444dcd8dc7938fe
2019-05-02 07:36:17 -10:00
Jim Porter
a480304779 Bug 1493225, part 3 - Cancel content JS when navigating through history to prevent hangs r=smaug
This patch adds an ID to ensure that we avoid canceling content JS if the next
page already started loading by the time we're ready to try canceling the JS.

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

--HG--
extra : moz-landing-system : lando
2019-04-30 23:31:46 +00:00
Jim Porter
f9d5e48623 Bug 1493225, part 2 - Cancel content JS when navigating through history to prevent hangs r=smaug
In this part, we pass along the navigation type (and index for when using the
dropdown on the back/forward buttons). This allows us to check if there's a
top-level load "between" the start and end pages.

The patch might look a bit strange, since we're passing the navigation
operation to two places from RemoteWebNavigation.js (the normal message passing
that existed before this patch and the HangMonitor channel in this patch). This
is primarily to make it easier to stop passing the navigation info along the
HangMonitor channel once session history is uplifted into the parent process.
At that point, the check for whether there's a top-level load could happen in
TabParent (I think).

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

--HG--
extra : moz-landing-system : lando
2019-04-30 23:31:36 +00:00
Jim Porter
04d397e55f Bug 1493225, part 1 - Cancel content JS when navigating through history to prevent hangs r=smaug
This patch passes a message through the HangMonitor channel when navigating
through history to cancel content JS that could hang the chrome JS in the
content process responsible for history navigation. If the content JS is
actually canceled, this also disables the BF cache for the current page, since
it could end up in an inconsistent state due to the JS cancellation.

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

--HG--
extra : moz-landing-system : lando
2019-04-30 23:56:17 +00:00
Ryan Hunt
d6509bb237 Bug 1534395 - Rename TabChild to BrowserChild. r=nika
This commit renames TabChild to BrowserChild.

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

--HG--
rename : dom/base/InProcessTabChildMessageManager.cpp => dom/base/InProcessBrowserChildMessageManager.cpp
rename : dom/base/InProcessTabChildMessageManager.h => dom/base/InProcessBrowserChildMessageManager.h
rename : dom/ipc/TabChild.cpp => dom/ipc/BrowserChild.cpp
rename : dom/ipc/TabChild.h => dom/ipc/BrowserChild.h
extra : rebase_source : e7fcfb845a971a2760e73d517e24da18ce2551b5
extra : histedit_source : d1991334ccb107fe56e478865f22fd97b041a317
2019-04-09 17:39:01 -05:00
Ryan Hunt
e9e7d608be Bug 1534395 - Rename nsITabChild to nsIBrowserChild. r=nika,mconley
Similarly to nsITabParent, TabChild is exposed to frontend code via nsITabChild. It's not clear what the future of this interface will be, but for now we can just rename it to nsIBrowserChild.

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

--HG--
rename : dom/interfaces/base/nsITabChild.idl => dom/interfaces/base/nsIBrowserChild.idl
extra : rebase_source : a6c42a661e35b19e46c60f6f6a6f3dab64c0a1bc
extra : histedit_source : 1eb475bd840bf37a3f86294685c9b3c250684e79
2019-04-09 18:15:02 -05:00
Ryan Hunt
0eeced87be Bug 1534395 - Rename TabParent to BrowserParent. r=nika
This commit renames TabParent to BrowserParent.

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

--HG--
rename : dom/ipc/TabParent.cpp => dom/ipc/BrowserParent.cpp
rename : dom/ipc/TabParent.h => dom/ipc/BrowserParent.h
extra : rebase_source : d2706b9f42177d8de16068b7b1d088a44b8720a4
extra : histedit_source : a617ddac45c58050ef799116a67d2d983f2a8f6d%2C1d1dabd8761a32d548a6fbf1027be960698f6a5e
2019-04-09 16:38:15 -05:00
Ryan Hunt
3675f2449b Bug 1534395 - Rename nsITabParent to nsIRemoteTab. r=nika,mconley
nsITabParent is exposed to frontend code and is generally used as a representation of a remote tab. We could just rename the interface to nsIBrowserParent and worry about it later, but I think it's better to rename the interface to nsIRemoteTab so that we can later work on splitting the interface away from the PBrowser protocol.

Note: Some frontend code refers to a TabParentId. This commit renames this to RemoteTabId. We need to figure out the purpose of TabId with fission.

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

--HG--
rename : dom/interfaces/base/nsITabParent.idl => dom/interfaces/base/nsIRemoteTab.idl
extra : rebase_source : 9d8a1790a7bb10195ad063644d1a93d63b2afb72
2019-04-09 15:59:37 -05:00
Coroiu Cristina
33d59a9c32 Backed out 4 changesets (bug 1493225) for browser-chrome failures with application terminated with exit code 2147483651 on a CLOSED TREE
Backed out changeset 62ee0aed9e59 (bug 1493225)
Backed out changeset 3537b8f8d38a (bug 1493225)
Backed out changeset 1de539e8f568 (bug 1493225)
Backed out changeset e9c116dba541 (bug 1493225)
2019-04-19 23:55:50 +03:00
Jim Porter
7f3f2e49dc Bug 1493225, part 3 - Cancel content JS when navigating through history to prevent hangs r=smaug
This patch adds an ID to ensure that we avoid canceling content JS if the next
page already started loading by the time we're ready to try canceling the JS.

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

--HG--
extra : moz-landing-system : lando
2019-04-18 18:39:45 +00:00
Jim Porter
dcf852821e Bug 1493225, part 2 - Cancel content JS when navigating through history to prevent hangs r=smaug
In this part, we pass along the navigation type (and index for when using the
dropdown on the back/forward buttons). This allows us to check if there's a
top-level load "between" the start and end pages.

The patch might look a bit strange, since we're passing the navigation
operation to two places from RemoteWebNavigation.js (the normal message passing
that existed before this patch and the HangMonitor channel in this patch). This
is primarily to make it easier to stop passing the navigation info along the
HangMonitor channel once session history is uplifted into the parent process.
At that point, the check for whether there's a top-level load could happen in
TabParent (I think).

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

--HG--
extra : moz-landing-system : lando
2019-04-18 19:53:34 +00:00
Jim Porter
e083d2b226 Bug 1493225, part 1 - Cancel content JS when navigating through history to prevent hangs r=smaug
This patch passes a message through the HangMonitor channel when navigating
through history to cancel content JS that could hang the chrome JS in the
content process responsible for history navigation. If the content JS is
actually canceled, this also disables the BF cache for the current page, since
it could end up in an inconsistent state due to the JS cancellation.

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

--HG--
extra : moz-landing-system : lando
2019-04-18 18:39:24 +00:00
Ryan Hunt
00e98538aa Bug 1523969 part 6 - Move method definition inline comments to new line in 'dom/'. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D21106

--HG--
extra : rebase_source : ea3f51c2c11247114deccbc86e90fb02b8a97257
2019-02-25 16:05:29 -06:00
Ehsan Akhgari
e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Nika Layzell
f1f86e050a Bug 1516179 - Unregister ProcessHangMonitor as a hang annotator on shutdown, r=dthayer
Differential Revision: https://phabricator.services.mozilla.com/D15614

--HG--
extra : moz-landing-system : lando
2019-01-07 17:02:59 +00:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Doug Thayer
5806cd56cd Bug 1492202 - Fix typo in forcepaint telemetry r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D6172

--HG--
extra : moz-landing-system : lando
2018-09-18 17:06:30 +00:00
Gabriele Svelto
a1f6255102 Bug 1463048 - Remove asynchronous minidump generation r=ted
This reverts the changes in bug 1360308, bug 1390143 and bug 1469603. Minidump
generation will now only happen on the main process' main thread which might
lead to hangs but is known to be fairly robust. Asynchronous generation proved
too brittle and enormously increased the complexity of this already
hard-to-read code.

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

--HG--
extra : moz-landing-system : lando
2018-09-17 20:51:45 +00:00
Doug Thayer
5e6a26b00e Bug 1475913 - Re-enable forcepaint telemetry with attributes r=mconley
Fairly straightforward. This should allow us to enable our
forcepaint telemetry again without an added cost, since it's
just piggybacking on the existing content process BHR.

MozReview-Commit-ID: 83l9xnPfc9u

--HG--
extra : rebase_source : d53f1e9adfff1d9bf3610be634f9ece08a2ec154
2018-07-15 20:45:32 -07:00
Kartikaya Gupta
3faf3e38d9 Bug 1478016 - Add a strongly-typed LayersObserverEpoch type. r=mattwoodrow
MozReview-Commit-ID: 6fELexXRYeV

--HG--
extra : rebase_source : 0eb028ee9b98199d18421f7ff28433189940fdca
2018-07-30 09:24:50 -04:00
Brian Hackett
12f288e95b Bug 1465294 Part 15 - Don't paint from interrupt callback when recording/replaying, r=mconley.
--HG--
extra : rebase_source : c881950c9ac8881613fae673948830b9320e6c2d
2018-07-23 14:57:42 +00:00
Brian Hackett
941f5341db Bug 1465452 Part 3 - Avoid recording some background hang monitor state, r=froydnj.
--HG--
extra : rebase_source : 4b2c9ff845f0da696ae5f9d7bc5edbbf11b7f796
2018-07-21 14:29:53 +00:00
Emilio Cobos Álvarez
fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Doug Thayer
fc77954257 Bug 1176019 - Force a paint when switching to a loaded tab r=mconley
This is fairly straightforward, other than the fact that the
nomenclature gets a bit awkward with the aForce parameter on
the ForcePaint methods. I'm not sure which direction to go with
this - "aForce" seems a fairly intuitive name for what we want,
and I'm kind of inclined to say the existing ForcePaint mechanic
should be renamed to something like PaintWithInterrupt, or
PaintWithPriority.

MozReview-Commit-ID: Bj9DROug1pC

--HG--
extra : rebase_source : a3d91fec940d83325d36bafb13fe892e9c9530e8
2018-05-14 23:45:00 -07:00
Boris Zbarsky
914f11a6d2 Bug 1455674 part 10. Remove nsIDOMElement use from remaining dom/ xpidl files. r=qdot 2018-04-26 23:36:10 -04:00
Nika Layzell
5e2e5fc993 Bug 1444991 - Part 5: Make some XPCOM methods more strongly typed, r=bz
This patch goes through and changes a bunch of places in our tree which mention
this bug to use the new feature, making the methods more strongly typed.

There are probably more places in tree which could be changed, but I didn't try
to find them.
2018-04-17 19:21:05 -04:00
Sebastian Hengst
0819f35e51 Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00
Tristan Bourvon
a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Doug Thayer
178c89f2b3 Bug 1452766 - Temporarily disable ForcePaint BHR r=mconley
MozReview-Commit-ID: FhilA7sRq2T

--HG--
extra : rebase_source : 76a0fa1bfa15865d5ae256f9c8f96df4315e387d
2018-04-09 13:24:46 -07:00
Boris Zbarsky
e15f8f10ff Bug 1444143 part 12. Remove use of nsIFrameLoader from XPIDL files. r=mystor
MozReview-Commit-ID: 8pZ655SgrZ0
2018-03-21 22:43:17 -04:00
Doug Thayer
4b5dac8a83 Bug 1443329 - Ensure we always call NotifyActivity on ForcePaint BHR r=mconley
MozReview-Commit-ID: GomQWREr7vG

--HG--
extra : rebase_source : 3df24e9c23b079f196b378559b0cb8536736a7a2
2018-03-18 11:44:19 -07:00
Doug Thayer
c3b437237a Bug 1443329 - Don't notify BHR if ForcePaint loses its race r=mconley
MozReview-Commit-ID: 3QnYqjifBiE

--HG--
extra : rebase_source : 3dd62427dd67b91e97f89f91d3c57dffe7f83788
2018-03-05 15:29:34 -08:00
Gabriele Svelto
0750d2d41a Bug 1402519 - Remove MOZ_CRASHREPORTER directives from dom; r=peterv
MozReview-Commit-ID: 4G2C9y6csvc

--HG--
extra : rebase_source : f0259c59c263b677a3a44751219dcb54378d72bc
2017-10-10 12:43:09 +02:00
shindli
fb855aa7ba Backed out 16 changesets (bug 1402519) for conflicts during merge r=backout on a CLOSED TREE
Backed out changeset 07fcf163241a (bug 1402519)
Backed out changeset c6d2ad45d8e2 (bug 1402519)
Backed out changeset 8a3caca61294 (bug 1402519)
Backed out changeset 01425eae2c48 (bug 1402519)
Backed out changeset cf298d3815de (bug 1402519)
Backed out changeset e1964f4389cd (bug 1402519)
Backed out changeset f405337f3569 (bug 1402519)
Backed out changeset a76356fd3359 (bug 1402519)
Backed out changeset d3bb350d1c34 (bug 1402519)
Backed out changeset 9d3bfd9f932c (bug 1402519)
Backed out changeset e3dd6e5b073f (bug 1402519)
Backed out changeset e801b0c00134 (bug 1402519)
Backed out changeset 8a4139fa5dca (bug 1402519)
Backed out changeset 8d01c14ac1ca (bug 1402519)
Backed out changeset 24e0dcd01898 (bug 1402519)
Backed out changeset f8fdf450613f (bug 1402519)
2017-11-23 00:11:44 +02:00
Gabriele Svelto
13bba6b3c4 Bug 1402519 - Remove MOZ_CRASHREPORTER directives from dom; r=peterv
MozReview-Commit-ID: 4G2C9y6csvc

--HG--
extra : rebase_source : 989a11eaed6641a17ab27ae10b7fea6277cec534
2017-10-10 12:43:09 +02:00
Jon Coppeard
a06421a289 Bug 1417123 - Remove or replace inclusion of js/GCAPI.h r=mccr8 2017-11-16 12:21:08 +00:00
Kris Maglione
267cf409eb Bug 1356334: Part 6 - Allow completely terminating a slow content script sandbox. r=billm
MozReview-Commit-ID: 5CDLHrAeuDt

--HG--
extra : source : d832803270ac831fd760356f36e16ef2a2d6d45b
extra : histedit_source : 11b535e7924700b86747f2855ef33c9707db719a
2017-04-16 14:01:16 -07:00
Kris Maglione
6aef819287 Bug 1356334: Part 5 - Add add-on name to slow script messages. r=billm
MozReview-Commit-ID: 2nyDmoiBKp4

--HG--
extra : source : b83aea215a82d44bec7443b69e60feef32f5fb2c
extra : histedit_source : 5a94f13db992c197ebb49fbb8e6a91bb97288fb6
2017-08-17 20:17:51 -07:00
Ryan VanderMeulen
3fe1f45009 Backed out 8 changesets (bug 1356334) for frequent test_ext_contentscript_async_loading.html failures on Android debug on a CLOSED TREE.
Backed out changeset 9c677ebfdda0 (bug 1356334)
Backed out changeset 16b49fd1c38a (bug 1356334)
Backed out changeset 4f5bcd2b2dc6 (bug 1356334)
Backed out changeset d832803270ac (bug 1356334)
Backed out changeset b83aea215a82 (bug 1356334)
Backed out changeset b2a663ffd144 (bug 1356334)
Backed out changeset 805c56806930 (bug 1356334)
Backed out changeset 7c880eca810a (bug 1356334)
2017-08-18 11:32:18 -04:00
Kris Maglione
bdbbf869dd Bug 1356334: Part 6 - Allow completely terminating a slow content script sandbox. r=billm
MozReview-Commit-ID: 5CDLHrAeuDt

--HG--
extra : rebase_source : 00f75b5be53e38d912b90b8fe777c5aa7ff135bf
2017-04-16 14:01:16 -07:00
Kris Maglione
2c6fe4f014 Bug 1356334: Part 5 - Add add-on name to slow script messages. r=billm
MozReview-Commit-ID: 2nyDmoiBKp4

--HG--
extra : rebase_source : 311d9ad486210e6d5fa3a06bb837d3597b9d2800
2017-08-11 22:11:25 -07:00
Cervantes Yu
c6934bc588 Bug 1383025 - Don't report hang for a process that has already shut down. r=billm
MozReview-Commit-ID: 5H1CYYJIiM6
2017-07-28 16:55:16 +08:00