On 19/08/2013 11:37 PM, Boris Zbarsky wrote:
> On 8/19/13 4:45 AM, Mark Hammond wrote:
>> nsLoadGroup::MergeLoadFlags() isn't actually called here
> Hmm. This is only called for sub-requests. Worse yet, the default load
> request will clobber the loadgroup flags. See
I experimented a little with this, and it (almost) works. I initially did:
before making the loadURI call - but this didn't work as the ::Stop()
call made by loadURI (we pass the LOAD_FLAGS_STOP_CONTENT flag) causes
the defaultRequest to be set to null - so the flag is lost.
I then changed it so that call was made *after* loadURI, which worked
fine in a local element, but failed to work in a . Very quick debugging implies that this might be due to
the fact the request has progressed before that flag gets set on the
channel in the parent process.
So tl;dr - it seems very difficult to set this flag on the
I have verified that using an nsIWebProgress listener does seem to work
though - I just look for all notifications with STATE_START |
STATE_IS_REQUEST and set the flag at that time - and this also doesn't
need the tweak to MergeLoadFlags. Seeing as we already need a progress
listener for a different bug, this seems the most pragmatic way forward.
Thanks for everyone's help.
> So you need to set the flag explicitly on the document load in docshell
> _and_ propagate it in MergeLoadFlags. On the other hand, you don't need
> to manually twiddle the flags on the loadgroup: setting them on the
> document load request will handle it for the subresources.