Title: [131955] trunk/Source
Revision
131955
Author
msab...@apple.com
Date
2012-10-19 16:21:40 -0700 (Fri, 19 Oct 2012)

Log Message

Add String version of visitedLinkHash() to properly handle 8-bit URL Strings.
https://bugs.webkit.org/show_bug.cgi?id=99735

Reviewed by Filip Pizlo.

Added String version of visitedLinkHash().  Made speculative addition of visitedLinkHash()
to chromium platform version of LinkHashChromium.cpp.
Changed calls in the form of visitedLinkHash(string.characters(), string.length()) to use the
new form.

No changes to functionality, so no new tests.

* WebCore.exp.in:
* loader/HistoryController.cpp:
(WebCore::addVisitedLink):
* page/PageGroup.cpp:
(WebCore::PageGroup::addVisitedLink):
* platform/LinkHash.cpp:
(WebCore::visitedLinkHashInline):
(WebCore::visitedLinkHash):
* platform/LinkHash.h:
* platform/chromium/LinkHashChromium.cpp:
(WebCore::visitedLinkHash):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (131954 => 131955)


--- trunk/Source/WebCore/ChangeLog	2012-10-19 23:19:40 UTC (rev 131954)
+++ trunk/Source/WebCore/ChangeLog	2012-10-19 23:21:40 UTC (rev 131955)
@@ -1,5 +1,31 @@
 2012-10-19  Michael Saboff  <msab...@apple.com>
 
+        Add String version of visitedLinkHash() to properly handle 8-bit URL Strings.
+        https://bugs.webkit.org/show_bug.cgi?id=99735
+
+        Reviewed by Filip Pizlo.
+
+        Added String version of visitedLinkHash().  Made speculative addition of visitedLinkHash()
+        to chromium platform version of LinkHashChromium.cpp.
+        Changed calls in the form of visitedLinkHash(string.characters(), string.length()) to use the
+        new form.
+
+        No changes to functionality, so no new tests.
+
+        * WebCore.exp.in:
+        * loader/HistoryController.cpp:
+        (WebCore::addVisitedLink):
+        * page/PageGroup.cpp:
+        (WebCore::PageGroup::addVisitedLink):
+        * platform/LinkHash.cpp:
+        (WebCore::visitedLinkHashInline):
+        (WebCore::visitedLinkHash):
+        * platform/LinkHash.h:
+        * platform/chromium/LinkHashChromium.cpp:
+        (WebCore::visitedLinkHash):
+
+2012-10-19  Michael Saboff  <msab...@apple.com>
+
         String(CFStringRef) should try to converting to an 8 bit string before converting to  16 bit string
         https://bugs.webkit.org/show_bug.cgi?id=99794
 

Modified: trunk/Source/WebCore/WebCore.exp.in (131954 => 131955)


--- trunk/Source/WebCore/WebCore.exp.in	2012-10-19 23:19:40 UTC (rev 131954)
+++ trunk/Source/WebCore/WebCore.exp.in	2012-10-19 23:21:40 UTC (rev 131955)
@@ -400,6 +400,7 @@
 __ZN7WebCore15setDOMExceptionEPN3JSC9ExecStateEi
 __ZN7WebCore15toDOMStringListEPN3JSC9ExecStateENS0_7JSValueE
 __ZN7WebCore15visitedLinkHashEPKtj
+__ZN7WebCore15visitedLinkHashERKN3WTF6StringE
 __ZN7WebCore16AbstractDatabase14setIsAvailableEb
 __ZN7WebCore16ApplicationCache18diskUsageForOriginEPNS_14SecurityOriginE
 __ZN7WebCore16ApplicationCache20deleteCacheForOriginEPNS_14SecurityOriginE

Modified: trunk/Source/WebCore/loader/HistoryController.cpp (131954 => 131955)


--- trunk/Source/WebCore/loader/HistoryController.cpp	2012-10-19 23:19:40 UTC (rev 131954)
+++ trunk/Source/WebCore/loader/HistoryController.cpp	2012-10-19 23:21:40 UTC (rev 131955)
@@ -60,7 +60,7 @@
 static inline void addVisitedLink(Page* page, const KURL& url)
 {
 #if USE(PLATFORM_STRATEGIES)
-    platformStrategies()->visitedLinkStrategy()->addVisitedLink(page, visitedLinkHash(url.string().characters(), url.string().length()));
+    platformStrategies()->visitedLinkStrategy()->addVisitedLink(page, visitedLinkHash(url.string()));
 #else
     page->group().addVisitedLink(url);
 #endif

Modified: trunk/Source/WebCore/page/PageGroup.cpp (131954 => 131955)


--- trunk/Source/WebCore/page/PageGroup.cpp	2012-10-19 23:19:40 UTC (rev 131954)
+++ trunk/Source/WebCore/page/PageGroup.cpp	2012-10-19 23:21:40 UTC (rev 131955)
@@ -210,7 +210,7 @@
     if (!shouldTrackVisitedLinks)
         return;
     ASSERT(!url.isEmpty());
-    addVisitedLink(visitedLinkHash(url.string().characters(), url.string().length()));
+    addVisitedLink(visitedLinkHash(url.string()));
 }
 
 void PageGroup::addVisitedLink(const UChar* characters, size_t length)

Modified: trunk/Source/WebCore/platform/LinkHash.cpp (131954 => 131955)


--- trunk/Source/WebCore/platform/LinkHash.cpp	2012-10-19 23:19:40 UTC (rev 131954)
+++ trunk/Source/WebCore/platform/LinkHash.cpp	2012-10-19 23:21:40 UTC (rev 131955)
@@ -194,11 +194,21 @@
     return pos == length;
 }
 
-static ALWAYS_INLINE LinkHash visitedLinkHashInline(const UChar* url, unsigned length)
+template <typename CharacterType>
+static ALWAYS_INLINE LinkHash visitedLinkHashInline(const CharacterType* url, unsigned length)
 {
     return AlreadyHashed::avoidDeletedValue(StringHasher::computeHash(url, length));
 }
 
+LinkHash visitedLinkHash(const String& url)
+{
+    unsigned length = url.length();
+
+    if (length && url.is8Bit())
+        return visitedLinkHashInline(url.characters8(), length);
+    return visitedLinkHashInline(url.characters(), length);
+}
+
 LinkHash visitedLinkHash(const UChar* url, unsigned length)
 {
     return visitedLinkHashInline(url, length);

Modified: trunk/Source/WebCore/platform/LinkHash.h (131954 => 131955)


--- trunk/Source/WebCore/platform/LinkHash.h	2012-10-19 23:19:40 UTC (rev 131954)
+++ trunk/Source/WebCore/platform/LinkHash.h	2012-10-19 23:21:40 UTC (rev 131955)
@@ -53,7 +53,8 @@
     }
 };
 
-// Returns the has of the string that will be used for visited link coloring.
+// Returns the hash of the string that will be used for visited link coloring.
+LinkHash visitedLinkHash(const String& url);
 LinkHash visitedLinkHash(const UChar* url, unsigned length);
 
 // Resolves the potentially relative URL "attributeURL" relative to the given

Modified: trunk/Source/WebCore/platform/chromium/LinkHashChromium.cpp (131954 => 131955)


--- trunk/Source/WebCore/platform/chromium/LinkHashChromium.cpp	2012-10-19 23:19:40 UTC (rev 131954)
+++ trunk/Source/WebCore/platform/chromium/LinkHashChromium.cpp	2012-10-19 23:21:40 UTC (rev 131955)
@@ -51,6 +51,11 @@
     return WebKit::Platform::current()->visitedLinkHash(buffer.data(), buffer.length());
 }
 
+LinkHash visitedLinkHash(const String& url)
+{
+    return (url.characters(), url.length()); 
+}
+
 LinkHash visitedLinkHash(const KURL& base, const AtomicString& attributeURL)
 {
     // Resolve the relative URL using googleurl and pass the absolute URL up to

Modified: trunk/Source/WebKit2/UIProcess/WebContext.cpp (131954 => 131955)


--- trunk/Source/WebKit2/UIProcess/WebContext.cpp	2012-10-19 23:19:40 UTC (rev 131954)
+++ trunk/Source/WebKit2/UIProcess/WebContext.cpp	2012-10-19 23:21:40 UTC (rev 131955)
@@ -749,7 +749,7 @@
     if (visitedURL.isEmpty())
         return;
 
-    LinkHash linkHash = visitedLinkHash(visitedURL.characters(), visitedURL.length());
+    LinkHash linkHash = visitedLinkHash(visitedURL);
     addVisitedLinkHash(linkHash);
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to