Граф коммитов

796 Коммитов

Автор SHA1 Сообщение Дата
Bill McCloskey 9edd615af7 Bug 1382922 - Refactor event queue to allow multiple implementations (r=erahm)
This patch refactors the nsThread event queue to clean it up and to make it easier to restructure. The fundamental concepts are as follows:

Each nsThread will have a pointer to a refcounted SynchronizedEventQueue. A SynchronizedEQ takes care of doing the locking and condition variable work when posting and popping events. For the actual storage of events, it delegates to an AbstractEventQueue data structure. It keeps a UniquePtr to the AbstractEventQueue that it uses for storage.

Both SynchronizedEQ and AbstractEventQueue are abstract classes. There is only one concrete implementation of SynchronizedEQ in this patch, which is called ThreadEventQueue. ThreadEventQueue uses locks and condition variables to post and pop events the same way nsThread does. It also encapsulates the functionality that DOM workers need to implement their special event loops (PushEventQueue and PopEventQueue). In later Quantum DOM work, I plan to have another SynchronizedEQ implementation for the main thread, called SchedulerEventQueue. It will have special code for the cooperatively scheduling threads in Quantum DOM.

There are two concrete implementations of AbstractEventQueue in this patch: EventQueue and PrioritizedEventQueue. EventQueue replaces the old nsEventQueue. The other AbstractEventQueue implementation is PrioritizedEventQueue, which uses multiple queues for different event priorities.

The final major piece here is ThreadEventTarget, which splits some of the code for posting events out of nsThread. Eventually, my plan is for multiple cooperatively scheduled nsThreads to be able to share a ThreadEventTarget. In this patch, though, each nsThread has its own ThreadEventTarget. The class's purpose is just to collect some related code together.

One final note: I tried to avoid virtual dispatch overhead as much as possible. Calls to SynchronizedEQ methods do use virtual dispatch, since I plan to use different implementations for different threads with Quantum DOM. But all the calls to EventQueue methods should be non-virtual. Although the methods are declared virtual, all the classes used are final and the concrete classes involved should all be known through templatization.

MozReview-Commit-ID: 9Evtr9oIJvx
2017-08-16 20:55:43 -07:00
Masatoshi Kimura dec070e4cf Bug 1389460 - Remove @deprecated nsIDOMEventTarget.DispatchDOMEvent. r=smaug
MozReview-Commit-ID: E88DZK5sfwx

--HG--
extra : rebase_source : 64e1a47c9366a970f20ec459dde9b379a207e802
2017-08-07 02:28:52 +09:00
Ben Kelly 4364d9066e Bug 1389184 Avoid crashing in worker MemoryReporter if the GlobalScope is nullptr. r=asuth 2017-08-10 18:00:05 -07:00
Ben Kelly e7bce488ed Bug 1387211 Avoid potential deadlock during worker shutdown. r=billm 2017-08-07 09:24:22 -07:00
Carsten "Tomcat" Book 3b7b01d32d Merge mozilla-central to inbound 2017-07-27 11:27:45 +02:00
Carsten "Tomcat" Book d360d49d2a merge mozilla-inbound to mozilla-central a=merge 2017-07-27 10:57:25 +02:00
Andrea Marchesini d06ba4ca6f Bug 1382768 - Performance API must be a memory reporter, r=bz 2017-07-27 09:05:51 +02:00
Andrea Marchesini 6f4d5069c8 Bug 1159003 - setResourceTimingBufferSize shouldn't affect user timing, but we should clean user markers if we have memory pressure, r=bz 2017-07-20 12:57:08 +02:00
Bevis Tseng 95b18d794e Bug 1382172 - Name nsITimerCallback instances in native implementation. r=billm
--HG--
extra : rebase_source : 84de1abfcc30a6964144c2e6718a508c71027b65
2017-07-27 02:18:20 +08:00
Bevis Tseng d935b29e72 Bug 1378930 - Part 1: Remove nsINamed::SetName(). r=billm
MozReview-Commit-ID: 7aM1yJRsfPH

--HG--
extra : rebase_source : f207a37be835ac4e6c431af56737cebacf5c566d
2017-07-21 11:50:43 +08:00
Kartikaya Gupta ba4b3b9101 Bug 1384233 - Remove SizePrintfMacros.h. r=froydnj
We have a minimum requirement of VS 2015 for Windows builds, which supports
the z length modifier for format specifiers. So we don't need SizePrintfMacros.h
any more, and can just use %zu and friends directly everywhere.

MozReview-Commit-ID: 6s78RvPFMzv

--HG--
extra : rebase_source : 009ea39eb4dac1c927aa03e4f97d8ab673de8a0e
2017-07-26 16:03:57 -04:00
Ryan VanderMeulen 3e946fc60d Backed out changesets f4378a5e6c7f and b7d81fea0b33 (bug 1159003) for causing bug 1383553. 2017-07-25 21:50:06 -04:00
Sylvestre Ledru 7c0ae251cd Bug 1381253 - Remove redundant control flow declarations rs=ehsan
MozReview-Commit-ID: FFxP4aMCbOL

--HG--
extra : amend_source : 3aec108430b11048f47ffe19d5da7ac5034770a9
2017-07-15 19:03:04 +02:00
Ben Kelly 1677104487 Bug 1379243 P6 Override Pre/Post dispatch methods in ExternalRunnableWrapper so it can be used off main thread. r=baku 2017-07-21 08:16:24 -07:00
Ben Kelly e266f48ec0 Bug 1379243 P5 Remove WorkerPrivate::GetEventTarget(). r=baku 2017-07-21 08:16:24 -07:00
Ben Kelly db5d0c6b04 Bug 1379243 P4 Make worker EventTargetFor() return a "hybrid" WorkerEventTarget. r=baku 2017-07-21 08:16:24 -07:00
Ben Kelly 4bbd23623d Bug 1379243 P3 Rename WorkerControlEventTarget and make it support a "hybrid" dispatch mode. r=baku 2017-07-21 08:16:23 -07:00
Ben Kelly 460403c359 Bug 1379243 P2 Fix some spurious warnings in WorkerPrivate. r=baku 2017-07-21 08:16:23 -07:00
Ben Kelly 5fe4521ee0 Bug 1379243 P1 Make WorkerControlEventTarget implement nsISerialEventTarget. r=baku 2017-07-21 08:16:23 -07:00
Andrea Marchesini b02308d651 Bug 1159003 - setResourceTimingBufferSize shouldn't affect user timing, but we should clean user markers if we have memory pressure, r=bz 2017-07-20 12:57:08 +02:00
Andrea Marchesini 50f9ea47a3 Bug 1350958 - Finish labeling ProxyReleaseEvent, r=billm 2017-07-14 08:49:22 +02:00
Boris Zbarsky 5c76874a46 Bug 1371259 part 3. Change UnwrapObject<> and the UNWRAP_OBJECT macro to allow passing in mutable object or value handles for the thing being unwrapped, and do so at various callsites. r=peterv
I did audit all UNWRAP_OBJECT callers to make sure that the lifetimes of all the
temporary Rooted or the RefPtrs they unwrap into are long enough.
2017-07-10 16:05:24 -04:00
Ben Kelly 227c73cd89 Bug 1366089 Make EventTargetFor() support worker threads. r=baku 2017-06-29 11:28:56 -07:00
Bill McCloskey f115503a0b Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00
Chris Peterson 6471ec4b4d Bug 1373525 - dom/workers: Remove unused classes and member functions. r=baku
dom/workers/ScriptLoader.cpp:246:3 [-Wunused-member-function] unused member function 'ReadyToExecute'
dom/workers/ServiceWorkerScriptCache.cpp:200:19 [-Wunused-member-function] unused member function 'URL'
dom/workers/WorkerPrivate.cpp:1553:3 [-Wunused-member-function] unused member function 'DummyRunnable'

MozReview-Commit-ID: DLjD10iZJJV

--HG--
extra : source : db094b81fb77993c48e2884ffef700e34302c03e
extra : intermediate-source : fd1c6bd2b6882efb9e6ac3aeabe18968826297e4
extra : histedit_source : 8faac0927d4d97062fd74395dc2980cde57785b9
2017-06-15 00:40:59 -07:00
Carsten "Tomcat" Book 8a1350b5a6 Backed out changeset 4f6302a98ae4 (bug 1372405)
--HG--
extra : rebase_source : 41632f3158e88e692809731394a683d065a73dfb
2017-06-21 13:59:26 +02:00
Bill McCloskey 6b3e84ed5f Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-20 21:44:11 -07:00
Carsten "Tomcat" Book ea1b86680c Backed out changeset 9846de3bd954 (bug 1372405)
--HG--
extra : rebase_source : 5d4a48e8ec394c329994689d938d2a6e9b2752b0
2017-06-20 08:27:02 +02:00
Bill McCloskey 4592152411 Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-19 22:25:47 -07:00
Bevis Tseng d1637b9c5a Bug 1372453 - Part 2: Name the caller of ProxyReleaseEvent. r=billm
MozReview-Commit-ID: LYhSWnZkq0i
2017-06-14 09:27:17 +08:00
Bill McCloskey 1158c7c282 Bug 1372733 - EventTargetFor should return an nsISerialEventTarget (r=bkelly)
MozReview-Commit-ID: Kchg4kqBERt
2017-06-15 20:16:25 -07:00
Bill McCloskey aefa2aa5da Bug 1365097 - Convert NS_GetCurrentThread uses in dom (except for dom/media) (r=smaug)
For the Quatum DOM project, it's better to work in terms of event targets than
threads. This patch converts DOM code to operate on event targets rather than
threads, when possible.

MozReview-Commit-ID: 5FgvpKadUA2
2017-06-12 20:20:08 -07:00
Bill McCloskey 595e5d79c8 Bug 1361164 - Add nsISerialEventTarget (r=froydnj)
MozReview-Commit-ID: 8y1GdEGCPSB
2017-06-12 20:20:08 -07:00
Bill McCloskey 5ddda3bb77 Bug 1361164 - Add infallible IsOnCurrentThread to nsIEventTarget (r=froydnj)
MozReview-Commit-ID: 12bk9hQ7Wnv
2017-06-12 20:20:08 -07:00
Jon Coppeard 0924a2d29c Bug 1369748 - Parallelise the start of GC marking r=sfink r=smaug 2017-06-09 11:44:15 +01:00
Sylvestre Ledru aa1c00fb9f Bug 1370369 - Use the new MOZ_DIAGNOSTIC_ASSERT_ENABLED instead of several defines - follow up patch r=froydnj
MozReview-Commit-ID: I4ffmvKClc6

--HG--
extra : rebase_source : 0039cd09dfb199f77a1cbdca3bfdbcab21cc0049
2017-06-05 23:43:34 +02:00
Andrea Marchesini 8cfd4ae66c Bug 1349266 - Using a workerHolder to keep alive a parent worker when a child worker is created, r=kbelly 2017-05-25 09:04:25 +02:00
Bill McCloskey 226f6b9185 Bug 1366869 - Make DISPATCH_NORMAL be the default flags argument for nsIEventTarget::Dispatch (r=froydnj)
MozReview-Commit-ID: 5DVcIaMHH95
2017-05-23 12:05:43 -07:00
Andrea Marchesini b203932e2d Bug 1364297 - Use nsString instead nsCString for Worker names, r=smaug 2017-05-17 16:49:34 +02:00
Andrea Marchesini 7453988cd7 Bug 1364297 - Worker and SharedWorker constructors have an optional WorkerOptions parameter, r=smaug 2017-05-17 16:48:54 +02:00
Ben Kelly 4a9335fcd3 Bug 1361823 Fail the worker script load instead of crashing if the load group is torn down. r=baku 2017-05-15 06:52:00 -07:00
Ben Kelly 93100c8123 Bug 1362444 P1 Allow idle worker shutdown to begin for an opt-in WorkerHolder mode. r=baku 2017-05-10 09:27:10 -07:00
Ben Kelly 6564cff0b5 Bug 1361166 Update mParentStatus synchronously when closing worker thread. r=baku 2017-05-03 07:42:43 -07:00
Thomas Nguyen afaba58d52 Bug 1339004 - Do DocGroup labeling in dom/security. r=ckerschb,smaug
MozReview-Commit-ID: 3QoH8P4J85I

--HG--
extra : rebase_source : 6f62454001fc02380f8aea99a56eff38de0e9fb6
2017-03-29 10:20:32 +08:00
Paul Bignier 9103ac60ef Bug 1352808 - Typo fixes for 'browser' in comments. r=MattN
MozReview-Commit-ID: IA42yQO5Sb8

--HG--
extra : rebase_source : b5426724c5b740639f71e5d058742b01868085e2
2017-04-03 15:26:11 -07:00
Ben Kelly a68b3b11fd Bug 1350433 Expose WorkerPrivate::ServiceWorkerScope() instead of using WorkerName() all over the place. r=asuth 2017-03-24 19:56:48 -04:00
Valentin Gosu 1c5fbd8c6e Bug 1342438 - Remove url .hash encoding/decoding prefs r=bagder
These prefs have been added close to two years ago:
dom.url.encode_decode_hash and dom.url.getters_decode_hash
The main reason for their existence was in case we encounter any web-compat issues. At this point the extra code is mostly useless, and flipping the pref may lead to crashes.

MozReview-Commit-ID: LhAHkYmv0TR

--HG--
extra : rebase_source : 8f2d50d5633496cf165b3925d952bb6475bce3e0
2017-03-08 22:19:34 +01:00
Ben Kelly e070aa7b47 Bug 1340654 P1 Set referrer policy in service workers. r=baku 2017-02-23 10:54:42 -05:00
Ben Kelly 8fc68b959d Bug 1340652 P1 Assert principal URL matches final worker script URL. r=baku 2017-02-23 10:54:41 -05:00
Tom Tromey 5f8f360823 Bug 1060419 - make log_print use Printf.h, r=froydnj
MozReview-Commit-ID: BIZ1GQEZ1vs

--HG--
extra : rebase_source : 2f1f0aa12493c44f352d9a7e8683e7bb72d2d75b
2016-12-15 20:16:31 -07:00