2010-09-23  Nate Chapin  <japhet@chromium.org>

        Reviewed by Darin Fisher.
        
        Implement <a ping> (disabled by default).
        https://bugs.webkit.org/show_bug.cgi?id=30458
        
        Tests: http/tests/navigation/ping-cross-origin-from-https.html
               http/tests/navigation/ping-cross-origin.html
               http/tests/navigation/ping-same-origin.html

        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::defaultEventHandler):
        (WebCore::HTMLAnchorElement::sendPings):
        * html/HTMLAnchorElement.h:
        * html/HTMLAttributeNames.in:
        * loader/PingLoader.cpp:
        (WebCore::PingLoader::sendPing): Set ping-specific headers.
        (WebCore::PingLoader::PingLoader):
        * loader/PingLoader.h:
        (WebCore::PingLoader::timeout): Ensure pings eventually timeout, since
            the normal cancel mechanism can't stop them.
        * page/Settings.cpp:
        * page/Settings.h: Add hyperlinkAuditingEnabled.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68166 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit/mac/WebView/WebPreferences.mm b/WebKit/mac/WebView/WebPreferences.mm
index 87284bb..2ddd8b3 100644
--- a/WebKit/mac/WebView/WebPreferences.mm
+++ b/WebKit/mac/WebView/WebPreferences.mm
@@ -368,6 +368,7 @@
         [NSNumber numberWithBool:YES],  WebKitDNSPrefetchingEnabledPreferenceKey,
         [NSNumber numberWithBool:NO],   WebKitFullScreenEnabledPreferenceKey,
         [NSNumber numberWithBool:NO],   WebKitMemoryInfoEnabledPreferenceKey,
+        [NSNumber numberWithBool:NO],   WebKitHyperlinkAuditingEnabledPreferenceKey,
         [NSNumber numberWithBool:NO],   WebKitUsePreHTML5ParserQuirksKey,
         [NSNumber numberWithLongLong:WebCore::ApplicationCacheStorage::noQuota()], WebKitApplicationCacheTotalQuota,
         [NSNumber numberWithLongLong:WebCore::ApplicationCacheStorage::noQuota()], WebKitApplicationCacheDefaultOriginQuota,
@@ -1332,6 +1333,16 @@
     [self _setBoolValue:flag forKey:WebKitMemoryInfoEnabledPreferenceKey];
 }
 
+- (BOOL)hyperlinkAuditingEnabled
+{
+    return [self _boolValueForKey:WebKitHyperlinkAuditingEnabledPreferenceKey];
+}
+
+- (void)setHyperlinkAuditingEnabled:(BOOL)flag
+{
+    [self _setBoolValue:flag forKey:WebKitHyperlinkAuditingEnabledPreferenceKey];
+}
+
 - (WebKitEditingBehavior)editingBehavior
 {
     return static_cast<WebKitEditingBehavior>([self _integerValueForKey:WebKitEditingBehaviorPreferenceKey]);