Changeset 64518 in webkit


Ignore:
Timestamp:
Aug 2, 2010 6:08:28 PM (14 years ago)
Author:
beidson@apple.com
Message:

2010-08-02 Brady Eidson <beidson@apple.com>

Reviewed by Anders Carlsson.

Add VisitedLinkStrategy for each platform to implement
https://bugs.webkit.org/show_bug.cgi?id=43393

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm: (WebPlatformStrategies::createVisitedLinkStrategy): (WebPlatformStrategies::isLinkVisited): Call back into PageGroup's visited links. (WebPlatformStrategies::addVisitedLink): Ditto.

2010-08-02 Brady Eidson <beidson@apple.com>

Reviewed by Anders Carlsson.

Add VisitedLinkStrategy for each platform to implement
https://bugs.webkit.org/show_bug.cgi?id=43393

No new tests. (No change in behavior)

  • WebCore.exp.in:
  • WebCore.xcodeproj/project.pbxproj:


  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::determineLinkStateSlowCase): Use VisitedLinkStrategy if it's enabled.


  • loader/HistoryController.cpp: (WebCore::addVisitedLink): Choose VisitedLinkStrategy if it's enabled, else fallback to PageGroup. (WebCore::HistoryController::updateForStandardLoad): Use addVisitedLink helper. (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList): Ditto. (WebCore::HistoryController::updateForClientRedirect): Ditto. (WebCore::HistoryController::updateForSameDocumentNavigation): Ditto.


  • platform/PlatformStrategies.h: (WebCore::PlatformStrategies::visitedLinkStrategy): (WebCore::PlatformStrategies::PlatformStrategies):

2010-08-02 Brady Eidson <beidson@apple.com>

Reviewed by Anders Carlsson.

Add VisitedLinkStrategy for each platform to implement
https://bugs.webkit.org/show_bug.cgi?id=43393

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: (WebKit::WebPlatformStrategies::createVisitedLinkStrategy): (WebKit::WebPlatformStrategies::isLinkVisited): Call back into PageGroup's visited links, for now. (WebKit::WebPlatformStrategies::addVisitedLink): Ditto.
  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:
Location:
trunk
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r64517 r64518  
     12010-08-02  Brady Eidson  <beidson@apple.com>
     2
     3        Reviewed by Anders Carlsson.
     4
     5        Add VisitedLinkStrategy for each platform to implement
     6        https://bugs.webkit.org/show_bug.cgi?id=43393
     7
     8        No new tests. (No change in behavior)
     9
     10        * WebCore.exp.in:
     11        * WebCore.xcodeproj/project.pbxproj:
     12       
     13        * css/CSSStyleSelector.cpp:
     14        (WebCore::CSSStyleSelector::SelectorChecker::determineLinkStateSlowCase): Use VisitedLinkStrategy if it's enabled.
     15       
     16        * loader/HistoryController.cpp:
     17        (WebCore::addVisitedLink): Choose VisitedLinkStrategy if it's enabled, else fallback to PageGroup.
     18        (WebCore::HistoryController::updateForStandardLoad): Use addVisitedLink helper.
     19        (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList): Ditto.
     20        (WebCore::HistoryController::updateForClientRedirect): Ditto.
     21        (WebCore::HistoryController::updateForSameDocumentNavigation): Ditto.
     22       
     23        * platform/PlatformStrategies.h:
     24        (WebCore::PlatformStrategies::visitedLinkStrategy):
     25        (WebCore::PlatformStrategies::PlatformStrategies):
     26
    1272010-08-02  Chris Fleizach  <cfleizach@apple.com>
    228
  • trunk/WebCore/WebCore.exp.in

    r64513 r64518  
    816816__ZN7WebCore9PageCache11setCapacityEi
    817817__ZN7WebCore9PageCache27releaseAutoreleasedPagesNowEv
     818__ZN7WebCore9PageGroup13isLinkVisitedEy
    818819__ZN7WebCore9PageGroup14addVisitedLinkEPKtm
    819820__ZN7WebCore9PageGroup17closeLocalStorageEv
  • trunk/WebCore/WebCore.xcodeproj/project.pbxproj

    r64517 r64518  
    11121112                514C767E0CE923A1007EF3CD /* ResourceResponseBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514C76690CE923A1007EF3CD /* ResourceResponseBase.cpp */; };
    11131113                514C767F0CE923A1007EF3CD /* ResourceResponseBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C766A0CE923A1007EF3CD /* ResourceResponseBase.h */; settings = {ATTRIBUTES = (Private, ); }; };
     1114                515788C11207852C00A37C4A /* VisitedLinkStrategy.h in Headers */ = {isa = PBXBuildFile; fileRef = 515788C01207852C00A37C4A /* VisitedLinkStrategy.h */; settings = {ATTRIBUTES = (Private, ); }; };
    11141115                515B03990CD1642A00B7EA9C /* SQLStatement.h in Headers */ = {isa = PBXBuildFile; fileRef = 515B03970CD1642A00B7EA9C /* SQLStatement.h */; settings = {ATTRIBUTES = (Private, ); }; };
    11151116                515B039A0CD1642A00B7EA9C /* SQLStatement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 515B03980CD1642A00B7EA9C /* SQLStatement.cpp */; };
     
    68776878                5150C2A10702629000AF642C /* WebDashboardRegion.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebDashboardRegion.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
    68786879                5150C2A50702629800AF642C /* WebDashboardRegion.m */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WebDashboardRegion.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
     6880                515788C01207852C00A37C4A /* VisitedLinkStrategy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VisitedLinkStrategy.h; sourceTree = "<group>"; };
    68796881                515B03970CD1642A00B7EA9C /* SQLStatement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SQLStatement.h; sourceTree = "<group>"; };
    68806882                515B03980CD1642A00B7EA9C /* SQLStatement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SQLStatement.cpp; sourceTree = "<group>"; };
     
    1638016382                                2E3BBF051162DA1100B9409A /* UUID.cpp */,
    1638116383                                2E3BBF061162DA1100B9409A /* UUID.h */,
     16384                                515788C01207852C00A37C4A /* VisitedLinkStrategy.h */,
    1638216385                                9380F47109A11AB4001FDB34 /* Widget.cpp */,
    1638316386                                9380F47209A11AB4001FDB34 /* Widget.h */,
     
    1996319966                                97DD4D870FDF4D6E00ECF9A4 /* XSSAuditor.h in Headers */,
    1996419967                                CE172E011136E8CE0062A533 /* ZoomMode.h in Headers */,
     19968                                515788C11207852C00A37C4A /* VisitedLinkStrategy.h in Headers */,
    1996519969                                D39D006D11F8E308006041F2 /* PopupMenuMac.h in Headers */,
    1996619970                                D39D009D11F907E6006041F2 /* SearchPopupMenuMac.h in Headers */,
  • trunk/WebCore/css/CSSStyleSelector.cpp

    r63957 r64518  
    9898#include <wtf/Vector.h>
    9999
     100#if USE(PLATFORM_STRATEGIES)
     101#include "PlatformStrategies.h"
     102#include "VisitedLinkStrategy.h"
     103#endif
     104
    100105#if ENABLE(DASHBOARD_SUPPORT)
    101106#include "DashboardRegion.h"
     
    930935
    931936    m_linksCheckedForVisitedState.add(hash);
     937
     938#if USE(PLATFORM_STRATEGIES)
     939    return platformStrategies()->visitedLinkStrategy()->isLinkVisited(page, hash) ? InsideVisitedLink : InsideUnvisitedLink;
     940#else
    932941    return page->group().isLinkVisited(hash) ? InsideVisitedLink : InsideUnvisitedLink;
     942#endif
    933943}
    934944
  • trunk/WebCore/loader/HistoryController.cpp

    r64402 r64518  
    4949#include <wtf/text/CString.h>
    5050
     51#if USE(PLATFORM_STRATEGIES)
     52#include "PlatformStrategies.h"
     53#include "VisitedLinkStrategy.h"
     54#endif
     55
    5156namespace WebCore {
     57
     58static inline void addVisitedLink(Page* page, const KURL& url)
     59{
     60#if USE(PLATFORM_STRATEGIES)
     61    platformStrategies()->visitedLinkStrategy()->addVisitedLink(page, visitedLinkHash(url.string().characters(), url.string().length()));
     62#else
     63    page->group().addVisitedLink(url);
     64#endif
     65}
    5266
    5367HistoryController::HistoryController(Frame* frame)
     
    291305    if (!historyURL.isEmpty() && !needPrivacy) {
    292306        if (Page* page = m_frame->page())
    293             page->group().addVisitedLink(historyURL);
     307            addVisitedLink(page, historyURL);
    294308
    295309        if (!frameLoader->documentLoader()->didCreateGlobalHistoryEntry() && frameLoader->documentLoader()->unreachableURL().isEmpty() && !frameLoader->url().isEmpty())
     
    335349    if (!historyURL.isEmpty() && !needPrivacy) {
    336350        if (Page* page = m_frame->page())
    337             page->group().addVisitedLink(historyURL);
     351            addVisitedLink(page, historyURL);
    338352
    339353        if (!m_frame->loader()->documentLoader()->didCreateGlobalHistoryEntry() && m_frame->loader()->documentLoader()->unreachableURL().isEmpty() && !m_frame->loader()->url().isEmpty())
     
    362376    if (!historyURL.isEmpty() && !needPrivacy) {
    363377        if (Page* page = m_frame->page())
    364             page->group().addVisitedLink(historyURL);
     378            addVisitedLink(page, historyURL);
    365379    }
    366380}
     
    400414        return;
    401415
    402     page->group().addVisitedLink(m_frame->loader()->url());
     416    addVisitedLink(page, m_frame->loader()->url());
    403417}
    404418
  • trunk/WebCore/platform/PlatformStrategies.h

    r63911 r64518  
    3333class PluginStrategy;
    3434class LocalizationStrategy;
     35class VisitedLinkStrategy;
    3536
    3637class PlatformStrategies {
     
    5051    }
    5152
     53    VisitedLinkStrategy* visitedLinkStrategy()
     54    {
     55        if (!m_visitedLinkStrategy)
     56            m_visitedLinkStrategy = createVisitedLinkStrategy();
     57        return m_visitedLinkStrategy;
     58    }
     59
    5260protected:
    5361    PlatformStrategies()
    54         : m_pluginStrategy(0),
    55           m_localizationStrategy(0)
     62        : m_pluginStrategy(0)
     63        , m_localizationStrategy(0)
     64        , m_visitedLinkStrategy(0)
    5665    {
    5766    }
     
    6473    virtual PluginStrategy* createPluginStrategy() = 0;
    6574    virtual LocalizationStrategy* createLocalizationStrategy() = 0;
     75    virtual VisitedLinkStrategy* createVisitedLinkStrategy() = 0;
    6676
    6777    PluginStrategy* m_pluginStrategy;
    6878    LocalizationStrategy* m_localizationStrategy;
     79    VisitedLinkStrategy* m_visitedLinkStrategy;
    6980};
    7081
  • trunk/WebKit/mac/ChangeLog

    r64513 r64518  
     12010-08-02  Brady Eidson  <beidson@apple.com>
     2
     3        Reviewed by Anders Carlsson.
     4
     5        Add VisitedLinkStrategy for each platform to implement
     6        https://bugs.webkit.org/show_bug.cgi?id=43393
     7
     8        * WebCoreSupport/WebPlatformStrategies.h:
     9        * WebCoreSupport/WebPlatformStrategies.mm:
     10        (WebPlatformStrategies::createVisitedLinkStrategy):
     11        (WebPlatformStrategies::isLinkVisited): Call back into PageGroup's visited links.
     12        (WebPlatformStrategies::addVisitedLink): Ditto.
     13
    1142010-07-27  Luiz Agostini  <luiz.agostini@openbossa.org>
    215
  • trunk/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h

    r63904 r64518  
    3030#include <WebCore/PluginStrategy.h>
    3131#include <WebCore/LocalizationStrategy.h>
     32#include <WebCore/VisitedLinkStrategy.h>
    3233
    33 class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::PluginStrategy, private WebCore::LocalizationStrategy {
     34class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::PluginStrategy, private WebCore::LocalizationStrategy, private WebCore::VisitedLinkStrategy {
    3435public:
    3536    static void initialize();
     
    4142    virtual WebCore::PluginStrategy* createPluginStrategy();
    4243    virtual WebCore::LocalizationStrategy* createLocalizationStrategy();
     44    virtual WebCore::VisitedLinkStrategy* createVisitedLinkStrategy();
    4345
    4446    // WebCore::PluginStrategy
     
    149151    virtual WebCore::String validationMessageRangeOverflowText();
    150152    virtual WebCore::String validationMessageStepMismatchText();
     153
     154    // WebCore::VisitedLinkStrategy
     155    virtual bool isLinkVisited(WebCore::Page*, WebCore::LinkHash);
     156    virtual void addVisitedLink(WebCore::Page*, WebCore::LinkHash);
    151157};
    152158
  • trunk/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm

    r63904 r64518  
    3131#import <WebCore/BlockExceptions.h>
    3232#import <WebCore/IntSize.h>
     33#import <WebCore/Page.h>
     34#import <WebCore/PageGroup.h>
    3335#import <wtf/StdLibExtras.h>
    3436
     
    5759
    5860LocalizationStrategy* WebPlatformStrategies::createLocalizationStrategy()
     61{
     62    return this;
     63}
     64
     65VisitedLinkStrategy* WebPlatformStrategies::createVisitedLinkStrategy()
    5966{
    6067    return this;
     
    763770}
    764771
     772// VisitedLinkStrategy
     773bool WebPlatformStrategies::isLinkVisited(Page* page, LinkHash hash)
     774{
     775    return page->group().isLinkVisited(hash);
     776}
     777
     778void WebPlatformStrategies::addVisitedLink(Page* page, LinkHash hash)
     779{
     780    return page->group().addVisitedLinkHash(hash);
     781}
  • trunk/WebKit2/ChangeLog

    r64513 r64518  
     12010-08-02  Brady Eidson  <beidson@apple.com>
     2
     3        Reviewed by Anders Carlsson.
     4
     5        Add VisitedLinkStrategy for each platform to implement
     6        https://bugs.webkit.org/show_bug.cgi?id=43393
     7
     8        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
     9        (WebKit::WebPlatformStrategies::createVisitedLinkStrategy):
     10        (WebKit::WebPlatformStrategies::isLinkVisited): Call back into PageGroup's visited links, for now.
     11        (WebKit::WebPlatformStrategies::addVisitedLink): Ditto.
     12        * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
     13
    1142010-07-27  Luiz Agostini  <luiz.agostini@openbossa.org>
    215
  • trunk/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp

    r63904 r64518  
    3333#include "WebProcess.h"
    3434#include "WebProcessProxyMessageKinds.h"
     35#include <WebCore/Page.h>
     36#include <WebCore/PageGroup.h>
    3537#include <wtf/MathExtras.h>
    3638#include <wtf/text/CString.h>
     
    6466
    6567LocalizationStrategy* WebPlatformStrategies::createLocalizationStrategy()
     68{
     69    return this;
     70}
     71
     72VisitedLinkStrategy* WebPlatformStrategies::createVisitedLinkStrategy()
    6673{
    6774    return this;
     
    801808}
    802809
     810// VisitedLinkStrategy
     811bool WebPlatformStrategies::isLinkVisited(Page* page, LinkHash hash)
     812{
     813    // FIXME: Have WebKit2 manage its own visited links
     814    return page->group().isLinkVisited(hash);
     815}
     816
     817void WebPlatformStrategies::addVisitedLink(Page* page, LinkHash hash)
     818{
     819    // FIXME: Have WebKit2 manage its own visited links
     820    return page->group().addVisitedLinkHash(hash);
     821}
     822
    803823} // namespace WebKit
    804824
  • trunk/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h

    r63904 r64518  
    3232#include <WebCore/PluginStrategy.h>
    3333#include <WebCore/LocalizationStrategy.h>
     34#include <WebCore/VisitedLinkStrategy.h>
    3435
    3536namespace WebKit {
    3637
    37 class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::PluginStrategy, private WebCore::LocalizationStrategy {
     38class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::PluginStrategy, private WebCore::LocalizationStrategy, private WebCore::VisitedLinkStrategy {
    3839public:
    3940    static void initialize();
     
    4546    virtual WebCore::PluginStrategy* createPluginStrategy();
    4647    virtual WebCore::LocalizationStrategy* createLocalizationStrategy();
     48    virtual WebCore::VisitedLinkStrategy* createVisitedLinkStrategy();
    4749
    4850    // WebCore::PluginStrategy
     
    171173    bool m_shouldRefreshPlugins;
    172174    Vector<WebCore::PluginInfo> m_cachedPlugins;
     175
     176    // WebCore::VisitedLinkStrategy
     177    virtual bool isLinkVisited(WebCore::Page*, WebCore::LinkHash);
     178    virtual void addVisitedLink(WebCore::Page*, WebCore::LinkHash);
    173179};
    174180
Note: See TracChangeset for help on using the changeset viewer.