Commit Graph

197 Commits

Author SHA1 Message Date
Mike Conley
31222be0ea Bug 1141337 - Update nsIWebBrowserPersistable to allow subframe targeting for Save Frame As. r=jld
This alters nsIWebBrowserPersistable so that startPersistence takes an
outerWindowID. This allows us to target a particular subframe from
beneath an nsFrameLoader, which is useful when attempting to Save
Frame As a remote browser.
2015-08-06 10:44:16 -04:00
Kyle Huey
3fc10d88bd Bug 1179909: Build fix. r=me CLOSED TREE 2015-08-11 06:54:49 -07:00
Kyle Huey
862b128345 Bug 1179909: Refactor stable state handling. r=smaug
This is motivated by three separate but related problems:

1. Our concept of recursion depth is broken for things that run from AfterProcessNextEvent observers (e.g. Promises). We decrement the recursionDepth counter before firing observers, so a Promise callback running at the lowest event loop depth has a recursion depth of 0 (whereas a regular nsIRunnable would be 1). This is a problem because it's impossible to distinguish a Promise running after a sync XHR's onreadystatechange handler from a top-level event (since the former runs with depth 2 - 1 = 1, and the latter runs with just 1).

2. The nsIThreadObserver mechanism that is used by a lot of code to run "after" the current event is a poor fit for anything that runs script. First, the order the observers fire in is the order they were added, not anything fixed by spec. Additionally, running script can cause the event loop to spin, which is a big source of pain here (bholley has some nasty bug caused by this).

3. We run Promises from different points in the code for workers and main thread. The latter runs from XPConnect's nsIThreadObserver callbacks, while the former runs from a hardcoded call to run Promises in the worker event loop. What workers do is particularly problematic because it means we can't get the right recursion depth no matter what we do to nsThread.

The solve this, this patch does the following:

1. Consolidate some handling of microtasks and all handling of stable state from appshell and WorkerPrivate into CycleCollectedJSRuntime.
2. Make the recursionDepth counter only available to CycleCollectedJSRuntime (and its consumers) and remove it from the nsIThreadInternal and nsIThreadObserver APIs.
3. Adjust the recursionDepth counter so that microtasks run with the recursionDepth of the task they are associated with.
4. Introduce the concept of metastable state to replace appshell's RunBeforeNextEvent. Metastable state is reached after every microtask or task is completed. This provides the semantics that bent and I want for IndexedDB, where transactions autocommit at the end of a microtask and do not "spill" from one microtask into a subsequent microtask. This differs from appshell's RunBeforeNextEvent in two ways:
a) It fires between microtasks, which was the motivation for starting this.
b) It no longer ensures that we're at the same event loop depth in the native event queue. bent decided we don't care about this.
5. Reorder stable state to happen after microtasks such as Promises, per HTML. Right now we call the regular thread observers, including appshell, before the main thread observer (XPConnect), so stable state tasks happen before microtasks.
2015-08-11 06:10:46 -07:00
Christoph Kerschbaumer
f4af4abdb2 Bug 1191107 - Split TYPE_XMLHTTPREQUEST and TYPE_DATAREQUEST for EventSource (r=sicking,ehsan) 2015-08-06 11:17:24 -07:00
Carsten "Tomcat" Book
24bab71afa Backed out 2 changesets (bug 1191107, bug 1180273) for causing xpcshell and m-oth testfailures on a CLOSED TREEi IGNORE IDL
Backed out changeset c5f710ed8718 (bug 1191107)
Backed out changeset d98d82f9981b (bug 1180273)
2015-08-06 08:39:05 +02:00
Christoph Kerschbaumer
a7a204019a Bug 1191107 - Split TYPE_XMLHTTPREQUEST and TYPE_DATAREQUEST for EventSource - IGNORE IDL (r=sicking,ehsan) 2015-08-05 12:58:05 -07:00
Russ Nicoletti
2e7bfaf9f1 Bug 1177226 - Support User Timing API events in the Developer HUD. r=ehsan, r=jryans 2015-07-31 15:40:08 -07:00
Nicholas Nethercote
d904560d80 Bug 1189156 (part 1) - Don't use enumeration style for PLDHashTable::SizeOf{In,Ex}cludingThis(). r=froydnj.
After this change, we have PLDHashTable::ShallowSizeOf{In,Ex}cludingThis(),
which don't do anything to measure children. (They can be combined with
iteration to measure children.)

This patch also removes the PL_DHashTableSizeOf{In,Ex}cludingThis() functions.
They're not necessary because the methods can be used instead.

Finally, the patch deliberately converts some SizeOfExcludingThis() calls to
SizeOfIncludingThis(). These are all done on heap pointers so this change is
valid.
2015-07-29 22:28:20 -07:00
Ehsan Akhgari
bac8dddb71 Bug 1188091 - Fix the exposure of Push interfaces; r=dougt,bzbarsky,nsm
Currently we don't check the dom.push.enabled pref in some cases for
some of these interfaces.  This patch unifies how all of these
interfaces are exposed to Window, Worker, and ServiceWorker.
2015-07-30 01:06:38 -04:00
Ryan VanderMeulen
5a65a53c72 Backed out changeset c88d1138bc38 (bug 1188091) for Mulet test_serviceworker_interfaces.html failures.
CLOSED TREE
2015-07-28 13:28:39 -04:00
Ehsan Akhgari
34f6032f9e Bug 1188091 - Fix the exposure of Push interfaces; r=dougt,bzbarsky
Currently we don't check the dom.push.enabled pref in some cases for
some of these interfaces.  This patch unifies how all of these
interfaces are exposed to Window, Worker, and ServiceWorker.
2015-07-28 12:28:53 -04:00
Jonathan Watt
d7cd211a5e Bug 1164310, part 6 - Implement the new Promise returning DataTransfer.getFilesAndDirectories() API. r=baku 2015-07-10 18:57:23 +01:00
Ben Kelly
864911371f Bug 1173912 Fail opaque responses for client requests. r=ehsan 2015-07-14 13:11:26 -07:00
Ben Kelly
3cef4d38b2 Bug 1173934 Show a message if a docshell fails to load due to SW intercept failure. r=ehsan r=jdm 2015-07-14 13:11:26 -07:00
Botond Ballo
d61e3f0a5b Bug 1181832 - Keep gfxPrefs.h out of header files. r=kats 2015-07-13 11:53:10 -04:00
Birunthan Mohanathas
a29151dc87 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Wes Kocher
bbf5860421 Backed out changeset adf95d1cd0aa (bug 1173934) for fetch-frame-resource.https.html WPT orange and test_synthesized_response.js S4 orange CLOSED TREE 2015-07-10 15:59:01 -07:00
Wes Kocher
007c76c751 Backed out changeset df6593df027b (bug 1173912) 2015-07-10 15:58:24 -07:00
Ben Kelly
a48452dd5e Bug 1173912 Fail opaque responses for client requests. r=ehsan 2015-07-10 14:28:32 -07:00
Ben Kelly
e71276c4a0 Bug 1173934 Show a message if a docshell fails to load due to SW intercept failure. r=ehsan r=jdm 2015-07-10 14:28:32 -07:00
Emanuel Hoogeveen
b30abdc582 Bug 905127 - Part 1 - Make some functions from nsNetUtil not inline. r=jduell 2015-07-07 04:17:00 +02:00
Yury Delendik
1e0799aaf4 Bug 1179262 - Remove PlayPreview usage from PDF viewer. r=bz 2015-07-02 11:09:45 -05:00
Andrew McCreight
9957e6d147 Bug 886459, part 1 - Remove unused includes of nsIJSRuntimeService.h. r=bholley 2015-06-26 18:44:13 -07:00
Andrea Marchesini
bce6c64a90 Bug 1177621 - SharedWorkers should not be shared between a private and a non-private documents, r=nsm 2015-06-26 11:18:18 -07:00
Nikhil Marathe
a22827384e Bug 1169044 - Patch 1 - Refactor setting referrer and referrer policy between fetch and XHR. r=khuey 2015-06-04 14:05:00 -07:00
Valentin Gosu
9e34a62bf8 Bug 1093611 - Stage 2 - Make hash getters not do percent decoding if dom.url.getters_decode_hash is false r=smaug 2015-06-15 15:55:02 +03:00
Ms2ger
6982983187 Bug 1173363 - Don't go through nsIDOMDocument in nsContentUtils::FlushLayoutForTree; r=khuey 2015-06-20 09:16:50 +02:00
Masayuki Nakano
784dd1a24b Bug 1175442 Make nsContentUtils::SendKeyEvent() take nsIWidget* rather than nsCOMPtr<nsIWidget> r=smaug 2015-06-18 13:41:28 +09:00
Andrea Marchesini
a2bd5efebf Bug 911972 - MessagePort and MessageChannel in workers, r=smaug, r=bent 2015-06-17 11:44:27 +01:00
Nicholas Nethercote
d71abcd056 Bug 1174625 - Overhaul PLDHashTable's iterator. r=froydnj.
This change splits PLDHashTable::Iterator::NextEntry() into two separate
functions, which allow you to get the current element and advance the iterator
separately, which means you can use a for-loop to iterate instead of a
while-loop.

As part of this change, the internals of PLDHashTable::Iterator were
significantly changed and simplified (and modelled after js::HashTable's
equivalent code). It's no longer duplicating code from PL_DHashTableEnumerator.
The chaos mode code was a casualty of this, but given how unreliable that code
has proven to be (see bug 1173212, bug 1174046) this is for the best. (We can
reimplement chaos mode once PLDHashTable::Iterator is back on more solid
footing again, if we think it's important.)

All these changes will make it much easier to add an alternative Iterator that
removes elements, which was turning out to be difficult with the prior code.

In order to make the for-loop header usually fit on a single line, I
deliberately renamed a bunch of things to have shorter names.

In summary, you used to write this:

  PLDHashTable::Iterator iter(&table);
  while (iter.HasMoreEntries()) {
    auto entry = static_cast<FooEntry*>(iter.NextEntry());
    // ... do stuff with |entry| ...
  }
  // iter's scope extends beyond here

and now you write this:

  for (auto iter = table.Iter(); !iter.Done(); iter.Next()) {
    auto entry = static_cast<FooEntry*>(iter.Get());
    // ... do stuff with |entry| ...
  }
  // iter's scope doesn't reach here
2015-06-11 21:19:53 -07:00
Ryan VanderMeulen
598e0c304c Backed out changesets a08167680328 and b008f158e91f (bug 1093611) for talos svgr timeouts. 2015-06-16 15:37:37 -04:00
Valentin Gosu
918ade0312 Bug 1093611 - Stage 2 - Make hash getters not do percent decoding if dom.url.getters_decode_hash is false r=smaug 2015-06-16 19:46:31 +03:00
Ehsan Akhgari
a9a3b0edd7 Bug 1174307 - Add some internal content policy types for the purpose of reflecting them on RequestContext; r=sicking
These new content policy types will be internal ones that we will map
to external nsContentPolicyTypes before passing them to content policy
implementations.
2015-06-15 15:40:26 -04:00
Ryan VanderMeulen
cff9cb6b12 Backed out changeset 1d67d747b3eb (bug 911972) for frequent linux64 debug e10s test_post_message_advanced.html timeouts.
CLOSED TREE
2015-06-15 13:06:23 -04:00
Andrea Marchesini
1d96d95aba Bug 911972 - MessagePort and MessageChannel in workers, r=smaug, r=bent 2015-06-15 14:08:25 +01:00
Nicholas Nethercote
b6c7c06f00 Bug 1172784 (part 2) - Remove PL_DHashTableEnumerate use from nsContentUtils. r=mccr8. 2015-06-10 13:07:40 -07:00
Nicholas Nethercote
b036f885ca Bug 1172784 (part 1) - Remove unused argument from UnmarkGrayJSListenersInCCGenerationDocuments(). r=mccr8.
This is possible because ListenerEnumerator() doesn't do anything with the
|aArg| argument.
2015-06-10 13:07:40 -07:00
David Parks
52b4d8a3f3 Bug 1125325 - Store TabParents with their WindowRoot. r=smaug
nsContentUtils::CallOnAllRemoteChildren calls a callback on all tabs
connected to a given window but it has only worked in Firefox e10s tabs.
This patch adds a list of (weak) references to each top-level document's
WindowRoot so that e.g. the nsPresContext can access them instead of
using nsContentUtils.  This provides a solution to the problem of finding remote PBrowsers generally.
2015-06-07 22:39:39 -07:00
Andrew Comminos
092f12d45a Bug 1167356 - Handle return value of DataSourceSurface::Map wherever possible. r=Bas 2015-06-11 13:06:23 -04:00
Karl Tomlinson
1467dd485c bug 1172377 change RunInStableState API to receive ownership of nsIRunnable r=roc 2015-06-08 11:06:38 +12:00
Karl Tomlinson
d8300aa54b bug 1171785 create nsContentUtils::RunInStableState helper r=bholley 2015-06-05 16:19:37 +12:00
Kartikaya Gupta
e6b390a6fb Back out 3 csets from bug 1125325 for introducing bug 1173224. r=me 2015-06-10 15:55:34 -04:00
Kathy Brade
d3a1d9ec91 Bug 418986 - Resist fingerprinting by preventing exposure of screen and system info. r=mrbkap, r=heycam 2015-06-07 09:02:00 -04:00
David Parks
c77560d1e8 Bug 1125325 - Store TabParents with their WindowRoot. r=smaug
nsContentUtils::CallOnAllRemoteChildren calls a callback on all tabs
connected to a given window but it has only worked in Firefox e10s tabs.
This patch adds a list of (weak) references to each top-level document's
WindowRoot so that e.g. the nsPresContext can access them instead of
using nsContentUtils.  This provides a solution to the problem of finding remote PBrowsers generally.
2015-06-07 22:39:39 -07:00
Xidorn Quan
d0a603fa67 Bug 1170911 - Add pref for switching off execCommand("cut"/"copy"). r=ehsan 2015-06-08 10:21:58 +12:00
Nicholas Nethercote
4500bfa831 Bug 1170416 (part 3) - Remove the PLDHashTable2 typedef. r=froydnj. 2015-05-19 16:46:17 -07:00
Xidorn Quan
9efa9ef548 Bug 1170328 - Mark nsIDocument::WarnOnceAbout() with const. r=smaug 2015-06-03 11:27:27 +12:00
Andrea Marchesini
4e6f70f76b Bug 1169800 - nsContentUtils::ParseLegacyFontSize should check when the input string is just '+' or '-', r=dveditz 2015-06-02 08:05:48 +01:00
Michael Layzell
07d387cb7f Bug 1162952 - Return true from document.queryCommandEnabled('cut'/'copy') when in privileged or user-initiated code. r=ehsan 2015-05-25 10:09:00 +02:00
David Major
c96edf50f2 Bug 1167189: Add an infallible version of nsContentUtils::GetNodeTextContent. r=jst 2015-05-22 14:16:20 -04:00