Commit Graph

5224 Commits

Author SHA1 Message Date
Kris Maglione
e6da28f1ce Bug 1470365: Part 3 - Use shared memory for StringBundles loaded in the content process. r=erahm,smaug
MozReview-Commit-ID: LunnQyndnBf

--HG--
extra : rebase_source : f67e08fc83e8c2e280d886b2d69150c09fb48200
extra : absorb_source : 3b9b226aaca168e3b6537f3031ff22275bd27133
2018-06-29 22:53:12 -07:00
Kris Maglione
2bbae5374b Bug 1470365: Part 1 - Add a compact, read-only, shared-memory string map class. r=erahm
This class implements a shared memory key-value store that fits into a single
memory mapped segment. All of the runtime data for its instances are stored in
the shared memory region, which means that memory overhead for each instance
in each process is only a few bytes.

Importantly, the key and value strings returned by this class are also
pointers into the shared memory region, which means that once an instance is
created, its memory cannot be unmapped until process shutdown.

For the uses I intend to put it to, this is a reasonable constraint. If we
need to use it for shorter-lived maps in the future, we can add an option to
return non-literal dependent strings that will be copied if they need to be
kept alive long term.

MozReview-Commit-ID: 5BwAaDsb7HS

--HG--
extra : rebase_source : b472fe628018f88a2c4d6b3de4b7143aeca55e14
extra : absorb_source : 5cdeb568cfd2b4a5a767191402e699e61e653b3b
2018-06-29 22:50:41 -07:00
Kris Maglione
fd093e7cca Bug 1463587: Part 1 - Add helper class for creating snapshots of shared memory regions. r=jld,erahm
This class allows us to map a read-write shared memory region, and then safely
remap it read-only, so that it can be shared with sandboxed content processes.

MozReview-Commit-ID: 2PJMQgOwA4V

--HG--
extra : rebase_source : c556cabfa7d379a91dc9ef7171ac0a7d7d8fb32e
extra : absorb_source : e78e304ed95891c694050f79a0bb5d40d11ee884
2018-06-22 20:30:23 -07:00
Masayuki Nakano
36f73c43d8 Bug 1435717 - Make calling WidgetEvent::PreventDefault*() stop cross process forwarding too r=smaug
Currently, if an event is consumed in the main process, EventStateManager
does not send it to remote process.  However, this is unexpected behavior
for some WidgetKeyboardEvent dispatchers.  OS sometimes has consumed native
key events before sending applications.  For example, Alt key on Windows
should activate menu bar of focused window but Alt key may be consumed before
focused window receives the event.  In such case, we mark Alt keyboard event
as "consumed before dispatch", and chrome treat it like as its preventDefault()
is called in web content.  (Note that for compatibility with other browsers,
the consumed state is not exposed to web content.  So, Event.defaultPrevented
returns false in web content.)

Therefore, we need to treat "consumed" state and "cross process forwarding"
state separately.  This patch makes calling WidgetEvent::PreventDefault()
always stops cross process forwarding for backward compatibility.  Additionally,
for the special case mentioned above, this patch makes
WidgetEvent::PreventDefaultBeforeDispatch() take additional argument,
|aIfStopCrossProcessForwarding|.  If this is CrossProcessForwarding::eStop,
the event won't be sent to remote process as same as calling PreventDefault().
Otherwise, CrossProcessForwarding::eHold, PreventDefaultBeforeDispatch() call
does not change "cross process forwarding" state.  I.e., if the event's
StopCrossProcessForwarding() and PreventDefault() are not called until
EventStateManager::PostHandleEvent(), the event will be sent to remote process
as usual.

MozReview-Commit-ID: IQGWJvXetxV

--HG--
extra : rebase_source : 4ccdd500e80b8fe29e469ac3b85578e1c07c8358
2018-06-25 18:17:18 +09:00
Andrew Swan
07dcc1c764 Bug 1451519 Convert specialpowers to a webextension r=kmag
This is a quick-and-dirty port.  It might be nice to replace
SpecialPowersObserver with the webextensions content script injection
system at some point, but that isn't practical right now (since WE experiments
cannot implement new APIs visible to content scripts).

MozReview-Commit-ID: GinCu3VcbWK

--HG--
rename : testing/specialpowers/bootstrap.js => testing/specialpowers/api.js
extra : rebase_source : 0faf7d21c8868c957ddc7fede0d56809f27dc161
extra : intermediate-source : ffb9ce93b92dd6396bfe038d3f6a8bcf929ec277
extra : source : cca596eadd0437dc75b75c119b6c7a405805f703
2018-06-27 13:10:51 -07:00
Coroiu Cristina
896ef35dfd Backed out changeset 722113b8204d (bug 1451519) for browser-chrome failures at browser/base/content/test/performance/browser_startup_content.js on a CLOSED TREE
--HG--
rename : testing/specialpowers/api.js => testing/specialpowers/bootstrap.js
2018-06-29 22:13:46 +03:00
Andrew Swan
849bbbb42d Bug 1451519 Convert specialpowers to a webextension r=kmag
This is a quick-and-dirty port.  It might be nice to replace
SpecialPowersObserver with the webextensions content script injection
system at some point, but that isn't practical right now (since WE experiments
cannot implement new APIs visible to content scripts).

MozReview-Commit-ID: GinCu3VcbWK

--HG--
rename : testing/specialpowers/bootstrap.js => testing/specialpowers/api.js
extra : rebase_source : 8be131e80d95a6bf6e86c994fdfa40c14ba610eb
extra : source : cca596eadd0437dc75b75c119b6c7a405805f703
2018-06-27 13:10:51 -07:00
Anny Gakhokidze
535e3c83a1 Bug 1470540 - Improve performance of DataTransfer::CacheExternalClipboardFormats, r=baku,mccr8
Currently, in order to retrieve supported clipboard formats
DataTransfer::CacheExternalClipboardFormats repeatedly makes the same calls to
clipboard->HasDataMatchingFlavors.

In the case when aPlainTextOnly == true only 1 call is made -
clipboard->HasDataMatchingFlavors(kUnicodeMime, ...), and when
aPlainTextOnly == false we have 1 call made for every member of the list
{ kCustomTypesMime, kFileMime, kHTMLMime, kRTFMime, kURLMime, kURLDataMime,
kUnicodeMime, kPNGImageMime } - a total of 8 calls.

We can see that in nsClipboardProxy::HasDataMatchingFlavors, there is a call to
ContentChild::GetSingleton()->SendClipboardHasType.
So when aPlainTextOnly == true, we will have 1 sync message, and when
aPlainTextOnly == false, we will have 8 sync messages.

With the proposed solution, in DataTransfer::CacheExternalClipboardFormats
we will only have 1 sync message regardless of the case because
GetExternalClipboardFormats() will retrieve all supported clipboard
formats at once.

MozReview-Commit-ID: CAmBfqB459v

--HG--
extra : rebase_source : 27f1b420f2613e6a747ed63762f1583ab71ba3e0
2018-06-22 14:28:27 -04:00
Cosmin Sabou
f4b3baf021 Merge mozilla-inbound to mozilla-central. a=merge 2018-06-28 13:04:23 +03:00
Tiberius Oros
945c24abe5 Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-06-28 01:12:18 +03:00
Marco Castelluccio
1f679b4e78 Bug 1470151 - Make dumpCoverage and resetCoverage return a Promise that is resolved when the parent process and all content processes are done with dumping or resetting coverage counters. r=froydnj
--HG--
extra : rebase_source : a393fb7eddfad3be12162791c864fa7f2dad7f1b
extra : source : ddde7dd347d451798becc0615468dd9acc5e609c
2018-06-22 14:31:59 +01:00
Coroiu Cristina
a2ea371c3c Backed out 3 changesets (bug 1470151) for build bustage at testing/xpcshell/selftest.py on a CLOSED TREE
Backed out changeset c73f394a4bef (bug 1470151)
Backed out changeset 3579431e03dc (bug 1470151)
Backed out changeset ddde7dd347d4 (bug 1470151)
2018-06-27 16:57:10 +03:00
Marco Castelluccio
2a4568f6f1 Bug 1470151 - Make dumpCoverage and resetCoverage return a Promise that is resolved when the parent process and all content processes are done with dumping or resetting coverage counters. r=froydnj
--HG--
extra : rebase_source : 1c6e668346b49a409b6271b9b51b731784a57cf5
2018-06-22 14:31:59 +01:00
imjching
4867775c4c Bug 1469072 - Add infrastructure to move Activity Stream into its own content process. r=kmag,mconley
Summary:
This patch adds the infrastructure to move Activity Stream (about:newtab, about:home,
and about:welcome) into its own special content process - the privileged content
process. This feature of running Activity Stream in the privileged content process
is disabled by default. (See "browser.tabs.remote.separatePrivilegedContentProcess"
preference.) We can deal with other about: pages in a follow-up.

Reviewers: mconley

Tags: #secure-revision

Bug #: 1469072

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

MozReview-Commit-ID: 5gIrP4LxcIt

--HG--
extra : rebase_source : d43c411ae60aad3d5a3a496e6729de0b547b4acd
2018-06-20 14:04:51 -04:00
Jeff Gilbert
5b753da289 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07:00
Ryan Hunt
6f29815288 Bug 1460753 - Remove TelemetryScrollProbe. r=smaug
The probe is expired and there's no clear owner here so let's remove this
for now.

--HG--
extra : rebase_source : 51c332a790ce5081ce4645633991c3b9213a5d21
extra : source : 98d141e6d651b804cf35040a5c20be74b6fb6c7a
2018-06-26 17:31:27 -05:00
Emilio Cobos Álvarez
c7d35aa526 Bug 1470930: Use enums for passing arguments for event dispatch. r=smaug
MozReview-Commit-ID: DsNuF7GAflJ
2018-06-26 18:22:06 +02:00
Margareta Eliza Balazs
c866c30fcf Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-06-26 12:24:32 +03:00
Chris Peterson
2afd829d0f Bug 1469769 - Part 6: Replace non-failing NS_NOTREACHED with MOZ_ASSERT_UNREACHABLE. r=froydnj
This patch is an automatic replacement of s/NS_NOTREACHED/MOZ_ASSERT_UNREACHABLE/. Reindenting long lines and whitespace fixups follow in patch 6b.

MozReview-Commit-ID: 5UQVHElSpCr

--HG--
extra : rebase_source : 4c1b2fc32b269342f07639266b64941e2270e9c4
extra : source : 907543f6eae716f23a6de52b1ffb1c82908d158a
2018-06-17 22:43:11 -07:00
Mike Conley
f88719f6e0 Bug 1449756 - Make DisplayPort suppression PresShell specific and not process global. r=kats
Originally, DisplayPort suppression was a process-global static. This change makes it possible
to control DisplayPort suppression on a per-PresShell basis.

Differential Revision: https://phabricator.services.mozilla.com/D1759
2018-06-25 21:42:25 +00:00
Ben Kelly
3a5e219e04 Bug 1462466 P3 Fix StructuredCloneData::CopyFromCloneMessageDataForBackgroundParent() to use CopyMemory instead of BorrowMemory. r=baku 2018-06-25 07:03:18 -07:00
Ben Kelly
f2e4fded62 Bug 1462466 P1 Add a ServiceWorkerCloneData type with threadsafe ref-counting. r=baku 2018-06-25 07:03:18 -07:00
Doug Thayer
10ff9c706f Bug 1448040 - Remove HangMonitor/ChromeHangs r=Nika
Fairly straightforward, just a blanket removal. Haven't heard
anything on dev-platform or fx-data-dev regarding this removal,
so I think it's likely safe to remove on Nightly, and we can
revert if anyone makes a fuss.

As part of removing the HangMonitor, I renamed a few things and
reorganized the namespaces to not depend on a HangMonitor
namespace. Hopefully this doesn't produce too much noise in the
diff, it just seemed appropriate to move everything around
rather than keep dangling vestiges of the old system.

MozReview-Commit-ID: 8C8NFnOP5GU

--HG--
extra : rebase_source : dd000a05bfc2da40c586644d33ca4508fa5330f6
2018-04-29 18:21:20 -07:00
Andrea Marchesini
6518a03af1 Bug 1268889 - Implement Clear-Site-Data header - part 3 - reload contexts, r=smaug 2018-06-20 11:57:50 -04:00
Narcis Beleuzu
3f9f7d8191 Backed out 4 changesets (bug 1268889) for Windows GTest failures. CLOSED TREE
Backed out changeset da427a67372e (bug 1268889)
Backed out changeset 97528847b7b7 (bug 1268889)
Backed out changeset b2320061fbcb (bug 1268889)
Backed out changeset dd3b7047ea6f (bug 1268889)
2018-06-21 16:51:55 +03:00
sotaro
771f6241c0 Bug 1470090 - Fix LayerObserverEpoch handling r=nical 2018-06-21 22:39:45 +09:00
Andrea Marchesini
1f52a1bed1 Bug 1268889 - Implement Clear-Site-Data header - part 3 - reload contexts, r=smaug 2018-06-20 11:57:50 -04:00
Jim Chen
594f82583c Bug 1466910 - 1. Forward more InputContext members through e10s; r=masayuki
Some InputContext members are not forwarded through
PBrowser::SetInputContext.

MozReview-Commit-ID: C1bGYq4w8zT

--HG--
extra : rebase_source : 1481f08c7593fe9dceb3b96bbfe480a1c58ecf9d
2018-06-19 16:31:24 -04:00
Tarek Ziadé
a895a7efea Bug 1464571 - fixes DOM Worker performance counters - r=baku,froydnj
Now uses StaticPrefs instead of DOMPrefs, and how we count dispatches for Workers.

MozReview-Commit-ID: DTumwcI5bG

--HG--
extra : rebase_source : 0cf5312e714fb260c01df647b2cd1fcc28ffc415
2018-06-19 16:14:06 +02:00
Blake Kaplan
49d7053a3e Bug 1442453 - Create a single IPC actor per PaymentRequest. r=baku
There isn't any need to create an actor per call to the parent. This patch
lines up PaymentRequest with PPaymentRequestChild objects and links them
together. It also simplifies the maps and arrays we use to keep track of these
objects.

There's one tricky bit to note in this patch: in the case that a promise is
passed to paymentRequest.show(), we don't notify the parent process until the
promise resolves (when we call either UpdatePayment or AbortUpdate). In that
case, I needed to distinguish between an "update" because of the promise
resolving or a call to updateWith on an shippingaddresschange event in order
to get the bookkeeping right with the mActivePayments hashtable. In that case,
the PaymentRequest is kept alive by mShowingRequest alone. In all other cases,
mActivePayments keeps the PaymentRequest alive until we resolve or reject the
correct promise.

MozReview-Commit-ID: HoHjn8eqC4T

--HG--
extra : rebase_source : 4da1d65d1f791f4a5c18871ab3a3dcf94e833b90
2018-05-31 13:30:29 -07:00
Andi-Bogdan Postelnicu
d9274aea61 Bug 1453795 - docshell - Initialize member fields in classes/ structures. r=smaug
--HG--
extra : rebase_source : 1b938af97a01037f5d51369319bfa326353a9aad
2018-06-18 10:23:57 +03:00
Kartikaya Gupta
ac8ae1c793 Bug 1468545 - Ensure the drag metrics gets to APZ before the target APZC for inactive scrollframes. r=botond
In the case where an inactive scrollframe's scrollbar gets dragged, the
main thread layerizes the scrollframe and dispatches both a
SetTargetAPZC message and a AsyncDragMetrics message using post-refresh
observers. However, the post-refresh observers are registered such that
the SetTargetAPZC message gets sent first, and APZ will start
processing the drag block immediately upon receipt of that event. This
means that the APZC might not have the correct drag metrics when it
processes those input events. For correct behaviour, we want the
AsyncDragMetrics message to reach APZ first in this scenario, and this
patch accomplishes this by allowing the post-refresh observers to be
registered in the opposite order.

MozReview-Commit-ID: 6LzyYYG1t6F

--HG--
extra : rebase_source : 2e3ebaa4fd776c8ad17e8225d70ec4a18eee67e0
2018-06-15 18:13:47 -04:00
Kartikaya Gupta
f74e6a30e2 Bug 1468545 - Distinguish between upwards- and downwards-propagating information in InputAPZContext. r=botond
No functional changes here, but this updates the documentation in
InputAPZContext and separates the fields into two categories for easier
understanding. This is what I had in mind when I introduced this class
but never documented it anywhere, and so the "pending layerization" flag
didn't follow the convention that I had in mind. This cleans that up.

MozReview-Commit-ID: I26Ocu5Uco2

--HG--
extra : rebase_source : 8e0e096f6a98626624e3d62f89d0ffea2049cd8c
2018-06-15 18:13:46 -04:00
Joel Maher
50b91c0a14 Bug 1405428 - skip-if = verify on mochitests which do not pass test-verify. r=gbrown 2018-06-10 05:01:47 -04:00
Masayuki Nakano
a20855c9f5 Bug 1441821 - NativeKey shouldn't mark eKeyDown and eKeyPress as "skippable in remote process" if message is not caused by physical key press r=m_kato,smaug
Currently, TabChild discards eKeyDown and eKeyPress events which are marked as
"repeated" and were dispatched after the latest eKeyDown event comes into the
process.  However, keyboard layout utils may generate native key events
as "repeated" even if each native key is important to input proper text.

So, TabChild shouldn't decide if coming keyboard event is skippable only with
mIsRepeat.  For solving this issue, this patch adds
mMaybeSkippableInRemoteProcess to WidgetKeyboardEvent and makes
TabChild::SkipRepeatedKeyEvent() check
WidgetKeyboardEvent::CanSkipInRemoteProcess() instead.

On Windows, there are two ways to generate keyboard input messages.  One is
using SendMessage() or PostMessage().  The other is SendInput() API.  In both
ways, utils can make their input as repeated key messages.

The former case must be safe for this issue since such utils need to set 31st
bit of lParam to 1 explicitly.

On the other hand, in the latter case, the utils probably need to append
KEYEVENTF_KEYUP into KEYBDINPUT::dwFlags.  Otherwise, only first call is
treated as non-repeated event.

So, when given message does not came from physical key operation, NativeKey
should set WidgetKeyboardEvent::mMaybeSkippableInRemoteProcess to false
even if WidgetKeyboardEvent::mIsRepeat is true.

MozReview-Commit-ID: 3rinrOjx8Tf

--HG--
extra : rebase_source : 26b6d869260176fc7ef535323b83001bb4b725c2
2018-06-06 23:35:16 +09:00
Alex Gaynor
442c1c9d02 Bug 1451859 - Part 3: In FUZZER builds, do not crash on malformed IPC messages. r=jld, r=posidron 2018-04-05 15:47:34 -04:00
Alex Gaynor
b174206e6f Bug 1451859 - Part 2: Add sanitizer coverage to a handful of places relevant to IPC. r=posidron 2018-04-05 15:48:11 -04:00
Alex Gaynor
de04abe10c Bug 1451859 - Part 1: Implement a fuzzer for IPC handlers using libFuzzer. r=jld, r=posidron 2018-03-23 16:18:42 -04:00
Cosmin Sabou
18d0742c9b Backed out 3 changesets (bug 1451859) for causing Spidermonkey bustages on Linux x64 opt.
Backed out changeset 8f5a9e18e953 (bug 1451859)
Backed out changeset 950fa584ec8e (bug 1451859)
Backed out changeset f1f42726f1ec (bug 1451859)
2018-06-07 09:10:35 +03:00
Alex Gaynor
c9f96864de Bug 1451859 - Part 3: In FUZZER builds, do not crash on malfored IPC messages. r=jld, r=posidron 2018-04-05 15:47:34 -04:00
Alex Gaynor
76b53de450 Bug 1451859 - Part 2: Add sanitizer coverage to a handful of places relevant to IPC. r=posidron 2018-04-05 15:48:11 -04:00
Alex Gaynor
c26d72178f Bug 1451859 - Part 1: Implement a fuzzer for IPC handlers using libFuzzer. r=jld, r=posidron 2018-03-23 16:18:42 -04:00
Dorel Luca
535f1df913 Merge mozilla-central to mozilla-inbound 2018-06-04 21:48:29 +03:00
Boris Zbarsky
0f159c9528 Bug 1466298 part 3. Remove nsIDOMGeoGeolocation. r=mccr8 2018-06-04 12:41:09 -04:00
Boris Zbarsky
d8f459f516 Bug 1466298 part 2. Stop using do_GetService to get the non-window geolocation in C++ code. r=mccr8 2018-06-04 12:41:04 -04:00
Miko Mynttinen
4c85ef17cc Bug 1465060 - Part 1: Fix warnings for std::move() use r=froydnj
MozReview-Commit-ID: HpdFXqQdIOO

--HG--
extra : rebase_source : 1e7eea4f2d4ec16ec0c559a8afb26976ddbf4d07
2018-06-01 17:59:07 +02:00
arthur.iakab
7e765f798b Backed out 2 changesets (bug 1465060) for build bustages on security/sandbox/linux/reporter/SandboxReporter.cpp
Backed out changeset 7c8905b6b226 (bug 1465060)
Backed out changeset 10446073eca8 (bug 1465060)
2018-06-03 19:25:41 +03:00
Miko Mynttinen
8d9dc85cd4 Bug 1465060 - Part 1: Fix warnings for std::move() use r=froydnj
MozReview-Commit-ID: HpdFXqQdIOO

--HG--
extra : rebase_source : 619d0e0ff63a2453c80f0c4d9beb906d43fa9b01
2018-06-01 17:59:07 +02:00
Andreea Pavel
4ced6e8b2d Merge mozilla-central to autoland. a=merge 2018-06-03 07:27:01 +03:00
Andrea Marchesini
7ba8b77e07 Bug 1466023 - Separate FontTableURI and BlobURL, r=qdot
This patch splits FontTableURI and BlobURL in 2 classes:
FontTableURIProtocolHandler and BlobURLProtocolHandler
both under mozilla::dom.

It also removes a memory reporter because that report is already covered by the
BlobURL one.

--HG--
rename : dom/file/nsHostObjectProtocolHandler.cpp => dom/file/BlobURLProtocolHandler.cpp
rename : dom/file/nsHostObjectProtocolHandler.h => dom/file/BlobURLProtocolHandler.h
2018-06-02 15:51:42 +02:00