Commit Graph

57 Commits

Author SHA1 Message Date
Kris Maglione
50e712b5b2 Bug 1405286: Part 1 - Allow retrieving the delivery target from retargetable requests. r=dragana
After data delivery for a request has been retargeted, there's no reliable way
to get the appropriate event target to re-dispatch data events after
asynchronous processing.


While it's technically possible to retrieve the current thread from
OnDataAvailable callbacks and re-use that for later dispatch, that approach
has some issues:

1) It's not currently possible to reliably map the current thread to the
thread pool that owns it. That means that if data delivery is being targetted
to a thread pool, attempts to redispatch events to the previous delivery
thread might lead to long delays when one thread in a pool is blocked.

2) If a filter wishes to dispatch data events to the wrapped listeners before
it's recieved any data (as extensions StreamFilters sometimes do), there's no
way to determine the proper event target without waiting for initial data to
be received.


Simply returning the correct event target from the request solves both of
these problems.

MozReview-Commit-ID: CJxq7O4399R
2017-10-14 18:30:38 -07:00
Honza Bambas
3073d19f39 Bug 1405199 - Update result principal URI on the new channel when nsBaseChannel redirects. r=bz 2017-10-09 07:50:00 -04:00
Andrea Marchesini
93901ebca1 Bug 1402888 - Remove nsIInputStreamPump::Init() offset and limit params, r=smaug 2017-09-26 07:21:44 +02:00
Masatoshi Kimura
3c76d68c08 Bug 1389738 - Remove @deprecated nsIHttpEventSink. r=mcmanus
MozReview-Commit-ID: 5TaiTc6fSLK
2017-08-12 18:26:23 +09:00
Andrea Marchesini
9e8ae1dfd0 Bug 1350958 - Finish labeling ProxyReleaseEvent, r=billm 2017-07-14 08:49:22 +02:00
Sylvestre Ledru
9d4a84d778 Bug 1378712 - Remove all trailing whitespaces r=Ehsan
MozReview-Commit-ID: Kdz2xtTF9EG
2017-07-06 14:00:35 +02:00
Kershaw Chang
e53f4dd773 Bug 1343741 - Part2: Label nsAsyncRedirectVerifyHelper, r=mayhemer
1. Pass a labeled main thread event target to nsAsyncRedirectVerifyHelper::Init.
2. Use mainThreadEventTarget to dispatch runnables
2017-07-05 00:47:00 +02:00
Kershaw Chang
9a57cb9f4a Bug 1343741 - Label runnables in nsBaseChannel, r=mayhemer
This patch includes changes below:
1. Make nsBaseChannel inherit from NeckoTargetHolder.
2. Change FtpChannelChild due to (1) and also don't use SystemGroup to dispatch nsFtpChildAsyncAlert runnable since nsIPrompt may touch js script.
3. Use NeckoTargetHolder::Dispatch to dispatch runnables in nsBaseChannel.
   Note that RedirectRunnable should be on main thread, so I changed the code from NS_DispatchToCurrentThread to NeckoTargetHolder::Dispatch.
2017-07-05 00:47:00 +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
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
Bevis Tseng
e6dc9e02bc Bug 1372453 - Part 2: Name the caller of ProxyReleaseEvent. r=billm
MozReview-Commit-ID: LYhSWnZkq0i
2017-06-14 09:27:17 +08:00
Thomas Nguyen
bbb4c84e53 Bug 1351146 - P2 - Update test case and usage of nsIRedirectHistoryEntry interface. r=dragana
MozReview-Commit-ID: s61VV5CLx8
2017-05-25 19:42:00 +02:00
Kershaw Chang
beb6dbcaf0 Bug 1352176 - Part2: Pass an event target when calling nsInputStreamPump::Create, r=mayhemer 2017-05-09 20:05:00 +02:00
Valentin Gosu
7e8ca8ee92 Bug 1354349 - Add nsIChannel.isDocument that checks if LOAD_DOCUMENT_URI is set, or if LOAD_HTML_OBJECT_DATA and the channel has the appropriate MIME type r=mcmanus,mystor
MozReview-Commit-ID: K28Opd9JTr2
2017-04-20 10:15:06 +08:00
Carsten "Tomcat" Book
fc32e97d4c Backed out changeset ec9fb39f7133 (bug 1354349) for bustage 2017-04-18 08:52:14 +02:00
Valentin Gosu
a4d4a67955 Bug 1354349 - Add nsIChannel.isDocument that checks if LOAD_DOCUMENT_URI is set, or if LOAD_HTML_OBJECT_DATA and the channel has the appropriate MIME type r=mcmanus,mystor
MozReview-Commit-ID: K28Opd9JTr2
2017-04-18 11:25:47 +08:00
Kris Maglione
bb22ae9627 Bug 1351163: Part 1 - Support direct stream listener output in nsBaseChannel. r=honzab
Several of our simple channel implementations work naturally with direct
nsIStreamListener output. Currently, these implementations need to create a
pipe, pump data in to that pipe, and then allow nsBaseChannel to pump data out
of the other side of that pipe, into its own stream listener.

This change allows them to output data directly to nsBaseChannel's stream
listener, which removes unnecessary complexity and overhead.

MozReview-Commit-ID: JCGKTt6Kn9x
2017-04-07 14:25:33 -07:00
Patrick McManus
3ebb4991f7 Bug 1333142 - audit asyncopen2 impls for callback release on failure r=dragana 2017-02-08 12:55:15 -05:00
Ehsan Akhgari
d7ebf14889 Bug 1324114 - Initialize nsBaseChannel::mOpenRedirectChannel; r=mcmanus 2016-12-19 10:52:54 -05:00
Kershaw Chang
d1a656deb1 Bug 1141814 - Part 2: Lower the priority of channel loading tracking resource. r=honzab 2016-11-30 23:13:00 -05:00
Boris Zbarsky
b9669dd28d Bug 1292159. Be more careful about removing the inherit principal bit on base channel redirects. r=ckerschb 2016-09-02 17:55:38 -04:00
Christoph Kerschbaumer
c67158291a Bug 1278013 - Remove SEC_FORCE_INHERIT_PRINCIPAL from loadinfo within baseChannel::Redirect. r=bz 2016-06-22 17:15:06 +02:00
Yoshi Huang
ab9a531bc5 Bug 1266022 - skip checking of LoadInfo for chrome resources. r=sicking
When tab with a userContextId!=0 contains a chrome page (such as
about:newtab) the userContextId in the LoadInfo won't match the
userContextId in the LoadContext. The LoadInfo will contain the
systemPrincipal and so use userContextId=0, the LoadContext has the
userContextId of the tab (!=0).

This is fine as long as we page only loads chrome-URLs and other
non-http URLs since those don't use cookies anyway.

So avoid asserting in this situation.

Long term we want the chrome page to use the default userContextId for
cookies, since that's what it chrome code normally use. This will work
properly once we get the cookie jar information from the LoadInfo rather
than from the LoadContext.
2016-05-06 11:04:50 +08:00
Kyle Huey
a9cf047227 Bug 1265927: Move nsRunnable to mozilla::Runnable, CancelableRunnable to mozilla::CancelableRunnable. r=froydnj 2016-04-25 17:23:21 -07:00
Dragana Damjanovic
554915156b Bug 1125916 - Check whether loadInfo and loadContext match. r=sicking, r=jduell 2016-04-13 10:23:26 +02:00
Aidin Gharibnavaz
bb0750ec60 Bug 1164581 - Adding an overload for NS_ProxyRelease that accepts already_AddRefed, and removing all the others. r=bobbyholley 2016-02-10 08:23:00 +01:00
Carsten "Tomcat" Book
498dd069da Backed out changeset c18e29c1b369 (bug 1164581) for cpp unit tests test failures 2016-02-08 11:17:38 +01:00
Aidin Gharibnavaz
d9bbb0c446 Bug 1164581 - Adding an overload for NS_ProxyRelease that accepts already_AddRefed, and removing all the others. r=bobbyholley 2016-02-07 10:56:00 +01:00
Patrick McManus
c07974e685 Bug 1238290 - fix bad necko deps on unified_sources r=valentin.gosu
---
 netwerk/base/ARefBase.h                            |  2 ++
 netwerk/base/CaptivePortalService.cpp              |  1 +
 netwerk/base/CaptivePortalService.h                |  1 +
 netwerk/base/EventTokenBucket.cpp                  |  4 +++-
 netwerk/base/LoadContextInfo.cpp                   |  3 +++
 netwerk/base/LoadInfo.cpp                          |  3 +++
 netwerk/base/MemoryDownloader.cpp                  |  1 +
 netwerk/base/Predictor.cpp                         |  1 +
 netwerk/base/RedirectChannelRegistrar.h            |  1 +
 netwerk/base/nsBaseChannel.cpp                     |  1 +
 netwerk/base/nsChannelClassifier.cpp               |  1 +
 netwerk/base/nsDirectoryIndexStream.cpp            |  3 ++-
 netwerk/base/nsDownloader.cpp                      |  1 +
 netwerk/base/nsIOService.cpp                       |  1 +
 netwerk/base/nsIncrementalDownload.cpp             |  3 +++
 netwerk/base/nsNetUtil.cpp                         |  4 ++++
 netwerk/base/nsNetUtil.h                           |  1 +
 netwerk/base/nsProtocolProxyService.cpp            |  1 +
 netwerk/base/nsSecCheckWrapChannel.cpp             |  2 ++
 netwerk/base/nsUDPSocket.cpp                       |  4 +++-
 netwerk/cache/nsDiskCacheBinding.cpp               |  2 +-
 netwerk/cache/nsDiskCacheDeviceSQL.cpp             |  2 ++
 netwerk/cache/nsMemoryCacheDevice.cpp              |  2 +-
 netwerk/cache2/CacheFileUtils.cpp                  |  2 ++
 netwerk/cache2/CacheStorageService.h               |  1 +
 netwerk/ipc/NeckoParent.cpp                        |  1 +
 netwerk/ipc/RemoteOpenFileChild.cpp                |  1 +
 netwerk/protocol/about/nsAboutBloat.cpp            |  1 +
 netwerk/protocol/about/nsAboutCacheEntry.cpp       |  1 +
 netwerk/protocol/about/nsAboutProtocolHandler.cpp  |  1 +
 netwerk/protocol/data/DataChannelParent.cpp        |  1 +
 netwerk/protocol/file/nsFileProtocolHandler.cpp    |  1 +
 netwerk/protocol/ftp/FTPChannelParent.cpp          |  2 ++
 netwerk/protocol/ftp/FTPChannelParent.h            |  1 +
 netwerk/protocol/ftp/nsFtpConnectionThread.cpp     |  1 +
 netwerk/protocol/ftp/nsFtpProtocolHandler.h        |  1 +
 netwerk/protocol/http/Http2Compression.cpp         |  1 +
 netwerk/protocol/http/Http2Session.cpp             |  1 +
 netwerk/protocol/http/Http2Stream.h                |  2 ++
 netwerk/protocol/http/HttpBaseChannel.cpp          |  4 ++++
 netwerk/protocol/http/HttpBaseChannel.h            |  1 +
 netwerk/protocol/http/HttpChannelChild.cpp         | 25 ++--------------------
 netwerk/protocol/http/HttpChannelChild.h           | 24 +++++++++++++++++++++
 netwerk/protocol/http/HttpChannelParent.cpp        |  1 +
 netwerk/protocol/http/HttpChannelParent.h          |  1 +
 .../protocol/http/HttpChannelParentListener.cpp    |  1 +
 netwerk/protocol/http/HttpChannelParentListener.h  |  1 +
 netwerk/protocol/http/InterceptedChannel.cpp       |  1 +
 netwerk/protocol/http/NullHttpChannel.cpp          |  1 +
 netwerk/protocol/http/NullHttpTransaction.cpp      |  1 +
 netwerk/protocol/http/PackagedAppService.cpp       | 14 ++++++++++--
 netwerk/protocol/http/PackagedAppService.h         |  4 +++-
 netwerk/protocol/http/PackagedAppVerifier.cpp      |  1 +
 netwerk/protocol/http/nsCORSListenerProxy.cpp      |  2 +-
 netwerk/protocol/http/nsHttpBasicAuth.cpp          |  1 +
 netwerk/protocol/http/nsHttpChannel.cpp            |  2 ++
 netwerk/protocol/http/nsHttpChunkedDecoder.cpp     |  1 +
 netwerk/protocol/http/nsHttpConnectionInfo.cpp     |  2 ++
 netwerk/protocol/http/nsHttpConnectionMgr.cpp      |  1 +
 netwerk/protocol/http/nsHttpDigestAuth.cpp         |  1 +
 netwerk/protocol/viewsource/nsViewSourceHandler.h  |  4 ++++
 .../protocol/websocket/BaseWebSocketChannel.cpp    |  1 +
 .../websocket/WebSocketEventListenerParent.cpp     |  1 +
 .../protocol/websocket/WebSocketEventService.cpp   |  3 +++
 netwerk/protocol/websocket/WebSocketFrame.cpp      |  2 ++
 netwerk/protocol/wyciwyg/nsWyciwygChannel.cpp      |  1 +
 .../protocol/wyciwyg/nsWyciwygProtocolHandler.cpp  |  1 +
 netwerk/streamconv/converters/mozTXTToHTMLConv.cpp |  1 +
 .../streamconv/converters/nsFTPDirListingConv.cpp  |  1 +
 .../streamconv/converters/nsHTTPCompressConv.cpp   |  2 ++
 netwerk/streamconv/converters/nsHTTPCompressConv.h |  1 +
 netwerk/streamconv/converters/nsIndexedToHTML.cpp  |  1 +
 netwerk/streamconv/converters/nsMultiMixedConv.cpp |  2 ++
 netwerk/streamconv/converters/nsTXTToHTMLConv.cpp  |  2 ++
 netwerk/streamconv/converters/nsUnknownDecoder.cpp |  2 ++
 75 files changed, 147 insertions(+), 32 deletions(-)
2016-01-08 20:20:50 -05:00
Jason Duell
feb53bcc72 Bug 1199841 - Restructure private browsing to remember status after OnStopRequest r=jdm 2015-12-30 17:51:21 -05:00
Christoph Kerschbaumer
6d34f2a6f1 Bug 1225641 - Change default security flags within NetUtil.newChannel (r=sicking) 2015-11-17 17:35:30 -08:00
Nicholas Nethercote
4521fc3054 Bug 1186783 (part 4) - Replace nsBaseHashtable::EnumerateRead() calls in netwerk/ with iterators. r=valentin. 2015-11-19 16:46:24 -08:00
Christoph Kerschbaumer
3b4ece9bd9 Bug 1194052 - Append to redirectchain before asyncopen() is called (r=sicking,mayhemer) 2015-10-31 15:22:01 -07:00
Christoph Kerschbaumer
fb42340904 Bug 1194052 - Add support for internal redirectchain to loadInfo (r=sicking) 2015-10-31 15:18:59 -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
Christoph Kerschbaumer
040351fa66 Bug 1193924 - Add assertion to AsyncOpen to make sure asyncOpen2() was called first when securityflags in loadInfo are set (r=sicking) 2015-08-12 21:36:33 -07:00
Ryan VanderMeulen
0618529665 Backed out changeset f99b27e40987 (bug 1193924) for B2G emulator bustage.
CLOSED TREE
2015-08-13 12:45:05 -04:00
Christoph Kerschbaumer
65f6f74176 Bug 1193924 - Add assertion to AsyncOpen to make sure asyncOpen2() was called first when securityflags in loadInfo are set (r=sicking) 2015-08-12 21:36:33 -07:00
Christoph Kerschbaumer
2ea46a230d Bug 1143922 - Add AsyncOpen2 to nsIChannel and perform security checks when opening a channel - channel changes (r=mcmanus,sicking) 2015-05-15 13:21:20 -07:00
Christoph Kerschbaumer
c5c237c336 Bug 1175803 - Store redirect chain within loadInfo - part 2 (r=sicking,mayhemer) 2015-07-19 19:43:09 -07:00
Dragana Damjanovic
f5e3e71a6d Bug 905127 - Part 2 - remove unnecessary nsNetUtil.h includes r=jduell 2015-07-06 07:55:00 +02: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
Juan Gomez
89035d527e Bug 1171931 - Refactor duplicated code using XRE_IsParent/ContentProcess. r=froydnj 2015-07-03 18:29:00 -07:00
Dragana Damjanovic
a02aa928e5 Bug 1170197 - If a channel is suspended in http-on-modify-request, it should not send any trafic untill resumed. r=mayhemer 2015-06-18 10:57:00 -04:00
Ryan VanderMeulen
7aba9d7002 Backed out changeset 8b4e4083639e (bug 1171931) for B2G debug emulator bustage. 2015-06-25 19:48:42 -04:00
Juan Gomez
7323e89a40 Bug 1171931 - Refactor duplicated code using XRE_IsParent/ContentProcess. r=froydnj 2015-06-24 14:11:00 -04:00
Eric Rahm
dca3a4eeb6 Bug 1171716 - Part 2: Use NS_ReleaseOnMainThread in nsBaseChannel. r=froydnj 2015-06-10 08:33:28 -07:00