author | "Kan-Ru Chen (陳侃如)" <kanru@kanru.info> |
Sat, 14 Jun 2014 15:32:24 +0800 | |
changeset 188749 | 8d99f061ec3599cf8ca3563fa9e1edaa06470ad7 |
parent 188748 | 5da74b54a472fe4254e568d730d1c4b9196a2424 |
child 188750 | c4ed75d98fe37e1234643e434bcca283bef67a06 |
push id | 44903 |
push user | kchen@mozilla.com |
push date | Sat, 14 Jun 2014 07:34:13 +0000 |
treeherder | mozilla-inbound@8d99f061ec35 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | smaug |
bugs | 1024943 |
milestone | 33.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
dom/ipc/TabParent.cpp | file | annotate | diff | comparison | revisions | |
dom/ipc/nsIContentParent.cpp | file | annotate | diff | comparison | revisions |
--- a/dom/ipc/TabParent.cpp +++ b/dom/ipc/TabParent.cpp @@ -979,59 +979,65 @@ bool TabParent::RecvSyncMessage(const nsString& aMessage, const ClonedMessageData& aData, const InfallibleTArray<CpowEntry>& aCpows, const IPC::Principal& aPrincipal, InfallibleTArray<nsString>* aJSONRetVal) { // FIXME Permission check for TabParent in Content process nsIPrincipal* principal = aPrincipal; - ContentParent* parent = Manager()->AsContentParent(); - if (!ContentParent::IgnoreIPCPrincipal() && - parent && principal && !AssertAppPrincipal(parent, principal)) { - return false; + if (Manager()->IsContentParent()) { + ContentParent* parent = Manager()->AsContentParent(); + if (!ContentParent::IgnoreIPCPrincipal() && + parent && principal && !AssertAppPrincipal(parent, principal)) { + return false; + } } StructuredCloneData cloneData = ipc::UnpackClonedMessageDataForParent(aData); CpowIdHolder cpows(Manager()->GetCPOWManager(), aCpows); return ReceiveMessage(aMessage, true, &cloneData, &cpows, aPrincipal, aJSONRetVal); } bool TabParent::AnswerRpcMessage(const nsString& aMessage, const ClonedMessageData& aData, const InfallibleTArray<CpowEntry>& aCpows, const IPC::Principal& aPrincipal, InfallibleTArray<nsString>* aJSONRetVal) { // FIXME Permission check for TabParent in Content process nsIPrincipal* principal = aPrincipal; - ContentParent* parent = Manager()->AsContentParent(); - if (!ContentParent::IgnoreIPCPrincipal() && - parent && principal && !AssertAppPrincipal(parent, principal)) { - return false; + if (Manager()->IsContentParent()) { + ContentParent* parent = Manager()->AsContentParent(); + if (!ContentParent::IgnoreIPCPrincipal() && + parent && principal && !AssertAppPrincipal(parent, principal)) { + return false; + } } StructuredCloneData cloneData = ipc::UnpackClonedMessageDataForParent(aData); CpowIdHolder cpows(Manager()->GetCPOWManager(), aCpows); return ReceiveMessage(aMessage, true, &cloneData, &cpows, aPrincipal, aJSONRetVal); } bool TabParent::RecvAsyncMessage(const nsString& aMessage, const ClonedMessageData& aData, const InfallibleTArray<CpowEntry>& aCpows, const IPC::Principal& aPrincipal) { // FIXME Permission check for TabParent in Content process nsIPrincipal* principal = aPrincipal; - ContentParent* parent = Manager()->AsContentParent(); - if (!ContentParent::IgnoreIPCPrincipal() && - parent && principal && !AssertAppPrincipal(parent, principal)) { - return false; + if (Manager()->IsContentParent()) { + ContentParent* parent = Manager()->AsContentParent(); + if (!ContentParent::IgnoreIPCPrincipal() && + parent && principal && !AssertAppPrincipal(parent, principal)) { + return false; + } } StructuredCloneData cloneData = ipc::UnpackClonedMessageDataForParent(aData); CpowIdHolder cpows(Manager()->GetCPOWManager(), aCpows); return ReceiveMessage(aMessage, false, &cloneData, &cpows, aPrincipal, nullptr); } bool
--- a/dom/ipc/nsIContentParent.cpp +++ b/dom/ipc/nsIContentParent.cpp @@ -231,20 +231,22 @@ bool nsIContentParent::RecvSyncMessage(const nsString& aMsg, const ClonedMessageData& aData, const InfallibleTArray<CpowEntry>& aCpows, const IPC::Principal& aPrincipal, InfallibleTArray<nsString>* aRetvals) { // FIXME Permission check in Content process nsIPrincipal* principal = aPrincipal; - ContentParent* parent = AsContentParent(); - if (!ContentParent::IgnoreIPCPrincipal() && - parent && principal && !AssertAppPrincipal(parent, principal)) { - return false; + if (IsContentParent()) { + ContentParent* parent = AsContentParent(); + if (!ContentParent::IgnoreIPCPrincipal() && + parent && principal && !AssertAppPrincipal(parent, principal)) { + return false; + } } nsRefPtr<nsFrameMessageManager> ppm = mMessageManager; if (ppm) { StructuredCloneData cloneData = ipc::UnpackClonedMessageDataForParent(aData); CpowIdHolder cpows(GetCPOWManager(), aCpows); ppm->ReceiveMessage(static_cast<nsIContentFrameMessageManager*>(ppm.get()), @@ -257,20 +259,22 @@ bool nsIContentParent::AnswerRpcMessage(const nsString& aMsg, const ClonedMessageData& aData, const InfallibleTArray<CpowEntry>& aCpows, const IPC::Principal& aPrincipal, InfallibleTArray<nsString>* aRetvals) { // FIXME Permission check in Content process nsIPrincipal* principal = aPrincipal; - ContentParent* parent = AsContentParent(); - if (!ContentParent::IgnoreIPCPrincipal() && - parent && principal && !AssertAppPrincipal(parent, principal)) { - return false; + if (IsContentParent()) { + ContentParent* parent = AsContentParent(); + if (!ContentParent::IgnoreIPCPrincipal() && + parent && principal && !AssertAppPrincipal(parent, principal)) { + return false; + } } nsRefPtr<nsFrameMessageManager> ppm = mMessageManager; if (ppm) { StructuredCloneData cloneData = ipc::UnpackClonedMessageDataForParent(aData); CpowIdHolder cpows(GetCPOWManager(), aCpows); ppm->ReceiveMessage(static_cast<nsIContentFrameMessageManager*>(ppm.get()), aMsg, true, &cloneData, &cpows, aPrincipal, aRetvals); @@ -281,20 +285,22 @@ nsIContentParent::AnswerRpcMessage(const bool nsIContentParent::RecvAsyncMessage(const nsString& aMsg, const ClonedMessageData& aData, const InfallibleTArray<CpowEntry>& aCpows, const IPC::Principal& aPrincipal) { // FIXME Permission check in Content process nsIPrincipal* principal = aPrincipal; - ContentParent* parent = AsContentParent(); - if (!ContentParent::IgnoreIPCPrincipal() && - parent && principal && !AssertAppPrincipal(parent, principal)) { - return false; + if (IsContentParent()) { + ContentParent* parent = AsContentParent(); + if (!ContentParent::IgnoreIPCPrincipal() && + parent && principal && !AssertAppPrincipal(parent, principal)) { + return false; + } } nsRefPtr<nsFrameMessageManager> ppm = mMessageManager; if (ppm) { StructuredCloneData cloneData = ipc::UnpackClonedMessageDataForParent(aData); CpowIdHolder cpows(GetCPOWManager(), aCpows); ppm->ReceiveMessage(static_cast<nsIContentFrameMessageManager*>(ppm.get()), aMsg, false, &cloneData, &cpows, aPrincipal, nullptr);