Changeset 189164 in webkit


Ignore:
Timestamp:
Aug 31, 2015 1:33:21 AM (9 years ago)
Author:
Antti Koivisto
Message:

REGRESSION (r188820): fast/dom/HTMLObjectElement/object-as-frame.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=148533

Reviewed by Chris Dumez.

Source/WebCore:

<object> element may cause document load event fire too early. By making data URL
loading faster r188820 made this condition more likely to trigger in this test.

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::loadSubframe):

Post-parsing style recalc may trigger loads for <object> elements. If all other loads have already
completed this may cause load event to fire synchronously from the initial empty document construction.

Fix by preventing load events during subframe initialization. They will be fired if needed by the
subsequent explicit call to FrameLoader::checkCompleted.

LayoutTests:

Unskip.

  • fast/dom/HTMLObjectElement/object-as-frame.html:

Use more logical text in the data url.

  • http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt:
  • http/tests/loading/basic-credentials-sent-automatically-expected.txt:
  • platform/wk2/http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt:
  • platform/wk2/http/tests/loading/basic-credentials-sent-automatically-expected.txt:
  • webarchive/loading/object-expected.txt:

Update test results.

Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r189163 r189164  
     12015-08-31  Antti Koivisto  <antti@apple.com>
     2
     3        REGRESSION (r188820): fast/dom/HTMLObjectElement/object-as-frame.html is flaky
     4        https://bugs.webkit.org/show_bug.cgi?id=148533
     5
     6        Reviewed by Chris Dumez.
     7
     8        * TestExpectations:
     9
     10            Unskip.
     11
     12        * fast/dom/HTMLObjectElement/object-as-frame.html:
     13
     14            Use more logical text in the data url.
     15
     16        * http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt:
     17        * http/tests/loading/basic-credentials-sent-automatically-expected.txt:
     18        * platform/wk2/http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt:
     19        * platform/wk2/http/tests/loading/basic-credentials-sent-automatically-expected.txt:
     20        * webarchive/loading/object-expected.txt:
     21
     22            Update test results.
     23
    1242015-08-30  Chris Fleizach  <cfleizach@apple.com>
    225
  • trunk/LayoutTests/TestExpectations

    r189159 r189164  
    583583
    584584webkit.org/b/148026 [ Debug ] animations/restart-after-scroll.html [ Skip ]
    585 
    586 webkit.org/b/148533 fast/dom/HTMLObjectElement/object-as-frame.html [ Pass Failure ]
  • trunk/LayoutTests/fast/dom/HTMLObjectElement/object-as-frame.html

    r155265 r189164  
    4848
    4949<iframe name="frame" src="data:text/html,Old contents of iframe"></iframe>
    50 <object name="obj" type="text/html" data="data:text/html,New contents of frame"></object>
     50<object name="obj" type="text/html" data="data:text/html,Old contents of object"></object>
    5151
    5252</body>
  • trunk/LayoutTests/http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt

    r153903 r189164  
    66frame "<!--framePath //<!--frame0-->-->" - didCommitLoadForFrame
    77frame "<!--framePath //<!--frame0-->-->" - didFinishDocumentLoadForFrame
    8 main frame - didHandleOnloadEventsForFrame
    98frame "<!--framePath //<!--frame1-->-->" - didStartProvisionalLoadForFrame
    109frame "<!--framePath //<!--frame0-->-->" - didHandleOnloadEventsForFrame
     
    1413frame "<!--framePath //<!--frame1-->-->" - didFinishDocumentLoadForFrame
    1514frame "<!--framePath //<!--frame1-->-->" - didHandleOnloadEventsForFrame
     15main frame - didHandleOnloadEventsForFrame
    1616frame "<!--framePath //<!--frame1-->-->" - didFinishLoadForFrame
    1717main frame - didFinishLoadForFrame
  • trunk/LayoutTests/http/tests/loading/basic-credentials-sent-automatically-expected.txt

    r153903 r189164  
    66frame "<!--framePath //<!--frame0-->-->" - didCommitLoadForFrame
    77frame "<!--framePath //<!--frame0-->-->" - didFinishDocumentLoadForFrame
    8 main frame - didHandleOnloadEventsForFrame
    98frame "<!--framePath //<!--frame1-->-->" - didStartProvisionalLoadForFrame
    109frame "<!--framePath //<!--frame0-->-->" - didHandleOnloadEventsForFrame
     
    2423frame "<!--framePath //<!--frame3-->-->" - didFinishDocumentLoadForFrame
    2524frame "<!--framePath //<!--frame3-->-->" - didHandleOnloadEventsForFrame
     25main frame - didHandleOnloadEventsForFrame
    2626frame "<!--framePath //<!--frame3-->-->" - didFinishLoadForFrame
    2727main frame - didFinishLoadForFrame
  • trunk/LayoutTests/platform/wk2/http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt

    r173760 r189164  
    66frame "<!--framePath //<!--frame0-->-->" - didCommitLoadForFrame
    77frame "<!--framePath //<!--frame0-->-->" - didFinishDocumentLoadForFrame
    8 main frame - didHandleOnloadEventsForFrame
    98frame "<!--framePath //<!--frame1-->-->" - didStartProvisionalLoadForFrame
    109frame "<!--framePath //<!--frame0-->-->" - didHandleOnloadEventsForFrame
     
    1413frame "<!--framePath //<!--frame1-->-->" - didFinishDocumentLoadForFrame
    1514frame "<!--framePath //<!--frame1-->-->" - didHandleOnloadEventsForFrame
     15main frame - didHandleOnloadEventsForFrame
    1616frame "<!--framePath //<!--frame1-->-->" - didFinishLoadForFrame
    1717main frame - didFinishLoadForFrame
  • trunk/LayoutTests/platform/wk2/http/tests/loading/basic-credentials-sent-automatically-expected.txt

    r173760 r189164  
    66frame "<!--framePath //<!--frame0-->-->" - didCommitLoadForFrame
    77frame "<!--framePath //<!--frame0-->-->" - didFinishDocumentLoadForFrame
    8 main frame - didHandleOnloadEventsForFrame
    98frame "<!--framePath //<!--frame1-->-->" - didStartProvisionalLoadForFrame
    109frame "<!--framePath //<!--frame0-->-->" - didHandleOnloadEventsForFrame
     
    2423frame "<!--framePath //<!--frame3-->-->" - didFinishDocumentLoadForFrame
    2524frame "<!--framePath //<!--frame3-->-->" - didHandleOnloadEventsForFrame
     25main frame - didHandleOnloadEventsForFrame
    2626frame "<!--framePath //<!--frame3-->-->" - didFinishLoadForFrame
    2727main frame - didFinishLoadForFrame
  • trunk/LayoutTests/webarchive/loading/object-expected.txt

    r169472 r189164  
    77main frame - didCancelClientRedirectForFrame
    88main frame - didCommitLoadForFrame
    9 main frame - didHandleOnloadEventsForFrame
    109frame "<!--framePath //<!--frame0-->-->" - didStartProvisionalLoadForFrame
    1110main frame - didFinishDocumentLoadForFrame
     
    1312frame "<!--framePath //<!--frame0-->-->" - didFinishDocumentLoadForFrame
    1413frame "<!--framePath //<!--frame0-->-->" - didHandleOnloadEventsForFrame
     14main frame - didHandleOnloadEventsForFrame
    1515frame "<!--framePath //<!--frame0-->-->" - didFinishLoadForFrame
    1616main frame - didFinishLoadForFrame
  • trunk/Source/WebCore/ChangeLog

    r189161 r189164  
     12015-08-31  Antti Koivisto  <antti@apple.com>
     2
     3        REGRESSION (r188820): fast/dom/HTMLObjectElement/object-as-frame.html is flaky
     4        https://bugs.webkit.org/show_bug.cgi?id=148533
     5
     6        Reviewed by Chris Dumez.
     7
     8        <object> element may cause document load event fire too early. By making data URL
     9        loading faster r188820 made this condition more likely to trigger in this test.
     10
     11        * loader/SubframeLoader.cpp:
     12        (WebCore::SubframeLoader::loadSubframe):
     13
     14            Post-parsing style recalc may trigger loads for <object> elements. If all other loads have already
     15            completed this may cause load event to fire synchronously from the initial empty document construction.
     16
     17            Fix by preventing load events during subframe initialization. They will be fired if needed by the
     18            subsequent explicit call to FrameLoader::checkCompleted.
     19
    1202015-08-30  Ryuan Choi  <ryuan.choi@navercorp.com>
    221
  • trunk/Source/WebCore/loader/SubframeLoader.cpp

    r187891 r189164  
    321321
    322322    String referrerToUse = SecurityPolicy::generateReferrerHeader(ownerElement.document().referrerPolicy(), url, referrer);
     323
     324    // Prevent initial empty document load from triggering load events.
     325    m_frame.document()->incrementLoadEventDelayCount();
     326
    323327    RefPtr<Frame> frame = m_frame.loader().client().createFrame(url, name, &ownerElement, referrerToUse, allowsScrolling, marginWidth, marginHeight);
     328
     329    m_frame.document()->decrementLoadEventDelayCount();
    324330
    325331    if (!frame)  {
Note: See TracChangeset for help on using the changeset viewer.