<div class="gmail_quote">On Wed, Dec 9, 2009 at 2:57 PM, Jonas Sicking <span dir="ltr"><jonas@sicking.cc></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Wed, Dec 9, 2009 at 2:10 PM, James Robinson <<a href="mailto:jamesr@google.com">jamesr@google.com</a>> wrote:<br>
> 2009/12/9 tali garsiel <<a href="mailto:t_garsiel@hotmail.com">t_garsiel@hotmail.com</a>><br>
>><br>
>> Well, not completely.<br>
>> Regarding the first question- Webkit guys told me (on their IRC channel)<br>
>> that the don't block the parser and only block scripts that request visual<br>
>> information, so I'm still  confused.<br>
><br>
> Here's my understanding of the implementation inside WebKit currently:<br>
> During parsing, WebKit does not block the parser on stylesheet loads, but<br>
> does block external scripts from running until previously-encountered<br>
> stylesheets have loaded.  WebKit does not suspend script execution on<br>
> requests for visual information if stylesheets have not loaded (for example<br>
> for inline scripts or in the case of stylesheets added dynamically after<br>
> parsing has completed).  WebKit does suspend parsing of the document on<br>
> script loads, but has a speculative preloader to attempt to start fetches<br>
> for resources past the <script> tag.<br>
<br>
</div>Why does webkit treat external scripts different from inline scripts<br>
here? I.e. why is an inline script allowed to run even if there are<br>
pending stylesheet loads, but external scripts not? That seems<br>
inconsistent and confusing.<br>
<br>
Is this considered a bug or desired behavior?<br></blockquote><div><br></div><div>The former: <a href="http://trac.webkit.org/browser/trunk/WebCore/html/HTMLTokenizer.cpp#L2017">http://trac.webkit.org/browser/trunk/WebCore/html/HTMLTokenizer.cpp#L2017</a></div>
<div><br></div><div><a href="http://trac.webkit.org/browser/trunk/WebCore/html/HTMLTokenizer.cpp#L2017"></a>I'm not sure how much this matters in practice.  In theory, this is unobservable to the page unless it queries the loaded stylesheets directly or a property derived from layout both of which should suspend script execution.</div>
<div><br></div><div>- James</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<font color="#888888"><br>
/ Jonas<br>
</font></blockquote></div><br>