mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 03:45:46 +00:00
Bug 1340039 - Set contentPolicyType when copying image, and pass it between processes. r=smaug
MozReview-Commit-ID: CJj1a1Lj699 --HG-- extra : rebase_source : 63a033a64101f71b0b06fe68d037352fd637523f
This commit is contained in:
parent
80e97e4bf5
commit
33a761b672
@ -7977,6 +7977,7 @@ nsresult
|
||||
nsContentUtils::IPCTransferableToTransferable(const IPCDataTransfer& aDataTransfer,
|
||||
const bool& aIsPrivateData,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
const nsContentPolicyType& aContentPolicyType,
|
||||
nsITransferable* aTransferable,
|
||||
mozilla::dom::nsIContentParent* aContentParent,
|
||||
mozilla::dom::TabChild* aTabChild)
|
||||
@ -8042,6 +8043,7 @@ nsContentUtils::IPCTransferableToTransferable(const IPCDataTransfer& aDataTransf
|
||||
|
||||
aTransferable->SetIsPrivateData(aIsPrivateData);
|
||||
aTransferable->SetRequestingPrincipal(aRequestingPrincipal);
|
||||
aTransferable->SetContentPolicyType(aContentPolicyType);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -2838,6 +2838,7 @@ public:
|
||||
static nsresult IPCTransferableToTransferable(const mozilla::dom::IPCDataTransfer& aDataTransfer,
|
||||
const bool& aIsPrivateData,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
const nsContentPolicyType& aContentPolicyType,
|
||||
nsITransferable* aTransferable,
|
||||
mozilla::dom::nsIContentParent* aContentParent,
|
||||
mozilla::dom::TabChild* aTabChild);
|
||||
|
@ -680,6 +680,7 @@ static nsresult AppendImagePromise(nsITransferable* aTransferable,
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
aTransferable->SetRequestingPrincipal(node->NodePrincipal());
|
||||
aTransferable->SetContentPolicyType(nsIContentPolicy::TYPE_INTERNAL_IMAGE);
|
||||
|
||||
// add the dataless file promise flavor
|
||||
return aTransferable->AddDataFlavor(kFilePromiseMime);
|
||||
|
@ -5466,8 +5466,11 @@ EventStateManager::DoContentCommandEvent(WidgetContentCommandEvent* aEvent)
|
||||
transferable->GetIsPrivateData(&isPrivateData);
|
||||
nsCOMPtr<nsIPrincipal> requestingPrincipal;
|
||||
transferable->GetRequestingPrincipal(getter_AddRefs(requestingPrincipal));
|
||||
nsContentPolicyType contentPolicyType = nsIContentPolicy::TYPE_OTHER;
|
||||
transferable->GetContentPolicyType(&contentPolicyType);
|
||||
remote->SendPasteTransferable(ipcDataTransfer, isPrivateData,
|
||||
IPC::Principal(requestingPrincipal));
|
||||
IPC::Principal(requestingPrincipal),
|
||||
contentPolicyType);
|
||||
rv = NS_OK;
|
||||
} else {
|
||||
nsCOMPtr<nsICommandController> commandController = do_QueryInterface(controller);
|
||||
|
@ -2602,6 +2602,7 @@ mozilla::ipc::IPCResult
|
||||
ContentParent::RecvSetClipboard(const IPCDataTransfer& aDataTransfer,
|
||||
const bool& aIsPrivateData,
|
||||
const IPC::Principal& aRequestingPrincipal,
|
||||
const uint32_t& aContentPolicyType,
|
||||
const int32_t& aWhichClipboard)
|
||||
{
|
||||
nsresult rv;
|
||||
@ -2616,6 +2617,7 @@ ContentParent::RecvSetClipboard(const IPCDataTransfer& aDataTransfer,
|
||||
rv = nsContentUtils::IPCTransferableToTransferable(aDataTransfer,
|
||||
aIsPrivateData,
|
||||
aRequestingPrincipal,
|
||||
aContentPolicyType,
|
||||
trans, this, nullptr);
|
||||
NS_ENSURE_SUCCESS(rv, IPC_OK());
|
||||
|
||||
|
@ -976,6 +976,7 @@ private:
|
||||
virtual mozilla::ipc::IPCResult RecvSetClipboard(const IPCDataTransfer& aDataTransfer,
|
||||
const bool& aIsPrivateData,
|
||||
const IPC::Principal& aRequestingPrincipal,
|
||||
const uint32_t& aContentPolicyType,
|
||||
const int32_t& aWhichClipboard) override;
|
||||
|
||||
virtual mozilla::ipc::IPCResult RecvGetClipboard(nsTArray<nsCString>&& aTypes,
|
||||
|
@ -720,7 +720,8 @@ child:
|
||||
*/
|
||||
async PasteTransferable(IPCDataTransfer aDataTransfer,
|
||||
bool aIsPrivateData,
|
||||
Principal aRequestingPrincipal);
|
||||
Principal aRequestingPrincipal,
|
||||
uint32_t aContentPolicyType);
|
||||
|
||||
/**
|
||||
* Activate event forwarding from client to parent.
|
||||
|
@ -838,6 +838,7 @@ parent:
|
||||
async SetClipboard(IPCDataTransfer aDataTransfer,
|
||||
bool aIsPrivateData,
|
||||
Principal aRequestingPrincipal,
|
||||
uint32_t aContentPolicyType,
|
||||
int32_t aWhichClipboard);
|
||||
|
||||
// Given a list of supported types, returns the clipboard data for the
|
||||
|
@ -2164,7 +2164,8 @@ TabChild::RecvNormalPrioritySelectionEvent(const WidgetSelectionEvent& aEvent)
|
||||
mozilla::ipc::IPCResult
|
||||
TabChild::RecvPasteTransferable(const IPCDataTransfer& aDataTransfer,
|
||||
const bool& aIsPrivateData,
|
||||
const IPC::Principal& aRequestingPrincipal)
|
||||
const IPC::Principal& aRequestingPrincipal,
|
||||
const uint32_t& aContentPolicyType)
|
||||
{
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsITransferable> trans =
|
||||
@ -2175,6 +2176,7 @@ TabChild::RecvPasteTransferable(const IPCDataTransfer& aDataTransfer,
|
||||
rv = nsContentUtils::IPCTransferableToTransferable(aDataTransfer,
|
||||
aIsPrivateData,
|
||||
aRequestingPrincipal,
|
||||
aContentPolicyType,
|
||||
trans, nullptr, this);
|
||||
NS_ENSURE_SUCCESS(rv, IPC_OK());
|
||||
|
||||
|
@ -455,7 +455,8 @@ public:
|
||||
virtual mozilla::ipc::IPCResult
|
||||
RecvPasteTransferable(const IPCDataTransfer& aDataTransfer,
|
||||
const bool& aIsPrivateData,
|
||||
const IPC::Principal& aRequestingPrincipal) override;
|
||||
const IPC::Principal& aRequestingPrincipal,
|
||||
const uint32_t& aContentPolicyType) override;
|
||||
|
||||
virtual mozilla::ipc::IPCResult
|
||||
RecvActivateFrameEvent(const nsString& aType, const bool& aCapture) override;
|
||||
|
@ -2311,11 +2311,13 @@ TabParent::SendSelectionEvent(WidgetSelectionEvent& aEvent)
|
||||
bool
|
||||
TabParent::SendPasteTransferable(const IPCDataTransfer& aDataTransfer,
|
||||
const bool& aIsPrivateData,
|
||||
const IPC::Principal& aRequestingPrincipal)
|
||||
const IPC::Principal& aRequestingPrincipal,
|
||||
const uint32_t& aContentPolicyType)
|
||||
{
|
||||
return PBrowserParent::SendPasteTransferable(aDataTransfer,
|
||||
aIsPrivateData,
|
||||
aRequestingPrincipal);
|
||||
aRequestingPrincipal,
|
||||
aContentPolicyType);
|
||||
}
|
||||
|
||||
/*static*/ TabParent*
|
||||
|
@ -497,7 +497,8 @@ public:
|
||||
|
||||
bool SendPasteTransferable(const IPCDataTransfer& aDataTransfer,
|
||||
const bool& aIsPrivateData,
|
||||
const IPC::Principal& aRequestingPrincipal);
|
||||
const IPC::Principal& aRequestingPrincipal,
|
||||
const uint32_t& aContentPolicyType);
|
||||
|
||||
static TabParent* GetFrom(nsFrameLoader* aFrameLoader);
|
||||
|
||||
|
@ -37,8 +37,11 @@ nsClipboardProxy::SetData(nsITransferable *aTransferable,
|
||||
aTransferable->GetIsPrivateData(&isPrivateData);
|
||||
nsCOMPtr<nsIPrincipal> requestingPrincipal;
|
||||
aTransferable->GetRequestingPrincipal(getter_AddRefs(requestingPrincipal));
|
||||
nsContentPolicyType contentPolicyType = nsIContentPolicy::TYPE_OTHER;
|
||||
aTransferable->GetContentPolicyType(&contentPolicyType);
|
||||
child->SendSetClipboard(ipcDataTransfer, isPrivateData,
|
||||
IPC::Principal(requestingPrincipal), aWhichClipboard);
|
||||
IPC::Principal(requestingPrincipal),
|
||||
contentPolicyType, aWhichClipboard);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user