- 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);
}