fune/netwerk/protocol/http
Victor Porof 2c53a5dcd9 Bug 1561435 - Format netwerk/, a=automatic-formatting
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D35919

--HG--
extra : source : afa5bd771feba466ba7670c58f3d93233a14e202
2019-07-05 10:55:23 +02:00
..
AltDataOutputStreamChild.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
AltDataOutputStreamChild.h Bug 1487113 - AltDataOutputStreamChild must be nsIAsyncOutputStream, r=valentin 2019-02-27 20:50:48 +00:00
AltDataOutputStreamParent.cpp Bug 1487113 - AltDataOutputStreamChild must be nsIAsyncOutputStream, r=valentin 2019-02-27 20:50:48 +00:00
AltDataOutputStreamParent.h Bug 1487113 - AltDataOutputStreamChild must be nsIAsyncOutputStream, r=valentin 2019-02-27 20:50:48 +00:00
AlternateServices.cpp Bug 1502555 - Match oppsec .wk format to rfc. r=dragana 2019-06-26 11:44:36 +00:00
AlternateServices.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
ASpdySession.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
ASpdySession.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
BackgroundChannelRegistrar.cpp
BackgroundChannelRegistrar.h
CacheControlParser.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
CacheControlParser.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
ClassifierDummyChannel.cpp Bug 1555036 - If there is a Cross-Origin-Opener-Policy mismatch and the SANDBOXED_AUXILIARY_NAVIGATION is set navigate to a network error r=mayhemer 2019-06-14 21:48:51 +00:00
ClassifierDummyChannel.h Bug 1535525 - Rename TrackingDummyChannel to ClassifierDummyChannel, r=Ehsan 2019-03-15 18:55:10 +00:00
ClassifierDummyChannelChild.cpp Bug 1535525 - Rename TrackingDummyChannel to ClassifierDummyChannel, r=Ehsan 2019-03-15 18:55:10 +00:00
ClassifierDummyChannelChild.h Bug 1535525 - Rename TrackingDummyChannel to ClassifierDummyChannel, r=Ehsan 2019-03-15 18:55:10 +00:00
ClassifierDummyChannelParent.cpp Bug 1535525 - Rename TrackingDummyChannel to ClassifierDummyChannel, r=Ehsan 2019-03-15 18:55:10 +00:00
ClassifierDummyChannelParent.h Bug 1535525 - Rename TrackingDummyChannel to ClassifierDummyChannel, r=Ehsan 2019-03-15 18:55:10 +00:00
components.conf
ConnectionDiagnostics.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
DelayHttpChannelQueue.cpp
DelayHttpChannelQueue.h
http2_huffman_table.txt
Http2Compression.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
Http2Compression.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
Http2HuffmanIncoming.h
Http2HuffmanOutgoing.h
Http2Push.cpp Bug 1547266 - Make sure Http2PushedStream is used only on socket thread, r=dragana 2019-06-18 23:36:54 +00:00
Http2Push.h Bug 1547266 - Make sure Http2PushedStream is used only on socket thread, r=dragana 2019-06-18 23:36:54 +00:00
Http2Session.cpp Bug 1547266 - Make sure Http2PushedStream is used only on socket thread, r=dragana 2019-06-18 23:36:54 +00:00
Http2Session.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
Http2Stream.cpp Bug 1547266 - Make sure Http2PushedStream is used only on socket thread, r=dragana 2019-06-18 23:36:54 +00:00
Http2Stream.h Bug 1545421 - New nsresult error codes for 407, 502 and 504 http response codes returned by proxies + test, r=dragana 2019-05-31 17:29:53 +00:00
HttpAuthUtils.cpp
HttpAuthUtils.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
HttpBackgroundChannelChild.cpp Bug 1545033 - P2. Add SetMatchedTrackingInfo in nsIClassifiedChannel. r=baku 2019-04-26 13:03:50 +00:00
HttpBackgroundChannelChild.h Bug 1545033 - P2. Add SetMatchedTrackingInfo in nsIClassifiedChannel. r=baku 2019-04-26 13:03:50 +00:00
HttpBackgroundChannelParent.cpp Bug 1545033 - P2. Add SetMatchedTrackingInfo in nsIClassifiedChannel. r=baku 2019-04-26 13:03:50 +00:00
HttpBackgroundChannelParent.h Bug 1545033 - P2. Add SetMatchedTrackingInfo in nsIClassifiedChannel. r=baku 2019-04-26 13:03:50 +00:00
HttpBaseChannel.cpp Bug 1555036 - If there is a Cross-Origin-Opener-Policy mismatch and the SANDBOXED_AUXILIARY_NAVIGATION is set navigate to a network error r=mayhemer 2019-06-14 21:48:51 +00:00
HttpBaseChannel.h Bug 1555036 - If there is a Cross-Origin-Opener-Policy mismatch and the SANDBOXED_AUXILIARY_NAVIGATION is set navigate to a network error r=mayhemer 2019-06-14 21:48:51 +00:00
HttpChannelChild.cpp Bug 1551601 - When performing a cross process redirect update the loadInfo to have the correct browsingContext r=nika 2019-06-30 20:20:51 +00:00
HttpChannelChild.h Bug 1554847 - Improve cross-origin checks in canvas API - propagate allRedirectsSameOrigin to HttpChannelChild actor, r=mayhemer 2019-06-04 06:33:11 +00:00
HttpChannelParent.cpp Bug 1551601 - When performing a cross process redirect update the loadInfo to have the correct browsingContext r=nika 2019-06-30 20:20:51 +00:00
HttpChannelParent.h Bug 1551601 - When performing a cross process redirect update the loadInfo to have the correct browsingContext r=nika 2019-06-30 20:20:51 +00:00
HttpChannelParentListener.cpp Bug 1525720, part 5 - Redirect nsIHttpChannel using content process ID instead of nsIRemoteTab. r=valentin 2019-05-15 12:33:42 -05:00
HttpChannelParentListener.h
HttpInfo.cpp
HttpInfo.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
HttpLog.h
HttpTrafficAnalyzer.cpp Bug 1552431 - handle first/third party correctly; r=dragana 2019-05-21 14:41:58 +00:00
HttpTrafficAnalyzer.h Bug 1552431 - handle first/third party correctly; r=dragana 2019-05-21 14:41:58 +00:00
HttpTrafficAnalyzer.inc Bug 1550756 - make system principal fall into new traffic category; r=dragana 2019-05-16 13:24:18 +00:00
InterceptedChannel.cpp Bug 1546913 - Remove GetLoadInfo callsites r=ckerschb 2019-04-25 12:16:35 +00:00
InterceptedChannel.h
InterceptedHttpChannel.cpp Backed out 2 changesets (bug 1487113) for mochitest failure at dom/base/test/test_script_loader_js_cache.html. 2019-05-20 21:04:40 +03:00
InterceptedHttpChannel.h Bug 1520868 - Replacing AsyncOpen2 with AsyncOpen always r=valentin 2019-02-12 16:08:25 +00:00
make_incoming_tables.py
make_outgoing_tables.py
moz.build Bug 1528950 - Implement HTTP fuzzing target for Necko. r=dragana 2019-05-31 09:34:00 +00:00
nsAHttpConnection.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsAHttpTransaction.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsCORSListenerProxy.cpp Bug 1450965 Skip Cors Check for Early WebExtention Redirects r=mayhemer 2019-06-13 09:57:13 +00:00
nsCORSListenerProxy.h Bug 1442778 - Add "chromeContext" parameter to console API and console service messages. r=smaug 2019-04-01 22:42:34 +00:00
nsHttp.cpp Bug 1562233 - Add logging of CONNECT requests with headers, add possibility to disable authorization headers sanitization by a preference (default is sanitization enabled), r=valentin 2019-06-28 17:50:43 +00:00
nsHttp.h Bug 1562233 - Add logging of CONNECT requests with headers, add possibility to disable authorization headers sanitization by a preference (default is sanitization enabled), r=valentin 2019-06-28 17:50:43 +00:00
nsHttpActivityDistributor.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsHttpActivityDistributor.h
nsHttpAtomList.h Bug 1459573 - Support Cross Origin Resource Policy (CORP) r=mayhemer 2019-06-12 13:30:05 +00:00
nsHttpAuthCache.cpp Bug 1548804 - Remove origin suffix isolation for proxy credentials when setting authentication cache entry, r=valentin 2019-05-14 13:40:30 +00:00
nsHttpAuthCache.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsHttpAuthManager.cpp
nsHttpAuthManager.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsHttpBasicAuth.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsHttpBasicAuth.h
nsHttpChannel.cpp Bug 1561089 - The resultPrincipalURI needs to be set on the loadInfo used for the redirect r=mayhemer 2019-06-28 14:25:28 +00:00
nsHttpChannel.h Bug 1547266 - Make sure Http2PushedStream is used only on socket thread, r=dragana 2019-06-18 23:36:54 +00:00
nsHttpChannelAuthProvider.cpp Bug 1557793 part 2. Stop using [array] in nsIStringBundle. r=Pike 2019-06-11 15:51:51 +00:00
nsHttpChannelAuthProvider.h Bug 1548804 - Remove origin suffix isolation for proxy credentials when setting authentication cache entry, r=valentin 2019-05-14 13:40:30 +00:00
nsHttpChunkedDecoder.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsHttpChunkedDecoder.h Bug 1531344 - Be strict about incorrect chunked encoding. r=mayhemer 2019-05-08 19:29:16 +00:00
nsHttpConnection.cpp Bug 1562233 - Add logging of CONNECT requests with headers, add possibility to disable authorization headers sanitization by a preference (default is sanitization enabled), r=valentin 2019-06-28 17:50:43 +00:00
nsHttpConnection.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsHttpConnectionInfo.cpp Bug 1525640 - Rename nsIHttpChannelInternal.trr to .isHttpServiceChannel to avoid confusion r=dragana 2019-05-06 16:37:01 +00:00
nsHttpConnectionInfo.h Bug 1525640 - Rename nsIHttpChannelInternal.trr to .isHttpServiceChannel to avoid confusion r=dragana 2019-05-06 16:37:01 +00:00
nsHttpConnectionMgr.cpp Bug 1547266 - Make sure Http2PushedStream is used only on socket thread, r=dragana 2019-06-18 23:36:54 +00:00
nsHttpConnectionMgr.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsHttpDigestAuth.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsHttpDigestAuth.h
nsHttpHandler.cpp Bug 1559747 - Part 2: UA string needn't reveal the user is running 32-bit Firefox on Win64 OS. r=tjr 2019-06-19 09:56:50 +00:00
nsHttpHandler.h Bug 1558726. Stop using [array] in nsISocketTransportService. r=dragana 2019-06-13 04:21:32 +00:00
nsHttpHeaderArray.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsHttpHeaderArray.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsHttpNTLMAuth.cpp Bug 1558735 part 1. Stop using [array] in nsIX509Cert.getRawDER. r=keeler,mayhemer 2019-06-14 18:17:20 +00:00
nsHttpNTLMAuth.h
nsHttpRequestHead.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsHttpRequestHead.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsHttpResponseHead.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsHttpResponseHead.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsHttpTransaction.cpp Bug 1562233 - Add logging of CONNECT requests with headers, add possibility to disable authorization headers sanitization by a preference (default is sanitization enabled), r=valentin 2019-06-28 17:50:43 +00:00
nsHttpTransaction.h Bug 1547266 - Make sure Http2PushedStream is used only on socket thread, r=dragana 2019-06-18 23:36:54 +00:00
nsIBackgroundChannelRegistrar.idl
nsIChildProcessChannelListener.idl
nsICorsPreflightCallback.h
nsIHttpActivityObserver.idl Bug 1545843 - Mark some HTTP XPIDL classes as builtinclass. r=mayhemer 2019-04-23 16:05:29 +00:00
nsIHttpAuthenticableChannel.idl Bug 1545843 - Mark some HTTP XPIDL classes as builtinclass. r=mayhemer 2019-04-23 16:05:29 +00:00
nsIHttpAuthenticator.idl Bug 1545843 - Mark some HTTP XPIDL classes as builtinclass. r=mayhemer 2019-04-23 16:05:29 +00:00
nsIHttpAuthManager.idl Bug 1545843 - Mark some HTTP XPIDL classes as builtinclass. r=mayhemer 2019-04-23 16:05:29 +00:00
nsIHttpChannel.idl Bug 1560040 - Introduce 2 new URL-Classifier features to annotate and block social trackers, r=dimi 2019-06-22 16:53:50 +00:00
nsIHttpChannelAuthProvider.idl Bug 1545843 - Mark some HTTP XPIDL classes as builtinclass. r=mayhemer 2019-04-23 16:05:29 +00:00
nsIHttpChannelChild.idl Bug 1545843 - Mark some HTTP XPIDL classes as builtinclass. r=mayhemer 2019-04-23 16:05:29 +00:00
nsIHttpChannelInternal.idl Bug 1555036 - If there is a Cross-Origin-Opener-Policy mismatch and the SANDBOXED_AUXILIARY_NAVIGATION is set navigate to a network error r=mayhemer 2019-06-14 21:48:51 +00:00
nsIHttpHeaderVisitor.idl
nsIHttpProtocolHandler.idl Bug 1544526 - Copy the callback instead of moving r=mayhemer 2019-04-26 18:33:28 +00:00
nsIRaceCacheWithNetwork.idl
nsIWellKnownOpportunisticUtils.idl Bug 1502555 - Match oppsec .wk format to rfc. r=dragana 2019-06-26 11:44:36 +00:00
nsServerTiming.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsServerTiming.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
NullHttpChannel.cpp Bug 1532318 - part 1: use ReferrerInfo class in nsIHttpChannel instead of referrer and referrer policy r=valentin,ckerschb,michal 2019-05-02 12:34:52 +00:00
NullHttpChannel.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
NullHttpTransaction.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
NullHttpTransaction.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
PAltDataOutputStream.ipdl Bug 1487113 - AltDataOutputStreamChild must be nsIAsyncOutputStream, r=valentin 2019-02-27 20:50:48 +00:00
PClassifierDummyChannel.ipdl Bug 1535525 - Rename TrackingDummyChannel to ClassifierDummyChannel, r=Ehsan 2019-03-15 18:55:10 +00:00
PHttpBackgroundChannel.ipdl Bug 1545033 - P2. Add SetMatchedTrackingInfo in nsIClassifiedChannel. r=baku 2019-04-26 13:03:50 +00:00
PHttpChannel.ipdl Bug 1551601 - When performing a cross process redirect update the loadInfo to have the correct browsingContext r=nika 2019-06-30 20:20:51 +00:00
PHttpChannelParams.h Bug 1487113 - nsICacheInfoChannel.preferAlternativeDataType() should expose alt-data as optional if required, r=valentin 2019-02-20 10:05:42 +00:00
PSpdyPush.h
README
TimingStruct.h
TunnelUtils.cpp Bug 1562315 - Respect again=false indicated by http2 session when calling through TLSFilterTransaction, r=dragana 2019-07-01 14:26:34 +00:00
TunnelUtils.h Bug 1562315 - Respect again=false indicated by http2 session when calling through TLSFilterTransaction, r=dragana 2019-07-01 14:26:34 +00:00
UAOverridesBootstrapper.jsm Bug 1561435 - Format netwerk/, a=automatic-formatting 2019-07-05 10:55:23 +02:00
UserAgentOverrides.jsm Bug 1561435 - Format netwerk/, a=automatic-formatting 2019-07-05 10:55:23 +02:00
UserAgentUpdates.jsm Bug 1561435 - Format netwerk/, a=automatic-formatting 2019-07-05 10:55:23 +02:00
WellKnownOpportunisticUtils.jsm Bug 1561435 - Format netwerk/, a=automatic-formatting 2019-07-05 10:55:23 +02:00

                                                        Darin Fisher
                                                        darin@netscape.com
                                                        8/8/2001

                            HTTP DESIGN NOTES


CLASS BREAKDOWN

  nsHttpHandler
    - implements nsIProtocolHandler
    - manages preferences
    - owns the authentication cache
    - holds references to frequently used services

  nsHttpChannel
    - implements nsIHttpChannel
    - talks to the cache
    - initiates http transactions
    - processes http response codes
    - intercepts progress notifications

  nsHttpConnection
    - implements nsIStreamListener & nsIStreamProvider
    - talks to the socket transport service
    - feeds data to its transaction object
    - routes progress notifications

  nsHttpConnectionInfo
    - identifies a connection

  nsHttpTransaction
    - implements nsIRequest
    - encapsulates a http request and response
    - parses incoming data

  nsHttpChunkedDecoder
    - owned by a transaction
    - removes chunked decoding

  nsHttpRequestHead
    - owns a nsHttpHeaderArray
    - knows how to fill a request buffer

  nsHttpResponseHead
    - owns a nsHttpHeaderArray
    - knows how to parse response lines
    - performs common header manipulations/calculations

  nsHttpHeaderArray
    - stores http "<header>:<value>" pairs

  nsHttpAuthCache
    - stores authentication credentials for http auth domains

  nsHttpBasicAuth
    - implements nsIHttpAuthenticator
    - generates BASIC auth credentials from user:pass


ATOMS

  nsHttp:: (header namespace)

  eg. nsHttp::Content_Length


TRANSACTION MODEL

  InitiateTransaction -> ActivateConnection -> AsyncWrite, AsyncRead

  The channel creates transactions, and passes them to the handler via
  InitiateTransaction along with a nsHttpConnectionInfo object
  identifying the requested connection.  The handler either dispatches
  the transaction immediately or queues it up to be dispatched later,
  depending on whether or not the limit on the number of connections
  to the requested server has been reached.  Once the transaction can
  be run, the handler looks for an idle connection or creates a new
  connection, and then (re)activates the connection, assigning it the
  new transaction.

  Once activated the connection ensures that it has a socket transport,
  and then calls AsyncWrite and AsyncRead on the socket transport.  This
  begins the process of talking to the server.  To minimize buffering,
  socket transport thread-proxying is completely disabled (using the flags
  DONT_PROXY_LISTENER | DONT_PROXY_PROVIDER | DONT_PROXY_OBSERVER with
  both AsyncWrite and AsyncRead).  This means that the nsHttpConnection's
  OnStartRequest, OnDataAvailable, OnDataWritable, and OnStopRequest
  methods will execute on the socket transport thread.

  The transaction defines (non-virtual) OnDataReadable, OnDataWritable, and
  OnStopTransaction methods, which the connection calls in response to
  its OnDataAvailable, OnDataWritable, and OnStopRequest methods, respectively.
  The transaction owns a nsStreamListenerProxy created by the channel, which
  it uses to transfer data from the socket thread over to the client's thread.
  To mimize buffering, the transaction implements nsIInputStream, and passes
  itself to the stream listener proxy's OnDataAvailable.  In this way, we
  have effectively wedged the response parsing between the socket and the
  thread proxy's buffer.  When read, the transaction turns around and reads
  from the socket using the buffer passed to it.  The transaction scans the
  buffer for headers, removes them as they are detected, and copies the headers
  into its nsHttpResponseHead object.  The rest of the data remains in the
  buffer, and is proxied over to the client's thread to be handled first by the
  http channel and eventually by the client.

  There are several other major design factors, including:

    - transaction cancelation
    - progress notification
    - SSL tunneling
    - chunked decoding
    - thread safety
    - premature EOF detection and transaction restarting
    - pipelining (not yet implemented)


CACHING

<EOF>