Changeset 117248 in webkit


Ignore:
Timestamp:
May 16, 2012 2:58:59 AM (12 years ago)
Author:
abecsi@webkit.org
Message:

[WTR] Visited link tracking is not disabled properly
https://bugs.webkit.org/show_bug.cgi?id=76699

Reviewed by Jocelyn Turcotte.

Source/WebKit2:

If PLATFORM_STRATEGIES is enabled visited link tracking is done through
VisitedLinkProvider and not through PageGroup.
InjectedBundle sets the shouldTrackVisitedLinks flag on the PageGroup,
thus the shared VisitedLinkTable does get populated with visited links
regardless of the flag.

The WebProcess should only track visited links if tracking is specifically
enabled for a test through WTR's LayoutTestController.

This patch fixes several flacky and failing layout tests on Qt-WK2.

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::setShouldTrackVisitedLinks): Let the WebProcess
know about visited link tracking.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::setShouldTrackVisitedLinks):
(WebKit::WebProcess::addVisitedLink):

  • WebProcess/WebProcess.h:

(WebProcess):

LayoutTests:

  • platform/qt-5.0-wk2/Skipped: Unskip passing tests.
Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r117247 r117248  
     12012-05-16  Andras Becsi  <andras.becsi@nokia.com>
     2
     3        [WTR] Visited link tracking is not disabled properly
     4        https://bugs.webkit.org/show_bug.cgi?id=76699
     5
     6        Reviewed by Jocelyn Turcotte.
     7
     8        * platform/qt-5.0-wk2/Skipped: Unskip passing tests.
     9
    1102012-05-16  Kenichi Ishibashi  <bashi@chromium.org>
    211
  • trunk/LayoutTests/platform/qt-5.0-wk2/Skipped

    r117245 r117248  
    397397platform/qt/plugins/qt-qwidget-plugin.html
    398398
    399 # [Qt][WK2]REGRESSION(r105461): It made 8 tests fail
    400 # https://bugs.webkit.org/show_bug.cgi?id=76699
    401 fast/block/margin-collapse/056.html
    402 tables/mozilla/marvin/backgr_simple-table-column.html
    403 tables/mozilla/marvin/backgr_simple-table-row-group.html
    404 tables/mozilla/marvin/backgr_simple-table-row.html
    405 tables/mozilla_expected_failures/marvin/backgr_border-table-column.html
    406 tables/mozilla_expected_failures/marvin/backgr_border-table-row-group.html
    407 tables/mozilla_expected_failures/marvin/backgr_layers-show.html
    408 tables/mozilla_expected_failures/marvin/backgr_position-table-column.html
    409 
    410399# [Qt][WK2] scrollbars/scroll-rtl-or-bt-layer.html fails
    411400# https://bugs.webkit.org/show_bug.cgi?id=76986
     
    542531http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml
    543532
    544 # [Qt][WK2]REGRESSION(r105461): It made 8 tests fail and 30 tests flakey
    545 # https://bugs.webkit.org/show_bug.cgi?id=76699
    546 tables/mozilla/marvin/backgr_simple-table-cell.html
    547 
    548533# [Qt][WK2] Failing http/tests/plugins tests after reenabled plugins
    549534# https://bugs.webkit.org/show_bug.cgi?id=82895
  • trunk/Source/WebKit2/ChangeLog

    r117222 r117248  
     12012-05-16  Andras Becsi  <andras.becsi@nokia.com>
     2
     3        [WTR] Visited link tracking is not disabled properly
     4        https://bugs.webkit.org/show_bug.cgi?id=76699
     5
     6        Reviewed by Jocelyn Turcotte.
     7
     8        If PLATFORM_STRATEGIES is enabled visited link tracking is done through
     9        VisitedLinkProvider and not through PageGroup.
     10        InjectedBundle sets the shouldTrackVisitedLinks flag on the PageGroup,
     11        thus the shared VisitedLinkTable does get populated with visited links
     12        regardless of the flag.
     13
     14        The WebProcess should only track visited links if tracking is specifically
     15        enabled for a test through WTR's LayoutTestController.
     16
     17        This patch fixes several flacky and failing layout tests on Qt-WK2.
     18
     19        * WebProcess/InjectedBundle/InjectedBundle.cpp:
     20        (WebKit::InjectedBundle::setShouldTrackVisitedLinks): Let the WebProcess
     21        know about visited link tracking.
     22        * WebProcess/WebProcess.cpp:
     23        (WebKit::WebProcess::WebProcess):
     24        (WebKit::WebProcess::setShouldTrackVisitedLinks):
     25        (WebKit::WebProcess::addVisitedLink):
     26        * WebProcess/WebProcess.h:
     27        (WebProcess):
     28
    1292012-05-15  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
    230
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp

    r113777 r117248  
    112112void InjectedBundle::setShouldTrackVisitedLinks(bool shouldTrackVisitedLinks)
    113113{
    114     PageGroup::setShouldTrackVisitedLinks(shouldTrackVisitedLinks);
     114    WebProcess::shared().setShouldTrackVisitedLinks(shouldTrackVisitedLinks);
    115115}
    116116
  • trunk/Source/WebKit2/WebProcess/WebProcess.cpp

    r117212 r117248  
    131131    : ChildProcess(shutdownTimeout)
    132132    , m_inDidClose(false)
     133    , m_shouldTrackVisitedLinks(true)
    133134    , m_hasSetCacheModel(false)
    134135    , m_cacheModel(CacheModelDocumentViewer)
     
    262263void WebProcess::setShouldTrackVisitedLinks(bool shouldTrackVisitedLinks)
    263264{
     265    m_shouldTrackVisitedLinks = shouldTrackVisitedLinks;
    264266    PageGroup::setShouldTrackVisitedLinks(shouldTrackVisitedLinks);
    265267}
     
    345347void WebProcess::addVisitedLink(WebCore::LinkHash linkHash)
    346348{
    347     if (isLinkVisited(linkHash))
     349    if (isLinkVisited(linkHash) || !m_shouldTrackVisitedLinks)
    348350        return;
    349351    connection()->send(Messages::WebContext::AddVisitedLinkHash(linkHash), 0);
  • trunk/Source/WebKit2/WebProcess/WebProcess.h

    r117015 r117248  
    116116#endif
    117117   
     118    void setShouldTrackVisitedLinks(bool);
    118119    void addVisitedLink(WebCore::LinkHash);
    119120    bool isLinkVisited(WebCore::LinkHash) const;
     
    168169    void platformInitializeWebProcess(const WebProcessCreationParameters&, CoreIPC::ArgumentDecoder*);
    169170    void platformTerminate();
    170     void setShouldTrackVisitedLinks(bool);
    171171    void registerURLSchemeAsEmptyDocument(const String&);
    172172    void registerURLSchemeAsSecure(const String&) const;
     
    262262    // FIXME: The visited link table should not be per process.
    263263    VisitedLinkTable m_visitedLinkTable;
     264    bool m_shouldTrackVisitedLinks;
    264265
    265266    bool m_hasSetCacheModel;
Note: See TracChangeset for help on using the changeset viewer.