al_9x wrote:I wasn't aware that these aborted requests were happening and sometimes even needed (content sniffing). Is it not possible to associate a given request with the html element that spawns it (iframe, script, frame, object, applet, embed) and to therefore know(given the url) whether it's allowed, without starting it?
That's what NoScript does most of the time.
al_9x wrote:Can you please describe under what circumstances do they happen and why they are needed?
Code: Select all
<OBJECT DATA="http://some.site.com/some.content" />
You can't tell what the content is until it loads (it may be a HTML page, plain text, Flash, whatever: OBJECT is defined as a "generic embedding mechanism".
Code: Select all
<IFRAME src="http://some.site.com/some.content" >
Ditto, and the content policy gets called with hints at a HTML document. Even though it may actually load Flash, PDF or whatever the author wants. You can't tell until you sniff.
And finally
Code: Select all
<a href="http://some.site/some.content">click me</a>
This load the content on a top level window, with hints for HTML. Again it may be anything, and you can't tell until you sniff.
In other words, among the elements you listed, only <script> and <embed> are reasonably sincere, and yet for <embed> you may need to sniff if the user allows Java and forbids Flash, for instance.
al_9x wrote:In this case the "about:blank" is not really a part of the page, it is an artifact of Noscript hiding placeholders for untrusted iframes.
Nope, it's (and just sometimes) an artifact of Firefox not managing to load the content.
Every frame when it's created loads about:blank. Then two things may happen: the frame has no src attribute and gets filled by the parent page, or the frame has a src attribute and spawns a second load for some different content. If this load is blocked the frame remains at about:blank. But in both cases (frame meant to load something else or just to keep about:blank and being scripted), the parent page can script it as long as it's there. Hence the icon.