Commit Graph

12800 Commits

Author SHA1 Message Date
Nicolas B. Pierron
558a57a171 Bug 1368992 - JS bytecode cache: Do not attempt to encode bytecode if the compilation failed. r=mrbkap 2017-06-06 12:04:29 +00:00
Nicholas Nethercote
ede22c7534 Bug 1369612 - Remove ProfilerStackFrameDynamicRAII and profiler_call_{enter,exit}. r=mstange.
ProfilerStackFrameRAII and ProfilerStackFrameDynamicRAII are very similar; the
latter lets a dynamic string be specified as well (and lacks the
MOZ_GUARD_OBJECT stuff, for no good reason).

This patch does the following.

- Removes ProfilerStackFrameDynamicRAII, and adds a dynamic string to
  ProfilerStackFrameRAII. It also reorders the constructor's arguments to match
  the field ordering of ProfileEntry. There aren't many usage sites so these
  changes don't affect many places.

- With that done, there is only a single callsite for each of
  profiler_call_enter() and profiler_call_exit(), so the patch also inlines and
  removes them.
2017-06-02 15:38:20 +10:00
Ben Kelly
cf2f97c065 Bug 1370025 P5 Remove the old TimeoutManager insertion point logic. r=ehsan 2017-06-05 12:42:33 -07:00
Ben Kelly
c2b540895d Bug 1370025 P4 Use FiringId validity in TimeoutManager::Timeouts::Insert() and ::ResetTimersForThrottleReduction(). r=ehsan 2017-06-05 12:42:33 -07:00
Ben Kelly
1cacde3284 Bug 1370025 P3 Give the Timeouts structure a reference back to its owning TimeoutManager. r=ehsan 2017-06-05 12:42:33 -07:00
Ben Kelly
c5ee173aaa Bug 1370025 P2 Add TimeoutManager::IsValidFiringId() helper routine. r=ehsan 2017-06-05 12:42:33 -07:00
Ben Kelly
dd9bba778b Bug 1370025 P1 Better optimize the single mFiringIdStack case in IsInvalidFiringId(). r=ehsan 2017-06-05 12:42:33 -07:00
Hector Zhao
b8d53c802c Bug 1368464 - Don't attempt to copy multipart image as file promise. r=tnikkel
MozReview-Commit-ID: 1pwwZwBNb23

--HG--
extra : rebase_source : e99a49144b7f2c90941efd48eac8d9ff756fb8b6
2017-06-05 16:06:15 +08:00
Nicolas B. Pierron
6534093b4d Bug 1368675 - Add multiple heuristics to trigger the JS bytecode cache encoding. r=mrbkap 2017-06-05 12:06:20 +00:00
Kris Maglione
fb74d7df50 Bug 1356546: Follow-up: Fix rooting hazard warning.
MozReview-Commit-ID: JDDjiEbbErK

--HG--
extra : rebase_source : 48d6fe05597da32517035e6a524f3a143581e4f5
2017-06-05 00:13:15 -07:00
Kris Maglione
16c90bb383 Bug 1356546: Follow-up: Fix debug build failure.
MozReview-Commit-ID: 69AbeESbWc4

--HG--
extra : rebase_source : 27ceecde3a825a76acd8eb178e25dfbe457b73c9
2017-06-04 22:22:26 -07:00
Kris Maglione
761a458cda Bug 1356546: Part 1 - Add a StructuredCloneHolder JS helper to hold opaque structured clone blobs. r=billm
There are several places in the WebExtensions framework where we currently
need to repeatedly serialize and deserialize structured clone data as it
passes through message managers, which can lead to significant performance
issues.

This helper class lets us serialize a value directly from the source extension
context into an opaque blob, and then directly deserialize it into the target
context on the other end, with no X-ray overhead or clones into privileged
scopes in-between.

MozReview-Commit-ID: 4QzHi89onxc

--HG--
extra : rebase_source : 2ec196ca9ce9be90b7eadf136c938373ac7d3fdd
2017-05-20 15:09:24 -07:00
Tobias Schneider
f47b467c52 Bug 1359318 - (intersection-observer) Map intersectionRect to the coordinate space of the target document. r=mstange 2017-06-02 14:11:31 -07:00
Kartikaya Gupta
10f514bb72 Bug 1369840 - Support content-side APZ test data in WebRenderLayerManager. r=botond
This mostly just copies the functional parts of the APZTestData code from
ClientLayerManager into WebRenderLayerManager, and propagates the paint sequence
number over to the compositor using the existing WebRenderScrollData machinery.

MozReview-Commit-ID: LHupFpqtWTX
2017-06-04 22:29:35 -04:00
Kartikaya Gupta
8b69d8d217 Bug 1369840 - Support getting the compositor-side APZ test data over PWebRenderBridge. r=botond
This is fairly straightforward plumbing. The webrender equivalent of PLayerTransaction
is PWebRenderBridge and we can use that to get the compositor-side APZTestData.

MozReview-Commit-ID: Bn8WjKW5GoI
2017-06-04 22:29:35 -04:00
Kris Maglione
02c1b0890c Bug 1368102: Part 2 - Add WebExtensionContentScript bindings. r=billm,mixedpuppy
Bill, can you please review the binding code? Shane and zombie, can you please
review the content script matching?

MozReview-Commit-ID: IJB5s0a7r7S

--HG--
extra : rebase_source : 4026105b8c04e6b88c9be8cf76898fca26f1c3e0
2017-06-03 22:03:19 -07:00
Kris Maglione
414584f497 Bug 1322235: Part 5 - Add an ExtensionPolicyService singleton class to track active extension policies. r=billm,mixedpuppy
Bill, can you please review the binding changes? Shane, can you please review
the policy service?

This is the first step to making extension policy data directly available to
C++ code without any COM overhead. It tracks the set of currently active
extensions, and how they map to add-on IDs and URIs.

MozReview-Commit-ID: 9Z61AXFll3P

--HG--
extra : rebase_source : c38898905a63ab8d0a424bfda7c61ea6c645ff32
2017-05-23 19:15:10 -07:00
Kris Maglione
186924219b Bug 1322235: Part 1 - Add native MatchPattern and MatchGlob bindings. r=billm,aswan
Bill, can you please review the binding code, and the general sanity of the
platform code. Andrew and zombie, can you please matching algorithms and
tests.

Change summary:

The existing JavaScript matching code works well overall, but it needs to be
called a lot, particularly from hot code paths. In most cases, the overhead of
the matching code on its own adds up enough to cause a problem. When we have
to call out to JavaScript via XPConnect to make a policy decision, it adds up
even more.

These classes solve both of these problems by a) being very fast, and b) being
accessible directly from C++. They are particularly optimized for the common
cases where only literal or prefix matches are required, and they take special
steps to avoid virtual calls wherever possible, and caching computed URL
values so that they can be reused across many match operations without
additional overhead.

MozReview-Commit-ID: BZzPZDQRnl

--HG--
rename : toolkit/modules/tests/xpcshell/test_MatchPattern.js => toolkit/components/extensions/test/xpcshell/test_MatchPattern.js
extra : rebase_source : c93c4c6c36460eb5ad0fc3aa86ad42a72e76bb6c
2017-05-24 14:57:29 -07:00
Sebastian Hengst
5e4755df68 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: IdRgoZ9hiXq
2017-06-03 20:15:27 +02:00
Joel Maher
b44356bc28 Bug 1368364 - backout bug 1242505 as it causes browser/modules/ intermittent failures. r=paolo 2017-06-03 10:34:14 +02:00
Florian Quèze
8429e47547 Bug 1369345 - Remove messageWakeupService, r=nalexander. 2017-06-02 22:54:46 +02:00
Sebastian Hengst
b523ccd931 Backed out changeset 4fe99b113fff (bug 1369840) 2017-06-03 10:11:25 +02:00
Sebastian Hengst
ee709cb070 Backed out changeset b7bcbc5c1b92 (bug 1369840) 2017-06-03 10:11:17 +02:00
Ryan VanderMeulen
187f1f3dfe Merge inbound to m-c. a=merge 2017-06-01 16:43:30 -04:00
Oriol
ece0618ecc Bug 1369246 - Check if window pointer is null before attempting to call a method. r=baku 2017-06-01 06:45:00 -04:00
Ehsan Akhgari
cd6fff7343 Bug 1369140 - Part 1: Revert to only flushing styles when checking whether an element is focusable; r=bzbarsky
Bug 612018 made us flush layout for caret painting which isn't triggered
from anything that can call this code any mode, therefore we can revert
the change from that bug.
2017-06-01 08:55:30 -04:00
Peter Van der Beken
3a9a9c99de Bug 1363323 - Add TabGroup support to PContentBridge too. r=billm.
--HG--
extra : rebase_source : 8e2df03909c6ccf93d8cb81095c0826bce0e0616
extra : source : e2e64e85d768eb78a1873866bafab0cd863cd2c3
2017-05-02 11:57:51 +02:00
Xidorn Quan
9640535b81 Bug 1262963 - Add env var for bypassing origin check of cssom. r=heycam
MozReview-Commit-ID: 2iMx3sz1QKS

--HG--
extra : rebase_source : 747934a807246b7a61b78275fdabe3cf4df46c40
2016-11-29 18:03:01 +11:00
Kartikaya Gupta
8a0e62b656 Bug 1369840 - Support content-side APZ test data in WebRenderLayerManager. r=botond
This mostly just copies the functional parts of the APZTestData code from
ClientLayerManager into WebRenderLayerManager, and propagates the paint sequence
number over to the compositor using the existing WebRenderScrollData machinery.

MozReview-Commit-ID: 6GD5Sl3dSJp

--HG--
extra : rebase_source : d2f212128f8b352ef81e5c25650b95fae1f90002
2017-06-02 16:19:33 -04:00
Kartikaya Gupta
044a03ec40 Bug 1369840 - Support getting the compositor-side APZ test data over PWebRenderBridge. r=botond
This is fairly straightforward plumbing. The webrender equivalent of PLayerTransaction
is PWebRenderBridge and we can use that to get the compositor-side APZTestData.

MozReview-Commit-ID: JE9WkmejuM9

--HG--
extra : rebase_source : 8872e8dffb988740fa816870cfad25dd6a7d3c21
2017-06-02 16:19:33 -04:00
Peter Van der Beken
6c1bf2eef6 Bug 558184 - Part 9 - Optionally load a script in a sandbox in the content process for every plugin instance. r=bz.
--HG--
extra : rebase_source : 7d967d0bfd08ca1bbd3928f95a2a8e42c6e9600c
extra : source : f2d9aadaa14ea115518e005bebe6f04cfba50424
2016-09-27 18:28:36 +08:00
Peter Van der Beken
2310b3bd39 Bug 558184 - Part 8 - Load js plugins in a separate process. r=billm.
Every JS plugin is assigned a unique ID. When an instance of a JS plugin is created the
frame loader that we use to load the plugin's handler URI will create a special
TabContext. This TabContext causes the ContentParent to use the process for this specific
JS plugin (creating one if it hasn't already) when it creates the PBrowser actors.
This causes the iframes for all the instances of a specific JS plugin to be grouped in the
same process.

--HG--
extra : rebase_source : c39560bdf66cda1a005c7b823b3a46e4734878a4
extra : source : 9cba1db527c7eed4371c9f4caf96fd942608cab6
2017-05-29 12:38:46 +02:00
John Schoenick
4ce6580106 Bug 558184 - Part 4.3 - Load fake plugin handlers as eType_FakePlugin in nsObjectLoadingContent. r=peterv.
--HG--
extra : rebase_source : 4683568e90fd65a38c974aa755dd5f6f94479ee3
extra : source : 8e4be859c1a1ec73b29df98422d5ee6935cd9aa9
2015-05-20 15:30:05 +02:00
Ryan VanderMeulen
984edc2be4 Merge m-c to inbound. a=merge 2017-05-31 20:26:16 -04:00
Ryan VanderMeulen
b2f44e5181 Merge inbound to m-c. a=merge 2017-05-31 20:25:52 -04:00
Ben Kelly
ded5801245 Bug 1363829 P16 Allow setTimeout() to fire early based on nsIThread::GetAllowedEarlyFiringMicroseconds(). r=ehsan 2017-05-31 17:13:20 -07:00
Ben Kelly
9bff930c27 Bug 1363829 P13 Use the nsITimer::InitHighResolutionWithCallback() instead of rounding. r=ehsan 2017-05-31 17:13:19 -07:00
Ben Kelly
9a57bd14ec Bug 1363829 P8 Remove TimeoutManager back pressure mechanism. r=smaug 2017-05-31 17:13:19 -07:00
Ben Kelly
e3fc94e5a9 Bug 1363829 P7 Remove the Timeout nsITimer code. r=ehsan 2017-05-31 17:13:19 -07:00
Ben Kelly
f698e87bfb Bug 1363829 P6 Use the TimeoutExecutor in TimeoutManager. r=ehsan 2017-05-31 17:13:19 -07:00
Ben Kelly
e9e20536c7 Bug 1363829 P5 Add an executor class to represent the single timer executing timers for a window. r=ehsan 2017-05-31 17:13:19 -07:00
Ben Kelly
9c58cbc4d3 Bug 1363829 P4 Store the scheduled delay on Timeout instead of relying on the nsITimer to hold it. r=ehsan 2017-05-31 17:13:18 -07:00
Ben Kelly
5a9cd2b6fb Bug 1363829 P3 Improve Timeout ref counting to avoide bare AddRef/Release calls. r=ehsan 2017-05-31 17:13:18 -07:00
Ben Kelly
953ad6f162 Bug 1363829 P2 Removing the Timeout argument to TimeoutManager::RunTimeout(). r=ehsan 2017-05-31 17:13:18 -07:00
Ben Kelly
055afe6bd3 Bug 1363829 P1 Remove some deadcode in TimeoutManager related to processing pending timers. r=ehsan 2017-05-31 17:13:18 -07:00
Kearwood Gilbert
eb3becc0b0 Bug 1362213 - Implement chrome-only API to manage VR sessions r=daoshengmu,kanru,smaug
- Added new chrome-only webidl methods to be used by browser UI and WebExtensions
- Implemented bitmasked group visibility for VR sessions to enable switching
  between chrome and regular content presentations.
- Implemented throttling mechanism to avoid runaway, unthrottled render loops
  for VR sessions that are hidden by group visibility bitmasks or due to
  lower level platform VR events, such as during the Oculus
  "Health and Safety Warning".
- Simplified the PVRManager IPC protocol while extending it to support
  VR session groups and later WebVR content performance profiling API's.
- Removed the last WebVR related sync IPC call.


MozReview-Commit-ID: BMEIPyYeEbq

--HG--
extra : rebase_source : 47d3682cad3d913504175b7d4c3e9d992236f097
2017-05-08 16:01:36 -07:00
Brad Werth
b4e5c552de Bug 1355675 Part 3: Add some Chrome-only getTransformTo... methods to Element. r=mattwoodrow,smaug
MozReview-Commit-ID: 5H2DXKJzE8H

--HG--
extra : rebase_source : a5089158676586e94ac1c8528dd052d52973c869
2017-05-30 09:42:25 -07:00
Brad Werth
78f283d086 Bug 1355675 Part 2: Extend DOMMatrixReadOnly to allow instantiation with a Matrix4x4. r=mattwoodrow
MozReview-Commit-ID: AHTABgGe0Or

--HG--
extra : rebase_source : f1f30c64e16008d7702c4629f8d16ae610ebe1db
2017-05-09 14:29:42 -07:00
Carsten "Tomcat" Book
05cf62c272 Backed out changeset a311d7c6ce20 (bug 1363975) 2017-05-31 17:00:08 +02:00
Christoph Kerschbaumer
405ca89e21 Bug 1363975 - Have loadOneTab() provide the correct triggeringPrincipal. r=gijs,smaug 2017-05-31 15:46:58 +02:00