Commit Graph

194 Commits

Author SHA1 Message Date
Thomas Wisniewski
db30f3ebfe Bug 1341609 - Don't throw on async XHR send() failures when open() created no channel; r=baku
MozReview-Commit-ID: IKVSbdRXoP8
2017-09-29 11:36:55 -04:00
Thomas Wisniewski
1c80836b46 Bug 1400748 - Correct our handling of XHR.abort edge-cases; r=baku
1. Handle the "terminate the ongoing fetch" cases in the spec-text
   - do not CloseRequest in Abort/Open if the state is UNSENT or DONE).
   - ensure we don't fire extra events after terminating this way
     if a stray OnDataAvailable happens afterward.
2. Ensure that status/statusText correctly return 0/"" to mimic the
   spec's "set response to a network error" steps (requires special
   handling in the worker XHR code).

MozReview-Commit-ID: 5kMyGgD7uUU
2017-09-25 12:58:23 -04:00
Chris Peterson
ce551e51b9 Bug 870698 - Part 4: Replace Equals("") with EqualsLiteral(""). r=erahm
MozReview-Commit-ID: G1GhyvD29WK
2017-09-06 01:13:45 -07:00
Boris Zbarsky
b9fad0d904 Bug 1401848. Remove NS_IMPL_EVENT_HANDLER and its consumers. r=smaug
All of the objects these event handlers hang off of use webidl bindings now.

MozReview-Commit-ID: 3OdVDlcU67I
2017-09-22 18:07:05 -04:00
Andrea Marchesini
4e031ddf89 Bug 1397151 - Remove the support for moz-chunk-text type in XHR, r=smaug 2017-09-22 07:18:49 +02:00
Andrea Marchesini
b54cd409f7 Bug 1397145 - Remove the support for moz-blob type in XHR, r=smaug 2017-09-22 07:18:14 +02:00
Nicholas Nethercote
e8236888ee Bug 1401813 - Rename Null[C]String() as Void[C]String(). r=erahm.
XPCOM's string API doesn't have the notion of a "null string". But it does have
the notion of a "void string" (or "voided string"), and that's what these
functions are returning. So the names should reflect that.
2017-09-22 14:35:46 +10:00
Thomas Wisniewski
4be60cb09e Bug 1392220 - do not parse or return body for XHRs with HEAD or CONNECT method; r=baku
MozReview-Commit-ID: 40CxCiSFdjC
2017-09-09 15:34:48 -04:00
Honza Bambas
a90d5297b3 Bug 1395525 - Make all changes landed as part of tracker request tailing preferrable. r=dragana 2017-08-31 06:07:00 -04:00
Honza Bambas
559460ce73 Bug 1358060 - Allow postponing of unimportant resources opening during page load, class-of-service Tail flag. r=dragana 2017-08-30 09:32:00 -04:00
Andrew McCreight
84ee98de3c Bug 1391005 - Eliminate NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED. r=peterv
Replace it with NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION, because it
has been the same for a while.

MozReview-Commit-ID: 5agRGFyUry1
2017-08-29 16:02:48 -07:00
Andrea Marchesini
341703b959 Bug 1392358 - Remove XHR.send(nsIInputStream) and unify XHR.send(params) as the spec says, r=smaug 2017-08-25 15:30:33 +02:00
Shawn Huang
f104dafbd6 Backed out changeset 40b781f6504c (bug 1345457) for breaking xhr test case r=backout 2017-08-21 16:32:00 +08:00
Bobby Holley
5cb2bf9049 Bug 1389300 - Inherit style backend into NS_NewDOMDocument. r=smaug,r=heycam
Our current machinery for enabling stylo requires a docshell - if there isn't
one, we default to the Gecko style system.

When getComputedStyle operates on an element without a presshell, it uses the
caller's presshell instead. If the element has previously been styled with
one style system (but no longer has a presshell), and the caller uses a
different style backend, using the caller's style system can cause crashes when
we pull bits of cached data off the DOM (like cached style attributes).

So we want to throw when window.getComputedStyle(element) is called for a
(window, element) pair with different style backends (which is what the next
patch in this bug does).

However, that causes a few failures where stylo-backed documents try to do
getComputedStyle on an XHR document (which, without a docshell, will use the
gecko style system).

So this patch does some work to propagate the creator's style backend into
various docshell-less documents. This should allow both chrome (which uses gecko)
and content (which uses stylo) to use getComputedStyle on the response document
for XHRs they create.

Note that the second patch in this bug will make
chromeWin.getComputedStyle(contentObj) throw. If we discover code that does
that, we can just make it invoke the content's getComputedStyle method over Xrays.

MozReview-Commit-ID: 5OsmHJKq5Ui
2017-08-15 19:10:43 -07:00
Masatoshi Kimura
4201c76ce9 Bug 437381 - Remove nsIJSXMLHttpRequest and fix the comments in nsIXMLHttpRequest.h. r=smaug
MozReview-Commit-ID: CYkV01S9QEZ
2017-08-12 01:16:22 +09:00
Masatoshi Kimura
26299618f5 Bug 1389460 - Remove @deprecated nsIDOMEventTarget.DispatchDOMEvent. r=smaug
MozReview-Commit-ID: E88DZK5sfwx
2017-08-07 02:28:52 +09:00
Andrea Marchesini
87a82ac67c Bug 1128959 - Implement the WHATWG Streams spec - part 1 - WebIDL Bindings, r=bz 2017-08-10 18:04:54 -07:00
Bevis Tseng
59627df038 Bug 1382172 - Name nsITimerCallback instances in native implementation. r=billm 2017-07-27 02:18:20 +08:00
Bevis Tseng
ce50e5aaca Bug 1378930 - Part 1: Remove nsINamed::SetName(). r=billm
MozReview-Commit-ID: 7aM1yJRsfPH
2017-07-21 11:50:43 +08:00
Shawn Huang
c8072ae865 Bug 1346767 - Part 1: Check mFlagHadUploadListenersOnSend before sending progress event, r=baku
Based on XHR spec 6.1, if one or more event listeners are registered on the
associated XMLHttpRequestUpload object, then set upload listener flag.
Therefore, if any event listeners are added after send(), ignore them.
2017-07-24 19:52:16 +08:00
Shawn Huang
144e4fa070 Bug 1345457 - Part 1: Fire up an upload abort event when mFlagHadUploadListenersOnSend is true, r=baku
Fire upload.onabort and upload.onloadend when abort() called. Original code
won't fire onabort if mUploadComplete is true.

Per https://xhr.spec.whatwg.org/#request-error-steps xhr.upload.onabort fires before .onabort
2017-06-30 10:48:25 -07:00
Andrea Marchesini
d396f49e6b Bug 1377101 - Add some return value checks in XHR, r=mystor 2017-06-29 10:27:59 -07:00
Carsten "Tomcat" Book
372571d466 merge mozilla-inbound to mozilla-central a=merge 2017-06-27 10:56:41 +02:00
Bill McCloskey
ce42826bdf Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00
Masatoshi Kimura
a725dc3e13 Bug 1373984 - Turn nsIDocument::mCharacterSet into mozilla::NotNull<const mozilla::Encoding*>. r=hsivonen
MozReview-Commit-ID: GF0YXDwfA14
2017-06-18 20:37:50 +09:00
Nicholas Nethercote
a58025002f Bug 1375392 - Tweak the PROFILER_LABEL* macros. r=mstange.
This patch makes the following changes to the macros.

- Removes PROFILER_LABEL_FUNC. It's only suitable for use in functions outside
  classes, due to PROFILER_FUNCTION_NAME not getting class names, and it was
  mostly misused.

- Removes PROFILER_FUNCTION_NAME. It's no longer used, and __func__ is
  universally available now anyway.

- Combines the first two string literal arguments of PROFILER_LABEL and
  PROFILER_LABEL_DYNAMIC into a single argument. There was no good reason for
  them to be separate, and it forced a '::' in the label, which isn't always
  appropriate. Also, the meaning of the "name_space" argument was interpreted
  in an interesting variety of ways.

- Adds an "AUTO_" prefix to PROFILER_LABEL and PROFILER_LABEL_DYNAMIC, to make
  it clearer they construct RAII objects rather than just being function calls.
  (I myself have screwed up the scoping because of this in the past.)

- Fills in the 'js::ProfileEntry::Category::' qualifier within the macro, so
  the caller doesn't need to. This makes a *lot* more of the uses fit onto a
  single line.

The patch also makes the following changes to the macro uses (beyond those
required by the changes described above).

- Fixes a bunch of labels that had gotten out of sync with the name of the
  class and/or function that encloses them.

- Removes a useless PROFILER_LABEL use within a trivial scope in
  EventStateManager::DispatchMouseOrPointerEvent(). It clearly wasn't serving
  any useful purpose. It also serves as extra evidence that the AUTO_ prefix is
  a good idea.

- Tweaks DecodePool::SyncRunIf{Preferred,Possible} so that the labelling is
  done within them, instead of at their callsites, because that's a more
  standard way of doing things.
2017-06-22 17:08:53 +10:00
Carsten "Tomcat" Book
238bf154d5 Backed out changeset 4f6302a98ae4 (bug 1372405) 2017-06-21 13:59:26 +02:00
Bill McCloskey
67e8af4720 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
bbe9441993 Backed out changeset 9846de3bd954 (bug 1372405) 2017-06-20 08:27:02 +02:00
Bill McCloskey
f69608368b Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-19 22:25:47 -07:00
Masatoshi Kimura
1fd69c2f1a Bug 1369025 - Remove mozilla::dom::EncodingUtils. r=hsivonen
MozReview-Commit-ID: 5O5WtxbmATQ
2017-06-17 11:54:40 +09:00
Andrea Marchesini
bfe6846282 Bug 1370819 - Postpone the dispatching of XHR events with opened synchronously, r=smaug 2017-06-16 08:07:00 +02:00
Henri Sivonen
7af0452b6b Bug 1261841 part 2 - Use encoding_rs instead of uconv. r=emk,mystor.
MozReview-Commit-ID: 15Y5GTX98bv
2017-06-13 13:23:23 +03:00
Chris H-C
97b88036dd Bug 1367110 - Make XHRMainThread's mErrorLoad more descriptive. r=baku
There are at least four ways XHRMT can error on load.

Let's be specific about it.

MozReview-Commit-ID: EOml2fcd1XD
2017-05-24 08:44:38 -04:00
Sebastian Hengst
dd845e6e48 Backed out changeset 9983ac05d7d1 (bug 1367110) for eslint failures in TelemetrySend.jsm (must use doublequotes). r=backout 2017-05-31 21:02:59 +02:00
Chris H-C
bd62345d5b Bug 1367110 - Make XHRMainThread's mErrorLoad more descriptive. r=baku
There are at least four ways XHRMT can error on load.

Let's be specific about it.

MozReview-Commit-ID: EOml2fcd1XD
2017-05-24 08:44:38 -04:00
Andrea Marchesini
f05a3937bf Bug 1366595 - Improve the use of strings in XHR logging. r=smaug 2017-05-24 20:27:20 -04:00
Kershaw Chang
b1df92fe41 Bug 1312515 - Part 1: Lower the channel's priority if this XHR is created from tracking script. r=baku
With nsIDocument::IsScriptTracking, we know that whether a script is a tracking script. If the XHR is created by a tracking script, we want to lower the priority of the http channel.
2017-05-19 01:28:00 -04:00
Shawn Huang
985a5d1390 Bug 1365478 - Use BoolVarCache to cache preferences in XMLHttpRequest, r=baku 2017-05-18 19:02:22 +08:00
Shawn Huang
3f63ae18a5 Bug 1348390 - Sort and lowercase response's header lists for getAllResponseHeaders(), r=baku
Sort and lowercase response's header lists for getAllResponseHeaders().
Per XHR 4.6.5, make response’s header list sorted and lowercased.
2017-05-17 15:18:46 +08:00
Nathan Froyd
3b526b2200 Bug 1359490 - add an event loop spinning abstraction function; r=gerald
This function is arguably nicer than calling NS_ProcessNextEvent
manually, is slightly more efficient, and will enable better auditing
for NS_ProcessNextEvent when we do Quantum DOM scheduling changes.
2017-05-15 09:34:19 -04:00
Shawn Huang
07ea920697 Bug 1362318 - Part2: Fallback override MIME type to application/octet-stream, r=baku
Set override MIME type to 'application/octet-stream', if type is not a parsable
MIME type.
2017-05-11 18:59:10 +08:00
Shawn Huang
eb0e13a222 Bug 1362318 - Part1: Use text/xml as fallback response MIME type, r=baku
If response MIME type is the empty byte sequence, then set type to 'text/xml'.
2017-05-11 18:59:00 +08:00
Bevis Tseng
8d85296e29 Bug 1362944 - Part 2: Set proper event target to MutableBlobStorage when created from XMLHttpRequestMainThread. r=baku
Use the event target provided from XMLHttpRequestMainThread for the runnable dipsatching inside MutableBlobStorage.
2017-05-10 11:45:54 +08:00
Tom Tung
5f68476eea Bug 1348050 - Part 1: Mark channel as urgent-start when the Fetch and XHR are triggered by user input events. r=baku,mayhemer
Raise the urgent-start flag in the ClassOfService when the Fetch and XHR are
triggered by user input events. The urgent-start classification will tell the
network requests scheduler to perform it with the highest priority and also
ignoring any parallelism or overall connection limits.

MozReview-Commit-ID: 2YavWbuFaln
2017-04-21 13:29:31 +08:00
Shawn Huang
774d5edf9b Bug 1350787 - DocGroup labeling runnables in dom/xhr, r=baku, f=bevistseng
This patch is to label the runnables dispatched to main thread of the
content process.
The major changes in xhr are to replace DispatchTo{Current,Main}Thread and
replace NS_DispatchToCurrentThread with |mWorkerPrivate->DispatchToMainThread|
in which a DocGroup-specific EventTarget on main thread for worker.
2017-05-09 16:14:51 +08:00
Michael Kaply
15793adb86 Bug 1357219 - Don't warn if we can't use a memory mapped file. r=jld
MozReview-Commit-ID: 9ajZCLzQe4G
2017-04-21 15:56:34 -05:00
Tom Tung
59db06337a Bug 1330297 - Part 1: Strip leading or trailing HTTP whitespace for Header value to follow the spec and share code bewteen fetch and XHR. r=baku 2017-04-10 16:15:29 +08:00
Shawn Huang
fd7812c3b9 Bug 1341272 - Set readyState to DONE during synchronous XMLHttpRequest failure, r=baku 2017-03-27 15:21:57 +08:00
David Major
7c0497b430 Bug 1344629 - Part 6: Rewrite unnecessary uses of nsLiteralString. r=dbaron
There's an antipattern where nsLiteralString is used as an unnecessary intermediary in converting from CharT* to CharT*,
e.g. CallAFunctionThatTakesACharPointer(NS_LITERAL_CSTRING("foo").get());
or
NS_NAMED_LITERAL_STRING(foo, "abc");
CallAFunctionThatTakesACharPointer(foo.get());

This patch rewrites the callsites that can be trivially changed to use char*/char16_t*.

I'd somewhat like to remove nsTLiteralString::get() altogether, but in code that's less straightforward than these examples, get() is useful enough to keep.

MozReview-Commit-ID: Kh1rUziVllo
2017-03-14 15:26:27 +13:00