⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 233794 in webkit


Ignore:
Timestamp:
Jul 12, 2018, 11:22:33 PM (8 years ago)
Author:
Wenson Hsieh
Message:

Make it easier to hit the significant rendered text layout milestone on pages with main article elements
​https://bugs.webkit.org/show_bug.cgi?id=187578
<rdar://problem/42104637>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Our current heuristics for triggering the significant rendered text layout milestone are very conservative, with
the intention of avoiding false positives. In practice, we can relax some of these constraints when we've
detected the presence of a main article element on the page. (e.g. in New York Times articles). See per-method
changes below for more detail.

Test: RenderingProgressTests.DidRenderSignificantAmountOfText

  • dom/Document.cpp:

(WebCore::Document::registerArticleElement):
(WebCore::Document::unregisterArticleElement):
(WebCore::Document::updateMainArticleElementAfterLayout):

As a post layout task, update the main article element by looping through the articles (up to a maximum limit of
10) in search of an article element that is several times larger than the second largest article element.

  • dom/Document.h:

Store a set containing the article elements in the document, as well as the current main article on the page.

(WebCore::Document::hasMainArticleElement const):

  • html/Element.cpp:

(WebCore::Element::insertedIntoAncestor):
(WebCore::Element::removedFromAncestor):

Keep track of the article elements that exist in the document whenever elements with the article tag are added
to or removed from the document.

  • page/FrameView.cpp:

Add new minimum thresholds for firing the significant rendered text milestone when there exists a main article.

(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::updateSignificantRenderedTextMilestoneIfNeeded):

Take the main article element into consideration when determining whether to fire the significant text
layout milestone.

Tools:

Tweak an existing layout test to additionally check that the significant text layout milestone is fired on a
page with an article element that is clearly the "main" content on the page (i.e. much taller than all other
articles).

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/significant-text-milestone-article.html: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/significant-text-milestone.html.
  • TestWebKitAPI/Tests/WebKitCocoa/significant-text-milestone.html:
  • TestWebKitAPI/Tests/ios/RenderingProgressTests.mm:

(TEST):

Location:
trunk
Files:
9 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r233793 r233794  
     12018-07-12  Wenson Hsieh  <wenson_hsieh@apple.com>
     2
     3        Make it easier to hit the significant rendered text layout milestone on pages with main article elements
     4        https://bugs.webkit.org/show_bug.cgi?id=187578
     5        <rdar://problem/42104637>
     6
     7        Reviewed by Ryosuke Niwa.
     8
     9        Our current heuristics for triggering the significant rendered text layout milestone are very conservative, with
     10        the intention of avoiding false positives. In practice, we can relax some of these constraints when we've
     11        detected the presence of a main article element on the page. (e.g. in New York Times articles). See per-method
     12        changes below for more detail.
     13
     14        Test: RenderingProgressTests.DidRenderSignificantAmountOfText
     15
     16        * dom/Document.cpp:
     17        (WebCore::Document::registerArticleElement):
     18        (WebCore::Document::unregisterArticleElement):
     19        (WebCore::Document::updateMainArticleElementAfterLayout):
     20
     21        As a post layout task, update the main article element by looping through the articles (up to a maximum limit of
     22        10) in search of an article element that is several times larger than the second largest article element.
     23
     24        * dom/Document.h:
     25
     26        Store a set containing the article elements in the document, as well as the current main article on the page.
     27
     28        (WebCore::Document::hasMainArticleElement const):
     29        * html/Element.cpp:
     30        (WebCore::Element::insertedIntoAncestor):
     31        (WebCore::Element::removedFromAncestor):
     32
     33        Keep track of the article elements that exist in the document whenever elements with the article tag are added
     34        to or removed from the document.
     35
     36        * page/FrameView.cpp:
     37
     38        Add new minimum thresholds for firing the significant rendered text milestone when there exists a main article.
     39
     40        (WebCore::FrameView::performPostLayoutTasks):
     41        (WebCore::FrameView::updateSignificantRenderedTextMilestoneIfNeeded):
     42
     43        Take the main article element into consideration when determining whether to fire the significant text
     44        layout milestone.
     45
    1462018-07-12  Daniel Bates  <dabates@apple.com>
    247
  • trunk/Source/WebCore/dom/Document.cpp

    r233611 r233794  
    76987698}
    76997699
     7700void Document::registerArticleElement(Element& article)
     7701{
     7702    m_articleElements.add(&article);
     7703}
     7704
     7705void Document::unregisterArticleElement(Element& article)
     7706{
     7707    m_articleElements.remove(&article);
     7708    if (m_mainArticleElement == &article)
     7709        m_mainArticleElement = nullptr;
     7710}
     7711
     7712void Document::updateMainArticleElementAfterLayout()
     7713{
     7714    // If there are too many article elements on the page, don't consider any one of them to be "main content".
     7715    const unsigned maxNumberOfArticlesBeforeIgnoringMainContentArticle = 10;
     7716
     7717    // We consider an article to be main content if it is either:
     7718    // 1. The only article element in the document.
     7719    // 2. Much taller than the next tallest article, and also much larger than the viewport.
     7720    const float minimumSecondTallestArticleHeightFactor = 4;
     7721    const float minimumViewportAreaFactor = 5;
     7722
     7723    m_mainArticleElement = nullptr;
     7724
     7725    auto numberOfArticles = m_articleElements.size();
     7726    if (!numberOfArticles || numberOfArticles > maxNumberOfArticlesBeforeIgnoringMainContentArticle)
     7727        return;
     7728
     7729    Element* tallestArticle = nullptr;
     7730    float tallestArticleHeight = 0;
     7731    float tallestArticleWidth = 0;
     7732    float secondTallestArticleHeight = 0;
     7733
     7734    for (auto* article : m_articleElements) {
     7735        auto* box = article->renderBox();
     7736        float height = box ? box->height().toFloat() : 0;
     7737        if (height >= tallestArticleHeight) {
     7738            secondTallestArticleHeight = tallestArticleHeight;
     7739            tallestArticleHeight = height;
     7740            tallestArticleWidth = box ? box->width().toFloat() : 0;
     7741            tallestArticle = article;
     7742        } else if (height >= secondTallestArticleHeight)
     7743            secondTallestArticleHeight = height;
     7744    }
     7745
     7746    if (numberOfArticles == 1) {
     7747        m_mainArticleElement = tallestArticle;
     7748        return;
     7749    }
     7750
     7751    if (tallestArticleHeight < minimumSecondTallestArticleHeightFactor * secondTallestArticleHeight)
     7752        return;
     7753
     7754    if (!view())
     7755        return;
     7756
     7757    auto viewportSize = view()->layoutViewportRect().size();
     7758    if (tallestArticleWidth * tallestArticleHeight < minimumViewportAreaFactor * (viewportSize.width() * viewportSize.height()).toFloat())
     7759        return;
     7760
     7761    m_mainArticleElement = tallestArticle;
     7762}
     7763
    77007764#if HAVE(CFNETWORK_STORAGE_PARTITIONING)
    77017765bool Document::hasFrameSpecificStorageAccess() const
  • trunk/Source/WebCore/dom/Document.h

    r233611 r233794  
    14471447    void consumeTemporaryTimeUserGesture();
    14481448
     1449    void registerArticleElement(Element&);
     1450    void unregisterArticleElement(Element&);
     1451    void updateMainArticleElementAfterLayout();
     1452    bool hasMainArticleElement() const { return !!m_mainArticleElement; }
     1453
    14491454protected:
    14501455    enum ConstructionFlags { Synthesized = 1, NonRenderedPlaceholder = 1 << 1 };
    … …  
    16871692    HashSet<Element*> m_captionPreferencesChangedElements;
    16881693#endif
     1694
     1695    Element* m_mainArticleElement { nullptr };
     1696    HashSet<Element*> m_articleElements;
    16891697
    16901698#if ENABLE(MEDIA_CONTROLS_SCRIPT)
  • trunk/Source/WebCore/dom/Element.cpp

    r233545 r233794  
    17541754    }
    17551755
     1756    if (UNLIKELY(hasTagName(articleTag) && newDocument))
     1757        newDocument->registerArticleElement(*this);
     1758
    17561759    return InsertedIntoAncestorResult::Done;
    17571760}
    … …  
    18011804            if (oldDocument->cssTarget() == this)
    18021805                oldDocument->setCSSTarget(nullptr);
     1806            if (UNLIKELY(hasTagName(articleTag)))
     1807                oldDocument->unregisterArticleElement(*this);
    18031808        }
    18041809
  • trunk/Source/WebCore/page/FrameView.cpp

    r233623 r233794  
    130130static const unsigned maxUpdateEmbeddedObjectsIterations = 2;
    131131
    132 static constexpr unsigned significantRenderedTextCharacterThreshold = 3000;
    133 static constexpr float significantRenderedTextMeanLength = 50;
     132static constexpr unsigned defaultSignificantRenderedTextCharacterThreshold = 3000;
     133static constexpr float defaultSignificantRenderedTextMeanLength = 50;
     134static constexpr unsigned mainArticleSignificantRenderedTextCharacterThreshold = 1500;
     135static constexpr float mainArticleSignificantRenderedTextMeanLength = 25;
    134136
    135137static RenderLayer::UpdateLayerPositionsFlags updateLayerPositionFlags(RenderLayer* layer, bool isRelayoutingSubtree, bool didFullRepaint)
    … …  
    32203222    LOG(Layout, "FrameView %p performPostLayoutTasks", this);
    32213223
     3224    frame().document()->updateMainArticleElementAfterLayout();
    32223225    frame().selection().updateAppearanceAfterLayout();
    32233226
    … …  
    43594362        return;
    43604363
    4361     if (m_visuallyNonEmptyCharacterCount < significantRenderedTextCharacterThreshold)
    4362         return;
    4363 
    4364     if (!m_renderTextCountForVisuallyNonEmptyCharacters || m_visuallyNonEmptyCharacterCount / static_cast<float>(m_renderTextCountForVisuallyNonEmptyCharacters) < significantRenderedTextMeanLength)
     4364    auto characterThreshold = document->hasMainArticleElement() ? mainArticleSignificantRenderedTextCharacterThreshold : defaultSignificantRenderedTextCharacterThreshold;
     4365    auto meanLength = document->hasMainArticleElement() ? mainArticleSignificantRenderedTextMeanLength : defaultSignificantRenderedTextMeanLength;
     4366
     4367    if (m_visuallyNonEmptyCharacterCount < characterThreshold)
     4368        return;
     4369
     4370    if (!m_renderTextCountForVisuallyNonEmptyCharacters || m_visuallyNonEmptyCharacterCount / static_cast<float>(m_renderTextCountForVisuallyNonEmptyCharacters) < meanLength)
    43654371        return;
    43664372
  • trunk/Tools/ChangeLog

    r233791 r233794  
     12018-07-12  Wenson Hsieh  <wenson_hsieh@apple.com>
     2
     3        Make it easier to hit the significant rendered text layout milestone on pages with main article elements
     4        https://bugs.webkit.org/show_bug.cgi?id=187578
     5        <rdar://problem/42104637>
     6
     7        Reviewed by Ryosuke Niwa.
     8
     9        Tweak an existing layout test to additionally check that the significant text layout milestone is fired on a
     10        page with an article element that is clearly the "main" content on the page (i.e. much taller than all other
     11        articles).
     12
     13        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     14        * TestWebKitAPI/Tests/WebKitCocoa/significant-text-milestone-article.html: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/significant-text-milestone.html.
     15        * TestWebKitAPI/Tests/WebKitCocoa/significant-text-milestone.html:
     16        * TestWebKitAPI/Tests/ios/RenderingProgressTests.mm:
     17        (TEST):
     18
    1192018-07-12  Fujii Hironori  <Hironori.Fujii@sony.com>
    220
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r233777 r233794  
    819819                F4D65DA81F5E4704009D8C27 /* selected-text-image-link-and-editable.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = F4D65DA71F5E46C0009D8C27 /* selected-text-image-link-and-editable.html */; };
    820820                F4DEF6ED1E9B4DB60048EF61 /* image-in-link-and-input.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = F4DEF6EC1E9B4D950048EF61 /* image-in-link-and-input.html */; };
     821                F4E3D80820F70BB9007B58C5 /* significant-text-milestone-article.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = F4E3D80720F708E4007B58C5 /* significant-text-milestone-article.html */; };
    821822                F4F137921D9B683E002BEC57 /* large-video-test-now-playing.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = F4F137911D9B6832002BEC57 /* large-video-test-now-playing.html */; };
    822823                F4F405BC1D4C0D1C007A9707 /* full-size-autoplaying-video-with-audio.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = F4F405BA1D4C0CF8007A9707 /* full-size-autoplaying-video-with-audio.html */; };
    … …  
    11161117                                52B8CF9815868D9100281053 /* SetDocumentURI.html in Copy Resources */,
    11171118                                CEBABD491B71687C0051210A /* should-open-external-schemes.html in Copy Resources */,
     1119                                F4E3D80820F70BB9007B58C5 /* significant-text-milestone-article.html in Copy Resources */,
    11181120                                F4FC077720F013B600CA043C /* significant-text-milestone.html in Copy Resources */,
    11191121                                C9B4AD2A1ECA6EBE00F5FEA0 /* silence-long.m4a in Copy Resources */,
    … …  
    20212023                F4D65DA71F5E46C0009D8C27 /* selected-text-image-link-and-editable.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "selected-text-image-link-and-editable.html"; sourceTree = "<group>"; };
    20222024                F4DEF6EC1E9B4D950048EF61 /* image-in-link-and-input.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "image-in-link-and-input.html"; sourceTree = "<group>"; };
     2025                F4E3D80720F708E4007B58C5 /* significant-text-milestone-article.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "significant-text-milestone-article.html"; sourceTree = "<group>"; };
    20232026                F4F137911D9B6832002BEC57 /* large-video-test-now-playing.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "large-video-test-now-playing.html"; sourceTree = "<group>"; };
    20242027                F4F405BA1D4C0CF8007A9707 /* full-size-autoplaying-video-with-audio.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "full-size-autoplaying-video-with-audio.html"; sourceTree = "<group>"; };
    … …  
    26362639                                F46849BF1EEF5EDC00B937FE /* rich-and-plain-text.html */,
    26372640                                F4D65DA71F5E46C0009D8C27 /* selected-text-image-link-and-editable.html */,
     2641                                F4E3D80720F708E4007B58C5 /* significant-text-milestone-article.html */,
    26382642                                F4FC077620F0108100CA043C /* significant-text-milestone.html */,
    26392643                                C9B4AD291ECA6EA500F5FEA0 /* silence-long.m4a */,
  • trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/significant-text-milestone-article.html

    r233793 r233794  
    1111        <time itemprop="pubdate" datetime="2018-07-06">July 6, 2018</time>
    1212        <p>Lorem ipsum dolor sit amet, <a href="https://webkit.org">consectetur adipiscing elit</a>, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. <a href="https://webkit.org">Tempor id eu nisl nunc mi ipsum faucibus vitae.</a> Sed tempus urna et pharetra pharetra massa massa. Vitae tortor condimentum lacinia quis vel eros donec ac. <a href="https://webkit.org">Ullamcorper velit sed ullamcorper morbi</a> tincidunt ornare massa eget. Sit amet cursus sit amet dictum. Id eu nisl nunc mi ipsum faucibus vitae aliquet nec. Suscipit tellus mauris a diam maecenas sed. Consequat nisl vel pretium lectus quam id leo. <a href="https://webkit.org">Netus et malesuada fames ac turpis egestas integer.</a> Quam lacus suspendisse faucibus interdum posuere lorem ipsum. Sem integer vitae justo eget magna fermentum iaculis. A condimentum vitae sapien pellentesque habitant morbi tristique. Varius duis at consectetur lorem. Ipsum faucibus vitae aliquet nec ullamcorper sit.</p>
     13        <blockquote><p>Sed faucibus <a href="https://webkit.org">turpis in eu mi bibendum</a>. Donec enim diam vulputate ut pharetra sit amet aliquam. <img src="apple.gif"></img> Consequat id porta nibh venenatis cras sed felis eget velit. At lectus urna duis convallis convallis tellus id interdum velit. Id consectetur purus ut faucibus pulvinar elementum integer enim. Ipsum dolor sit amet consectetur adipiscing elit ut aliquam. At tellus at urna condimentum mattis. Faucibus pulvinar elementum integer enim. At elementum eu facilisis sed odio morbi. Fames ac turpis egestas integer eget aliquet. Consequat interdum varius sit amet mattis vulputate enim nulla. Lectus sit amet est placerat in egestas. Dolor sit amet consectetur adipiscing elit pellentesque habitant morbi. Urna et pharetra pharetra massa massa ultricies mi.</p></blockquote>
    1314        <p>Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. <a href="https://webkit.org">Quam lacus suspendisse</a> faucibus interdum posuere lorem. Sagittis vitae et leo duis ut diam. Turpis massa sed elementum tempus. Aliquam sem fringilla ut morbi. <a href="https://webkit.org">Fringilla est ullamcorper</a> eget nulla facilisi etiam dignissim. Id velit ut tortor pretium. Bibendum at varius vel pharetra vel turpis nunc. Sit amet aliquam id diam maecenas. Lobortis feugiat vivamus at augue <a href="https://webkit.org">eget arcu dictum</a> varius duis. Libero justo laoreet sit amet. Egestas tellus rutrum tellus pellentesque eu tincidunt tortor aliquam.</p>
    14         <blockquote><p>Sed faucibus <a href="https://webkit.org">turpis in eu mi bibendum</a>. Donec enim diam vulputate ut pharetra sit amet aliquam. <img src="apple.gif"></img> Consequat id porta nibh venenatis cras sed felis eget velit. At lectus urna duis convallis convallis tellus id interdum velit. Id consectetur purus ut faucibus pulvinar elementum integer enim. Ipsum dolor sit amet consectetur adipiscing elit ut aliquam. At tellus at urna condimentum mattis. Faucibus pulvinar elementum integer enim. At elementum eu facilisis sed odio morbi. Fames ac turpis egestas integer eget aliquet. Consequat interdum varius sit amet mattis vulputate enim nulla. Lectus sit amet est placerat in egestas. Dolor sit amet consectetur adipiscing elit pellentesque habitant morbi. Urna et pharetra pharetra massa massa ultricies mi. Sagittis eu volutpat odio facilisis mauris sit amet massa. Nec ullamcorper sit amet risus. Quis enim lobortis scelerisque fermentum dui faucibus in ornare. In metus vulputate eu scelerisque felis.</p></blockquote>
    15         <p>Non sodales neque sodales ut etiam sit amet nisl purus. Lacus luctus accumsan tortor posuere ac ut. Pulvinar neque laoreet suspendisse interdum consectetur libero id. Porta non pulvinar neque laoreet suspendisse interdum consectetur libero. Mattis molestie a iaculis at. Sit amet consectetur adipiscing elit duis tristique sollicitudin. Posuere morbi leo urna molestie at elementum eu facilisis sed. Id volutpat lacus laoreet non. Tempus iaculis urna id volutpat lacus laoreet. Ullamcorper velit sed ullamcorper morbi tincidunt ornare.</p>
    16         <p>Sit amet massa vitae tortor condimentum lacinia quis. <img src="apple.gif"></img> Vitae turpis massa sed elementum tempus egestas. Faucibus in ornare quam viverra orci <a href="https://webkit.org">sagittis</a> eu. Scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis. In egestas erat imperdiet sed euismod nisi porta lorem. Varius vel pharetra vel turpis. Nec ullamcorper sit amet risus nullam eget felis eget nunc. Dignissim diam quis enim lobortis scelerisque fermentum dui faucibus in. Sagittis eu volutpat odio facilisis mauris sit amet. Ipsum a arcu cursus vitae congue mauris rhoncus aenean vel. Ornare lectus sit amet est placerat in. Malesuada pellentesque elit eget gravida cum sociis natoque penatibus et. Vitae purus faucibus ornare suspendisse sed nisi lacus sed viverra.</p>
    17         <p>Cursus vitae congue mauris rhoncus aenean vel elit. Donec ac odio tempor orci dapibus. Cursus in hac habitasse platea dictumst quisque. Mi sit amet mauris commodo quis. Morbi enim nunc faucibus a. Duis convallis convallis tellus id. <a href="https://webkit.org">Rutrum quisque non tellus</a> orci ac auctor augue mauris augue. A condimentum vitae sapien pellentesque habitant morbi. Ornare arcu odio ut sem nulla pharetra diam sit. Placerat in egestas erat imperdiet sed euismod nisi porta. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et netus et. <a href="https://webkit.org">Ut diam quam nulla</a> porttitor massa id neque aliquam vestibulum. Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum odio. Libero justo laoreet sit amet. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae nunc.</p>
    1815    </article>
     16    <article>A small article</article>
     17    <article>A small article</article>
    1918</body>
    2019</html>
  • trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/significant-text-milestone.html

    r233623 r233794  
    55</head>
    66<body>
    7     <article>
    8         <h1 itemprop="title">A long sample article</h1>
    9         <h2 itemprop="subheading">Containing lots of placeholder text</h2>
    10         <h3 itemprop="author">Johnny Appleseed</h3>
    11         <time itemprop="pubdate" datetime="2018-07-06">July 6, 2018</time>
    12         <p>Lorem ipsum dolor sit amet, <a href="https://webkit.org">consectetur adipiscing elit</a>, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. <a href="https://webkit.org">Tempor id eu nisl nunc mi ipsum faucibus vitae.</a> Sed tempus urna et pharetra pharetra massa massa. Vitae tortor condimentum lacinia quis vel eros donec ac. <a href="https://webkit.org">Ullamcorper velit sed ullamcorper morbi</a> tincidunt ornare massa eget. Sit amet cursus sit amet dictum. Id eu nisl nunc mi ipsum faucibus vitae aliquet nec. Suscipit tellus mauris a diam maecenas sed. Consequat nisl vel pretium lectus quam id leo. <a href="https://webkit.org">Netus et malesuada fames ac turpis egestas integer.</a> Quam lacus suspendisse faucibus interdum posuere lorem ipsum. Sem integer vitae justo eget magna fermentum iaculis. A condimentum vitae sapien pellentesque habitant morbi tristique. Varius duis at consectetur lorem. Ipsum faucibus vitae aliquet nec ullamcorper sit.</p>
    13         <p>Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. <a href="https://webkit.org">Quam lacus suspendisse</a> faucibus interdum posuere lorem. Sagittis vitae et leo duis ut diam. Turpis massa sed elementum tempus. Aliquam sem fringilla ut morbi. <a href="https://webkit.org">Fringilla est ullamcorper</a> eget nulla facilisi etiam dignissim. Id velit ut tortor pretium. Bibendum at varius vel pharetra vel turpis nunc. Sit amet aliquam id diam maecenas. Lobortis feugiat vivamus at augue <a href="https://webkit.org">eget arcu dictum</a> varius duis. Libero justo laoreet sit amet. Egestas tellus rutrum tellus pellentesque eu tincidunt tortor aliquam.</p>
    14         <blockquote><p>Sed faucibus <a href="https://webkit.org">turpis in eu mi bibendum</a>. Donec enim diam vulputate ut pharetra sit amet aliquam. <img src="apple.gif"></img> Consequat id porta nibh venenatis cras sed felis eget velit. At lectus urna duis convallis convallis tellus id interdum velit. Id consectetur purus ut faucibus pulvinar elementum integer enim. Ipsum dolor sit amet consectetur adipiscing elit ut aliquam. At tellus at urna condimentum mattis. Faucibus pulvinar elementum integer enim. At elementum eu facilisis sed odio morbi. Fames ac turpis egestas integer eget aliquet. Consequat interdum varius sit amet mattis vulputate enim nulla. Lectus sit amet est placerat in egestas. Dolor sit amet consectetur adipiscing elit pellentesque habitant morbi. Urna et pharetra pharetra massa massa ultricies mi. Sagittis eu volutpat odio facilisis mauris sit amet massa. Nec ullamcorper sit amet risus. Quis enim lobortis scelerisque fermentum dui faucibus in ornare. In metus vulputate eu scelerisque felis.</p></blockquote>
    15         <p>Non sodales neque sodales ut etiam sit amet nisl purus. Lacus luctus accumsan tortor posuere ac ut. Pulvinar neque laoreet suspendisse interdum consectetur libero id. Porta non pulvinar neque laoreet suspendisse interdum consectetur libero. Mattis molestie a iaculis at. Sit amet consectetur adipiscing elit duis tristique sollicitudin. Posuere morbi leo urna molestie at elementum eu facilisis sed. Id volutpat lacus laoreet non. Tempus iaculis urna id volutpat lacus laoreet. Ullamcorper velit sed ullamcorper morbi tincidunt ornare.</p>
    16         <p>Sit amet massa vitae tortor condimentum lacinia quis. <img src="apple.gif"></img> Vitae turpis massa sed elementum tempus egestas. Faucibus in ornare quam viverra orci <a href="https://webkit.org">sagittis</a> eu. Scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis. In egestas erat imperdiet sed euismod nisi porta lorem. Varius vel pharetra vel turpis. Nec ullamcorper sit amet risus nullam eget felis eget nunc. Dignissim diam quis enim lobortis scelerisque fermentum dui faucibus in. Sagittis eu volutpat odio facilisis mauris sit amet. Ipsum a arcu cursus vitae congue mauris rhoncus aenean vel. Ornare lectus sit amet est placerat in. Malesuada pellentesque elit eget gravida cum sociis natoque penatibus et. Vitae purus faucibus ornare suspendisse sed nisi lacus sed viverra.</p>
    17         <p>Cursus vitae congue mauris rhoncus aenean vel elit. Donec ac odio tempor orci dapibus. Cursus in hac habitasse platea dictumst quisque. Mi sit amet mauris commodo quis. Morbi enim nunc faucibus a. Duis convallis convallis tellus id. <a href="https://webkit.org">Rutrum quisque non tellus</a> orci ac auctor augue mauris augue. A condimentum vitae sapien pellentesque habitant morbi. Ornare arcu odio ut sem nulla pharetra diam sit. Placerat in egestas erat imperdiet sed euismod nisi porta. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et netus et. <a href="https://webkit.org">Ut diam quam nulla</a> porttitor massa id neque aliquam vestibulum. Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum odio. Libero justo laoreet sit amet. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae nunc.</p>
    18     </article>
     7    <h1 itemprop="title">A long sample article</h1>
     8    <h2 itemprop="subheading">Containing lots of placeholder text</h2>
     9    <h3 itemprop="author">Johnny Appleseed</h3>
     10    <time itemprop="pubdate" datetime="2018-07-06">July 6, 2018</time>
     11    <p>Lorem ipsum dolor sit amet, <a href="https://webkit.org">consectetur adipiscing elit</a>, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. <a href="https://webkit.org">Tempor id eu nisl nunc mi ipsum faucibus vitae.</a> Sed tempus urna et pharetra pharetra massa massa. Vitae tortor condimentum lacinia quis vel eros donec ac. <a href="https://webkit.org">Ullamcorper velit sed ullamcorper morbi</a> tincidunt ornare massa eget. Sit amet cursus sit amet dictum. Id eu nisl nunc mi ipsum faucibus vitae aliquet nec. Suscipit tellus mauris a diam maecenas sed. Consequat nisl vel pretium lectus quam id leo. <a href="https://webkit.org">Netus et malesuada fames ac turpis egestas integer.</a> Quam lacus suspendisse faucibus interdum posuere lorem ipsum. Sem integer vitae justo eget magna fermentum iaculis. A condimentum vitae sapien pellentesque habitant morbi tristique. Varius duis at consectetur lorem. Ipsum faucibus vitae aliquet nec ullamcorper sit.</p>
     12    <p>Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. <a href="https://webkit.org">Quam lacus suspendisse</a> faucibus interdum posuere lorem. Sagittis vitae et leo duis ut diam. Turpis massa sed elementum tempus. Aliquam sem fringilla ut morbi. <a href="https://webkit.org">Fringilla est ullamcorper</a> eget nulla facilisi etiam dignissim. Id velit ut tortor pretium. Bibendum at varius vel pharetra vel turpis nunc. Sit amet aliquam id diam maecenas. Lobortis feugiat vivamus at augue <a href="https://webkit.org">eget arcu dictum</a> varius duis. Libero justo laoreet sit amet. Egestas tellus rutrum tellus pellentesque eu tincidunt tortor aliquam.</p>
     13    <blockquote><p>Sed faucibus <a href="https://webkit.org">turpis in eu mi bibendum</a>. Donec enim diam vulputate ut pharetra sit amet aliquam. <img src="apple.gif"></img> Consequat id porta nibh venenatis cras sed felis eget velit. At lectus urna duis convallis convallis tellus id interdum velit. Id consectetur purus ut faucibus pulvinar elementum integer enim. Ipsum dolor sit amet consectetur adipiscing elit ut aliquam. At tellus at urna condimentum mattis. Faucibus pulvinar elementum integer enim. At elementum eu facilisis sed odio morbi. Fames ac turpis egestas integer eget aliquet. Consequat interdum varius sit amet mattis vulputate enim nulla. Lectus sit amet est placerat in egestas. Dolor sit amet consectetur adipiscing elit pellentesque habitant morbi. Urna et pharetra pharetra massa massa ultricies mi. Sagittis eu volutpat odio facilisis mauris sit amet massa. Nec ullamcorper sit amet risus. Quis enim lobortis scelerisque fermentum dui faucibus in ornare. In metus vulputate eu scelerisque felis.</p></blockquote>
     14    <p>Non sodales neque sodales ut etiam sit amet nisl purus. Lacus luctus accumsan tortor posuere ac ut. Pulvinar neque laoreet suspendisse interdum consectetur libero id. Porta non pulvinar neque laoreet suspendisse interdum consectetur libero. Mattis molestie a iaculis at. Sit amet consectetur adipiscing elit duis tristique sollicitudin. Posuere morbi leo urna molestie at elementum eu facilisis sed. Id volutpat lacus laoreet non. Tempus iaculis urna id volutpat lacus laoreet. Ullamcorper velit sed ullamcorper morbi tincidunt ornare.</p>
     15    <p>Sit amet massa vitae tortor condimentum lacinia quis. <img src="apple.gif"></img> Vitae turpis massa sed elementum tempus egestas. Faucibus in ornare quam viverra orci <a href="https://webkit.org">sagittis</a> eu. Scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis. In egestas erat imperdiet sed euismod nisi porta lorem. Varius vel pharetra vel turpis. Nec ullamcorper sit amet risus nullam eget felis eget nunc. Dignissim diam quis enim lobortis scelerisque fermentum dui faucibus in. Sagittis eu volutpat odio facilisis mauris sit amet. Ipsum a arcu cursus vitae congue mauris rhoncus aenean vel. Ornare lectus sit amet est placerat in. Malesuada pellentesque elit eget gravida cum sociis natoque penatibus et. Vitae purus faucibus ornare suspendisse sed nisi lacus sed viverra.</p>
     16    <p>Cursus vitae congue mauris rhoncus aenean vel elit. Donec ac odio tempor orci dapibus. Cursus in hac habitasse platea dictumst quisque. Mi sit amet mauris commodo quis. Morbi enim nunc faucibus a. Duis convallis convallis tellus id. <a href="https://webkit.org">Rutrum quisque non tellus</a> orci ac auctor augue mauris augue. A condimentum vitae sapien pellentesque habitant morbi. Ornare arcu odio ut sem nulla pharetra diam sit. Placerat in egestas erat imperdiet sed euismod nisi porta. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et netus et. <a href="https://webkit.org">Ut diam quam nulla</a> porttitor massa id neque aliquam vestibulum. Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum odio. Libero justo laoreet sit amet. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae nunc.</p>
    1917</body>
    2018</html>
  • trunk/Tools/TestWebKitAPI/Tests/ios/RenderingProgressTests.mm

    r233623 r233794  
    6666    [webView loadTestPageNamed:@"significant-text-milestone"];
    6767    TestWebKitAPI::Util::run(&observedSignificantRenderedText);
     68
     69    observedSignificantRenderedText = false;
     70    [webView loadTestPageNamed:@"significant-text-milestone-article"];
     71    TestWebKitAPI::Util::run(&observedSignificantRenderedText);
    6872}
    6973
Note: See TracChangeset for help on using the changeset viewer.