- 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