зеркало из 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() {
|
||||
documentViewer.copySelection();
|
||||
is(clipboard.hasDataMatchingFlavors(["text/unicode"], 1,1), true);
|
||||
is(clipboard.hasDataMatchingFlavors(["text/html"], 1,1), true);
|
||||
ok(clipboard.hasDataMatchingFlavors(["text/unicode"], 1,1), "check text/unicode");
|
||||
ok(clipboard.hasDataMatchingFlavors(["text/html"], 1,1), "check text/html");
|
||||
}
|
||||
function copyToClipboard(node) {
|
||||
textarea.blur();
|
||||
|
|
|
@ -428,8 +428,13 @@ nsClipboard::PasteboardDictFromTransferable(nsITransferable* aTransferable)
|
|||
nsCOMPtr<nsISupports> genericDataWrapper;
|
||||
rv = aTransferable->GetTransferData(flavorStr, getter_AddRefs(genericDataWrapper), &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.
|
||||
nativeString = [nativeString precomposedStringWithCanonicalMapping];
|
||||
|
||||
|
|
|
@ -110,6 +110,7 @@ _CHROME_FILES += native_menus_window.xul \
|
|||
test_key_event_counts.xul \
|
||||
test_bug596600.xul \
|
||||
window_bug596600.xul \
|
||||
test_bug673301.xul \
|
||||
$(NULL)
|
||||
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>
|
Загрузка…
Ссылка в новой задаче