Title: [111614] trunk
Revision
111614
Author
[email protected]
Date
2012-03-21 15:46:49 -0700 (Wed, 21 Mar 2012)

Log Message

WebKitURLWithTitles pasteboard format should support URLs containing Emoji characters.
https://bugs.webkit.org/show_bug.cgi?id=81835
<rdar://problem/11082749>

Reviewed by Brady Eidson.

Source/WebCore: 

When writing the URL in the pasteboard for the WebURLWithTitles format,
we use the user visible string instead of the original URL.
In case of URL with Unicode characters, we lose the encoding.
        
Added TestWebKitAPI test.

* platform/mac/PasteboardMac.mm:
(WebCore::writeURLForTypes): Writes to the pasteboard the original URL.

Tools: 

* TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.html:
* TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.mm:
(TestWebKitAPI::contextMenuCopyLink):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (111613 => 111614)


--- trunk/Source/WebCore/ChangeLog	2012-03-21 22:42:25 UTC (rev 111613)
+++ trunk/Source/WebCore/ChangeLog	2012-03-21 22:46:49 UTC (rev 111614)
@@ -1,3 +1,20 @@
+2012-03-21  Enrica Casucci  <[email protected]>
+
+        WebKitURLWithTitles pasteboard format should support URLs containing Emoji characters.
+        https://bugs.webkit.org/show_bug.cgi?id=81835
+        <rdar://problem/11082749>
+
+        Reviewed by Brady Eidson.
+
+        When writing the URL in the pasteboard for the WebURLWithTitles format,
+        we use the user visible string instead of the original URL.
+        In case of URL with Unicode characters, we lose the encoding.
+        
+        Added TestWebKitAPI test.
+
+        * platform/mac/PasteboardMac.mm:
+        (WebCore::writeURLForTypes): Writes to the pasteboard the original URL.
+
 2012-03-21  Levi Weintraub  <[email protected]>
 
         Correct LayoutUnit usage in VisiblePosition.cpp

Modified: trunk/Source/WebCore/platform/mac/PasteboardMac.mm (111613 => 111614)


--- trunk/Source/WebCore/platform/mac/PasteboardMac.mm	2012-03-21 22:42:25 UTC (rev 111613)
+++ trunk/Source/WebCore/platform/mac/PasteboardMac.mm	2012-03-21 22:46:49 UTC (rev 111614)
@@ -225,7 +225,7 @@
     }
     if (types.contains(WebURLsWithTitlesPboardType)) {
         Vector<String> paths;
-        paths.append(userVisibleString);
+        paths.append([cocoaURL absoluteString]);
         paths.append(titleStr.stripWhiteSpace());
         platformStrategies()->pasteboardStrategy()->setPathnamesForType(paths, WebURLsWithTitlesPboardType, pasteboardName);
     }

Modified: trunk/Tools/ChangeLog (111613 => 111614)


--- trunk/Tools/ChangeLog	2012-03-21 22:42:25 UTC (rev 111613)
+++ trunk/Tools/ChangeLog	2012-03-21 22:46:49 UTC (rev 111614)
@@ -1,3 +1,15 @@
+2012-03-21  Enrica Casucci  <[email protected]>
+
+        WebKitURLWithTitles pasteboard format should support URLs containing Emoji characters.
+        https://bugs.webkit.org/show_bug.cgi?id=81835
+        <rdar://problem/11082749>
+
+        Reviewed by Brady Eidson.
+
+        * TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.html:
+        * TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.mm:
+        (TestWebKitAPI::contextMenuCopyLink):
+
 2012-03-21  Alexandru Chiculita  <[email protected]>
 
         [CSS Shaders] Make CSS Shaders compile on Chromium

Modified: trunk/Tools/TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.html (111613 => 111614)


--- trunk/Tools/TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.html	2012-03-21 22:42:25 UTC (rev 111613)
+++ trunk/Tools/TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.html	2012-03-21 22:46:49 UTC (rev 111614)
@@ -1 +1,4 @@
-Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<a href=''>Click me</a>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\ No newline at end of file
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+</head>
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<a href=''>Click me</a>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<a href=''>http://💩.la</a>.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\ No newline at end of file

Modified: trunk/Tools/TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.mm (111613 => 111614)


--- trunk/Tools/TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.mm	2012-03-21 22:42:25 UTC (rev 111613)
+++ trunk/Tools/TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.mm	2012-03-21 22:46:49 UTC (rev 111614)
@@ -29,6 +29,7 @@
 #import "WTFStringUtilities.h"
 
 #import <WebKit/WebViewPrivate.h>
+#import <WebKit/WebURLsWithTitles.h>
 #import <WebKit/DOM.h>
 #import <Carbon/Carbon.h>
 #import <wtf/RetainPtr.h>
@@ -51,13 +52,13 @@
 
 namespace TestWebKitAPI {
 
-static void contextMenuCopyLink(WebView* webView)
+static void contextMenuCopyLink(WebView* webView, int itemIndex)
 {
     [[[[webView mainFrame] frameView] documentView] layout];
     
     DOMDocument *document = [[webView mainFrame] DOMDocument];
     DOMElement *documentElement = [document documentElement];
-    DOMHTMLAnchorElement *anchor = (DOMHTMLAnchorElement *)[documentElement querySelector:@"a"];
+    DOMHTMLAnchorElement *anchor = (DOMHTMLAnchorElement *)[[documentElement querySelectorAll:@"a"] item:itemIndex];
 
     NSWindow *window = [webView window];
     NSEvent *event = [NSEvent mouseEventWithType:NSRightMouseDown
@@ -98,10 +99,17 @@
     
     Util::run(&didFinishLoad);
 
-    contextMenuCopyLink(webView.get());
+    contextMenuCopyLink(webView.get(), 0);
     
     NSURL *url = "" URLFromPasteboard:[NSPasteboard generalPasteboard]];
     EXPECT_EQ(String("http://www.webkit.org/"), String([url absoluteString]));
+
+    contextMenuCopyLink(webView.get(), 1);
+    
+    NSArray * urls = [WebURLsWithTitles URLsFromPasteboard: [NSPasteboard generalPasteboard]];
+    NSArray * titles = [WebURLsWithTitles titlesFromPasteboard: [NSPasteboard generalPasteboard]];
+    EXPECT_WK_STREQ(@"http://xn--ls8h.la/", [[urls objectAtIndex:0] absoluteString]);
+    EXPECT_WK_STREQ(@"http://💩.la", [titles objectAtIndex:0]);
 }
 
 } // namespace TestWebKitAPI
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to