Bug 1646892 - Move ParentChannelWrapper into a separate file. r=jya,nika

Differential Revision: https://phabricator.services.mozilla.com/D80326
This commit is contained in:
Matt Woodrow 2020-06-27 04:09:35 +00:00
Родитель 48aeb2fe30
Коммит 8a6af22c34
4 изменённых файлов: 127 добавлений и 88 удалений

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

@ -0,0 +1,88 @@
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set sw=2 ts=8 et 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 "ParentChannelWrapper.h"
#include "mozilla/net/UrlClassifierCommon.h"
namespace mozilla {
namespace net {
NS_IMPL_ISUPPORTS(ParentChannelWrapper, nsIParentChannel, nsIStreamListener,
nsIRequestObserver);
////////////////////////////////////////////////////////////////////////////////
// nsIParentChannel
////////////////////////////////////////////////////////////////////////////////
NS_IMETHODIMP
ParentChannelWrapper::SetParentListener(
mozilla::net::ParentChannelListener* listener) {
return NS_OK;
}
NS_IMETHODIMP
ParentChannelWrapper::NotifyFlashPluginStateChanged(
nsIHttpChannel::FlashPluginState aState) {
// For now, only HttpChannel use this attribute.
RefPtr<HttpBaseChannel> httpChannel = do_QueryObject(mChannel);
if (httpChannel) {
httpChannel->SetFlashPluginState(aState);
}
return NS_OK;
}
NS_IMETHODIMP
ParentChannelWrapper::SetClassifierMatchedInfo(const nsACString& aList,
const nsACString& aProvider,
const nsACString& aFullHash) {
nsCOMPtr<nsIClassifiedChannel> classifiedChannel =
do_QueryInterface(mChannel);
if (classifiedChannel) {
classifiedChannel->SetMatchedInfo(aList, aProvider, aFullHash);
}
return NS_OK;
}
NS_IMETHODIMP
ParentChannelWrapper::SetClassifierMatchedTrackingInfo(
const nsACString& aLists, const nsACString& aFullHash) {
nsCOMPtr<nsIClassifiedChannel> classifiedChannel =
do_QueryInterface(mChannel);
if (classifiedChannel) {
nsTArray<nsCString> lists, fullhashes;
for (const nsACString& token : aLists.Split(',')) {
lists.AppendElement(token);
}
for (const nsACString& token : aFullHash.Split(',')) {
fullhashes.AppendElement(token);
}
classifiedChannel->SetMatchedTrackingInfo(lists, fullhashes);
}
return NS_OK;
}
NS_IMETHODIMP
ParentChannelWrapper::NotifyClassificationFlags(uint32_t aClassificationFlags,
bool aIsThirdParty) {
UrlClassifierCommon::SetClassificationFlagsHelper(
mChannel, aClassificationFlags, aIsThirdParty);
return NS_OK;
}
NS_IMETHODIMP
ParentChannelWrapper::Delete() { return NS_OK; }
NS_IMETHODIMP
ParentChannelWrapper::GetRemoteType(nsAString& aRemoteType) {
aRemoteType = VoidString();
return NS_OK;
}
} // namespace net
} // namespace mozilla
#undef LOG

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

@ -0,0 +1,35 @@
/* vim: set sw=2 ts=8 et 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 mozilla_net_ParentChannelWrapper_h
#define mozilla_net_ParentChannelWrapper_h
#include "nsIParentChannel.h"
#include "nsIStreamListener.h"
namespace mozilla {
namespace net {
class ParentChannelWrapper : public nsIParentChannel {
public:
ParentChannelWrapper(nsIChannel* aChannel, nsIStreamListener* aListener)
: mChannel(aChannel), mListener(aListener) {}
NS_DECL_ISUPPORTS
NS_DECL_NSIPARENTCHANNEL
NS_FORWARD_NSISTREAMLISTENER(mListener->)
NS_FORWARD_NSIREQUESTOBSERVER(mListener->)
private:
virtual ~ParentChannelWrapper() = default;
const nsCOMPtr<nsIChannel> mChannel;
const nsCOMPtr<nsIStreamListener> mListener;
};
} // namespace net
} // namespace mozilla
#endif // mozilla_net_ParentChannelWrapper_h

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

@ -7,12 +7,13 @@
#include "ParentProcessDocumentChannel.h"
#include "mozilla/net/ParentChannelWrapper.h"
#include "mozilla/net/UrlClassifierCommon.h"
#include "mozilla/StaticPrefs_extensions.h"
#include "nsDocShell.h"
#include "nsIObserverService.h"
#include "nsIClassifiedChannel.h"
#include "nsIRedirectChannelRegistrar.h"
#include "mozilla/net/UrlClassifierCommon.h"
extern mozilla::LazyLogModule gDocumentChannelLog;
#define LOG(fmt) MOZ_LOG(gDocumentChannelLog, mozilla::LogLevel::Verbose, fmt)
@ -23,25 +24,6 @@ namespace net {
using RedirectToRealChannelPromise =
typename PDocumentChannelParent::RedirectToRealChannelPromise;
class ParentChannelWrapper : public nsIParentChannel {
public:
ParentChannelWrapper(nsIChannel* aChannel, nsIStreamListener* aListener)
: mChannel(aChannel), mListener(aListener) {}
NS_DECL_ISUPPORTS
NS_DECL_NSIPARENTCHANNEL
NS_FORWARD_NSISTREAMLISTENER(mListener->)
NS_FORWARD_NSIREQUESTOBSERVER(mListener->)
private:
virtual ~ParentChannelWrapper() = default;
const nsCOMPtr<nsIChannel> mChannel;
const nsCOMPtr<nsIStreamListener> mListener;
};
NS_IMPL_ISUPPORTS(ParentChannelWrapper, nsIParentChannel, nsIStreamListener,
nsIRequestObserver);
NS_IMPL_ISUPPORTS_INHERITED(ParentProcessDocumentChannel, DocumentChannel,
nsIAsyncVerifyRedirectCallback, nsIObserver)
@ -287,74 +269,6 @@ ParentProcessDocumentChannel::Observe(nsISupports* aSubject, const char* aTopic,
return NS_OK;
}
////////////////////////////////////////////////////////////////////////////////
// nsIParentChannel
////////////////////////////////////////////////////////////////////////////////
NS_IMETHODIMP
ParentChannelWrapper::SetParentListener(
mozilla::net::ParentChannelListener* listener) {
return NS_OK;
}
NS_IMETHODIMP
ParentChannelWrapper::NotifyFlashPluginStateChanged(
nsIHttpChannel::FlashPluginState aState) {
// For now, only HttpChannel use this attribute.
RefPtr<HttpBaseChannel> httpChannel = do_QueryObject(mChannel);
if (httpChannel) {
httpChannel->SetFlashPluginState(aState);
}
return NS_OK;
}
NS_IMETHODIMP
ParentChannelWrapper::SetClassifierMatchedInfo(const nsACString& aList,
const nsACString& aProvider,
const nsACString& aFullHash) {
nsCOMPtr<nsIClassifiedChannel> classifiedChannel =
do_QueryInterface(mChannel);
if (classifiedChannel) {
classifiedChannel->SetMatchedInfo(aList, aProvider, aFullHash);
}
return NS_OK;
}
NS_IMETHODIMP
ParentChannelWrapper::SetClassifierMatchedTrackingInfo(
const nsACString& aLists, const nsACString& aFullHash) {
nsCOMPtr<nsIClassifiedChannel> classifiedChannel =
do_QueryInterface(mChannel);
if (classifiedChannel) {
nsTArray<nsCString> lists, fullhashes;
for (const nsACString& token : aLists.Split(',')) {
lists.AppendElement(token);
}
for (const nsACString& token : aFullHash.Split(',')) {
fullhashes.AppendElement(token);
}
classifiedChannel->SetMatchedTrackingInfo(lists, fullhashes);
}
return NS_OK;
}
NS_IMETHODIMP
ParentChannelWrapper::NotifyClassificationFlags(uint32_t aClassificationFlags,
bool aIsThirdParty) {
UrlClassifierCommon::SetClassificationFlagsHelper(
mChannel, aClassificationFlags, aIsThirdParty);
return NS_OK;
}
NS_IMETHODIMP
ParentChannelWrapper::Delete() { return NS_OK; }
NS_IMETHODIMP
ParentChannelWrapper::GetRemoteType(nsAString& aRemoteType) {
aRemoteType = VoidString();
return NS_OK;
}
} // namespace net
} // namespace mozilla

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

@ -17,6 +17,7 @@ EXPORTS.mozilla.net += [
'NeckoMessageUtils.h',
'NeckoParent.h',
'NeckoTargetHolder.h',
'ParentChannelWrapper.h',
'ParentProcessDocumentChannel.h',
'ProxyConfigLookup.h',
'ProxyConfigLookupChild.h',
@ -40,6 +41,7 @@ UNIFIED_SOURCES += [
'NeckoChild.cpp',
'NeckoParent.cpp',
'NeckoTargetHolder.cpp',
'ParentChannelWrapper.cpp',
'ParentProcessDocumentChannel.cpp',
'ProxyConfigLookup.cpp',
'ProxyConfigLookupChild.cpp',