Commit Graph

1423 Commits

Author SHA1 Message Date
Andrew Osmond
d45e50a44b Bug 1433646 - Allow ContentChild::Recv(Re)InitRendering to fail with the GPU process. r=rhunt
When ContentChild::RecvInitRendering is received, it tries to setup the
IPDL actors related to rendering. If the GPU process crashes before or
during this process, it will fail, and cause the content process to
crash as well. This is unnecessary because the UI process will either
restart the GPU process, or subsume its job into itself, and trigger
ContentChild::RecvReinitRendering. It is a similar case for failures in
ContentChild::RecvReinitRendering.

Since the GPU process crashing should be a recoverable scenario, we now
check if the remote IPDL actor is in the UI or the GPU process. If it is
in the UI process, it will fail/crash as it does today. If it is in the
GPU process, it will wait for the next
ContentChild::RecvReinitRendering.

For failures that are not IPDL related (e.g. failed to get some resource
like spawning a thread), we release assert specifically for those
failures. They are not recoverable.
2018-02-14 18:07:53 -05:00
Masayuki Nakano
db4d6d392a Bug 1134542 - Get rid of nsIDOMWindowUtils::sendKeyEvent() and nsIFrameLoader::sendCrossProcessKeyEvent() r=smaug
nsIDOMWindowUtils::sendKeyEvent() is already replaced with nsITextInputProcessor
for making callers set any attributes of KeyboardEvent and guaranteeing
consistency behavior with keyboard events caused by native key events.  E.g.,
whether keypress event should be dispatched or not is automatically decided.

nsIFrameLoader::sendCrossProcessKeyEvent() is similart to
nsIDOMWindowUtils::sendKeyEvent() but it dispatches keyboard events in
child process directly.  Currently, nsITextInputProcessor doesn't have this
feature but nobody wants/uses this feature.  So, for removing actual
implementation of nsIDOMWindowUtils::sendKeyEvent(), i.e.,
nsContentUtils::SendKeyEvent(), which is shared by both
nsDOMWindowUtils::SendKeyEvent() and nsFrameLoader::SendCrossProcessKeyEvent(),
we should remove this unused API too. (FYI: it's implemented for old Fennec,
by bug 553149.)

MozReview-Commit-ID: 9n0UVo8Me8k
2018-01-31 17:04:20 +09:00
Tooru Fujisawa
c2f56585a8 Bug 1424107 - Pass the triggering principal URI across processes in drag-and-drop. r=smaug 2018-02-09 10:43:53 +09:00
Andrea Marchesini
ddb4518ad1 Bug 1435174 - Remove the renaming 'using namespace workers', r=bkelly 2018-02-05 19:55:07 +01:00
Coroiu Cristina
ed8aa474e7 Merge inbound to mozilla-central r=merge a=merge 2018-01-13 11:55:23 +02:00
Nika Layzell
e5cd184550 Bug 1383876 - Part 1: Remove GroupedSHistory and Prerendering logic from C++ code, r=freesamael, r=smaug
MozReview-Commit-ID: 2aHA6NcQPGk
2018-01-12 17:52:52 -05:00
Mike Conley
d5cf6b077b Bug 1420902 - Bail out of RemoteSizeShellTo if the docShell has gone away. r=mystor
MozReview-Commit-ID: 4X3bfSeHGiA
2017-11-28 10:56:51 -05:00
Mike Conley
31e876d7fa Bug 1423208 - Queue pending RenderLayers calls when there are DocShell creation blockers. r=mystor
MozReview-Commit-ID: H4MqkWnfCkF
2018-01-08 17:53:09 -05:00
Mike Conley
11c7b4cd04 Bug 1397426 - TabChild::MakeHidden shouldn't cause script to run. r=billm
Calling GetPresShell() might create a content viewer, which might cause
script to run. This is bad if there's a ForcePaint message queued up,
because it could mean running the force painting code while we're still
in the midst of making a tab hidden, which would put us in an inconsistent
state.

MozReview-Commit-ID: 3rw2wGllGdk
2017-11-21 16:52:48 -05:00
Mike Conley
13436269e1 Bug 1397426 - Make TabParent's assume they're rendering layers by default on construction. r=billm
This assumption also mirrors how non-remote browsers have their docShells active by default.

In order to do this, I also have to increase the initial epoch's for the TabParent and TabChild,
as if a RenderLayers has been called. Originally, since the epochs initted at 0, and the epochs
stored by the [Layer|WebRender]TransactionParent were also initted at 0, we'd hit this branch:

https://searchfox.org/mozilla-central/rev/c633ffa4c4611f202ca11270dcddb7b29edddff8/gfx/layers/ipc/LayerTransactionParent.cpp#703

and then we'd never alert the TabParent about the layer upload.

MozReview-Commit-ID: 6PP1eCnisYK
2017-11-20 11:41:11 -05:00
Mike Conley
c41f6d596f Bug 1397426 - Rename TabChild's notion of "active tabs" to "visible tabs" and move logic into renderLayers. r=billm
MozReview-Commit-ID: 1bBNwew7uCk
2017-11-03 11:27:29 -04:00
Mike Conley
ab6d215b32 Bug 1397426 - Add IPC interface to tell TabChild's to render and clear layers, distinct from setting the active state on the DocShell. r=billm
Originally, setting the active state on the DocShell for remote browsers also did the
work of making the TabChild render its layers and upload them to the compositor.

This patch adds a new renderLayers method to nsITabParent which allows more fine-grained
control - we can now, for example, cause layers to be rendered and uploaded without
activating the DocShell.

Note that if one activates or deactivates the DocShell, we'll still do the work of
attempting to render / clear the layers if it hasn't already been done.

MozReview-Commit-ID: KkLaMDTzfHi
2017-11-03 10:27:05 -04:00
Mike Conley
b7a872bd1a Backed out changeset 261be8ec0554 (bug 1397426) 2017-12-06 16:10:55 -05:00
Mike Conley
668f40390f Backed out changeset 4643e46ff8d3 (bug 1397426) 2017-12-06 16:03:32 -05:00
Mike Conley
c8e182206d Backed out changeset b9b2895b11a3 (bug 1397426) 2017-12-06 15:54:06 -05:00
Mike Conley
544cc499e5 Backed out changeset 78073667ddc6 (bug 1397426) 2017-12-06 15:52:40 -05:00
Mike Conley
1cf1f22b6a Bug 1397426 - TabChild::MakeHidden shouldn't cause script to run. r=billm
Calling GetPresShell() might create a content viewer, which might cause
script to run. This is bad if there's a ForcePaint message queued up,
because it could mean running the force painting code while we're still
in the midst of making a tab hidden, which would put us in an inconsistent
state.

MozReview-Commit-ID: 3rw2wGllGdk
2017-11-21 16:52:48 -05:00
Mike Conley
1473ab4020 Bug 1397426 - Make TabParent's assume they're rendering layers by default on construction. r=billm
This assumption also mirrors how non-remote browsers have their docShells active by default.

In order to do this, I also have to increase the initial epoch's for the TabParent and TabChild,
as if a RenderLayers has been called. Originally, since the epochs initted at 0, and the epochs
stored by the [Layer|WebRender]TransactionParent were also initted at 0, we'd hit this branch:

https://searchfox.org/mozilla-central/rev/c633ffa4c4611f202ca11270dcddb7b29edddff8/gfx/layers/ipc/LayerTransactionParent.cpp#703

and then we'd never alert the TabParent about the layer upload.

MozReview-Commit-ID: 6PP1eCnisYK
2017-11-20 11:41:11 -05:00
Mike Conley
fa212df60f Bug 1397426 - Rename TabChild's notion of "active tabs" to "visible tabs" and move logic into renderLayers. r=billm
MozReview-Commit-ID: 1bBNwew7uCk
2017-11-03 11:27:29 -04:00
Mike Conley
cb0e50304b Bug 1397426 - Add IPC interface to tell TabChild's to render and clear layers, distinct from setting the active state on the DocShell. r=billm
Originally, setting the active state on the DocShell for remote browsers also did the
work of making the TabChild render its layers and upload them to the compositor.

This patch adds a new renderLayers method to nsITabParent which allows more fine-grained
control - we can now, for example, cause layers to be rendered and uploaded without
activating the DocShell.

Note that if one activates or deactivates the DocShell, we'll still do the work of
attempting to render / clear the layers if it hasn't already been done.

MozReview-Commit-ID: KkLaMDTzfHi
2017-11-03 10:27:05 -04:00
Thomas Nguyen
ac7c3454f3 Bug 1420702 - Propagate referrer policy when creating window from pinned tab r=ckerschb,smaug
MozReview-Commit-ID: 1kMssKbAm1l
2017-11-30 21:42:05 +08:00
Gabriele Svelto
de4cc6a7cf Bug 1402519 - Remove MOZ_CRASHREPORTER directives from dom; r=peterv
MozReview-Commit-ID: 4G2C9y6csvc
2017-10-10 12:43:09 +02:00
Kartikaya Gupta
ead17caf29 Bug 1419868 - Fix some inconsistent naming r=mystor
The property in question is the offset from the content process to the
chrome process, but it gets called various things for historical
reasons. Let's be consistent and just call it the chrome offset
everywhere.

Also, in some places this was needlessly getting turned into a
nsIntPoint via ToUnknownPoint(), only to be turned back into a
LayoutDeviceIntPoint at all the use sites. So this patch also updates
some function signatures to avoid the needless conversion.

No functional changes.

MozReview-Commit-ID: AuhEUfa64Uj
2017-11-22 14:21:37 -05:00
Kevin Chen
25f63c78eb Bug 1415469 - Remove mDeviceResetSequenceNumber from TDR process since we don't need it anymore; r=dvander
MozReview-Commit-ID: 3uQQwW8QOJA
2017-11-08 15:26:43 +08:00
Bill McCloskey
c5b6a5c394 Bug 1412195 - Track all changes to TabChild active state (r=bevis)
MozReview-Commit-ID: 7nQjquaM4sQ
2017-11-11 21:04:20 -08:00
Chris Peterson
1c79a65f02 Bug 1416164 - Replace NS_ABORT with MOZ_ASSERT_UNREACHABLE. r=froydnj
MozReview-Commit-ID: DRdYlOYqZpN
2017-10-24 23:52:56 -07:00
Nika Layzell
5d2b3a7e28 Bug 1414974 - Part 3: Move Get{Inner,Outer}WindowWithId onto the specific subclasses, r=smaug
These were originally exposed directly as static methods on nsGlobalWindow, but
as they are clearly associated with either the inner or outer window, it makes
more sense for them to be called as such.

MozReview-Commit-ID: LFq8EfnhDlo
2017-11-09 10:44:47 -05:00
Nika Layzell
d8c117bc28 Bug 1414974 - Part 2: Switch many consumers to nsGlobalWindow{Inner,Outer}, r=smaug
This is a large patch which tries to switch many of the external consumers of
nsGlobalWindow to instead use the new Inner or Outer variants.

MozReview-Commit-ID: 99648Lm46T5
2017-11-09 10:44:47 -05:00
sotaro
8606837a57 Bug 1390741 - Use BasicCompositor if widget type does not support acceleration r=aosmond,kats 2017-11-03 16:38:34 +09:00
Nika Layzell
5b9a5034d6 Bug 1401379 - Part 6: Cycle collect nsWebBrowser, r=smaug
MozReview-Commit-ID: 1hteVsTlTvd
2017-11-01 11:06:33 -04:00
sotaro
42c3f7b73d Bug 1408490 - Fix reinitRendering for deviceReset r=dvander 2017-11-01 11:58:10 +09:00
Nicholas Nethercote
e7cd5cec20 Bug 1405541 (attempt 2) - Split AUTO_PROFILER_LABEL_DYNAMIC into three macros. r=mstange.
It's easy to mess up the scoping so that (a) the label is pushed and then
immediately popped, and/or (b) the string doesn't live long enough. It's also
easy to do a utf16-to-utf8 conversion unnecessarily when the profiler is
inactive. This patch splits that macro into three new ones that are harder to
mess up.

- AUTO_PROFILER_LABEL_DYNAMIC_CSTR: same as current.
- AUTO_PROFILER_LABEL_DYNAMIC_NSCSTRING: for nsCStrings.
- AUTO_PROFILER_LABEL_DYNAMIC_LOSSY_NSSTRING: for nsStrings.
2017-10-13 16:12:57 +11:00
Stone Shih
de50e1c6e5 Bug 1407700 Part2: Handle the case to re-entry event loop for mousemove coalescing. r=smaug.
MozReview-Commit-ID: DcHVokf6boL
2017-10-12 09:05:40 +08:00
Stone Shih
36542f7632 Bug 1407700 Part1: Revise CoalescedInputData interfaces. r=smaug.
MozReview-Commit-ID: 75AsFBM4qr
2017-10-12 11:22:36 +08:00
sotaro
c8b09c7f80 Bug 1391262 - Create TabChild::CreateRemoteLayerManager() r=dvander 2017-10-13 23:32:52 +09:00
sotaro
6e3d24de25 Bug 1391262 - Do not use remote LayerManager when its initialization fails r=dvander 2017-10-13 23:32:36 +09:00
Sebastian Hengst
6adb214468 Backed out changeset 759a43ebc6bf (bug 1405541) for asserting in devtools/client/performance/test/browser_perf-console-record-03.js on Windows 7. r=backout 2017-10-11 13:15:26 +02:00
Nicholas Nethercote
7ea563fdf2 Bug 1405541 - Split AUTO_PROFILER_LABEL_DYNAMIC into three macros. r=mstange.
It's easy to mess up the scoping so that (a) the label is pushed and then
immediately popped, and/or (b) the string doesn't live long enough. It's also
easy to do a utf16-to-utf8 conversion unnecessarily when the profiler is
inactive.

This patch splits that macro into three new ones that are harder to mess up.

- AUTO_PROFILER_LABEL_DYNAMIC_CSTR: same as current.
- AUTO_PROFILER_LABEL_DYNAMIC_NSCSTRING: for nsCStrings.
- AUTO_PROFILER_LABEL_DYNAMIC_LOSSY_NSSTRING: for nsStrings.
2017-10-11 13:03:34 +02:00
Sebastian Hengst
59b9d6fb35 Backed out changeset 3dd22fb8666c (bug 1391262) for frequently asserting in mochitests on Windows 10 x64 debug, often in devtools/client/shared/webpack/shims/test/test_clipboard.html. r=backout 2017-10-11 13:02:15 +02:00
Sebastian Hengst
1ee0f3384f Backed out changeset fbd346f1d966 (bug 1391262) 2017-10-11 13:02:10 +02:00
Phil Ringnalda
9b852fb562 Backed out changeset 901a16fec9fc (bug 1405541) for Windows assertion failures
MozReview-Commit-ID: DRGWXU4Tbfk
2017-10-10 23:28:33 -07:00
Nicholas Nethercote
7085f47fb7 Bug 1405541 - Split AUTO_PROFILER_LABEL_DYNAMIC into three macros. r=mstange.
It's easy to mess up the scoping so that (a) the label is pushed and then
immediately popped, and/or (b) the string doesn't live long enough. It's also
easy to do a utf16-to-utf8 conversion unnecessarily when the profiler is
inactive.

This patch splits that macro into three new ones that are harder to mess up.

- AUTO_PROFILER_LABEL_DYNAMIC_CSTR: same as current.
- AUTO_PROFILER_LABEL_DYNAMIC_NSCSTRING: for nsCStrings.
- AUTO_PROFILER_LABEL_DYNAMIC_LOSSY_NSSTRING: for nsStrings.
2017-10-04 13:44:24 +11:00
sotaro
f2cf0695a3 Bug 1391262 - Create TabChild::CreateRemoteLayerManager() r=dvander 2017-10-11 10:34:19 +09:00
sotaro
deff06c597 Bug 1391262 - Do not use remote LayerManager when its initialization fails r=dvander 2017-10-11 10:33:57 +09:00
Stone Shih
efafb60304 Bug 1404273 - [Pointer Event] Coalescing mousemove for different pointers. r=smaug.
MozReview-Commit-ID: HfjRiUlBy3L
2017-09-20 11:57:56 +08:00
Sebastian Hengst
5b92427673 Backed out changeset 8a26cdedeb58 (bug 1401379) 2017-10-02 19:57:11 +02:00
Nika Layzell
8d665ce633 Bug 1401379 - Part 6: Cycle collect nsWebBrowser, r=smaug
MozReview-Commit-ID: 1hteVsTlTvd
2017-10-02 11:58:03 -04:00
Masayuki Nakano
69e1e875d1 Bug 1400189 - Give same priority to composition events and selectionset event as keyboard events at sending those events from the main process to a remote process r=stone
When sending keyboard events from TabParent to its remote process, TabParent
may give higher priority to them than composition events and selectionset event.

Therefore, the event order between keyboard events and composition events (and
selection set event) may be broken.  Keyboard events which should cause
inputting some characters are ignored if keyboard events are fired before
compositionend event accidentally.

This patch gives same priority to composition events and selectionset event
as keyboard event for avoiding breaking the event order.

MozReview-Commit-ID: 53jubwuHVvw
2017-09-29 22:03:25 +09:00
Arthur Edelstein
4f626dc05d Bug 1404174 - Fix ubsan runtime error for nsEventStatus enum. r=kats 2017-09-28 18:06:00 -04:00
Bevis Tseng
5a549f7a6b Bug 1399707 - Make entries in TabChild::sActiveTabs and EventLoopActivation::mEventGroups unique. r=billm 2017-09-13 11:59:35 +08:00