Commit Graph

46 Commits

Author SHA1 Message Date
Eden Chuang
733896aa1d Bug 1350359 - Part 6: Make sure releasing nsICacheInfoChannel of InternalResponse on the main thread. r=bkelly
Using nsMainThreadPtrHandle to hold the nsICacheInfoChannel in the
    InternalResponse.
2017-12-06 01:13:54 +08:00
Eden Chuang
e8b16d774c Bug 1350359 - Part 4: Fix a crash caused by off-main-thread destruction of a HttpChannelChild. r=bkelly
Setting the InternalResponse's mCacheInfoChannel while needed, to avoid
    keeping unnecessary nsICacheInfoChannel alive.
2017-12-04 14:39:26 +08:00
Eden Chuang
a1f7a72068 Bug 1350359 - Part 2: Fetch and save alterntative data to InternalResponse. r=bkelly
Create a new class AlternativeDataStreamListener for alternative data and
    main data overlap loading.
    AlternativeDataStreamListener coorperates with FetchDriver to handle
    following situations
      1. There is no preferred alternative data type in InternalRequest
         Directly using FetchDriver to listen on the opened channel

      2. If preferred alternative data type exists in InternalRequest, but no
         saved data in cache.
         AlternativeDataStreamListener is constructed to listen on the channel,
         but its status would be set as FALLBACK and redirect callbacks to
         FetchDriver.

      3. If preferred alternative data type exists in InternalRequest, and the
         data also exists in the cache.
         AlternativeDataStreamListener is constructed to listen on the channel
         for loading the alternative data. And also open a channel listened by
         FetchDriver for loading the main data when AlternativeDataStreamListener::
         OnStartRequest is called.
         If the cacheEntryId is different between main data channel and
         alternative data channel, we will cancel the alternative data loading.
2017-12-04 14:39:15 +08:00
Edouard Oger
1775282ce1 Bug 1416842 - Allow fetch to reject with nsresult in chrome code. r=bkelly
MozReview-Commit-ID: FD2NUJZtAhT
2017-11-15 14:53:42 -05:00
Andrea Marchesini
26b14d70a4 Bug 1397627 - Fetch API and other components should pass the length of the stream to necko when known, r=smaug 2017-09-08 16:06:26 +02:00
Tom Tung
388e584d55 Bug 1290481 - P5: Implement a function to generate padding size. r=bkelly
MozReview-Commit-ID: 6poDeyErBjc
2017-07-10 17:03:24 +08:00
Tom Tung
d54c8f4a66 Bug 1290481 - P1: Make InternalResponse and CacheResponse be able to keep padding size. r=bkelly
MozReview-Commit-ID: LIxkSdfPZtf
2017-07-10 17:11:29 +08:00
Andrea Marchesini
41515fa1ab Bug 1128959 - Implement the WHATWG Streams spec - part 9 - FetchStreamReader, r=bkelly 2017-08-10 18:04:55 -07:00
Andrea Marchesini
16e02ab255 Bug 1128959 - Implement the WHATWG Streams spec - part 7 - Response.body, r=bkelly 2017-08-10 18:04:55 -07:00
Tom Tung
fe2ee617c9 Bug 1264178 - Part 2: Change URL's getter function from PassByReference to ReturnByReference. r=bkelly 2016-11-07 14:59:00 +08:00
Jonas Sicking
016e1cc875 Bug 1263991 part 4: Support response body. r=bkelly 2016-06-07 02:46:03 -07:00
Jonas Sicking
874148ed80 Bug 1263991 part 3: Support incoming and outgoing requests/responses. r=baku f=bkelly 2016-06-07 02:46:03 -07:00
Carsten "Tomcat" Book
cef62cc9ae Backed out changeset 5853ea69f6c4 (bug 1263991) 2016-06-07 12:10:27 +02:00
Carsten "Tomcat" Book
0c641a8723 Backed out changeset 9be76aad30b1 (bug 1263991) 2016-06-07 12:10:26 +02:00
Jonas Sicking
3aa8f92fa8 Bug 1263991 part 4: Support response body. r=bkelly 2016-06-07 02:46:03 -07:00
Jonas Sicking
f1715d14dd Bug 1263991 part 3: Support incoming and outgoing requests/responses. r=baku f=bkelly 2016-06-07 02:46:03 -07:00
Jonas Sicking
95493635e6 Bug 1273279 - Changes in preparation for FlyWeb landing. Change InternalResponse handling to track body size. r=baku f=bkelly 2016-06-01 17:02:29 -04:00
Tom Tung
15cf287086 Bug 1243792 - P1 implement response.redirected - Fetch API & Cache API & ServiceWorker changed. r=bkelly, r=baku. 2016-05-03 09:48:40 +08:00
Carsten "Tomcat" Book
33a3f16175 Backed out changeset dc42de66de8c (bug 1243791) landing with wrong bug number 2016-05-10 12:50:15 +02:00
Tom Tung
18d5be2fe8 Bug 1243791 - P1 implement response.redirected - Fetch API & Cache API & ServiceWorker changed. r=bkelly, r=baku. 2016-05-03 09:48:40 +08:00
Ben Kelly
1c6ca71507 Bug 1238134 P1 Provide a Response.cloneUnfiltered() method for chrome code to access internal Response state. r=ehsan 2016-01-12 12:15:12 -08:00
Ben Kelly
0a95ed690a Bug 1212904 P4 Set channel tainting in FetchEvent.respondWith(). r=ehsan 2015-10-22 11:07:32 -07:00
Nathan Froyd
4e6d8f6705 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Bobby Holley
8f3352d050 Bug 1189668 - Expose GetUnfilteredUrl on InternalResponse. r=ehsan 2015-09-20 00:32:14 -07:00
Ben Kelly
c4e9c20ddc Bug 1184607 P2 Update Request and Response DOM objects for new redirect model. r=nsm 2015-08-31 14:26:29 -07:00
Antonio de Luna Lopez
39879ccc63 Bug 1110476 - Stripped url fragment from Request::GetUrl() by calling either nsIURI::SetRef() or workers::URL::SetHash() in Request's url getter utility methods. Stripped url fragment from Response::GetUrl() by adding the method InternalRequest::StripFragmentAndSetUrl() which calls nsIURI::SetRef(). Added a test in dom/tests/mochitest/fetch/test_request.js for Request::GetUrl(). Removed manual url stripping from dom/cache/TypeUtils.cpp. r=bkelly 2015-08-13 08:22:19 -07: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
Nikhil Marathe
171fda05df Bug 1169044 - Patch 3 - Store and set principal with script URI on ServiceWorkers. r=ehsan
The ServiceWorkerRegistrationInfo's principal is the principal of the document
that called register(). If we create WorkerPrivate instances based off of
this, they have a valid principal in terms of security and same-origin-ness,
but the URI path is wrong. When fetching the script from the network, the
channel's principal is used to update the worker principal. We need to do the
same when the script is loaded from Cache. This patch adds support to store the
channel principal in the cache.
2015-06-04 21:39:34 -07:00
Ben Kelly
dfa942d2fb Bug 1167808 P0 Cache.put() should use internal body of opaque Response. r=nsm 2015-06-12 18:59:01 -07:00
Ehsan Akhgari
cec1998a74 Bug 1173029 - Remove mFinalURL from InternalResponse; r=baku a=KWierso 2015-06-09 20:08:09 -04:00
Wes Kocher
b576c61c24 Backed out changeset e33db57c3fec (bug 1173029) 2015-06-09 15:16:30 -07:00
Ehsan Akhgari
f3c3c324c4 Bug 1173029 - Remove mFinalURL from InternalResponse; r=baku a=KWierso 2015-06-09 17:17:59 -04:00
Ehsan Akhgari
e8c86479b9 Bug 1168208 - Refactor the existing logic for syncing the security info between Response and channel objects into a new helper class; r=nsm,jdm,bkelly 2015-05-27 14:22:53 -04:00
Carsten "Tomcat" Book
c58dbca945 Backed out changeset ae9c77fa58d1 (bug 1168208) for bustage on a CLOSED TREE 2015-05-27 14:50:43 +02:00
Ehsan Akhgari
f770eb78bf Bug 1168208 - Refactor the existing logic for syncing the security info between Response and channel objects into a new helper class; r=nsm,jdm,bkelly 2015-05-27 08:25:03 -04:00
Andrew McCreight
92010d3e4c Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Ehsan Akhgari
ea41d8de48 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Nikhil Marathe
84f41a7c95 Bug 1143155 - Filtered response stores internal response and allows access to headers. r=bkelly 2015-03-17 08:47:01 -07:00
Ehsan Akhgari
dc34dcdc19 Bug 1133763 - Part 1: Remember the security info associated with HTTP fetches and record it inside InternalResponse; r=nsm 2015-03-13 14:37:14 -04:00
Nikhil Marathe
1953c3ca81 Bug 1140788 - Set headers to immutable. r=bkelly,ehsan 2015-03-07 18:54:41 -08:00
Ben Kelly
1f98da8c79 Bug 1073231 Implement Request and Response Clone() methods. r=nsm r=baku 2015-02-19 20:24:24 -05:00
Nikhil Marathe
cc8f35d3c6 Bug 1126815 - Implement Response.finalURL. r=bkelly,baku 2015-02-17 10:23:34 -08:00
Nikhil Marathe
cc47db65bc Bug 1039846 - Patch 5: FetchDriver basic HTTP fetch support. r=baku,bkelly
This patch has the following big pieces:
HTTP support in FetchDriver, which requires the principal of the caller to be passed.
Managing worker lifetime when a fetch() call is in progress.
Managing worker lifetime when a Response body is being read.
Using nsIPipe to link network streams to Request/Response body streams.
Using nsIInputStreamPump to convert Request/Response body streams into respective types.

Folded:
Bug 1039846 - Fetch API: Use a pipe to immediately start writing HTTP body data to InternalResponse.
Bug 1039846 - Assert bodystream can be set only once
Bug 1039846 - Add feature when handling fetch responses on workers
Bug 1039846 - Try to retarget http fetch delivery off main thread.
Bug 1039846 - Safely consume body using nsIInputStreamPump on workers and main thread.
Bug 1039846 - Retarget body reading to stream transport service.
2014-12-10 00:51:59 -08:00
Nikhil Marathe
056d2e760a Bug 1039846 - Patch 4: FetchDriver with about:, blob: and data: fetching. r=baku 2014-10-06 11:01:20 -07:00
Nikhil Marathe
aab4e1765f Bug 1039846 - Split Headers into InternalHeaders. r=baku 2014-10-02 10:59:20 -07:00
Nikhil Marathe
de9c3fd921 Bug 1039846 - Response implementation. r=baku 2014-09-26 16:41:15 -07:00