Return error when the protocol layer detects a framing error. More data
was supposed to be delivered than what actually did arrive.
Error code returned for this: NS_ERROR_NET_PARTIAL_TRANSFER
In HTTP1.1 for Content-Length: and chunked-encoding underruns
In http2 and SPDY for framing errors when data has already been received.
imgRequest::OnStopRequest will keep partially loaded images shown but
remove them from cache.
I looked through the NSPR socket creation functions that InitWithAddress
uses to see which errors they could return, and placed appropriate comments
in ErrorAccordingToNSPR.
The test coverage is not great; in particular, I wasn't able to find a way
to elicit "address in use" errors from Windows (although I could from
Linux); the web says that Windows is much more relaxed about binding
listening sockets than Unix derivatives. I'm interested in suggestions.
I broke out this this change on its own, because it seemed to require some care:
PR_ADDRESS_NOT_SUPPORTED_ERROR used to be lumped in with several other NSPR
error codes and reported as NS_ERROR_CONNECTION_REFUSED; and a dumb grep shows
that the NS_ERROR_ is widely checked for. Introducing the distinction might
require the new NS_ERROR_SOCKET_ADDRESS_NOT_SUPPORTED value to be checked for
everywhere that currently checks for NS_ERROR_CONNECTION_REFUSED.
But that seems unlikely to be necessary: first of all, it shouldn't really
be possible, via the XPCOM interface, to force this error path to occur at
present: the components' implementations are in complete control over which
socket address types get used. I also did a Try push with a call to
NS_ABORT if a PR_ADDRESS_NOT_SUPPORTED_ERROR ever flows through
ErrorAccordingToNSPR; there were no crashes.
But if that's so, then why introduce the new error code at all? A later
patch adds support for Unix-domain sockets, a type of socket address which
is *not* supported on non-Unix systems. In that case, a distinct error code
will help people diagnose problems quickly.
* * *
Bug 772365, Part 2.1: Generate test cases for signed app signature verification
* * *
Bug 772365, Part 2.2: Test JAR signature verification
--HG--
extra : rebase_source : 198be789e8b1565dad418e15760fa6dc90da843f