Bug 1363977 - Have loadTabs() provide the correct triggeringPrincipal. r=gijs,smaug

This commit is contained in:
Christoph Kerschbaumer
2017-05-29 21:32:21 +02:00
parent ceef52a8f3
commit 436065ccac
12 changed files with 94 additions and 20 deletions

View File

@@ -994,7 +994,20 @@ nsDocShellTreeOwner::HandleEvent(nsIDOMEvent* aEvent)
if (webBrowserChrome) {
nsCOMPtr<nsITabChild> tabChild = do_QueryInterface(webBrowserChrome);
if (tabChild) {
nsresult rv = tabChild->RemoteDropLinks(linksCount, links);
nsCOMPtr<nsIDOMDataTransfer> domDataTransfer;
dragEvent->GetDataTransfer(getter_AddRefs(domDataTransfer));
NS_ENSURE_TRUE(domDataTransfer, NS_ERROR_UNEXPECTED);
nsCOMPtr<nsIDOMNode> domSourceNode;
domDataTransfer->GetMozSourceNode(getter_AddRefs(domSourceNode));
nsCOMPtr<nsINode> sourceNode = do_QueryInterface(domSourceNode);
nsCOMPtr<nsIPrincipal> triggeringPrincipal;
if (sourceNode) {
triggeringPrincipal = sourceNode->NodePrincipal();
} else {
triggeringPrincipal = NullPrincipal::Create();
}
nsresult rv = tabChild->RemoteDropLinks(linksCount, links,
triggeringPrincipal);
for (uint32_t i = 0; i < linksCount; i++) {
NS_RELEASE(links[i]);
}