Subject: bug#22789: 25.1.50; In last master build https connections stop working

From: Alain Schneble <[email-masked]>
Date: Wed, 2 Mar 2016 21:46:02 +0100

Alain Schneble <[email-masked]> writes:

> Lars Ingebrigtsen <[email-masked]> writes:
>
>> Alain Schneble <[email-masked]> writes:
>>
>>> And now, even with ordinary http connections, if I delete
>>> ~/.emacs.d/url/cache, no images are displayed the first time I load the
>>> page.
>>
>> Perhaps your Emacs isn't completing the DNS resolutions?  There's
>> nothing there to ensure their progress (unless you have a blinking
>> cursor).  
>
> I don't think so, because I see that shr-image-fetched is called the
> correct number of times and the status doesn't indicate an error.  But
> the insert-image calls do not update the *eww* buffer and the image data
> looks, well, not empty.  Or could it be an encoding issue, that the
> images get displayed properly only after being saved as binary to disk
> and re-read from there?  I'll try to find out...

That's funny:

- In `shr-tag-img', if the image has not yet been cached, the following
  code is evaluated:

  (url-queue-retrieve
	   (shr-encode-url url) 'shr-image-fetched
	   (list (current-buffer) start (set-marker (make-marker) (1- (point)))
                 (list :width width :height height))

- When the `callback shr-image-fetched' is invoked, start and end will
  form an empty range.

- The image inserted will not be displayed because the range (= alt tag
  value) is empty.

- If I add (setq alt "[empty alt]") on top of `shr-put-image', then
  loading of images works quite well.  Also with https connections.  (I
  do not say that the issue with the loop progress is not there...)