Bug 1809753 - Part 3: Replace all callers of GetCurrentEventTarget with GetCurrentSerialEventTarget, r=mccr8,necko-reviewers,valentin

This only changes the behaviour when called with a TaskQueue or other type
using SerialEventTargetGuard on the stack. They are being switched over as the
existing GetCurrentEventTarget method is being removed, as it is somewhat
confusing, and poorly documented.

Callers which need to get the current thread even when on a threadpool or
behind a TaskQueue were switched to GetCurrentEventTarget in the previous part.

Differential Revision: https://phabricator.services.mozilla.com/D166607
This commit is contained in:
Nika Layzell 2023-01-16 23:14:11 +00:00
Родитель 528844de5d
Коммит 8d118308de
56 изменённых файлов: 83 добавлений и 95 удалений

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

@ -683,7 +683,7 @@ void CCGCScheduler::EnsureCCRunner(TimeDuration aDelay, TimeDuration aBudget) {
minimumBudget, true, [this] { return mDidShutdown; });
} else {
mCCRunner->SetMinimumUsefulBudget(minimumBudget.ToMilliseconds());
nsIEventTarget* target = mozilla::GetCurrentEventTarget();
nsIEventTarget* target = mozilla::GetCurrentSerialEventTarget();
if (target) {
mCCRunner->SetTimer(aDelay, target);
}

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

@ -88,7 +88,7 @@ class EncodingCompleteEvent final : public DiscardableRunnable {
mEncodeCompleteCallback(aEncodeCompleteCallback),
mFailed(false) {
if (!NS_IsMainThread() && IsCurrentThreadRunningWorker()) {
mCreationEventTarget = GetCurrentEventTarget();
mCreationEventTarget = GetCurrentSerialEventTarget();
} else {
mCreationEventTarget = GetMainThreadEventTarget();
}

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

@ -341,7 +341,7 @@ StructuredCloneHolder::StructuredCloneHolder(
mGlobal(nullptr)
#ifdef DEBUG
,
mCreationEventTarget(GetCurrentEventTarget())
mCreationEventTarget(GetCurrentSerialEventTarget())
#endif
{
}

2
dom/cache/Context.cpp поставляемый
Просмотреть файл

@ -475,7 +475,7 @@ class Context::ActionRunnable final : public nsIRunnable,
mTarget(aTarget),
mAction(std::move(aAction)),
mDirectoryMetadata(aDirectoryMetadata),
mInitiatingThread(GetCurrentEventTarget()),
mInitiatingThread(GetCurrentSerialEventTarget()),
mState(STATE_INIT),
mResult(NS_OK),
mExecutingRunOnTarget(false) {

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

@ -13,7 +13,7 @@
namespace mozilla::dom {
FileCreatorParent::FileCreatorParent()
: mBackgroundEventTarget(GetCurrentEventTarget()), mIPCActive(true) {}
: mBackgroundEventTarget(GetCurrentSerialEventTarget()), mIPCActive(true) {}
FileCreatorParent::~FileCreatorParent() = default;

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

@ -84,7 +84,7 @@ class CheckPermissionRunnable final : public Runnable {
mActor(aActor),
mTask(aTask),
mPath(aPath),
mBackgroundEventTarget(GetCurrentEventTarget()) {
mBackgroundEventTarget(GetCurrentSerialEventTarget()) {
AssertIsInMainProcess();
AssertIsOnBackgroundThread();

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

@ -156,7 +156,7 @@ FileSystemTaskParentBase::FileSystemTaskParentBase(
mErrorValue(NS_OK),
mFileSystem(aFileSystem),
mRequestParent(aParent),
mBackgroundEventTarget(GetCurrentEventTarget()) {
mBackgroundEventTarget(GetCurrentSerialEventTarget()) {
MOZ_ASSERT(XRE_IsParentProcess(), "Only call from parent process!");
MOZ_ASSERT(aFileSystem, "aFileSystem should not be null.");
MOZ_ASSERT(aParent);

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

@ -47,7 +47,7 @@ GamepadEventChannelParent::Create() {
GamepadEventChannelParent::GamepadEventChannelParent() : mIsShutdown{false} {
MOZ_DIAGNOSTIC_ASSERT(IsOnBackgroundThread());
mBackgroundEventTarget = GetCurrentEventTarget();
mBackgroundEventTarget = GetCurrentSerialEventTarget();
RefPtr<GamepadPlatformService> service =
GamepadPlatformService::GetParentService();

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

@ -1885,7 +1885,7 @@ class DatabaseOperationBase : public Runnable,
DatabaseOperationBase(const nsID& aBackgroundChildLoggingId,
uint64_t aLoggingSerialNumber)
: Runnable("dom::indexedDB::DatabaseOperationBase"),
mOwningEventTarget(GetCurrentEventTarget()),
mOwningEventTarget(GetCurrentSerialEventTarget()),
mBackgroundChildLoggingId(aBackgroundChildLoggingId),
mLoggingSerialNumber(aLoggingSerialNumber),
mOperationMayProceed(true) {
@ -8729,7 +8729,7 @@ ConnectionPool::ConnectionRunnable::ConnectionRunnable(
DatabaseInfo& aDatabaseInfo)
: Runnable("dom::indexedDB::ConnectionPool::ConnectionRunnable"),
mDatabaseInfo(aDatabaseInfo),
mOwningEventTarget(GetCurrentEventTarget()) {
mOwningEventTarget(GetCurrentSerialEventTarget()) {
AssertIsOnBackgroundThread();
MOZ_ASSERT(aDatabaseInfo.mConnectionPool);
aDatabaseInfo.mConnectionPool->AssertIsOnOwningThread();
@ -8866,7 +8866,7 @@ ConnectionPool::FinishCallbackWrapper::FinishCallbackWrapper(
: Runnable("dom::indexedDB::ConnectionPool::FinishCallbackWrapper"),
mConnectionPool(aConnectionPool),
mCallback(aCallback),
mOwningEventTarget(GetCurrentEventTarget()),
mOwningEventTarget(GetCurrentSerialEventTarget()),
mTransactionId(aTransactionId),
mHasRunOnce(false) {
AssertIsOnBackgroundThread();
@ -9531,7 +9531,7 @@ Database::Database(SafeRefPtr<Factory> aFactory,
mFileHandleDisabled(aFileHandleDisabled),
mChromeWriteAccessAllowed(aChromeWriteAccessAllowed),
mInPrivateBrowsing(aInPrivateBrowsing),
mBackgroundThread(GetCurrentEventTarget())
mBackgroundThread(GetCurrentSerialEventTarget())
#ifdef DEBUG
,
mAllBlobsUnmapped(false)
@ -12932,7 +12932,7 @@ void QuotaClient::StartIdleMaintenance() {
return;
}
mBackgroundThread = GetCurrentEventTarget();
mBackgroundThread = GetCurrentSerialEventTarget();
mMaintenanceQueue.EmplaceBack(MakeRefPtr<Maintenance>(this));
ProcessMaintenanceQueue();
@ -13193,7 +13193,7 @@ void QuotaClient::ProcessMaintenanceQueue() {
DeleteFilesRunnable::DeleteFilesRunnable(
SafeRefPtr<DatabaseFileManager> aFileManager, nsTArray<int64_t>&& aFileIds)
: Runnable("dom::indexeddb::DeleteFilesRunnable"),
mOwningEventTarget(GetCurrentEventTarget()),
mOwningEventTarget(GetCurrentSerialEventTarget()),
mFileManager(std::move(aFileManager)),
mFileIds(std::move(aFileIds)),
mState(State_Initial) {}

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

@ -1187,7 +1187,7 @@ class DatastoreOperationBase : public Runnable {
protected:
DatastoreOperationBase()
: Runnable("dom::DatastoreOperationBase"),
mOwningEventTarget(GetCurrentEventTarget()),
mOwningEventTarget(GetCurrentSerialEventTarget()),
mResultCode(NS_OK),
mMayProceedOnNonOwningThread(true),
mMayProceed(true) {}

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

@ -153,7 +153,7 @@ class RequestHelper final : public Runnable, public LSRequestChildCallback {
RequestHelper(LSObject* aObject, const LSRequestParams& aParams)
: Runnable("dom::RequestHelper"),
mObject(aObject),
mOwningEventTarget(GetCurrentEventTarget()),
mOwningEventTarget(GetCurrentSerialEventTarget()),
mActor(nullptr),
mParams(aParams),
mMonitor("dom::RequestHelper::mMonitor"),

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

@ -96,7 +96,7 @@ class AsyncRequestHelper final : public Runnable,
const LSRequestParams& aParams)
: Runnable("dom::LocalStorageManager2::AsyncRequestHelper"),
mManager(aManager),
mOwningEventTarget(GetCurrentEventTarget()),
mOwningEventTarget(GetCurrentSerialEventTarget()),
mActor(nullptr),
mPromise(aPromise),
mParams(aParams),

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

@ -18,7 +18,8 @@ class DriftCompensatorTest : public ::testing::Test {
DriftCompensatorTest()
: mStart(TimeStamp::Now()),
mComp(MakeRefPtr<DriftCompensator>(GetCurrentEventTarget(), mRate)) {
mComp(MakeRefPtr<DriftCompensator>(GetCurrentSerialEventTarget(),
mRate)) {
mComp->NotifyAudioStart(mStart);
// NotifyAudioStart dispatched a runnable to update the audio mStart time on
// the video thread. Because this is a test, the video thread is the current

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

@ -36,7 +36,7 @@ struct InitParam {
class MockDriftCompensator : public DriftCompensator {
public:
MockDriftCompensator()
: DriftCompensator(GetCurrentEventTarget(), VIDEO_TRACK_RATE) {
: DriftCompensator(GetCurrentSerialEventTarget(), VIDEO_TRACK_RATE) {
ON_CALL(*this, GetVideoTime(_, _))
.WillByDefault(Invoke([](TimeStamp, TimeStamp t) { return t; }));
}

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

@ -217,7 +217,7 @@ static void CheckSTSThread() {
// should be done there.
mozilla::ipc::IPCResult UDPSocketParent::RecvConnect(
const UDPAddressInfo& aAddressInfo) {
nsCOMPtr<nsIEventTarget> target = GetCurrentEventTarget();
nsCOMPtr<nsIEventTarget> target = GetCurrentSerialEventTarget();
Unused << NS_WARN_IF(NS_FAILED(GetSTSThread()->Dispatch(
WrapRunnable(RefPtr<UDPSocketParent>(this), &UDPSocketParent::DoConnect,
mSocket, target, aAddressInfo),

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

@ -37,7 +37,7 @@ QuotaChild::QuotaChild(QuotaManagerService* aService)
: mService(aService)
#ifdef DEBUG
,
mOwningThread(GetCurrentEventTarget())
mOwningThread(GetCurrentSerialEventTarget())
#endif
{
AssertIsOnOwningThread();

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

@ -971,7 +971,7 @@ class ServiceWorkerRegistrarSaveDataRunnable final : public Runnable {
ServiceWorkerRegistrarSaveDataRunnable(
nsTArray<ServiceWorkerRegistrationData>&& aData, uint32_t aGeneration)
: Runnable("dom::ServiceWorkerRegistrarSaveDataRunnable"),
mEventTarget(GetCurrentEventTarget()),
mEventTarget(GetCurrentSerialEventTarget()),
mData(std::move(aData)),
mGeneration(aGeneration) {
AssertIsOnBackgroundThread();

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

@ -270,7 +270,7 @@ class ConnectionOperationBase : public Runnable,
protected:
ConnectionOperationBase(Connection* aConnection)
: Runnable("dom::ConnectionOperationBase"),
mOwningEventTarget(GetCurrentEventTarget()),
mOwningEventTarget(GetCurrentSerialEventTarget()),
mConnection(aConnection),
mResultCode(NS_OK),
mOperationMayProceed(true),
@ -594,7 +594,7 @@ already_AddRefed<mozilla::dom::quota::Client> CreateQuotaClient() {
StreamHelper::StreamHelper(nsIFileRandomAccessStream* aFileRandomAccessStream,
nsIRunnable* aCallback)
: Runnable("dom::StreamHelper"),
mOwningEventTarget(GetCurrentEventTarget()),
mOwningEventTarget(GetCurrentSerialEventTarget()),
mFileRandomAccessStream(aFileRandomAccessStream),
mCallback(aCallback) {
AssertIsOnBackgroundThread();

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

@ -79,7 +79,7 @@ class StorageDBThread::InitHelper final : public Runnable {
public:
InitHelper()
: Runnable("dom::StorageDBThread::InitHelper"),
mOwningThread(GetCurrentEventTarget()),
mOwningThread(GetCurrentSerialEventTarget()),
mMutex("InitHelper::mMutex"),
mCondVar(mMutex, "InitHelper::mCondVar"),
mMainThreadResultCode(NS_OK),
@ -107,7 +107,7 @@ class StorageDBThread::NoteBackgroundThreadRunnable final : public Runnable {
explicit NoteBackgroundThreadRunnable(const uint32_t aPrivateBrowsingId)
: Runnable("dom::StorageDBThread::NoteBackgroundThreadRunnable"),
mPrivateBrowsingId(aPrivateBrowsingId),
mOwningThread(GetCurrentEventTarget()) {
mOwningThread(GetCurrentSerialEventTarget()) {
MOZ_RELEASE_ASSERT(aPrivateBrowsingId < kPrivateBrowsingIdCount);
}

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

@ -660,7 +660,7 @@ class StorageDBParent::ObserverSink : public StorageObserverSink {
public:
explicit ObserverSink(StorageDBParent* aActor)
: mOwningEventTarget(GetCurrentEventTarget()), mActor(aActor) {
: mOwningEventTarget(GetCurrentSerialEventTarget()), mActor(aActor) {
::mozilla::ipc::AssertIsOnBackgroundThread();
MOZ_ASSERT(aActor);
}

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

@ -70,7 +70,7 @@ void WebTransportParent::Create(
return;
}
parent->mOwningEventTarget = GetCurrentEventTarget();
parent->mOwningEventTarget = GetCurrentSerialEventTarget();
MOZ_ASSERT(aPrincipal);
nsCOMPtr<nsIURI> uri;

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

@ -19,7 +19,7 @@ using namespace ipc;
namespace dom {
SharedWorkerParent::SharedWorkerParent()
: mBackgroundEventTarget(GetCurrentEventTarget()),
: mBackgroundEventTarget(GetCurrentSerialEventTarget()),
mStatus(eInit),
mSuspended(false),
mFrozen(false) {

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

@ -37,7 +37,7 @@ class GetOrCreateWorkerManagerRunnable final : public Runnable {
uint64_t aWindowID,
const MessagePortIdentifier& aPortIdentifier)
: Runnable("GetOrCreateWorkerManagerRunnable"),
mBackgroundEventTarget(GetCurrentEventTarget()),
mBackgroundEventTarget(GetCurrentSerialEventTarget()),
mService(aService),
mActor(aActor),
mData(aData),

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

@ -15,7 +15,7 @@
#include "mozilla/layers/CompositorThread.h"
#include "mozilla/webrender/RenderSharedSurfaceTextureHost.h"
#include "mozilla/webrender/RenderThread.h"
#include "nsThreadUtils.h" // for GetCurrentEventTarget
#include "nsThreadUtils.h" // for GetCurrentSerialEventTarget
namespace mozilla {
namespace layers {
@ -55,7 +55,7 @@ void SharedSurfacesParent::MappingTracker::NotifyHandlerEnd() {
SharedSurfacesParent::SharedSurfacesParent()
: mTracker(
StaticPrefs::image_mem_shared_unmap_min_expiration_ms_AtStartup(),
mozilla::GetCurrentEventTarget()) {}
mozilla::GetCurrentSerialEventTarget()) {}
/* static */
void SharedSurfacesParent::Initialize() {

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

@ -44,7 +44,7 @@ class AsyncBlockers {
}
if (aTimeOutInMs > 0) {
GetCurrentEventTarget()->DelayedDispatch(
GetCurrentSerialEventTarget()->DelayedDispatch(
NS_NewRunnableFunction("AsyncBlockers::WaitUntilClear",
[promise = mPromise]() {
// The AsyncBlockers object may have been

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

@ -99,7 +99,7 @@ nsresult BackgroundFileSaver::Init() {
getter_AddRefs(mPipeOutputStream), true, true, 0,
HasInfiniteBuffer() ? UINT32_MAX : 0);
mControlEventTarget = GetCurrentEventTarget();
mControlEventTarget = GetCurrentSerialEventTarget();
NS_ENSURE_TRUE(mControlEventTarget, NS_ERROR_NOT_INITIALIZED);
nsresult rv = NS_CreateBackgroundTaskQueue("BgFileSaver",

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

@ -489,7 +489,7 @@ Dashboard::RequestSockets(nsINetDashboardCallback* aCallback) {
RefPtr<SocketData> socketData = new SocketData();
socketData->mCallback = new nsMainThreadPtrHolder<nsINetDashboardCallback>(
"nsINetDashboardCallback", aCallback, true);
socketData->mEventTarget = GetCurrentEventTarget();
socketData->mEventTarget = GetCurrentSerialEventTarget();
if (nsIOService::UseSocketProcess()) {
if (!gIOService->SocketProcessReady()) {
@ -579,7 +579,7 @@ Dashboard::RequestHttpConnections(nsINetDashboardCallback* aCallback) {
RefPtr<HttpData> httpData = new HttpData();
httpData->mCallback = new nsMainThreadPtrHolder<nsINetDashboardCallback>(
"nsINetDashboardCallback", aCallback, true);
httpData->mEventTarget = GetCurrentEventTarget();
httpData->mEventTarget = GetCurrentSerialEventTarget();
if (nsIOService::UseSocketProcess()) {
if (!gIOService->SocketProcessReady()) {
@ -765,7 +765,7 @@ Dashboard::RequestWebsocketConnections(nsINetDashboardCallback* aCallback) {
RefPtr<WebSocketRequest> wsRequest = new WebSocketRequest();
wsRequest->mCallback = new nsMainThreadPtrHolder<nsINetDashboardCallback>(
"nsINetDashboardCallback", aCallback, true);
wsRequest->mEventTarget = GetCurrentEventTarget();
wsRequest->mEventTarget = GetCurrentSerialEventTarget();
wsRequest->mEventTarget->Dispatch(
NewRunnableMethod<RefPtr<WebSocketRequest>>(
@ -818,7 +818,7 @@ Dashboard::RequestDNSInfo(nsINetDashboardCallback* aCallback) {
nsresult rv;
dnsData->mData.Clear();
dnsData->mEventTarget = GetCurrentEventTarget();
dnsData->mEventTarget = GetCurrentSerialEventTarget();
if (!mDnsService) {
mDnsService = do_GetService("@mozilla.org/network/dns-service;1", &rv);
@ -940,7 +940,7 @@ Dashboard::RequestDNSLookup(const nsACString& aHost,
RefPtr<LookupHelper> helper = new LookupHelper();
helper->mCallback = new nsMainThreadPtrHolder<nsINetDashboardCallback>(
"nsINetDashboardCallback", aCallback, true);
helper->mEventTarget = GetCurrentEventTarget();
helper->mEventTarget = GetCurrentSerialEventTarget();
OriginAttributes attrs;
rv = mDnsService->AsyncResolveNative(
aHost, nsIDNSService::RESOLVE_TYPE_DEFAULT,
@ -964,7 +964,7 @@ Dashboard::RequestDNSHTTPSRRLookup(const nsACString& aHost,
RefPtr<LookupHelper> helper = new LookupHelper();
helper->mCallback = new nsMainThreadPtrHolder<nsINetDashboardCallback>(
"nsINetDashboardCallback", aCallback, true);
helper->mEventTarget = GetCurrentEventTarget();
helper->mEventTarget = GetCurrentSerialEventTarget();
OriginAttributes attrs;
rv = mDnsService->AsyncResolveNative(
aHost, nsIDNSService::RESOLVE_TYPE_HTTPSSVC,
@ -976,7 +976,7 @@ Dashboard::RequestDNSHTTPSRRLookup(const nsACString& aHost,
NS_IMETHODIMP
Dashboard::RequestRcwnStats(nsINetDashboardCallback* aCallback) {
RefPtr<RcwnData> rcwnData = new RcwnData();
rcwnData->mEventTarget = GetCurrentEventTarget();
rcwnData->mEventTarget = GetCurrentSerialEventTarget();
rcwnData->mCallback = new nsMainThreadPtrHolder<nsINetDashboardCallback>(
"nsINetDashboardCallback", aCallback, true);
@ -1072,7 +1072,7 @@ Dashboard::RequestConnection(const nsACString& aHost, uint32_t aPort,
connectionData->mCallback =
new nsMainThreadPtrHolder<nsINetDashboardCallback>(
"nsINetDashboardCallback", aCallback, true);
connectionData->mEventTarget = GetCurrentEventTarget();
connectionData->mEventTarget = GetCurrentSerialEventTarget();
rv = TestNewConnection(connectionData);
if (NS_FAILED(rv)) {
@ -1127,7 +1127,7 @@ nsresult Dashboard::TestNewConnection(ConnectionData* aConnectionData) {
}
rv = connectionData->mSocket->SetEventSink(connectionData,
GetCurrentEventTarget());
GetCurrentSerialEventTarget());
if (NS_FAILED(rv)) {
return rv;
}

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

@ -245,7 +245,7 @@ bool ProxyAutoConfig::ResolveAddress(const nsACString& aHostName,
if (NS_FAILED(dns->AsyncResolveNative(
aHostName, nsIDNSService::RESOLVE_TYPE_DEFAULT, flags, nullptr,
helper, GetCurrentEventTarget(), attrs,
helper, GetCurrentSerialEventTarget(), attrs,
getter_AddRefs(helper->mRequest)))) {
return false;
}

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

@ -64,7 +64,7 @@ nsresult nsAsyncRedirectVerifyHelper::Init(
mFlags = flags;
mCallbackEventTarget = NS_IsMainThread() && mainThreadEventTarget
? mainThreadEventTarget
: GetCurrentEventTarget();
: GetCurrentSerialEventTarget();
if (!(flags & (nsIChannelEventSink::REDIRECT_INTERNAL |
nsIChannelEventSink::REDIRECT_STS_UPGRADE))) {

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

@ -35,7 +35,7 @@ class AsyncApplyBufferingPolicyEvent final : public Runnable {
explicit AsyncApplyBufferingPolicyEvent(nsAsyncStreamCopier* aCopier)
: mozilla::Runnable("AsyncApplyBufferingPolicyEvent"),
mCopier(aCopier),
mTarget(GetCurrentEventTarget()) {}
mTarget(GetCurrentSerialEventTarget()) {}
NS_IMETHOD Run() override {
nsresult rv = mCopier->ApplyBufferingPolicy();

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

@ -65,7 +65,7 @@ nsresult nsDNSPrefetch::Prefetch(nsIDNSService::DNSFlags flags) {
// then our timing will be useless. However, in such a case,
// mEndTimestamp will be a null timestamp and callers should check
// TimingsValid() before using the timing.
nsCOMPtr<nsIEventTarget> target = mozilla::GetCurrentEventTarget();
nsCOMPtr<nsIEventTarget> target = mozilla::GetCurrentSerialEventTarget();
flags |= nsIDNSService::GetFlagsFromTRRMode(mTRRMode);
@ -127,7 +127,7 @@ nsresult nsDNSPrefetch::FetchHTTPSSVC(
return NS_ERROR_NOT_AVAILABLE;
}
nsCOMPtr<nsIEventTarget> target = mozilla::GetCurrentEventTarget();
nsCOMPtr<nsIEventTarget> target = mozilla::GetCurrentSerialEventTarget();
nsIDNSService::DNSFlags flags = nsIDNSService::GetFlagsFromTRRMode(mTRRMode);
if (aRefreshDNS) {
flags |= nsIDNSService::RESOLVE_BYPASS_CACHE;

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

@ -353,7 +353,7 @@ nsInputStreamPump::AsyncRead(nsIStreamListener* listener) {
if (NS_IsMainThread() && mLabeledMainThreadTarget) {
mTargetThread = mLabeledMainThreadTarget;
} else {
mTargetThread = GetCurrentEventTarget();
mTargetThread = mozilla::GetCurrentSerialEventTarget();
}
NS_ENSURE_STATE(mTargetThread);

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

@ -554,9 +554,10 @@ nsresult nsPACMan::LoadPACFromURI(const nsACString& aSpec,
if (!mLoadPending) {
nsCOMPtr<nsIRunnable> runnable = NewRunnableMethod(
"nsPACMan::StartLoading", this, &nsPACMan::StartLoading);
nsresult rv = NS_IsMainThread()
? Dispatch(runnable.forget())
: GetCurrentEventTarget()->Dispatch(runnable.forget());
nsresult rv =
NS_IsMainThread()
? Dispatch(runnable.forget())
: GetCurrentSerialEventTarget()->Dispatch(runnable.forget());
if (NS_FAILED(rv)) return rv;
mLoadPending = true;
}

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

@ -457,7 +457,7 @@ class ServerSocketListenerProxy final : public nsIServerSocketListener {
explicit ServerSocketListenerProxy(nsIServerSocketListener* aListener)
: mListener(new nsMainThreadPtrHolder<nsIServerSocketListener>(
"ServerSocketListenerProxy::mListener", aListener)),
mTarget(GetCurrentEventTarget()) {}
mTarget(GetCurrentSerialEventTarget()) {}
NS_DECL_THREADSAFE_ISUPPORTS
NS_DECL_NSISERVERSOCKETLISTENER
@ -543,7 +543,7 @@ nsServerSocket::AsyncListen(nsIServerSocketListener* aListener) {
{
MutexAutoLock lock(mLock);
mListener = new ServerSocketListenerProxy(aListener);
mListenerTarget = GetCurrentEventTarget();
mListenerTarget = GetCurrentSerialEventTarget();
}
// Child classes may need to do additional setup just before listening begins

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

@ -2405,7 +2405,7 @@ NS_IMETHODIMP
nsSocketTransport::SetSecurityCallbacks(nsIInterfaceRequestor* callbacks) {
nsCOMPtr<nsIInterfaceRequestor> threadsafeCallbacks;
NS_NewNotificationCallbacksAggregation(callbacks, nullptr,
GetCurrentEventTarget(),
GetCurrentSerialEventTarget(),
getter_AddRefs(threadsafeCallbacks));
MutexAutoLock lock(mLock);
mCallbacks = threadsafeCallbacks;

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

@ -375,7 +375,7 @@ class AvailableEvent final : public Runnable {
mDoingCallback(false),
mSize(0),
mResultForCallback(NS_OK) {
mCallbackTarget = GetCurrentEventTarget();
mCallbackTarget = GetCurrentSerialEventTarget();
}
NS_IMETHOD Run() override {

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

@ -787,7 +787,7 @@ class SocketListenerProxy final : public nsIUDPSocketListener {
explicit SocketListenerProxy(nsIUDPSocketListener* aListener)
: mListener(new nsMainThreadPtrHolder<nsIUDPSocketListener>(
"SocketListenerProxy::mListener", aListener)),
mTarget(GetCurrentEventTarget()) {}
mTarget(GetCurrentSerialEventTarget()) {}
NS_DECL_THREADSAFE_ISUPPORTS
NS_DECL_NSIUDPSOCKETLISTENER
@ -879,7 +879,7 @@ class SocketListenerProxyBackground final : public nsIUDPSocketListener {
public:
explicit SocketListenerProxyBackground(nsIUDPSocketListener* aListener)
: mListener(aListener), mTarget(GetCurrentEventTarget()) {}
: mListener(aListener), mTarget(GetCurrentSerialEventTarget()) {}
NS_DECL_THREADSAFE_ISUPPORTS
NS_DECL_NSIUDPSOCKETLISTENER
@ -1079,7 +1079,7 @@ nsUDPSocket::AsyncListen(nsIUDPSocketListener* aListener) {
NS_ENSURE_TRUE(mSyncListener == nullptr, NS_ERROR_IN_PROGRESS);
{
MutexAutoLock lock(mLock);
mListenerTarget = GetCurrentEventTarget();
mListenerTarget = GetCurrentSerialEventTarget();
if (NS_IsMainThread()) {
// PNecko usage
mListener = new SocketListenerProxy(aListener);

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

@ -86,7 +86,7 @@ CacheEntry::Callback::Callback(CacheEntry* aEntry,
bool aSecret)
: mEntry(aEntry),
mCallback(aCallback),
mTarget(GetCurrentEventTarget()),
mTarget(GetCurrentSerialEventTarget()),
mReadOnly(aReadOnly),
mRevalidating(false),
mCheckOnAnyThread(aCheckOnAnyThread),

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

@ -29,7 +29,7 @@ CachePushChecker::CachePushChecker(nsIURI* aPushedURL,
mOriginAttributes(aOriginAttributes),
mRequestString(aRequestString),
mCallback(std::move(aCallback)),
mCurrentEventTarget(GetCurrentEventTarget()) {}
mCurrentEventTarget(GetCurrentSerialEventTarget()) {}
nsresult CachePushChecker::DoCheck() {
if (XRE_IsSocketProcess()) {

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

@ -106,7 +106,7 @@ void HTTPSRecordResolver::PrefetchAddrRecord(const nsACString& aTargetName,
Unused << dns->AsyncResolveNative(
aTargetName, nsIDNSService::RESOLVE_TYPE_DEFAULT,
flags | nsIDNSService::RESOLVE_SPECULATE, nullptr, this,
GetCurrentEventTarget(),
GetCurrentSerialEventTarget(),
mTransaction->ConnectionInfo()->GetOriginAttributes(),
getter_AddRefs(tmpOutstanding));
}

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

@ -392,7 +392,7 @@ nsresult HttpBaseChannel::Init(nsIURI* aURI, uint32_t aCaps,
mProxyInfo = aProxyInfo;
}
mCurrentThread = GetCurrentEventTarget();
mCurrentThread = GetCurrentSerialEventTarget();
return rv;
}

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

@ -2845,7 +2845,7 @@ HttpChannelChild::GetDeliveryTarget(nsIEventTarget** aEventTarget) {
nsCOMPtr<nsIEventTarget> target = mODATarget;
if (!mODATarget) {
target = GetCurrentEventTarget();
target = GetCurrentSerialEventTarget();
}
target.forget(aEventTarget);
return NS_OK;

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

@ -116,7 +116,7 @@ nsresult HttpTransactionChild::InitInternal(
nsresult rv = mTransaction->Init(
caps, cinfo, requestHead, requestBody, requestContentLength,
requestBodyHasHeaders, GetCurrentEventTarget(),
requestBodyHasHeaders, GetCurrentSerialEventTarget(),
nullptr, // TODO: security callback, fix in bug 1512479.
this, topLevelOuterContentWindowId,
static_cast<HttpTrafficCategory>(httpTrafficCategory), rc, classOfService,

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

@ -101,7 +101,7 @@ nsresult HttpTransactionParent::Init(
}
mEventsink = eventsink;
mTargetThread = GetCurrentEventTarget();
mTargetThread = GetCurrentSerialEventTarget();
mChannelId = channelId;
mTransactionObserver = std::move(transactionObserver);
mOnPushCallback = std::move(aOnPushCallback);

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

@ -37,7 +37,7 @@ nsresult SpeculativeTransaction::FetchHTTPSRR() {
RefPtr<HTTPSRecordResolver> resolver = new HTTPSRecordResolver(this);
nsCOMPtr<nsICancelable> dnsRequest;
return resolver->FetchHTTPSRRInternal(GetCurrentEventTarget(),
return resolver->FetchHTTPSRRInternal(GetCurrentSerialEventTarget(),
getter_AddRefs(dnsRequest));
}

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

@ -89,7 +89,7 @@ NS_INTERFACE_MAP_END_INHERITING(HttpBaseChannel)
TRRServiceChannel::TRRServiceChannel()
: HttpAsyncAborter<TRRServiceChannel>(this),
mProxyRequest(nullptr, "TRRServiceChannel::mProxyRequest"),
mCurrentEventTarget(GetCurrentEventTarget()) {
mCurrentEventTarget(GetCurrentSerialEventTarget()) {
LOG(("TRRServiceChannel ctor [this=%p]\n", this));
}

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

@ -1390,8 +1390,8 @@ nsresult nsHttpChannel::SetupTransaction() {
mTransaction->SetIsForWebTransport(mIsForWebTransport);
rv = mTransaction->Init(
mCaps, mConnectionInfo, &mRequestHead, mUploadStream, mReqContentLength,
LoadUploadStreamHasHeaders(), GetCurrentEventTarget(), callbacks, this,
mTopBrowsingContextId, category, mRequestContext, mClassOfService,
LoadUploadStreamHasHeaders(), GetCurrentSerialEventTarget(), callbacks,
this, mTopBrowsingContextId, category, mRequestContext, mClassOfService,
mInitialRwin, LoadResponseTimeoutEnabled(), mChannelId,
std::move(observer), std::move(pushCallback), mTransWithPushedStream,
mPushedStreamId);
@ -8734,7 +8734,7 @@ void nsHttpChannel::UpdateAggregateCallbacks() {
}
nsCOMPtr<nsIInterfaceRequestor> callbacks;
NS_NewNotificationCallbacksAggregation(mCallbacks, mLoadGroup,
GetCurrentEventTarget(),
GetCurrentSerialEventTarget(),
getter_AddRefs(callbacks));
mTransaction->SetSecurityCallbacks(callbacks);
}

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

@ -329,7 +329,7 @@ BaseWebSocketChannel::GetDeliveryTarget(nsIEventTarget** aTargetThread) {
nsCOMPtr<nsIEventTarget> target = GetTargetThread();
if (!target) {
target = GetCurrentEventTarget();
target = GetCurrentSerialEventTarget();
}
target.forget(aTargetThread);
return NS_OK;

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

@ -20,7 +20,8 @@ NS_IMPL_ISUPPORTS0(WebSocketConnectionParent)
WebSocketConnectionParent::WebSocketConnectionParent(
nsIHttpUpgradeListener* aListener)
: mUpgradeListener(aListener), mBackgroundThread(GetCurrentEventTarget()) {
: mUpgradeListener(aListener),
mBackgroundThread(GetCurrentSerialEventTarget()) {
LOG(("WebSocketConnectionParent ctor %p\n", this));
MOZ_ASSERT(mUpgradeListener);
}

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

@ -178,7 +178,9 @@ class WebTransportStreamCallbackWrapper final {
explicit WebTransportStreamCallbackWrapper(
nsIWebTransportStreamCallback* aCallback, bool aBidi)
: mCallback(aCallback), mTarget(GetCurrentEventTarget()), mBidi(aBidi) {}
: mCallback(aCallback),
mTarget(GetCurrentSerialEventTarget()),
mBidi(aBidi) {}
void CallOnError(nsresult aError) {
if (!mTarget->IsOnCurrentThread()) {

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

@ -98,7 +98,7 @@ class StatsCallbackWrapper : public nsIWebTransportStreamStatsCallback {
NS_DECL_THREADSAFE_ISUPPORTS
explicit StatsCallbackWrapper(nsIWebTransportStreamStatsCallback* aCallback)
: mCallback(aCallback), mTarget(GetCurrentEventTarget()) {}
: mCallback(aCallback), mTarget(GetCurrentSerialEventTarget()) {}
NS_IMETHOD OnSendStatsAvailable(
nsIWebTransportSendStreamStats* aStats) override {

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

@ -420,7 +420,7 @@ PRStatus nsSOCKSSocketInfo::StartDNS(PRFileDesc* fd) {
nsresult rv = dns->AsyncResolveNative(
proxyHost, nsIDNSService::RESOLVE_TYPE_DEFAULT,
nsIDNSService::RESOLVE_IGNORE_SOCKS_DNS, nullptr, this,
mozilla::GetCurrentEventTarget(), attrs, getter_AddRefs(mLookup));
mozilla::GetCurrentSerialEventTarget(), attrs, getter_AddRefs(mLookup));
if (NS_FAILED(rv)) {
LOGERROR(("socks: DNS lookup for SOCKS proxy %s failed", proxyHost.get()));

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

@ -93,7 +93,7 @@ class ChannelEventRunnable final : public ChannelEventWrapper {
*****************************************************************************/
StreamFilterParent::StreamFilterParent()
: mMainThread(GetCurrentEventTarget()),
: mMainThread(GetCurrentSerialEventTarget()),
mIOThread(mMainThread),
mQueue(new ChannelEventQueue(static_cast<nsIStreamListener*>(this))),
mBufferMutex("StreamFilter buffer mutex"),

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

@ -22,7 +22,7 @@ class nsInterfaceRequestorAgg final : public nsIInterfaceRequestor {
nsIEventTarget* aConsumerTarget = nullptr)
: mFirst(aFirst), mSecond(aSecond), mConsumerTarget(aConsumerTarget) {
if (!mConsumerTarget) {
mConsumerTarget = mozilla::GetCurrentEventTarget();
mConsumerTarget = mozilla::GetCurrentSerialEventTarget();
}
}

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

@ -547,16 +547,6 @@ nsAutoLowPriorityIO::~nsAutoLowPriorityIO() {
namespace mozilla {
nsIEventTarget* GetCurrentEventTarget() {
nsCOMPtr<nsIThread> thread;
nsresult rv = NS_GetCurrentThread(getter_AddRefs(thread));
if (NS_FAILED(rv)) {
return nullptr;
}
return thread;
}
nsIEventTarget* GetMainThreadEventTarget() {
return GetMainThreadSerialEventTarget();
}

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

@ -1797,13 +1797,6 @@ class SerialEventTargetGuard {
nsISerialEventTarget* mLastCurrentThread;
};
// Returns NS_GetCurrentThread() cast to an nsIEventTarget*
//
// You probably want GetCurrentSerialEventTarget, not this. This method ignores
// TaskQueues and other uses of SerialEventTargetGuard.
nsIEventTarget* GetCurrentEventTarget();
// See GetMainThreadSerialEventTarget()
nsIEventTarget* GetMainThreadEventTarget();