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):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@111614
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2012-03-21 Enrica Casucci <enrica@apple.com>
+
+ 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 <leviw@chromium.org>
Correct LayoutUnit usage in VisiblePosition.cpp
}
if (types.contains(WebURLsWithTitlesPboardType)) {
Vector<String> paths;
- paths.append(userVisibleString);
+ paths.append([cocoaURL absoluteString]);
paths.append(titleStr.stripWhiteSpace());
platformStrategies()->pasteboardStrategy()->setPathnamesForType(paths, WebURLsWithTitlesPboardType, pasteboardName);
}
+2012-03-21 Enrica Casucci <enrica@apple.com>
+
+ 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 <achicu@adobe.com>
[CSS Shaders] Make CSS Shaders compile on Chromium
-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://www.webkit.org/'>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='http://www.webkit.org/'>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://xn--ls8h.la/'>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
#import "WTFStringUtilities.h"
#import <WebKit/WebViewPrivate.h>
+#import <WebKit/WebURLsWithTitles.h>
#import <WebKit/DOM.h>
#import <Carbon/Carbon.h>
#import <wtf/RetainPtr.h>
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
Util::run(&didFinishLoad);
- contextMenuCopyLink(webView.get());
+ contextMenuCopyLink(webView.get(), 0);
NSURL *url = [NSURL 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