Summary: | compositing/iframes/iframe-src-change.html test fails on Windows | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Simon Fraser (smfr) <simon.fraser> | ||||||
Component: | Tools / Tests | Assignee: | Simon Fraser (smfr) <simon.fraser> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | aroben, cmarrin | ||||||
Priority: | P2 | ||||||||
Version: | 528+ (Nightly build) | ||||||||
Hardware: | All | ||||||||
OS: | Windows 7 | ||||||||
Attachments: |
|
Description
Simon Fraser (smfr)
2010-09-10 11:51:25 PDT
(In reply to comment #0) > On windows, it seems that resource loading is timer-based, so the iframe load doesn't happen until after the test completes. How does this work on Mac? Are we just getting lucky? Created attachment 67215 [details]
Patch
I see the "about:blank" load happening via
WebKit.dll!WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader * loader=0x046959d8, WebCore::FrameLoadType type=FrameLoadTypeRedirectWithLockedBackForwardList, WTF::PassRefPtr<WebCore::FormState> prpFormState={...}) Line 1488 C++
WebKit.dll!WebCore::FrameLoader::loadWithNavigationAction(const WebCore::ResourceRequest & request={...}, const WebCore::NavigationAction & action={...}, bool lockHistory=false, WebCore::FrameLoadType type=FrameLoadTypeRedirectWithLockedBackForwardList, WTF::PassRefPtr<WebCore::FormState> formState={...}) Line 1411 C++
WebKit.dll!WebCore::FrameLoader::loadURL(const WebCore::KURL & newURL={...}, const WTF::String & referrer={...}, const WTF::String & frameName={...}, bool lockHistory=false, WebCore::FrameLoadType newLoadType=FrameLoadTypeRedirectWithLockedBackForwardList, WTF::PassRefPtr<WebCore::Event> event={...}, WTF::PassRefPtr<WebCore::FormState> prpFormState={...}) Line 1354 C++
WebKit.dll!WebCore::FrameLoader::loadFrameRequest(const WebCore::FrameLoadRequest & request={...}, bool lockHistory=false, bool lockBackForwardList=true, WTF::PassRefPtr<WebCore::Event> event={...}, WTF::PassRefPtr<WebCore::FormState> formState={...}, WebCore::ReferrerPolicy referrerPolicy=SendReferrer) Line 1293 C++
WebKit.dll!WebCore::FrameLoader::urlSelected(const WebCore::ResourceRequest & request={...}, const WTF::String & passedTarget={...}, WTF::PassRefPtr<WebCore::Event> triggeringEvent={...}, bool lockHistory=false, bool lockBackForwardList=true, bool userGesture=false, WebCore::ReferrerPolicy referrerPolicy=SendReferrer, WebCore::ShouldReplaceDocumentIfJavaScriptURL shouldReplaceDocumentIfJavaScriptURL=ReplaceDocumentIfJavaScriptURL) Line 304 C++
WebKit.dll!WebCore::FrameLoader::changeLocation(const WebCore::KURL & url={...}, const WTF::String & referrer={...}, bool lockHistory=false, bool lockBackForwardList=true, bool userGesture=false, bool refresh=false) Line 273 + 0x40 bytes C++
> WebKit.dll!WebCore::ScheduledURLNavigation::fire(WebCore::Frame * frame=0x046640e0) Line 98 + 0x43 bytes C++
WebKit.dll!WebCore::RedirectScheduler::timerFired(WebCore::Timer<WebCore::RedirectScheduler> * __formal=0x04664390) Line 360 + 0x20 bytes C++
WebKit.dll!WebCore::Timer<WebCore::RedirectScheduler>::fired() Line 98 + 0x23 bytes C++
WebKit.dll!WebCore::ThreadTimers::sharedTimerFiredInternal() Line 112 + 0xf bytes C++
This doesn't seem synchronous.
I guess about:blank only loads synchronously for new frames. I still wonder how this works on Mac. Comment on attachment 67215 [details]
Patch
The test is wrong; I'll come up with a better one.
Created attachment 67237 [details]
Patch
Comment on attachment 67237 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=67237&action=prettypatch > LayoutTests/compositing/iframes/iframe-src-change.html:52 > + results.innerText = "FAIL: should have initially had layers, and did not." I would say "but did not" r=me |