зеркало из https://github.com/mozilla/pjs.git
Bug 673301, crash using non-string data with text/plain drags, r=josh
This commit is contained in:
Родитель
38ac18531e
Коммит
29b125897b
|
@ -53,8 +53,8 @@ function testCopyPaste () {
|
||||||
|
|
||||||
function copySelectionToClipboard() {
|
function copySelectionToClipboard() {
|
||||||
documentViewer.copySelection();
|
documentViewer.copySelection();
|
||||||
is(clipboard.hasDataMatchingFlavors(["text/unicode"], 1,1), true);
|
ok(clipboard.hasDataMatchingFlavors(["text/unicode"], 1,1), "check text/unicode");
|
||||||
is(clipboard.hasDataMatchingFlavors(["text/html"], 1,1), true);
|
ok(clipboard.hasDataMatchingFlavors(["text/html"], 1,1), "check text/html");
|
||||||
}
|
}
|
||||||
function copyToClipboard(node) {
|
function copyToClipboard(node) {
|
||||||
textarea.blur();
|
textarea.blur();
|
||||||
|
|
|
@ -428,8 +428,13 @@ nsClipboard::PasteboardDictFromTransferable(nsITransferable* aTransferable)
|
||||||
nsCOMPtr<nsISupports> genericDataWrapper;
|
nsCOMPtr<nsISupports> genericDataWrapper;
|
||||||
rv = aTransferable->GetTransferData(flavorStr, getter_AddRefs(genericDataWrapper), &dataSize);
|
rv = aTransferable->GetTransferData(flavorStr, getter_AddRefs(genericDataWrapper), &dataSize);
|
||||||
nsPrimitiveHelpers::CreateDataFromPrimitive(flavorStr, genericDataWrapper, &data, dataSize);
|
nsPrimitiveHelpers::CreateDataFromPrimitive(flavorStr, genericDataWrapper, &data, dataSize);
|
||||||
|
|
||||||
|
NSString* nativeString;
|
||||||
|
if (data)
|
||||||
|
nativeString = [NSString stringWithCharacters:(const unichar*)data length:(dataSize / sizeof(PRUnichar))];
|
||||||
|
else
|
||||||
|
nativeString = [NSString string];
|
||||||
|
|
||||||
NSString* nativeString = [NSString stringWithCharacters:(const unichar*)data length:(dataSize / sizeof(PRUnichar))];
|
|
||||||
// be nice to Carbon apps, normalize the receiver's contents using Form C.
|
// be nice to Carbon apps, normalize the receiver's contents using Form C.
|
||||||
nativeString = [nativeString precomposedStringWithCanonicalMapping];
|
nativeString = [nativeString precomposedStringWithCanonicalMapping];
|
||||||
|
|
||||||
|
|
|
@ -110,6 +110,7 @@ _CHROME_FILES += native_menus_window.xul \
|
||||||
test_key_event_counts.xul \
|
test_key_event_counts.xul \
|
||||||
test_bug596600.xul \
|
test_bug596600.xul \
|
||||||
window_bug596600.xul \
|
window_bug596600.xul \
|
||||||
|
test_bug673301.xul \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||||
|
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||||
|
type="text/css"?>
|
||||||
|
|
||||||
|
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||||
|
|
||||||
|
<script type="application/javascript" src="chrome://mochikit/content/MochiKit/packed.js"/>
|
||||||
|
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||||
|
|
||||||
|
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<p id="display"></p>
|
||||||
|
<div id="content" style="display: none"/>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
<script type="application/javascript">
|
||||||
|
var clipboard = Components.classes["@mozilla.org/widget/clipboard;1"]
|
||||||
|
.getService(Components.interfaces.nsIClipboard);
|
||||||
|
|
||||||
|
var transferable = Components.classes['@mozilla.org/widget/transferable;1']
|
||||||
|
.createInstance(Components.interfaces.nsITransferable);
|
||||||
|
|
||||||
|
transferable.addDataFlavor("text/unicode");
|
||||||
|
transferable.setTransferData("text/unicode", document, 4);
|
||||||
|
|
||||||
|
clipboard.setData(transferable, null, Components.interfaces.nsIClipboard.kGlobalClipboard);
|
||||||
|
|
||||||
|
SimpleTest.ok(true, "Didn't crash setting non-text data for text/unicode type");
|
||||||
|
</script>
|
||||||
|
</window>
|
Загрузка…
Ссылка в новой задаче