The HTTP server could give wrong information, e.g. if the HTTP stream is chunk-encoded or compressed, or if the server does not know the complete size at the time when the file is requested by the client. Also see https://bugs.webkit.org/show_bug.cgi?id=115354