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

72 Коммитов

Автор SHA1 Сообщение Дата
Ryan VanderMeulen 1e86901d36 Backed out changeset 4a8f45990368 (bug 1185640) for causing serviceworker w-p-t permacrashes.
CLOSED TREE
2015-08-13 10:13:55 -04:00
Andrea Marchesini 2792224a7f Bug 1185640 - Passing a scope or scriptURL to register() with escaped '/' or '\' should fail, r=bkelly 2015-08-13 11:34:52 +01:00
Kyle Huey 76e3009ab8 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
Russ Nicoletti 80a2a30f8a Bug 1177226 - Support User Timing API events in the Developer HUD. r=ehsan, r=jryans
--HG--
extra : rebase_source : 5a084f34f7550ec78c5337fb1808f7e03e7d0687
2015-07-31 15:40:08 -07:00
Ehsan Akhgari 547404788d 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 96b36b5855 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 6e916540f5 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
Ben Kelly e2321797dc 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
Yury Delendik 8d6aa6ae83 Bug 1179262 - Remove PlayPreview usage from PDF viewer. r=bz
--HG--
extra : rebase_source : ecdd1e516e1fc842169454161614f65d26462662
2015-07-02 11:09:45 -05:00
Andrea Marchesini 43fb37cc29 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 bd1323708a Bug 1169044 - Patch 1 - Refactor setting referrer and referrer policy between fetch and XHR. r=khuey
--HG--
extra : rebase_source : 8b004536dab18706ae4b8c3f0c574f8769c05638
2015-06-04 14:05:00 -07:00
Valentin Gosu 6dd869a927 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
Masayuki Nakano 4bc0549972 Bug 1175442 Make nsContentUtils::SendKeyEvent() take nsIWidget* rather than nsCOMPtr<nsIWidget> r=smaug 2015-06-18 13:41:28 +09:00
Andrea Marchesini 8372e7d29d Bug 911972 - MessagePort and MessageChannel in workers, r=smaug, r=bent
--HG--
rename : dom/base/MessageChannel.cpp => dom/messagechannel/MessageChannel.cpp
rename : dom/base/MessageChannel.h => dom/messagechannel/MessageChannel.h
rename : dom/base/MessagePort.cpp => dom/messagechannel/MessagePort.cpp
rename : dom/base/MessagePort.h => dom/messagechannel/MessagePort.h
rename : dom/base/MessagePortList.cpp => dom/messagechannel/MessagePortList.cpp
rename : dom/base/MessagePortList.h => dom/messagechannel/MessagePortList.h
rename : dom/base/test/iframe_messageChannel_chrome.html => dom/messagechannel/tests/iframe_messageChannel_chrome.html
rename : dom/base/test/iframe_messageChannel_cloning.html => dom/messagechannel/tests/iframe_messageChannel_cloning.html
rename : dom/base/test/iframe_messageChannel_pingpong.html => dom/messagechannel/tests/iframe_messageChannel_pingpong.html
rename : dom/base/test/iframe_messageChannel_post.html => dom/messagechannel/tests/iframe_messageChannel_post.html
rename : dom/base/test/test_messageChannel.html => dom/messagechannel/tests/test_messageChannel.html
rename : dom/base/test/test_messageChannel.xul => dom/messagechannel/tests/test_messageChannel.xul
rename : dom/base/test/test_messageChannel_cloning.html => dom/messagechannel/tests/test_messageChannel_cloning.html
rename : dom/base/test/test_messageChannel_pingpong.html => dom/messagechannel/tests/test_messageChannel_pingpong.html
rename : dom/base/test/test_messageChannel_post.html => dom/messagechannel/tests/test_messageChannel_post.html
rename : dom/base/test/test_messageChannel_pref.html => dom/messagechannel/tests/test_messageChannel_pref.html
rename : dom/base/test/test_messageChannel_start.html => dom/messagechannel/tests/test_messageChannel_start.html
rename : dom/base/test/test_messageChannel_transferable.html => dom/messagechannel/tests/test_messageChannel_transferable.html
rename : dom/base/test/test_messageChannel_unshipped.html => dom/messagechannel/tests/test_messageChannel_unshipped.html
2015-06-17 11:44:27 +01:00
Ryan VanderMeulen 83cd9ed67a Backed out changesets a08167680328 and b008f158e91f (bug 1093611) for talos svgr timeouts. 2015-06-16 15:37:37 -04:00
Valentin Gosu c852d75d5c 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 8f750a75b2 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 c366b2c3f3 Backed out changeset 1d67d747b3eb (bug 911972) for frequent linux64 debug e10s test_post_message_advanced.html timeouts.
CLOSED TREE

--HG--
rename : dom/messagechannel/MessageChannel.cpp => dom/base/MessageChannel.cpp
rename : dom/messagechannel/MessageChannel.h => dom/base/MessageChannel.h
rename : dom/messagechannel/MessagePort.cpp => dom/base/MessagePort.cpp
rename : dom/messagechannel/MessagePort.h => dom/base/MessagePort.h
rename : dom/messagechannel/MessagePortList.cpp => dom/base/MessagePortList.cpp
rename : dom/messagechannel/MessagePortList.h => dom/base/MessagePortList.h
rename : dom/messagechannel/tests/iframe_messageChannel_chrome.html => dom/base/test/iframe_messageChannel_chrome.html
rename : dom/messagechannel/tests/iframe_messageChannel_cloning.html => dom/base/test/iframe_messageChannel_cloning.html
rename : dom/messagechannel/tests/iframe_messageChannel_pingpong.html => dom/base/test/iframe_messageChannel_pingpong.html
rename : dom/messagechannel/tests/iframe_messageChannel_post.html => dom/base/test/iframe_messageChannel_post.html
rename : dom/messagechannel/tests/test_messageChannel.html => dom/base/test/test_messageChannel.html
rename : dom/messagechannel/tests/test_messageChannel.xul => dom/base/test/test_messageChannel.xul
rename : dom/messagechannel/tests/test_messageChannel_cloning.html => dom/base/test/test_messageChannel_cloning.html
rename : dom/messagechannel/tests/test_messageChannel_pingpong.html => dom/base/test/test_messageChannel_pingpong.html
rename : dom/messagechannel/tests/test_messageChannel_post.html => dom/base/test/test_messageChannel_post.html
rename : dom/messagechannel/tests/test_messageChannel_pref.html => dom/base/test/test_messageChannel_pref.html
rename : dom/messagechannel/tests/test_messageChannel_start.html => dom/base/test/test_messageChannel_start.html
rename : dom/messagechannel/tests/test_messageChannel_transferable.html => dom/base/test/test_messageChannel_transferable.html
rename : dom/messagechannel/tests/test_messageChannel_unshipped.html => dom/base/test/test_messageChannel_unshipped.html
2015-06-15 13:06:23 -04:00
Andrea Marchesini 9b1ac68ebb Bug 911972 - MessagePort and MessageChannel in workers, r=smaug, r=bent
--HG--
rename : dom/base/MessageChannel.cpp => dom/messagechannel/MessageChannel.cpp
rename : dom/base/MessageChannel.h => dom/messagechannel/MessageChannel.h
rename : dom/base/MessagePort.cpp => dom/messagechannel/MessagePort.cpp
rename : dom/base/MessagePort.h => dom/messagechannel/MessagePort.h
rename : dom/base/MessagePortList.cpp => dom/messagechannel/MessagePortList.cpp
rename : dom/base/MessagePortList.h => dom/messagechannel/MessagePortList.h
rename : dom/base/test/iframe_messageChannel_chrome.html => dom/messagechannel/tests/iframe_messageChannel_chrome.html
rename : dom/base/test/iframe_messageChannel_cloning.html => dom/messagechannel/tests/iframe_messageChannel_cloning.html
rename : dom/base/test/iframe_messageChannel_pingpong.html => dom/messagechannel/tests/iframe_messageChannel_pingpong.html
rename : dom/base/test/iframe_messageChannel_post.html => dom/messagechannel/tests/iframe_messageChannel_post.html
rename : dom/base/test/test_messageChannel.html => dom/messagechannel/tests/test_messageChannel.html
rename : dom/base/test/test_messageChannel.xul => dom/messagechannel/tests/test_messageChannel.xul
rename : dom/base/test/test_messageChannel_cloning.html => dom/messagechannel/tests/test_messageChannel_cloning.html
rename : dom/base/test/test_messageChannel_pingpong.html => dom/messagechannel/tests/test_messageChannel_pingpong.html
rename : dom/base/test/test_messageChannel_post.html => dom/messagechannel/tests/test_messageChannel_post.html
rename : dom/base/test/test_messageChannel_pref.html => dom/messagechannel/tests/test_messageChannel_pref.html
rename : dom/base/test/test_messageChannel_start.html => dom/messagechannel/tests/test_messageChannel_start.html
rename : dom/base/test/test_messageChannel_transferable.html => dom/messagechannel/tests/test_messageChannel_transferable.html
rename : dom/base/test/test_messageChannel_unshipped.html => dom/messagechannel/tests/test_messageChannel_unshipped.html
2015-06-15 14:08:25 +01:00
Nicholas Nethercote c3c054cb1e Bug 1172784 (part 1) - Remove unused argument from UnmarkGrayJSListenersInCCGenerationDocuments(). r=mccr8.
This is possible because ListenerEnumerator() doesn't do anything with the
|aArg| argument.

--HG--
extra : rebase_source : f0f489c3adfc21e249fe7ece2b7dbdbaafae406e
2015-06-10 13:07:40 -07:00
David Parks eff33f4052 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
Karl Tomlinson 1296d5f3fe bug 1171785 create nsContentUtils::RunInStableState helper r=bholley
--HG--
extra : rebase_source : 2945795bdb3551a337f5fd9745c1f3d6a7b0763f
2015-06-05 16:19:37 +12:00
Kartikaya Gupta eb7580bebc Back out 3 csets from bug 1125325 for introducing bug 1173224. r=me 2015-06-10 15:55:34 -04:00
Kathy Brade 8b3f3fad35 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 6bfe79757c 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 ba301e6ce2 Bug 1170911 - Add pref for switching off execCommand("cut"/"copy"). r=ehsan
--HG--
extra : source : c774d06eeee6767553760498d53ebee1c7a093ad
2015-06-08 10:21:58 +12:00
Xidorn Quan c5555b3c2d Bug 1170328 - Mark nsIDocument::WarnOnceAbout() with const. r=smaug
--HG--
extra : source : 694549cb658b3df005efacba085ef87cabf97e04
2015-06-03 11:27:27 +12:00
Michael Layzell c13b8f3ee6 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 db2b1e973b Bug 1167189: Add an infallible version of nsContentUtils::GetNodeTextContent. r=jst
--HG--
extra : rebase_source : 880d1f717ad3d6789ffe3c422cc35fdf3965f55c
2015-05-22 14:16:20 -04:00
Xidorn Quan 3116f3bf53 Bug 1157685 - Remove full-screen-api.content-only pref and its friends. r=smaug
--HG--
extra : source : 00be0263af62b29007d286d6d7dbac4ee4fdba01
2015-05-15 14:39:25 +12:00
Mike Conley 1f5e274f86 Bug 1136478 - Fire pagehide / pageshow events in content after swapping remote frame loaders. r=smaug.
--HG--
extra : rebase_source : fbe5ee7bb8aeac7edabb580bcab0254aebcbc1e0
2015-05-07 11:43:40 -04:00
Andrew McCreight 9e8f4b219e Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Kartikaya Gupta cd5b55f8d6 Bug 1039866 - Rip out a bunch of metro-only code. r=jimm,gavin,rstrong 2015-04-23 15:10:30 -04:00
Andrea Marchesini 5c1e2ee932 Bug 1156632 - Remove unused forward class declarations - patch 1 - dom/base, r=ehsan 2015-04-22 08:29:15 +02:00
Botond Ballo daec5fa621 Bug 1152479 - Extract the implementations of nsIDOMWindowUtils::Send{KeyEvent,MouseEvent} into nsContentUtils. r=ehsan
--HG--
extra : source : aad21c8ed32449d467c1b145a92c5d92e42a5ea4
2015-04-15 03:08:55 -04:00
Neil Deakin 98d9f35d1e Bug 1071562, e10s, support non-text types in clipboard (html, images, etc), r=smaug 2015-04-16 15:38:12 -04:00
Jim Blandy 6afdd6c96b Bug 1145051: Use MOZ_WARN_UNUSED_RESULT instead of NS_WARN_UNUSED_RESULT. r=glandium
--HG--
extra : rebase_source : d210822225d307f3e3685cb5f95b461c48c0be7e
2015-03-19 00:46:40 -07:00
Boris Zbarsky 37e96c22d5 Bug 1154812. Fix location.pathname to return the right thing in workers. r=baku 2015-04-15 16:32:53 -04:00
Ryan VanderMeulen d6b7600da5 Backed out changeset 2a040986845d (bug 1071562) for bustage.
CLOSED TREE
2015-04-10 13:14:33 -04:00
Neil Deakin 94848ffbe4 Bug 1071562, e10s, support non-text types in clipboard (html, images, etc), r=smaug 2015-04-10 12:51:06 -04:00
Olli Pettay aad5b35ad2 Bug 936092, initial DnD support for e10s, r=enndeakin,karlt
--HG--
extra : rebase_source : 070a9902f23d8b47e48ac0f972213815f8e4302c
2015-04-08 21:48:11 +03:00
Ryan VanderMeulen 1b034b250f Backed out changesets 33d37539c4ab and 55524bdeb708 (bug 936092) for suspicion of causing e10s test_bug417418.html asserts on Linux.
CLOSED TREE
2015-04-08 13:52:21 -04:00
Olli Pettay efdecf747e Bug 936092, initial DnD support for e10s, r=enndeakin,karlt
--HG--
extra : rebase_source : f0b1b0fa95dfa5fe16c09ebbc38618cf7c96654f
2015-04-08 18:30:03 +03:00
Boris Zbarsky 820353b345 Bug 1142478. Fix integer attribute parsing to not lose track of leading zeroes. r=sicking 2015-03-12 21:46:57 -04:00
Andrea Marchesini ef86fe9f3e Bug 1134280 - Get rid of Tag() - patch 3 - nsContentUtils::IsHTMLBlock should work with nsIContent inste nsIAtom, r=smaug 2015-03-03 11:09:00 +00:00
Andrea Marchesini c252bae4a6 Bug 1137814 - nsAString and nsACString in URL.cpp/h. r=nsm
--HG--
extra : rebase_source : 6451dcffc95a0bdf5867eb34c68eadbf8da732cc
2015-02-27 14:10:20 -05:00
Boris Zbarsky a7d78c82c0 Bug 1136388. Change nsIDocumentLoaderFactory and nsIURIContentListener to take MIME types as an XPCOM string, not a char*. r=smaug 2015-02-25 10:26:51 -05:00
Ehsan Akhgari c666513656 Bug 1123111 - Fix a typo 2015-02-23 13:13:29 -05:00
Olli Pettay e251b9083b Bug 1118689, Don't try to load an image if its container docshell is gone, r=bz
--HG--
extra : rebase_source : 2f7093a587cee9780d1abbec854c71658a46e91c
2015-02-13 04:44:32 +02:00
Morris Tseng f6684364a0 Bug 1120750 - Part 1: Move GetSelectionBoundingRect to nsContentUtils. r=roc 2015-02-04 21:58:00 -05:00