Bug 664717 - Part 2: Pass requestingPrincipal to parent process with nsITransferable. r=smaug

MozReview-Commit-ID: B0k10UplydR

--HG--
extra : transplant_source : %D5h%03%7F%D9F%90%E6q%C8%9D%142b%9C%5E%F4%D1%E8%B3
This commit is contained in:
Hector Zhao 2016-06-30 15:12:56 +08:00
parent 6b5f4e624b
commit 4a0bfda8d9
4 changed files with 8 additions and 1 deletions

View File

@ -2665,6 +2665,7 @@ ContentParent::RecvReadPermissions(InfallibleTArray<IPC::Permission>* aPermissio
bool
ContentParent::RecvSetClipboard(const IPCDataTransfer& aDataTransfer,
const bool& aIsPrivateData,
const IPC::Principal& aRequestingPrincipal,
const int32_t& aWhichClipboard)
{
nsresult rv;
@ -2730,6 +2731,7 @@ ContentParent::RecvSetClipboard(const IPCDataTransfer& aDataTransfer,
}
trans->SetIsPrivateData(aIsPrivateData);
trans->SetRequestingPrincipal(aRequestingPrincipal);
clipboard->SetData(trans, nullptr, aWhichClipboard);
return true;

View File

@ -958,6 +958,7 @@ private:
virtual bool RecvSetClipboard(const IPCDataTransfer& aDataTransfer,
const bool& aIsPrivateData,
const IPC::Principal& aRequestingPrincipal,
const int32_t& aWhichClipboard) override;
virtual bool RecvGetClipboard(nsTArray<nsCString>&& aTypes,

View File

@ -931,6 +931,7 @@ parent:
// Places the items within dataTransfer on the clipboard.
async SetClipboard(IPCDataTransfer aDataTransfer,
bool aIsPrivateData,
Principal aRequestingPrincipal,
int32_t aWhichClipboard);
// Given a list of supported types, returns the clipboard data for the

View File

@ -34,7 +34,10 @@ nsClipboardProxy::SetData(nsITransferable *aTransferable,
bool isPrivateData = false;
aTransferable->GetIsPrivateData(&isPrivateData);
child->SendSetClipboard(ipcDataTransfer, isPrivateData, aWhichClipboard);
nsCOMPtr<nsIPrincipal> requestingPrincipal;
aTransferable->GetRequestingPrincipal(getter_AddRefs(requestingPrincipal));
child->SendSetClipboard(ipcDataTransfer, isPrivateData,
IPC::Principal(requestingPrincipal), aWhichClipboard);
return NS_OK;
}