author | Ryan VanderMeulen <ryanvm@gmail.com> |
Fri, 30 May 2014 16:06:03 -0400 | |
changeset 185950 | 9ae055051998f988e15df8ce2b61ea28da48d10c |
parent 185949 | 255f01c1a924e8826d89e3ef971b1645464fc22f |
child 185951 | c57a20e0c95c81dabccc7fe045121311344fd7be |
push id | 26871 |
push user | philringnalda@gmail.com |
push date | Sun, 01 Jun 2014 03:29:42 +0000 |
treeherder | mozilla-central@0e10c8151654 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
bugs | 1010434 |
milestone | 32.0a1 |
backs out | 8164fe57ac92a3e87603093a34a94e864613f3a6 |
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
|
--- a/modules/libjar/nsJARChannel.cpp +++ b/modules/libjar/nsJARChannel.cpp @@ -370,21 +370,18 @@ nsJARChannel::LookupFile() // JarHandler will trigger OnRemoteFileOpen() after the first // request for this file completes and we'll get a JAR cache // hit. return NS_OK; } // Open file on parent: OnRemoteFileOpenComplete called when done nsCOMPtr<nsITabChild> tabChild; - NS_QueryNotificationCallbacks(this, tabChild); - nsCOMPtr<nsILoadContext> loadContext; - NS_QueryNotificationCallbacks(this, loadContext); - rv = remoteFile->AsyncRemoteFileOpen(PR_RDONLY, this, tabChild, - loadContext); + NS_QueryNotificationCallbacks(mCallbacks, mLoadGroup, tabChild); + rv = remoteFile->AsyncRemoteFileOpen(PR_RDONLY, this, tabChild.get()); NS_ENSURE_SUCCESS(rv, rv); } } // try to handle a nested jar if (!mJarFile) { nsCOMPtr<nsIJARURI> jarURI = do_QueryInterface(mJarBaseURI); if (jarURI) { nsCOMPtr<nsIFileURL> fileURL;
--- a/netwerk/ipc/NeckoChild.cpp +++ b/netwerk/ipc/NeckoChild.cpp @@ -264,19 +264,17 @@ bool NeckoChild::DeallocPDNSRequestChild(PDNSRequestChild* aChild) { DNSRequestChild *p = static_cast<DNSRequestChild*>(aChild); p->ReleaseIPDLReference(); return true; } PRemoteOpenFileChild* -NeckoChild::AllocPRemoteOpenFileChild(const SerializedLoadContext& aSerialized, - const URIParams&, - const OptionalURIParams&) +NeckoChild::AllocPRemoteOpenFileChild(const URIParams&, const OptionalURIParams&) { // We don't allocate here: instead we always use IPDL constructor that takes // an existing RemoteOpenFileChild NS_NOTREACHED("AllocPRemoteOpenFileChild should not be called on child"); return nullptr; } bool
--- a/netwerk/ipc/NeckoChild.h +++ b/netwerk/ipc/NeckoChild.h @@ -52,18 +52,17 @@ protected: virtual PUDPSocketChild* AllocPUDPSocketChild(const nsCString& aHost, const uint16_t& aPort, const nsCString& aFilter) MOZ_OVERRIDE; virtual bool DeallocPUDPSocketChild(PUDPSocketChild*) MOZ_OVERRIDE; virtual PDNSRequestChild* AllocPDNSRequestChild(const nsCString& aHost, const uint32_t& aFlags) MOZ_OVERRIDE; virtual bool DeallocPDNSRequestChild(PDNSRequestChild*) MOZ_OVERRIDE; virtual PRemoteOpenFileChild* - AllocPRemoteOpenFileChild(const SerializedLoadContext& aSerialized, - const URIParams&, + AllocPRemoteOpenFileChild(const URIParams&, const OptionalURIParams&) MOZ_OVERRIDE; virtual bool DeallocPRemoteOpenFileChild(PRemoteOpenFileChild*) MOZ_OVERRIDE; virtual PRtspControllerChild* AllocPRtspControllerChild() MOZ_OVERRIDE; virtual bool DeallocPRtspControllerChild(PRtspControllerChild*) MOZ_OVERRIDE; virtual PRtspChannelChild* AllocPRtspChannelChild(const RtspChannelConnectArgs& aArgs) MOZ_OVERRIDE; virtual bool DeallocPRtspChannelChild(PRtspChannelChild*) MOZ_OVERRIDE;
--- a/netwerk/ipc/NeckoParent.cpp +++ b/netwerk/ipc/NeckoParent.cpp @@ -495,18 +495,17 @@ bool NeckoParent::DeallocPDNSRequestParent(PDNSRequestParent* aParent) { DNSRequestParent *p = static_cast<DNSRequestParent*>(aParent); p->Release(); return true; } PRemoteOpenFileParent* -NeckoParent::AllocPRemoteOpenFileParent(const SerializedLoadContext& aSerialized, - const URIParams& aURI, +NeckoParent::AllocPRemoteOpenFileParent(const URIParams& aURI, const OptionalURIParams& aAppURI) { nsCOMPtr<nsIURI> uri = DeserializeURI(aURI); nsCOMPtr<nsIFileURL> fileURL = do_QueryInterface(uri); if (!fileURL) { return nullptr; } @@ -519,31 +518,27 @@ NeckoParent::AllocPRemoteOpenFileParent( } bool haveValidBrowser = false; bool hasManage = false; nsCOMPtr<mozIApplication> mozApp; for (uint32_t i = 0; i < Manager()->ManagedPBrowserParent().Length(); i++) { nsRefPtr<TabParent> tabParent = static_cast<TabParent*>(Manager()->ManagedPBrowserParent()[i]); uint32_t appId = tabParent->OwnOrContainingAppId(); - // Note: this enforces that SerializedLoadContext.appID is one of the apps - // in the child process, but there's currently no way to verify the - // request is not from a different app in that process. - if (appId == aSerialized.mAppId) { - nsresult rv = appsService->GetAppByLocalId(appId, getter_AddRefs(mozApp)); - if (NS_FAILED(rv) || !mozApp) { - break; - } - rv = mozApp->HasPermission("webapps-manage", &hasManage); - if (NS_FAILED(rv)) { - break; - } - haveValidBrowser = true; - break; + nsresult rv = appsService->GetAppByLocalId(appId, getter_AddRefs(mozApp)); + if (NS_FAILED(rv) || !mozApp) { + continue; } + hasManage = false; + rv = mozApp->HasPermission("webapps-manage", &hasManage); + if (NS_FAILED(rv)) { + continue; + } + haveValidBrowser = true; + break; } if (!haveValidBrowser) { return nullptr; } nsAutoCString requestedPath; fileURL->GetPath(requestedPath); @@ -621,21 +616,19 @@ NeckoParent::AllocPRemoteOpenFileParent( } } RemoteOpenFileParent* parent = new RemoteOpenFileParent(fileURL); return parent; } bool -NeckoParent::RecvPRemoteOpenFileConstructor( - PRemoteOpenFileParent* aActor, - const SerializedLoadContext& aSerialized, - const URIParams& aFileURI, - const OptionalURIParams& aAppURI) +NeckoParent::RecvPRemoteOpenFileConstructor(PRemoteOpenFileParent* aActor, + const URIParams& aFileURI, + const OptionalURIParams& aAppURI) { return static_cast<RemoteOpenFileParent*>(aActor)->OpenSendCloseDelete(); } bool NeckoParent::DeallocPRemoteOpenFileParent(PRemoteOpenFileParent* actor) { delete actor;
--- a/netwerk/ipc/NeckoParent.h +++ b/netwerk/ipc/NeckoParent.h @@ -95,26 +95,23 @@ protected: const FTPChannelCreationArgs& aOpenArgs) MOZ_OVERRIDE; virtual bool DeallocPFTPChannelParent(PFTPChannelParent*) MOZ_OVERRIDE; virtual PWebSocketParent* AllocPWebSocketParent(PBrowserParent* browser, const SerializedLoadContext& aSerialized) MOZ_OVERRIDE; virtual bool DeallocPWebSocketParent(PWebSocketParent*) MOZ_OVERRIDE; virtual PTCPSocketParent* AllocPTCPSocketParent() MOZ_OVERRIDE; - virtual PRemoteOpenFileParent* - AllocPRemoteOpenFileParent(const SerializedLoadContext& aSerialized, - const URIParams& aFileURI, - const OptionalURIParams& aAppURI) MOZ_OVERRIDE; - virtual bool - RecvPRemoteOpenFileConstructor(PRemoteOpenFileParent* aActor, - const SerializedLoadContext& aSerialized, - const URIParams& aFileURI, - const OptionalURIParams& aAppURI) - MOZ_OVERRIDE; + virtual PRemoteOpenFileParent* AllocPRemoteOpenFileParent(const URIParams& aFileURI, + const OptionalURIParams& aAppURI) + MOZ_OVERRIDE; + virtual bool RecvPRemoteOpenFileConstructor(PRemoteOpenFileParent* aActor, + const URIParams& aFileURI, + const OptionalURIParams& aAppURI) + MOZ_OVERRIDE; virtual bool DeallocPRemoteOpenFileParent(PRemoteOpenFileParent* aActor) MOZ_OVERRIDE; virtual bool DeallocPTCPSocketParent(PTCPSocketParent*) MOZ_OVERRIDE; virtual PTCPServerSocketParent* AllocPTCPServerSocketParent(const uint16_t& aLocalPort, const uint16_t& aBacklog, const nsString& aBinaryType) MOZ_OVERRIDE;
--- a/netwerk/ipc/PNecko.ipdl +++ b/netwerk/ipc/PNecko.ipdl @@ -63,19 +63,17 @@ parent: FTPChannelCreationArgs args); PWebSocket(PBrowser browser, SerializedLoadContext loadContext); PTCPServerSocket(uint16_t localPort, uint16_t backlog, nsString binaryType); PUDPSocket(nsCString host, uint16_t port, nsCString filter); PDNSRequest(nsCString hostName, uint32_t flags); - PRemoteOpenFile(SerializedLoadContext loadContext, - URIParams fileuri, - OptionalURIParams appuri); + PRemoteOpenFile(URIParams fileuri, OptionalURIParams appuri); HTMLDNSPrefetch(nsString hostname, uint16_t flags); CancelHTMLDNSPrefetch(nsString hostname, uint16_t flags, nsresult reason); PRtspController(); PRtspChannel(RtspChannelConnectArgs args); PChannelDiverter(ChannelDiverterArgs channel); both:
--- a/netwerk/ipc/RemoteOpenFileChild.cpp +++ b/netwerk/ipc/RemoteOpenFileChild.cpp @@ -170,18 +170,17 @@ RemoteOpenFileChild::Init(nsIURI* aRemot NS_ENSURE_SUCCESS(rv, rv); return NS_OK; } nsresult RemoteOpenFileChild::AsyncRemoteFileOpen(int32_t aFlags, nsIRemoteOpenFileListener* aListener, - nsITabChild* aTabChild, - nsILoadContext *aLoadContext) + nsITabChild* aTabChild) { if (!mFile) { return NS_ERROR_NOT_INITIALIZED; } if (!aListener) { return NS_ERROR_INVALID_ARG; } @@ -223,18 +222,17 @@ RemoteOpenFileChild::AsyncRemoteFileOpen } } URIParams uri; SerializeURI(mURI, uri); OptionalURIParams appUri; SerializeURI(mAppURI, appUri); - IPC::SerializedLoadContext loadContext(aLoadContext); - gNeckoChild->SendPRemoteOpenFileConstructor(this, loadContext, uri, appUri); + gNeckoChild->SendPRemoteOpenFileConstructor(this, uri, appUri); // The chrome process now has a logical ref to us until it calls Send__delete. AddIPDLReference(); mListener = aListener; mAsyncOpenCalled = true; return NS_OK; #endif
--- a/netwerk/ipc/RemoteOpenFileChild.h +++ b/netwerk/ipc/RemoteOpenFileChild.h @@ -67,18 +67,17 @@ public: // a file:// uri. nsresult Init(nsIURI* aRemoteOpenUri, nsIURI* aAppUri); // Send message to parent to tell it to open file handle for file. // TabChild is required, for IPC security. // Note: currently only PR_RDONLY is supported for 'flags' nsresult AsyncRemoteFileOpen(int32_t aFlags, nsIRemoteOpenFileListener* aListener, - nsITabChild* aTabChild, - nsILoadContext *aLoadContext); + nsITabChild* aTabChild); void ReleaseIPDLReference() { Release(); } private: RemoteOpenFileChild(const RemoteOpenFileChild& other);