Backed out changeset 97858e5c1f13 (bug 975338)

This commit is contained in:
Ed Morley 2014-03-10 17:57:53 +00:00
Родитель d40a564ed3
Коммит e914d19aae
23 изменённых файлов: 1 добавлений и 365 удалений

Просмотреть файл

@ -1,27 +0,0 @@
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "mozilla/net/ChannelDiverterChild.h"
#include "mozilla/net/NeckoChannelParams.h"
#include "mozilla/net/HttpChannelChild.h"
#include "mozilla/net/FTPChannelChild.h"
#include "mozilla/net/PHttpChannelChild.h"
#include "mozilla/net/PFTPChannelChild.h"
#include "nsIDivertableChannel.h"
namespace mozilla {
namespace net {
ChannelDiverterChild::ChannelDiverterChild()
{
}
ChannelDiverterChild::~ChannelDiverterChild()
{
}
} // namespace net
} // namespace mozilla

Просмотреть файл

@ -1,30 +0,0 @@
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef _channeldiverterchild_h_
#define _channeldiverterchild_h_
#include "mozilla/net/PChannelDiverterChild.h"
class nsIDivertableChannel;
namespace mozilla {
namespace net {
class ChannelDiverterArgs;
class ChannelDiverterChild :
public PChannelDiverterChild
{
public:
ChannelDiverterChild();
virtual ~ChannelDiverterChild();
};
} // namespace net
} // namespace mozilla
#endif /* _channeldiverterchild_h_ */

Просмотреть файл

@ -1,65 +0,0 @@
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "mozilla/net/ChannelDiverterParent.h"
#include "mozilla/net/NeckoChannelParams.h"
#include "mozilla/net/HttpChannelParent.h"
#include "mozilla/net/FTPChannelParent.h"
#include "mozilla/net/PHttpChannelParent.h"
#include "mozilla/net/PFTPChannelParent.h"
#include "ADivertableParentChannel.h"
namespace mozilla {
namespace net {
ChannelDiverterParent::ChannelDiverterParent()
{
}
ChannelDiverterParent::~ChannelDiverterParent()
{
}
bool
ChannelDiverterParent::Init(const ChannelDiverterArgs& aChannel)
{
switch (aChannel.type()) {
case ChannelDiverterArgs::TPHttpChannelParent:
{
mDivertableChannelParent = static_cast<ADivertableParentChannel*>(
static_cast<HttpChannelParent*>(aChannel.get_PHttpChannelParent()));
break;
}
case ChannelDiverterArgs::TPFTPChannelParent:
{
mDivertableChannelParent = static_cast<ADivertableParentChannel*>(
static_cast<FTPChannelParent*>(aChannel.get_PFTPChannelParent()));
break;
}
default:
NS_NOTREACHED("unknown ChannelDiverterArgs type");
return false;
}
MOZ_ASSERT(mDivertableChannelParent);
nsresult rv = mDivertableChannelParent->SuspendForDiversion();
if (NS_WARN_IF(NS_FAILED(rv))) {
return false;
}
return true;
}
void
ChannelDiverterParent::DivertTo(nsIStreamListener* newListener)
{
MOZ_ASSERT(newListener);
MOZ_ASSERT(mDivertableChannelParent);
mDivertableChannelParent->DivertTo(newListener);
}
} // namespace net
} // namespace mozilla

Просмотреть файл

@ -1,37 +0,0 @@
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef _channeldiverterparent_h_
#define _channeldiverterparent_h_
#include "mozilla/net/PChannelDiverterParent.h"
class nsIStreamListener;
namespace mozilla {
namespace net {
class ChannelDiverterArgs;
class ADivertableParentChannel;
class ChannelDiverterParent :
public PChannelDiverterParent
{
public:
ChannelDiverterParent();
virtual ~ChannelDiverterParent();
bool Init(const ChannelDiverterArgs& aChannel);
void DivertTo(nsIStreamListener* newListener);
private:
nsRefPtr<ADivertableParentChannel> mDivertableChannelParent;
};
} // namespace net
} // namespace mozilla
#endif /* _channeldiverterparent_h_ */

Просмотреть файл

@ -12,8 +12,6 @@ EXPORTS += [
]
EXPORTS.mozilla.net += [
'ChannelDiverterChild.h',
'ChannelDiverterParent.h',
'Dashboard.h',
'DashboardTypes.h',
]
@ -21,8 +19,6 @@ EXPORTS.mozilla.net += [
UNIFIED_SOURCES += [
'ArrayBufferInputStream.cpp',
'BackgroundFileSaver.cpp',
'ChannelDiverterChild.cpp',
'ChannelDiverterParent.cpp',
'Dashboard.cpp',
'EventTokenBucket.cpp',
'LoadContextInfo.cpp',
@ -117,7 +113,6 @@ include('/ipc/chromium/chromium-config.mozbuild')
FINAL_LIBRARY = 'necko'
LOCAL_INCLUDES += [
'/dom/base',
'/netwerk/protocol/http'
]
if 'rtsp' in CONFIG['NECKO_PROTOCOLS']:

Просмотреть файл

@ -5,8 +5,6 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
include protocol PHttpChannel;
include protocol PFTPChannel;
include URIParams;
include InputStreamParams;
@ -82,11 +80,5 @@ union FTPChannelCreationArgs
FTPChannelConnectArgs; // Used for redirected-to channels
};
union ChannelDiverterArgs
{
PHttpChannel;
PFTPChannel;
};
} // namespace ipc
} // namespace mozilla

Просмотреть файл

@ -16,7 +16,6 @@
#include "mozilla/net/WebSocketChannelChild.h"
#include "mozilla/net/DNSRequestChild.h"
#include "mozilla/net/RemoteOpenFileChild.h"
#include "mozilla/net/ChannelDiverterChild.h"
#include "mozilla/dom/network/TCPSocketChild.h"
#include "mozilla/dom/network/TCPServerSocketChild.h"
#include "mozilla/dom/network/UDPSocketChild.h"
@ -267,18 +266,5 @@ NeckoChild::DeallocPRemoteOpenFileChild(PRemoteOpenFileChild* aChild)
return true;
}
PChannelDiverterChild*
NeckoChild::AllocPChannelDiverterChild(const ChannelDiverterArgs& channel)
{
return new ChannelDiverterChild();;
}
bool
NeckoChild::DeallocPChannelDiverterChild(PChannelDiverterChild* child)
{
delete static_cast<ChannelDiverterChild*>(child);
return true;
}
}} // mozilla::net

Просмотреть файл

@ -62,10 +62,6 @@ protected:
virtual bool DeallocPRemoteOpenFileChild(PRemoteOpenFileChild*) MOZ_OVERRIDE;
virtual PRtspControllerChild* AllocPRtspControllerChild() MOZ_OVERRIDE;
virtual bool DeallocPRtspControllerChild(PRtspControllerChild*) MOZ_OVERRIDE;
virtual PChannelDiverterChild*
AllocPChannelDiverterChild(const ChannelDiverterArgs& channel) MOZ_OVERRIDE;
virtual bool
DeallocPChannelDiverterChild(PChannelDiverterChild* actor) MOZ_OVERRIDE;
};
/**

Просмотреть файл

@ -18,7 +18,6 @@
#endif
#include "mozilla/net/DNSRequestParent.h"
#include "mozilla/net/RemoteOpenFileParent.h"
#include "mozilla/net/ChannelDiverterParent.h"
#include "mozilla/dom/ContentParent.h"
#include "mozilla/dom/TabParent.h"
#include "mozilla/dom/network/TCPSocketParent.h"
@ -609,28 +608,6 @@ NeckoParent::RecvCancelHTMLDNSPrefetch(const nsString& hostname,
return true;
}
PChannelDiverterParent*
NeckoParent::AllocPChannelDiverterParent(const ChannelDiverterArgs& channel)
{
return new ChannelDiverterParent();
}
bool
NeckoParent::RecvPChannelDiverterConstructor(PChannelDiverterParent* actor,
const ChannelDiverterArgs& channel)
{
auto parent = static_cast<ChannelDiverterParent*>(actor);
parent->Init(channel);
return true;
}
bool
NeckoParent::DeallocPChannelDiverterParent(PChannelDiverterParent* parent)
{
delete static_cast<ChannelDiverterParent*>(parent);
return true;
}
void
NeckoParent::CloneManagees(ProtocolBase* aSource,
mozilla::ipc::ProtocolCloneContext* aCtx)

Просмотреть файл

@ -144,14 +144,6 @@ protected:
virtual PRtspControllerParent* AllocPRtspControllerParent() MOZ_OVERRIDE;
virtual bool DeallocPRtspControllerParent(PRtspControllerParent*) MOZ_OVERRIDE;
virtual PChannelDiverterParent*
AllocPChannelDiverterParent(const ChannelDiverterArgs& channel) MOZ_OVERRIDE;
virtual bool
RecvPChannelDiverterConstructor(PChannelDiverterParent* actor,
const ChannelDiverterArgs& channel) MOZ_OVERRIDE;
virtual bool DeallocPChannelDiverterParent(PChannelDiverterParent* actor)
MOZ_OVERRIDE;
private:
nsCString mCoreAppsBasePath;
nsCString mWebAppsBasePath;

Просмотреть файл

@ -1,25 +0,0 @@
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80 ft=cpp: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
include protocol PFTPChannel;
include protocol PHttpChannel;
include protocol PNecko;
namespace mozilla {
namespace net {
// Used when diverting necko channels from child back to the parent.
// See nsIDivertableChannel.
async protocol PChannelDiverter
{
manager PNecko;
child:
__delete__();
};
}// namespace net
}// namespace mozilla

Просмотреть файл

@ -17,7 +17,6 @@ include protocol PTCPServerSocket;
include protocol PUDPSocket;
include protocol PRemoteOpenFile;
include protocol PDNSRequest;
include protocol PChannelDiverter;
include protocol PBlob; //FIXME: bug #792908
include protocol PRtspController;
@ -46,7 +45,6 @@ sync protocol PNecko
manages PDNSRequest;
manages PRemoteOpenFile;
manages PRtspController;
manages PChannelDiverter;
parent:
__delete__();
@ -70,7 +68,6 @@ parent:
HTMLDNSPrefetch(nsString hostname, uint16_t flags);
CancelHTMLDNSPrefetch(nsString hostname, uint16_t flags, nsresult reason);
PRtspController();
PChannelDiverter(ChannelDiverterArgs channel);
both:
PTCPSocket();

Просмотреть файл

@ -31,7 +31,6 @@ UNIFIED_SOURCES += [
IPDL_SOURCES = [
'NeckoChannelParams.ipdlh',
'PChannelDiverter.ipdl',
'PNecko.ipdl',
'PRemoteOpenFile.ipdl',
'PRtspController.ipdl',

Просмотреть файл

@ -430,18 +430,6 @@ FTPChannelChild::DoFailedAsyncOpen(const nsresult& statusCode)
Send__delete__(this);
}
bool
FTPChannelChild::RecvFlushedForDiversion()
{
return false;
}
bool
FTPChannelChild::RecvDivertMessages()
{
return false;
}
class FTPDeleteSelfEvent : public ChannelEvent
{
public:

Просмотреть файл

@ -79,8 +79,6 @@ protected:
const uint32_t& count) MOZ_OVERRIDE;
bool RecvOnStopRequest(const nsresult& statusCode) MOZ_OVERRIDE;
bool RecvFailedAsyncOpen(const nsresult& statusCode) MOZ_OVERRIDE;
bool RecvFlushedForDiversion() MOZ_OVERRIDE;
bool RecvDivertMessages() MOZ_OVERRIDE;
bool RecvDeleteSelf() MOZ_OVERRIDE;
void DoOnStartRequest(const int64_t& aContentLength,

Просмотреть файл

@ -179,26 +179,6 @@ FTPChannelParent::RecvResume()
return true;
}
bool
FTPChannelParent::RecvDivertOnDataAvailable(const nsCString& data,
const uint64_t& offset,
const uint32_t& count)
{
return false;
}
bool
FTPChannelParent::RecvDivertOnStopRequest(const nsresult& statusCode)
{
return false;
}
bool
FTPChannelParent::RecvDivertComplete()
{
return false;
}
//-----------------------------------------------------------------------------
// FTPChannelParent::nsIRequestObserver
//-----------------------------------------------------------------------------

Просмотреть файл

@ -47,11 +47,6 @@ protected:
virtual bool RecvCancel(const nsresult& status) MOZ_OVERRIDE;
virtual bool RecvSuspend() MOZ_OVERRIDE;
virtual bool RecvResume() MOZ_OVERRIDE;
virtual bool RecvDivertOnDataAvailable(const nsCString& data,
const uint64_t& offset,
const uint32_t& count) MOZ_OVERRIDE;
virtual bool RecvDivertOnStopRequest(const nsresult& statusCode) MOZ_OVERRIDE;
virtual bool RecvDivertComplete() MOZ_OVERRIDE;
virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE;

Просмотреть файл

@ -32,31 +32,12 @@ parent:
Suspend();
Resume();
// Divert OnDataAvailable to the parent.
DivertOnDataAvailable(nsCString data,
uint64_t offset,
uint32_t count);
// Divert OnStopRequest to the parent.
DivertOnStopRequest(nsresult statusCode);
// Child has no more events/messages to divert to the parent.
DivertComplete();
child:
OnStartRequest(int64_t aContentLength, nsCString aContentType,
PRTime aLastModified, nsCString aEntityID, URIParams aURI);
OnDataAvailable(nsCString data, uint64_t offset, uint32_t count);
OnStopRequest(nsresult statusCode);
FailedAsyncOpen(nsresult statusCode);
// Parent has been suspended for diversion; no more events to be enqueued.
FlushedForDiversion();
// Child should resume processing the ChannelEventQueue, i.e. diverting any
// OnDataAvailable and OnStopRequest messages in the queue back to the parent.
DivertMessages();
DeleteSelf();
};

Просмотреть файл

@ -777,18 +777,6 @@ HttpChannelChild::RecvRedirect3Complete()
return true;
}
bool
HttpChannelChild::RecvFlushedForDiversion()
{
return false;
}
bool
HttpChannelChild::RecvDivertMessages()
{
return false;
}
void
HttpChannelChild::Redirect3Complete()
{

Просмотреть файл

@ -118,8 +118,6 @@ protected:
bool RecvRedirect3Complete() MOZ_OVERRIDE;
bool RecvAssociateApplicationCache(const nsCString& groupID,
const nsCString& clientID) MOZ_OVERRIDE;
bool RecvFlushedForDiversion() MOZ_OVERRIDE;
bool RecvDivertMessages() MOZ_OVERRIDE;
bool RecvDeleteSelf() MOZ_OVERRIDE;
bool GetAssociatedContentSecurity(nsIAssociatedContentSecurity** res = nullptr);

Просмотреть файл

@ -435,26 +435,6 @@ HttpChannelParent::RecvMarkOfflineCacheEntryAsForeign()
return true;
}
bool
HttpChannelParent::RecvDivertOnDataAvailable(const nsCString& data,
const uint64_t& offset,
const uint32_t& count)
{
return false;
}
bool
HttpChannelParent::RecvDivertOnStopRequest(const nsresult& statusCode)
{
return false;
}
bool
HttpChannelParent::RecvDivertComplete()
{
return false;
}
//-----------------------------------------------------------------------------
// HttpChannelParent::nsIRequestObserver
//-----------------------------------------------------------------------------

Просмотреть файл

@ -89,11 +89,7 @@ protected:
const int32_t& no) MOZ_OVERRIDE;
virtual bool RecvDocumentChannelCleanup() MOZ_OVERRIDE;
virtual bool RecvMarkOfflineCacheEntryAsForeign() MOZ_OVERRIDE;
virtual bool RecvDivertOnDataAvailable(const nsCString& data,
const uint64_t& offset,
const uint32_t& count) MOZ_OVERRIDE;
virtual bool RecvDivertOnStopRequest(const nsresult& statusCode) MOZ_OVERRIDE;
virtual bool RecvDivertComplete() MOZ_OVERRIDE;
virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE;
protected:

Просмотреть файл

@ -66,17 +66,6 @@ parent:
// again, indefinitely.
MarkOfflineCacheEntryAsForeign();
// Divert OnDataAvailable to the parent.
DivertOnDataAvailable(nsCString data,
uint64_t offset,
uint32_t count);
// Divert OnStopRequest to the parent.
DivertOnStopRequest(nsresult statusCode);
// Child has no more events/messages to divert to the parent.
DivertComplete();
__delete__();
child:
@ -124,13 +113,6 @@ child:
AssociateApplicationCache(nsCString groupID,
nsCString clientID);
// Parent has been suspended for diversion; no more events to be enqueued.
FlushedForDiversion();
// Child should resume processing the ChannelEventQueue, i.e. diverting any
// OnDataAvailable and OnStopRequest messages in the queue back to the parent.
DivertMessages();
// Tell child to delete channel (all IPDL deletes must be done from child to
// avoid races: see bug 591708).
DeleteSelf();