Changeset 39060 in webkit


Ignore:
Timestamp:
Dec 5, 2008 6:27:15 PM (15 years ago)
Author:
brettw@chromium.org
Message:

Reviewed by Darin Adler.

Make the page group use the proper link hashing functions rather than
calling the string hash functions directly. Add Chromium-specfic ifdefs
in the visited link computation functions to allow integration.

  • page/PageGroup.cpp:

(WebCore::PageGroup::isLinkVisited):
(WebCore::PageGroup::addVisitedLink):

  • platform/LinkHash.cpp:

(WebCore::visitedLinkHash):

  • platform/LinkHash.h:
Location:
trunk/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r39059 r39060  
     12008-12-04  Brett Wilson  <brettw@chromium.org>
     2
     3        Reviewed by Darin Adler.
     4
     5        Make the page group use the proper link hashing functions rather than
     6        calling the string hash functions directly. Add Chromium-specfic ifdefs
     7        in the visited link computation functions to allow integration.
     8
     9        * page/PageGroup.cpp:
     10        (WebCore::PageGroup::isLinkVisited):
     11        (WebCore::PageGroup::addVisitedLink):
     12        * platform/LinkHash.cpp:
     13        (WebCore::visitedLinkHash):
     14        * platform/LinkHash.h:
     15
    1162008-12-05  Chris Marrin  <cmarrin@apple.com>
    217
  • trunk/WebCore/page/PageGroup.cpp

    r38661 r39060  
    3535#include "LocalStorage.h"
    3636#include "StorageArea.h"
     37#endif
     38
     39#if PLATFORM(CHROMIUM)
     40#include "ChromiumBridge.h"
    3741#endif
    3842
     
    120124bool PageGroup::isLinkVisited(LinkHash visitedLinkHash)
    121125{
     126#if PLATFORM(CHROMIUM)
     127    // Use Chromium's built-in visited link database.
     128    return ChromiumBridge::isLinkVisited(visitedLinkHash);
     129#else
    122130    if (!m_visitedLinksPopulated) {
    123131        m_visitedLinksPopulated = true;
     
    126134    }
    127135    return m_visitedLinkHashes.contains(visitedLinkHash);
     136#endif
    128137}
    129138
    130 inline void PageGroup::addVisitedLink(LinkHash stringHash)
     139inline void PageGroup::addVisitedLink(LinkHash hash)
    131140{
    132141    ASSERT(shouldTrackVisitedLinks);
    133     LinkHash visitedLinkHash = LinkHashHash::avoidDeletedValue(stringHash);
    134     if (!m_visitedLinkHashes.add(visitedLinkHash).second)
     142#if !PLATFORM(CHROMIUM)
     143    if (!m_visitedLinkHashes.add(hash).second)
    135144        return;
    136     Page::visitedStateChanged(this, visitedLinkHash);
     145#endif
     146    Page::visitedStateChanged(this, hash);
    137147}
    138148
     
    142152        return;
    143153    ASSERT(!url.isEmpty());
    144     addVisitedLink(url.string().impl()->hash());
     154    addVisitedLink(visitedLinkHash(url.string().characters(), url.string().length()));
    145155}
    146156
     
    149159    if (!shouldTrackVisitedLinks)
    150160        return;
    151     addVisitedLink(StringImpl::computeHash(characters, length));
     161    addVisitedLink(visitedLinkHash(characters, length));
    152162}
    153163
  • trunk/WebCore/platform/LinkHash.cpp

    r38661 r39060  
    2828#include "PlatformString.h"
    2929#include "StringHash.h"
     30#include "StringImpl.h"
    3031
    3132namespace WebCore {
     
    147148}
    148149
     150LinkHash visitedLinkHash(const UChar* url, unsigned length)
     151{
     152  return AlreadyHashed::avoidDeletedValue(StringImpl::computeHash(url, length));
     153}
     154
    149155LinkHash visitedLinkHash(const KURL& base, const AtomicString& attributeURL)
    150156{
     
    168174
    169175    if (hasColonSlashSlash && !needsTrailingSlash(characters, length))
    170         return AlreadyHashed::avoidDeletedValue(attributeURL.string().impl()->hash());
     176        return visitedLinkHash(attributeURL.characters(), attributeURL.length());
    171177
    172178    Vector<UChar, 512> buffer;
     
    177183        buffer.append(characters, length);
    178184        buffer.append('/');
    179         return AlreadyHashed::avoidDeletedValue(StringImpl::computeHash(buffer.data(), buffer.size()));
     185        return visitedLinkHash(buffer.data(), buffer.size());
    180186    }
    181187
     
    199205    }
    200206
    201     return AlreadyHashed::avoidDeletedValue(StringImpl::computeHash(buffer.data(), buffer.size()));
     207    return visitedLinkHash(buffer.data(), buffer.size());
    202208}
    203209
  • trunk/WebCore/platform/LinkHash.h

    r38663 r39060  
    5454};
    5555
     56// Returns the has of the string that will be used for visited link coloring.
     57LinkHash visitedLinkHash(const UChar* url, unsigned length);
     58
    5659// Resolves the potentially relative URL "attributeURL" relative to the given
    5760// base URL, and returns the hash of the string that will be used for visited
Note: See TracChangeset for help on using the changeset viewer.