Skip to content

Commit

Permalink
Bug 1493292 - Remove aDataLen parameters from nsITransferable.getTran…
Browse files Browse the repository at this point in the history
…sferData. r=smaug

Depends on D11200

Differential Revision: https://phabricator.services.mozilla.com/D11201
  • Loading branch information
evilpie committed Nov 20, 2018
1 parent e6d338d commit 6923e48
Show file tree
Hide file tree
Showing 33 changed files with 84 additions and 144 deletions.
5 changes: 2 additions & 3 deletions accessible/tests/mochitest/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -731,13 +731,12 @@ function getTextFromClipboard() {
Services.clipboard.getData(trans, Services.clipboard.kGlobalClipboard);

var str = {};
var strLength = {};
trans.getTransferData("text/unicode", str, strLength);
trans.getTransferData("text/unicode", str);

if (str)
str = str.value.QueryInterface(Ci.nsISupportsString);
if (str)
return str.data.substring(0, strLength.value / 2);
return str.data;

return "";
}
Expand Down
5 changes: 2 additions & 3 deletions browser/base/content/browser.js
Original file line number Diff line number Diff line change
Expand Up @@ -2504,12 +2504,11 @@ function readFromClipboard() {
Services.clipboard.getData(trans, Services.clipboard.kGlobalClipboard);

var data = {};
var dataLen = {};
trans.getTransferData("text/unicode", data, dataLen);
trans.getTransferData("text/unicode", data);

if (data) {
data = data.value.QueryInterface(Ci.nsISupportsString);
url = data.data.substring(0, dataLen.value / 2);
url = data.data;
}
} catch (ex) {
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ add_task(async function copyURL() {
transferable.addDataFlavor(flavor);
Services.clipboard.getData(transferable, Services.clipboard.kGlobalClipboard);
let strObj = {};
transferable.getTransferData(flavor, strObj, {});
transferable.getTransferData(flavor, strObj);
Assert.ok(!!strObj.value);
strObj.value.QueryInterface(Ci.nsISupportsString);
Assert.equal(strObj.value.data, gBrowser.selectedBrowser.currentURI.spec);
Expand Down
2 changes: 1 addition & 1 deletion browser/components/places/content/controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -965,7 +965,7 @@ PlacesController.prototype = {
xferable.init(null);
xferable.addDataFlavor(PlacesUtils.TYPE_X_MOZ_PLACE_ACTION);
this.clipboard.getData(xferable, Ci.nsIClipboard.kGlobalClipboard);
xferable.getTransferData(PlacesUtils.TYPE_X_MOZ_PLACE_ACTION, action, {});
xferable.getTransferData(PlacesUtils.TYPE_X_MOZ_PLACE_ACTION, action);
[action, actionOwner] =
action.value.QueryInterface(Ci.nsISupportsString).data.split(",");
} catch (ex) {
Expand Down
3 changes: 1 addition & 2 deletions browser/extensions/mortar/host/common/ppapi-runtime.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -2618,8 +2618,7 @@ dump(`callFromJSON: < ${JSON.stringify(call)}\n`);
Services.clipboard.getData(
trans, Services.clipboard.kGlobalClipboard);
let str = {};
let strLength = {};
trans.getTransferData("text/unicode", str, strLength);
trans.getTransferData("text/unicode", str);
let pasteText = str.value.QueryInterface(Ci.nsISupportsString).data;
return new String_PP_Var(pasteText);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -165,11 +165,9 @@ async function getImageSizeFromClipboard() {

clip.getData(trans, clipid.kGlobalClipboard);
const data = {};
const dataLength = {};
trans.getTransferData(flavor, data, dataLength);
trans.getTransferData(flavor, data);

ok(data.value, "screenshot exists");
ok(dataLength.value > 0, "screenshot has length");

let image = data.value;

Expand Down
2 changes: 1 addition & 1 deletion devtools/shared/platform/clipboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ function getText() {

const data = {};
try {
xferable.getTransferData(flavor, data, {});
xferable.getTransferData(flavor, data);
} catch (e) {
// Clipboard doesn't contain data in flavor, return null.
return null;
Expand Down
24 changes: 8 additions & 16 deletions dom/base/nsContentAreaDragDrop.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -243,9 +243,7 @@ nsContentAreaDragDropDataProvider::GetFlavorData(nsITransferable *aTransferable,
// get the URI from the kFilePromiseURLMime flavor
NS_ENSURE_ARG(aTransferable);
nsCOMPtr<nsISupports> tmp;
uint32_t dataSize = 0;
aTransferable->GetTransferData(kFilePromiseURLMime,
getter_AddRefs(tmp), &dataSize);
aTransferable->GetTransferData(kFilePromiseURLMime, getter_AddRefs(tmp));
nsCOMPtr<nsISupportsString> supportsString =
do_QueryInterface(tmp);
if (!supportsString)
Expand All @@ -261,7 +259,7 @@ nsContentAreaDragDropDataProvider::GetFlavorData(nsITransferable *aTransferable,
NS_ENSURE_SUCCESS(rv, rv);

aTransferable->GetTransferData(kFilePromiseDestFilename,
getter_AddRefs(tmp), &dataSize);
getter_AddRefs(tmp));
supportsString = do_QueryInterface(tmp);
if (!supportsString)
return NS_ERROR_FAILURE;
Expand All @@ -280,7 +278,7 @@ nsContentAreaDragDropDataProvider::GetFlavorData(nsITransferable *aTransferable,
// content processes.
if (XRE_IsParentProcess()) {
aTransferable->GetTransferData(kImageRequestMime,
getter_AddRefs(tmp), &dataSize);
getter_AddRefs(tmp));
supportsString = do_QueryInterface(tmp);
if (!supportsString)
return NS_ERROR_FAILURE;
Expand Down Expand Up @@ -328,9 +326,8 @@ nsContentAreaDragDropDataProvider::GetFlavorData(nsITransferable *aTransferable,
// get the target directory from the kFilePromiseDirectoryMime
// flavor
nsCOMPtr<nsISupports> dirPrimitive;
dataSize = 0;
aTransferable->GetTransferData(kFilePromiseDirectoryMime,
getter_AddRefs(dirPrimitive), &dataSize);
getter_AddRefs(dirPrimitive));
nsCOMPtr<nsIFile> destDirectory = do_QueryInterface(dirPrimitive);
if (!destDirectory)
return NS_ERROR_FAILURE;
Expand Down Expand Up @@ -794,27 +791,22 @@ DragDataProducer::Produce(DataTransfer* aDataTransfer,

nsCOMPtr<nsISupports> supports;
nsCOMPtr<nsISupportsString> data;
uint32_t dataSize;
rv = transferable->GetTransferData(kHTMLMime, getter_AddRefs(supports),
&dataSize);
rv = transferable->GetTransferData(kHTMLMime, getter_AddRefs(supports));
data = do_QueryInterface(supports);
if (NS_SUCCEEDED(rv)) {
data->GetData(mHtmlString);
}
rv = transferable->GetTransferData(kHTMLContext, getter_AddRefs(supports),
&dataSize);
rv = transferable->GetTransferData(kHTMLContext, getter_AddRefs(supports));
data = do_QueryInterface(supports);
if (NS_SUCCEEDED(rv)) {
data->GetData(mContextString);
}
rv = transferable->GetTransferData(kHTMLInfo, getter_AddRefs(supports),
&dataSize);
rv = transferable->GetTransferData(kHTMLInfo, getter_AddRefs(supports));
data = do_QueryInterface(supports);
if (NS_SUCCEEDED(rv)) {
data->GetData(mInfoString);
}
rv = transferable->GetTransferData(kUnicodeMime, getter_AddRefs(supports),
&dataSize);
rv = transferable->GetTransferData(kUnicodeMime, getter_AddRefs(supports));
data = do_QueryInterface(supports);
NS_ENSURE_SUCCESS(rv, rv); // require plain text at a minimum
data->GetData(mTitleString);
Expand Down
3 changes: 1 addition & 2 deletions dom/base/nsContentUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7994,8 +7994,7 @@ nsContentUtils::TransferableToIPCTransferable(nsITransferable* aTransferable,
}

nsCOMPtr<nsISupports> data;
uint32_t dataLen = 0;
aTransferable->GetTransferData(flavorStr.get(), getter_AddRefs(data), &dataLen);
aTransferable->GetTransferData(flavorStr.get(), getter_AddRefs(data));

nsCOMPtr<nsISupportsString> text = do_QueryInterface(data);
nsCOMPtr<nsISupportsCString> ctext = do_QueryInterface(data);
Expand Down
2 changes: 1 addition & 1 deletion dom/base/test/copypaste.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ async function testCopyPaste (isXHTML) {
transferable.addDataFlavor(mime);
clipboard.getData(transferable, 1);
var data = SpecialPowers.createBlankObject();
transferable.getTransferData(mime, data, {}) ;
transferable.getTransferData(mime, data) ;
return data;
}
function testHtmlClipboardValue(mime, expected) {
Expand Down
2 changes: 1 addition & 1 deletion dom/base/test/test_bug166235.html
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
transferable.addDataFlavor(mime);
clipboard.getData(transferable, 1);
var data = SpecialPowers.createBlankObject();
transferable.getTransferData(mime, data, {}) ;
transferable.getTransferData(mime, data) ;
return SpecialPowers.wrap(data);
}
function testHtmlClipboardValue(mime, expected, test) {
Expand Down
2 changes: 1 addition & 1 deletion dom/base/test/test_copyimage.html
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
transferable.addDataFlavor(mime);
clipboard.getData(transferable, 1);
var data = SpecialPowers.createBlankObject();
transferable.getTransferData(mime, data, {});
transferable.getTransferData(mime, data);
return data;
}

Expand Down
3 changes: 1 addition & 2 deletions dom/events/DataTransferItem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -179,9 +179,8 @@ DataTransferItem::FillInExternalData()
}
}

uint32_t length = 0;
nsCOMPtr<nsISupports> data;
nsresult rv = trans->GetTransferData(format, getter_AddRefs(data), &length);
nsresult rv = trans->GetTransferData(format, getter_AddRefs(data));
if (NS_WARN_IF(NS_FAILED(rv) || !data)) {
return;
}
Expand Down
21 changes: 5 additions & 16 deletions editor/libeditor/HTMLEditorDataTransfer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1585,7 +1585,6 @@ HTMLEditor::PasteInternal(int32_t aClipboardType,
bool bHavePrivateHTMLFlavor = HavePrivateHTMLFlavor(clipboard);
if (bHavePrivateHTMLFlavor) {
nsCOMPtr<nsISupports> contextDataObj, infoDataObj;
uint32_t contextLen, infoLen;
nsCOMPtr<nsISupportsString> textDataObj;

nsCOMPtr<nsITransferable> contextTransferable =
Expand All @@ -1597,8 +1596,7 @@ HTMLEditor::PasteInternal(int32_t aClipboardType,
contextTransferable->AddDataFlavor(kHTMLContext);
clipboard->GetData(contextTransferable, aClipboardType);
contextTransferable->GetTransferData(kHTMLContext,
getter_AddRefs(contextDataObj),
&contextLen);
getter_AddRefs(contextDataObj));

nsCOMPtr<nsITransferable> infoTransferable =
do_CreateInstance("@mozilla.org/widget/transferable;1");
Expand All @@ -1609,23 +1607,16 @@ HTMLEditor::PasteInternal(int32_t aClipboardType,
infoTransferable->AddDataFlavor(kHTMLInfo);
clipboard->GetData(infoTransferable, aClipboardType);
infoTransferable->GetTransferData(kHTMLInfo,
getter_AddRefs(infoDataObj),
&infoLen);
getter_AddRefs(infoDataObj));

if (contextDataObj) {
nsAutoString text;
textDataObj = do_QueryInterface(contextDataObj);
textDataObj->GetData(text);
MOZ_ASSERT(text.Length() <= contextLen / 2);
contextStr.Assign(text.get(), contextLen / 2);
textDataObj->GetData(contextStr);
}

if (infoDataObj) {
nsAutoString text;
textDataObj = do_QueryInterface(infoDataObj);
textDataObj->GetData(text);
MOZ_ASSERT(text.Length() <= infoLen / 2);
infoStr.Assign(text.get(), infoLen / 2);
textDataObj->GetData(infoStr);
}
}

Expand Down Expand Up @@ -1794,10 +1785,8 @@ HTMLEditor::CanPasteTransferable(nsITransferable* aTransferable)

for (size_t i = 0; i < length; i++, flavors++) {
nsCOMPtr<nsISupports> data;
uint32_t dataLen;
nsresult rv = aTransferable->GetTransferData(*flavors,
getter_AddRefs(data),
&dataLen);
getter_AddRefs(data));
if (NS_SUCCEEDED(rv) && data) {
return true;
}
Expand Down
4 changes: 1 addition & 3 deletions editor/libeditor/TextEditorDataTransfer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -465,10 +465,8 @@ TextEditor::CanPasteTransferable(nsITransferable* aTransferable)
}

nsCOMPtr<nsISupports> data;
uint32_t dataLen;
nsresult rv = aTransferable->GetTransferData(kUnicodeMime,
getter_AddRefs(data),
&dataLen);
getter_AddRefs(data));
if (NS_SUCCEEDED(rv) && data) {
return true;
}
Expand Down
2 changes: 1 addition & 1 deletion editor/libeditor/tests/test_CF_HTML_clipboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
cb.getData(trans, cb.kGlobalClipboard);
var data = SpecialPowers.createBlankObject();
try {
trans.getTransferData(CF_HTML, data, {});
trans.getTransferData(CF_HTML, data);
data = SpecialPowers.wrap(data).value.QueryInterface(Ci.nsISupportsCString).data;
} catch (e) {
setTimeout(function() { copyCF_HTML_worker(successFn, failureFn); }, 100);
Expand Down
2 changes: 1 addition & 1 deletion testing/specialpowers/content/specialpowersAPI.js
Original file line number Diff line number Diff line change
Expand Up @@ -1794,7 +1794,7 @@ SpecialPowersAPI.prototype = {
Services.clipboard.getData(xferable, whichClipboard);
var data = {};
try {
xferable.getTransferData(flavor, data, {});
xferable.getTransferData(flavor, data);
} catch (e) {}
data = data.value || null;
if (data == null)
Expand Down
3 changes: 1 addition & 2 deletions toolkit/modules/Finder.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -611,8 +611,7 @@ function GetClipboardSearchString(aLoadContext) {
Clipboard.getData(trans, Ci.nsIClipboard.kFindClipboard);

let data = {};
let dataLen = {};
trans.getTransferData("text/unicode", data, dataLen);
trans.getTransferData("text/unicode", data);
if (data.value) {
data = data.value.QueryInterface(Ci.nsISupportsString);
searchString = data.toString();
Expand Down
4 changes: 1 addition & 3 deletions widget/android/nsClipboard.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,7 @@ nsClipboard::SetData(nsITransferable *aTransferable,
return NS_ERROR_NOT_IMPLEMENTED;

nsCOMPtr<nsISupports> tmp;
uint32_t len;
nsresult rv = aTransferable->GetTransferData(kUnicodeMime, getter_AddRefs(tmp),
&len);
nsresult rv = aTransferable->GetTransferData(kUnicodeMime, getter_AddRefs(tmp));
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsISupportsString> supportsString = do_QueryInterface(tmp);
// No support for non-text data
Expand Down
3 changes: 1 addition & 2 deletions widget/cocoa/nsChildView.mm
Original file line number Diff line number Diff line change
Expand Up @@ -6257,9 +6257,8 @@ - (void)pasteboard:(NSPasteboard*)aPasteboard
// Now request the kFilePromiseMime data, which will invoke the data
// provider. If successful, the file will have been created.
nsCOMPtr<nsISupports> fileDataPrimitive;
uint32_t dataSize = 0;
item->GetTransferData(kFilePromiseMime,
getter_AddRefs(fileDataPrimitive), &dataSize);
getter_AddRefs(fileDataPrimitive));
}
CFRelease(urlRef);
CFRelease(pboardRef);
Expand Down
22 changes: 8 additions & 14 deletions widget/cocoa/nsClipboard.mm
Original file line number Diff line number Diff line change
Expand Up @@ -389,10 +389,9 @@ + (NSString*)stringFromPboardType:(NSString*)aType
nsCString& flavorStr = flavors[i];

nsCOMPtr<nsISupports> dataSupports;
uint32_t dataSize = 0;
rv = mTransferable->GetTransferData(flavorStr.get(), getter_AddRefs(dataSupports), &dataSize);
rv = mTransferable->GetTransferData(flavorStr.get(), getter_AddRefs(dataSupports));
if (NS_SUCCEEDED(rv)) {
aTransferable->SetTransferData(flavorStr.get(), dataSupports, dataSize);
aTransferable->SetTransferData(flavorStr.get(), dataSupports, 0);
return NS_OK; // maybe try to fill in more types? Is there a point?
}
}
Expand Down Expand Up @@ -517,9 +516,8 @@ + (NSString*)stringFromPboardType:(NSString*)aType
NSString *pboardType = nil;

if (nsClipboard::IsStringType(flavorStr, &pboardType)) {
uint32_t dataSize = 0;
nsCOMPtr<nsISupports> genericDataWrapper;
rv = aTransferable->GetTransferData(flavorStr.get(), getter_AddRefs(genericDataWrapper), &dataSize);
rv = aTransferable->GetTransferData(flavorStr.get(), getter_AddRefs(genericDataWrapper));
if (NS_FAILED(rv)) {
[pboardType release];
continue;
Expand All @@ -542,9 +540,8 @@ + (NSString*)stringFromPboardType:(NSString*)aType
[pasteboardOutputDict setObject:nativeString forKey:pboardType];
}
else if (flavorStr.EqualsLiteral(kCustomTypesMime)) {
uint32_t dataSize = 0;
nsCOMPtr<nsISupports> genericDataWrapper;
rv = aTransferable->GetTransferData(flavorStr.get(), getter_AddRefs(genericDataWrapper), &dataSize);
rv = aTransferable->GetTransferData(flavorStr.get(), getter_AddRefs(genericDataWrapper));
if (NS_FAILED(rv)) {
continue;
}
Expand All @@ -564,9 +561,8 @@ + (NSString*)stringFromPboardType:(NSString*)aType
else if (flavorStr.EqualsLiteral(kPNGImageMime) || flavorStr.EqualsLiteral(kJPEGImageMime) ||
flavorStr.EqualsLiteral(kJPGImageMime) || flavorStr.EqualsLiteral(kGIFImageMime) ||
flavorStr.EqualsLiteral(kNativeImageMime)) {
uint32_t dataSize = 0;
nsCOMPtr<nsISupports> transferSupports;
aTransferable->GetTransferData(flavorStr.get(), getter_AddRefs(transferSupports), &dataSize);
aTransferable->GetTransferData(flavorStr.get(), getter_AddRefs(transferSupports));

nsCOMPtr<imgIContainer> image(do_QueryInterface(transferSupports));
if (!image) {
Expand Down Expand Up @@ -613,9 +609,8 @@ + (NSString*)stringFromPboardType:(NSString*)aType
CFRelease(tiffData);
}
else if (flavorStr.EqualsLiteral(kFileMime)) {
uint32_t len = 0;
nsCOMPtr<nsISupports> genericFile;
rv = aTransferable->GetTransferData(flavorStr.get(), getter_AddRefs(genericFile), &len);
rv = aTransferable->GetTransferData(flavorStr.get(), getter_AddRefs(genericFile));
if (NS_FAILED(rv)) {
continue;
}
Expand Down Expand Up @@ -651,9 +646,8 @@ + (NSString*)stringFromPboardType:(NSString*)aType
forKey:urlPromiseContent];
}
else if (flavorStr.EqualsLiteral(kURLMime)) {
uint32_t len = 0;
nsCOMPtr<nsISupports> genericURL;
rv = aTransferable->GetTransferData(flavorStr.get(), getter_AddRefs(genericURL), &len);
rv = aTransferable->GetTransferData(flavorStr.get(), getter_AddRefs(genericURL));
nsCOMPtr<nsISupportsString> urlObject(do_QueryInterface(genericURL));

nsAutoString url;
Expand All @@ -669,7 +663,7 @@ + (NSString*)stringFromPboardType:(NSString*)aType

nsAutoString urlTitle;
urlObject->GetData(urlTitle);
urlTitle.Mid(urlTitle, newlinePos + 1, len - (newlinePos + 1));
urlTitle.Mid(urlTitle, newlinePos + 1, urlTitle.Length() - (newlinePos + 1));

nativeTitle =
[NSString stringWithCharacters:
Expand Down
Loading

0 comments on commit 6923e48

Please sign in to comment.