Reviewed by Chris
authorkocienda <kocienda@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 27 Aug 2004 19:07:19 +0000 (19:07 +0000)
committerkocienda <kocienda@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 27 Aug 2004 19:07:19 +0000 (19:07 +0000)
        Fix for this bug:

        <rdar://problem/3756997> WebKit aggressive in making pasted text into a URL, even when it's not much like a URL

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): Don't try so hard to coerce data
        on the pasteboard into a URL, and do not make an anchor with an href for any URLs that are
        explicitly present on the pasteboard. Also, move URL pasteboard type check beneath the RTF
        checks.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7390 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit/ChangeLog
WebKit/WebView.subproj/WebHTMLView.m

index 2fd1513263275a50532acddedc77d1367b739444..fa76e5acc057ccfda96aca8bebdb58f73da22ed4 100644 (file)
@@ -1,3 +1,17 @@
+2004-08-27  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by Chris
+
+        Fix for this bug:
+        
+        <rdar://problem/3756997> WebKit aggressive in making pasted text into a URL, even when it's not much like a URL
+
+        * WebView.subproj/WebHTMLView.m:
+        (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): Don't try so hard to coerce data
+        on the pasteboard into a URL, and do not make an anchor with an href for any URLs that are 
+        explicitly present on the pasteboard. Also, move URL pasteboard type check beneath the RTF
+        checks.
+
 === Safari-161 ===
 
 2004-08-26  Chris Blumenberg  <cblu@apple.com>
index 16672f3c0d98a06c4544e36d60a36c86fb143e0a..f28a8a29eb3704b3fdaf27f526bb9ba1769bf976 100644 (file)
@@ -282,20 +282,6 @@ static WebElementOrTextFilter *elementOrTextFilterInstance = nil;
         return fragment;
     }
     
-    if ((URL = [pasteboard _web_bestURL])) {
-        NSString *URLString = [URL _web_originalDataAsString];
-        NSString *linkLabel = [pasteboard stringForType:WebURLNamePboardType];
-        linkLabel = [linkLabel length] > 0 ? linkLabel : URLString;
-
-        DOMDocument *document = [[self _bridge] DOMDocument];
-        DOMDocumentFragment *fragment = [document createDocumentFragment];
-        DOMElement *anchorElement = [document createElement:@"a"];
-        [anchorElement setAttribute:@"href" :URLString];
-        [fragment appendChild:anchorElement];
-        [anchorElement appendChild:[document createTextNode:linkLabel]];
-        return fragment;
-    }
-    
 #ifdef BUILT_ON_TIGER_OR_LATER
     NSAttributedString *string = nil;
     if ([types containsObject:NSRTFDPboardType]) {
@@ -324,6 +310,13 @@ static WebElementOrTextFilter *elementOrTextFilterInstance = nil;
     }
 #endif
     
+    if ((URL = [NSURL URLFromPasteboard:pasteboard])) {
+        NSString *URLString = [URL _web_userVisibleString];
+        if ([URLString length] > 0) {
+            return [[self _bridge] documentFragmentWithText:URLString];
+        }
+    }
+    
     if (allowPlainText && [types containsObject:NSStringPboardType]) {
         return [[self _bridge] documentFragmentWithText:[pasteboard stringForType:NSStringPboardType]];
     }