Bug 1365101 - Convert NS_GetCurrentThread uses in netwerk/ (r=meyhemer)
MozReview-Commit-ID: IHBt6XAG8em
This commit is contained in:
@@ -89,7 +89,7 @@ uint32_t BackgroundFileSaver::sThreadCount = 0;
|
||||
uint32_t BackgroundFileSaver::sTelemetryMaxThreadCount = 0;
|
||||
|
||||
BackgroundFileSaver::BackgroundFileSaver()
|
||||
: mControlThread(nullptr)
|
||||
: mControlEventTarget(nullptr)
|
||||
, mWorkerThread(nullptr)
|
||||
, mPipeOutputStream(nullptr)
|
||||
, mPipeInputStream(nullptr)
|
||||
@@ -150,8 +150,8 @@ BackgroundFileSaver::Init()
|
||||
HasInfiniteBuffer() ? UINT32_MAX : 0);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = NS_GetCurrentThread(getter_AddRefs(mControlThread));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
mControlEventTarget = GetCurrentThreadEventTarget();
|
||||
NS_ENSURE_TRUE(mControlEventTarget, NS_ERROR_NOT_INITIALIZED);
|
||||
|
||||
rv = NS_NewNamedThread("BgFileSaver", getter_AddRefs(mWorkerThread));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
@@ -523,7 +523,7 @@ BackgroundFileSaver::ProcessStateChange()
|
||||
new NotifyTargetChangeRunnable(this, actualTargetToNotify);
|
||||
NS_ENSURE_TRUE(event, NS_ERROR_FAILURE);
|
||||
|
||||
rv = mControlThread->Dispatch(event, NS_DISPATCH_NORMAL);
|
||||
rv = mControlEventTarget->Dispatch(event, NS_DISPATCH_NORMAL);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
@@ -747,7 +747,7 @@ BackgroundFileSaver::CheckCompletion()
|
||||
}
|
||||
|
||||
// Post an event to notify that the operation completed.
|
||||
if (NS_FAILED(mControlThread->Dispatch(NewRunnableMethod(this,
|
||||
if (NS_FAILED(mControlEventTarget->Dispatch(NewRunnableMethod(this,
|
||||
&BackgroundFileSaver::NotifySaveComplete),
|
||||
NS_DISPATCH_NORMAL))) {
|
||||
NS_WARNING("Unable to post completion event to the control thread.");
|
||||
@@ -1153,7 +1153,7 @@ BackgroundFileSaverStreamListener::AsyncCopyProgressCallback(void *aClosure,
|
||||
self->mReceivedTooMuchData = false;
|
||||
|
||||
// Post an event to verify if the request should be resumed.
|
||||
if (NS_FAILED(self->mControlThread->Dispatch(NewRunnableMethod(self,
|
||||
if (NS_FAILED(self->mControlEventTarget->Dispatch(NewRunnableMethod(self,
|
||||
&BackgroundFileSaverStreamListener::NotifySuspendOrResume),
|
||||
NS_DISPATCH_NORMAL))) {
|
||||
NS_WARNING("Unable to post resume event to the control thread.");
|
||||
|
||||
@@ -82,7 +82,7 @@ protected:
|
||||
/**
|
||||
* Thread that constructed this object.
|
||||
*/
|
||||
nsCOMPtr<nsIThread> mControlThread;
|
||||
nsCOMPtr<nsIEventTarget> mControlEventTarget;
|
||||
|
||||
/**
|
||||
* Thread to which the actual input/output is delegated.
|
||||
|
||||
@@ -38,14 +38,14 @@ public:
|
||||
{
|
||||
mTotalSent = 0;
|
||||
mTotalRecv = 0;
|
||||
mThread = nullptr;
|
||||
mEventTarget = nullptr;
|
||||
}
|
||||
|
||||
uint64_t mTotalSent;
|
||||
uint64_t mTotalRecv;
|
||||
nsTArray<SocketInfo> mData;
|
||||
nsMainThreadPtrHandle<NetDashboardCallback> mCallback;
|
||||
nsIThread *mThread;
|
||||
nsIEventTarget *mEventTarget;
|
||||
|
||||
private:
|
||||
virtual ~SocketData()
|
||||
@@ -70,12 +70,12 @@ public:
|
||||
|
||||
HttpData()
|
||||
{
|
||||
mThread = nullptr;
|
||||
mEventTarget = nullptr;
|
||||
}
|
||||
|
||||
nsTArray<HttpRetParams> mData;
|
||||
nsMainThreadPtrHandle<NetDashboardCallback> mCallback;
|
||||
nsIThread *mThread;
|
||||
nsIEventTarget *mEventTarget;
|
||||
};
|
||||
|
||||
NS_IMPL_ISUPPORTS0(HttpData)
|
||||
@@ -93,11 +93,11 @@ public:
|
||||
|
||||
WebSocketRequest()
|
||||
{
|
||||
mThread = nullptr;
|
||||
mEventTarget = nullptr;
|
||||
}
|
||||
|
||||
nsMainThreadPtrHandle<NetDashboardCallback> mCallback;
|
||||
nsIThread *mThread;
|
||||
nsIEventTarget *mEventTarget;
|
||||
};
|
||||
|
||||
NS_IMPL_ISUPPORTS0(WebSocketRequest)
|
||||
@@ -115,12 +115,12 @@ public:
|
||||
|
||||
DnsData()
|
||||
{
|
||||
mThread = nullptr;
|
||||
mEventTarget = nullptr;
|
||||
}
|
||||
|
||||
nsTArray<DNSCacheEntries> mData;
|
||||
nsMainThreadPtrHandle<NetDashboardCallback> mCallback;
|
||||
nsIThread *mThread;
|
||||
nsIEventTarget *mEventTarget;
|
||||
};
|
||||
|
||||
NS_IMPL_ISUPPORTS0(DnsData)
|
||||
@@ -147,7 +147,7 @@ public:
|
||||
|
||||
explicit ConnectionData(Dashboard *target)
|
||||
{
|
||||
mThread = nullptr;
|
||||
mEventTarget = nullptr;
|
||||
mDashboard = target;
|
||||
}
|
||||
|
||||
@@ -155,7 +155,7 @@ public:
|
||||
nsCOMPtr<nsIInputStream> mStreamIn;
|
||||
nsCOMPtr<nsITimer> mTimer;
|
||||
nsMainThreadPtrHandle<NetDashboardCallback> mCallback;
|
||||
nsIThread *mThread;
|
||||
nsIEventTarget *mEventTarget;
|
||||
Dashboard *mDashboard;
|
||||
|
||||
nsCString mHost;
|
||||
@@ -181,11 +181,11 @@ public:
|
||||
|
||||
RcwnData()
|
||||
{
|
||||
mThread = nullptr;
|
||||
mEventTarget = nullptr;
|
||||
}
|
||||
|
||||
nsMainThreadPtrHandle<NetDashboardCallback> mCallback;
|
||||
nsIThread *mThread;
|
||||
nsIEventTarget *mEventTarget;
|
||||
};
|
||||
|
||||
NS_IMPL_ISUPPORTS0(RcwnData)
|
||||
@@ -199,7 +199,7 @@ ConnectionData::OnTransportStatus(nsITransport *aTransport, nsresult aStatus,
|
||||
}
|
||||
|
||||
GetErrorString(aStatus, mStatus);
|
||||
mThread->Dispatch(NewRunnableMethod<RefPtr<ConnectionData>>
|
||||
mEventTarget->Dispatch(NewRunnableMethod<RefPtr<ConnectionData>>
|
||||
(mDashboard, &Dashboard::GetConnectionStatus, this),
|
||||
NS_DISPATCH_NORMAL);
|
||||
|
||||
@@ -220,7 +220,7 @@ ConnectionData::Notify(nsITimer *aTimer)
|
||||
mTimer = nullptr;
|
||||
|
||||
mStatus.AssignLiteral(u"NS_ERROR_NET_TIMEOUT");
|
||||
mThread->Dispatch(NewRunnableMethod<RefPtr<ConnectionData>>
|
||||
mEventTarget->Dispatch(NewRunnableMethod<RefPtr<ConnectionData>>
|
||||
(mDashboard, &Dashboard::GetConnectionStatus, this),
|
||||
NS_DISPATCH_NORMAL);
|
||||
|
||||
@@ -294,7 +294,7 @@ public:
|
||||
public:
|
||||
nsCOMPtr<nsICancelable> mCancel;
|
||||
nsMainThreadPtrHandle<NetDashboardCallback> mCallback;
|
||||
nsIThread *mThread;
|
||||
nsIEventTarget *mEventTarget;
|
||||
nsresult mStatus;
|
||||
};
|
||||
|
||||
@@ -309,7 +309,7 @@ LookupHelper::OnLookupComplete(nsICancelable *aRequest,
|
||||
mStatus = aStatus;
|
||||
|
||||
RefPtr<LookupArgument> arg = new LookupArgument(aRecord, this);
|
||||
mThread->Dispatch(NewRunnableMethod<RefPtr<LookupArgument>>
|
||||
mEventTarget->Dispatch(NewRunnableMethod<RefPtr<LookupArgument>>
|
||||
(this, &LookupHelper::ConstructAnswer, arg),
|
||||
NS_DISPATCH_NORMAL);
|
||||
|
||||
@@ -374,7 +374,7 @@ Dashboard::RequestSockets(NetDashboardCallback *aCallback)
|
||||
RefPtr<SocketData> socketData = new SocketData();
|
||||
socketData->mCallback =
|
||||
new nsMainThreadPtrHolder<NetDashboardCallback>(aCallback, true);
|
||||
socketData->mThread = NS_GetCurrentThread();
|
||||
socketData->mEventTarget = GetCurrentThreadEventTarget();
|
||||
gSocketTransportService->Dispatch(NewRunnableMethod<RefPtr<SocketData>>
|
||||
(this, &Dashboard::GetSocketsDispatch, socketData),
|
||||
NS_DISPATCH_NORMAL);
|
||||
@@ -390,7 +390,7 @@ Dashboard::GetSocketsDispatch(SocketData *aSocketData)
|
||||
socketData->mTotalSent = gSocketTransportService->GetSentBytes();
|
||||
socketData->mTotalRecv = gSocketTransportService->GetReceivedBytes();
|
||||
}
|
||||
socketData->mThread->Dispatch(NewRunnableMethod<RefPtr<SocketData>>
|
||||
socketData->mEventTarget->Dispatch(NewRunnableMethod<RefPtr<SocketData>>
|
||||
(this, &Dashboard::GetSockets, socketData),
|
||||
NS_DISPATCH_NORMAL);
|
||||
return NS_OK;
|
||||
@@ -443,7 +443,7 @@ Dashboard::RequestHttpConnections(NetDashboardCallback *aCallback)
|
||||
RefPtr<HttpData> httpData = new HttpData();
|
||||
httpData->mCallback =
|
||||
new nsMainThreadPtrHolder<NetDashboardCallback>(aCallback, true);
|
||||
httpData->mThread = NS_GetCurrentThread();
|
||||
httpData->mEventTarget = GetCurrentThreadEventTarget();
|
||||
|
||||
gSocketTransportService->Dispatch(NewRunnableMethod<RefPtr<HttpData>>
|
||||
(this, &Dashboard::GetHttpDispatch, httpData),
|
||||
@@ -456,7 +456,7 @@ Dashboard::GetHttpDispatch(HttpData *aHttpData)
|
||||
{
|
||||
RefPtr<HttpData> httpData = aHttpData;
|
||||
HttpInfo::GetHttpConnectionData(&httpData->mData);
|
||||
httpData->mThread->Dispatch(NewRunnableMethod<RefPtr<HttpData>>
|
||||
httpData->mEventTarget->Dispatch(NewRunnableMethod<RefPtr<HttpData>>
|
||||
(this, &Dashboard::GetHttpConnections, httpData),
|
||||
NS_DISPATCH_NORMAL);
|
||||
return NS_OK;
|
||||
@@ -619,9 +619,9 @@ Dashboard::RequestWebsocketConnections(NetDashboardCallback *aCallback)
|
||||
RefPtr<WebSocketRequest> wsRequest = new WebSocketRequest();
|
||||
wsRequest->mCallback =
|
||||
new nsMainThreadPtrHolder<NetDashboardCallback>(aCallback, true);
|
||||
wsRequest->mThread = NS_GetCurrentThread();
|
||||
wsRequest->mEventTarget = GetCurrentThreadEventTarget();
|
||||
|
||||
wsRequest->mThread->Dispatch(NewRunnableMethod<RefPtr<WebSocketRequest>>
|
||||
wsRequest->mEventTarget->Dispatch(NewRunnableMethod<RefPtr<WebSocketRequest>>
|
||||
(this, &Dashboard::GetWebSocketConnections, wsRequest),
|
||||
NS_DISPATCH_NORMAL);
|
||||
return NS_OK;
|
||||
@@ -673,7 +673,7 @@ Dashboard::RequestDNSInfo(NetDashboardCallback *aCallback)
|
||||
|
||||
nsresult rv;
|
||||
dnsData->mData.Clear();
|
||||
dnsData->mThread = NS_GetCurrentThread();
|
||||
dnsData->mEventTarget = GetCurrentThreadEventTarget();
|
||||
|
||||
if (!mDnsService) {
|
||||
mDnsService = do_GetService("@mozilla.org/network/dns-service;1", &rv);
|
||||
@@ -695,7 +695,7 @@ Dashboard::GetDnsInfoDispatch(DnsData *aDnsData)
|
||||
if (mDnsService) {
|
||||
mDnsService->GetDNSCacheEntries(&dnsData->mData);
|
||||
}
|
||||
dnsData->mThread->Dispatch(NewRunnableMethod<RefPtr<DnsData>>
|
||||
dnsData->mEventTarget->Dispatch(NewRunnableMethod<RefPtr<DnsData>>
|
||||
(this, &Dashboard::GetDNSCacheEntries, dnsData),
|
||||
NS_DISPATCH_NORMAL);
|
||||
return NS_OK;
|
||||
@@ -770,7 +770,7 @@ Dashboard::RequestDNSLookup(const nsACString &aHost,
|
||||
RefPtr<LookupHelper> helper = new LookupHelper();
|
||||
helper->mCallback =
|
||||
new nsMainThreadPtrHolder<NetDashboardCallback>(aCallback, true);
|
||||
helper->mThread = NS_GetCurrentThread();
|
||||
helper->mEventTarget = GetCurrentThreadEventTarget();
|
||||
OriginAttributes attrs;
|
||||
rv = mDnsService->AsyncResolveNative(aHost, 0, helper.get(),
|
||||
NS_GetCurrentThread(), attrs,
|
||||
@@ -782,11 +782,11 @@ NS_IMETHODIMP
|
||||
Dashboard::RequestRcwnStats(NetDashboardCallback *aCallback)
|
||||
{
|
||||
RefPtr<RcwnData> rcwnData = new RcwnData();
|
||||
rcwnData->mThread = NS_GetCurrentThread();
|
||||
rcwnData->mEventTarget = GetCurrentThreadEventTarget();
|
||||
rcwnData->mCallback =
|
||||
new nsMainThreadPtrHolder<NetDashboardCallback>(aCallback, true);
|
||||
|
||||
return rcwnData->mThread->Dispatch(
|
||||
return rcwnData->mEventTarget->Dispatch(
|
||||
NewRunnableMethod<RefPtr<RcwnData>>(this, &Dashboard::GetRcwnData, rcwnData),
|
||||
NS_DISPATCH_NORMAL);
|
||||
}
|
||||
@@ -862,12 +862,12 @@ Dashboard::RequestConnection(const nsACString& aHost, uint32_t aPort,
|
||||
|
||||
connectionData->mCallback =
|
||||
new nsMainThreadPtrHolder<NetDashboardCallback>(aCallback, true);
|
||||
connectionData->mThread = NS_GetCurrentThread();
|
||||
connectionData->mEventTarget = GetCurrentThreadEventTarget();
|
||||
|
||||
rv = TestNewConnection(connectionData);
|
||||
if (NS_FAILED(rv)) {
|
||||
mozilla::net::GetErrorString(rv, connectionData->mStatus);
|
||||
connectionData->mThread->Dispatch(NewRunnableMethod<RefPtr<ConnectionData>>
|
||||
connectionData->mEventTarget->Dispatch(NewRunnableMethod<RefPtr<ConnectionData>>
|
||||
(this, &Dashboard::GetConnectionStatus, connectionData),
|
||||
NS_DISPATCH_NORMAL);
|
||||
return rv;
|
||||
@@ -922,7 +922,7 @@ Dashboard::TestNewConnection(ConnectionData *aConnectionData)
|
||||
}
|
||||
|
||||
rv = connectionData->mSocket->SetEventSink(connectionData,
|
||||
NS_GetCurrentThread());
|
||||
GetCurrentThreadEventTarget());
|
||||
if (NS_FAILED(rv)) {
|
||||
return rv;
|
||||
}
|
||||
|
||||
@@ -1480,7 +1480,6 @@ Predictor::RunPredictions(nsIURI *referrer,
|
||||
}
|
||||
|
||||
len = preresolves.Length();
|
||||
nsCOMPtr<nsIThread> mainThread = do_GetMainThread();
|
||||
for (i = 0; i < len; ++i) {
|
||||
nsCOMPtr<nsIURI> uri = preresolves[i];
|
||||
++totalPredictions;
|
||||
|
||||
@@ -411,7 +411,7 @@ ProxyAutoConfig::ResolveAddress(const nsCString &aHostName,
|
||||
if (NS_FAILED(dns->AsyncResolveNative(aHostName,
|
||||
nsIDNSService::RESOLVE_PRIORITY_MEDIUM,
|
||||
helper,
|
||||
NS_GetCurrentThread(),
|
||||
GetCurrentThreadEventTarget(),
|
||||
attrs,
|
||||
getter_AddRefs(helper->mRequest))))
|
||||
return false;
|
||||
|
||||
@@ -71,7 +71,7 @@ nsAsyncRedirectVerifyHelper::Init(nsIChannel* oldChan, nsIChannel* newChan,
|
||||
mOldChan = oldChan;
|
||||
mNewChan = newChan;
|
||||
mFlags = flags;
|
||||
mCallbackThread = do_GetCurrentThread();
|
||||
mCallbackEventTarget = GetCurrentThreadEventTarget();
|
||||
|
||||
if (!(flags & (nsIChannelEventSink::REDIRECT_INTERNAL |
|
||||
nsIChannelEventSink::REDIRECT_STS_UPGRADE))) {
|
||||
@@ -183,9 +183,9 @@ nsAsyncRedirectVerifyHelper::ExplicitCallback(nsresult result)
|
||||
nsCOMPtr<nsIAsyncVerifyRedirectCallback>
|
||||
callback(do_QueryInterface(mOldChan));
|
||||
|
||||
if (!callback || !mCallbackThread) {
|
||||
if (!callback || !mCallbackEventTarget) {
|
||||
LOG(("nsAsyncRedirectVerifyHelper::ExplicitCallback() "
|
||||
"callback=%p mCallbackThread=%p", callback.get(), mCallbackThread.get()));
|
||||
"callback=%p mCallbackEventTarget=%p", callback.get(), mCallbackEventTarget.get()));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -200,7 +200,7 @@ nsAsyncRedirectVerifyHelper::ExplicitCallback(nsresult result)
|
||||
"failed creating callback event!");
|
||||
return;
|
||||
}
|
||||
nsresult rv = mCallbackThread->Dispatch(event, NS_DISPATCH_NORMAL);
|
||||
nsresult rv = mCallbackEventTarget->Dispatch(event, NS_DISPATCH_NORMAL);
|
||||
if (NS_FAILED(rv)) {
|
||||
NS_WARNING("nsAsyncRedirectVerifyHelper::ExplicitCallback() "
|
||||
"failed dispatching callback event!");
|
||||
|
||||
@@ -73,7 +73,7 @@ protected:
|
||||
nsCOMPtr<nsIChannel> mNewChan;
|
||||
uint32_t mFlags;
|
||||
bool mWaitingForRedirectCallback;
|
||||
nsCOMPtr<nsIThread> mCallbackThread;
|
||||
nsCOMPtr<nsIEventTarget> mCallbackEventTarget;
|
||||
bool mCallbackInitiated;
|
||||
int32_t mExpectedCallbacks;
|
||||
nsresult mResult; // value passed to callback
|
||||
|
||||
@@ -34,7 +34,7 @@ public:
|
||||
*/
|
||||
explicit AsyncApplyBufferingPolicyEvent(nsAsyncStreamCopier* aCopier)
|
||||
: mCopier(aCopier)
|
||||
, mTarget(NS_GetCurrentThread())
|
||||
, mTarget(GetCurrentThreadEventTarget())
|
||||
{ }
|
||||
NS_IMETHOD Run() override
|
||||
{
|
||||
|
||||
@@ -59,10 +59,10 @@ nsDNSPrefetch::Prefetch(uint16_t 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<nsIThread> mainThread = do_GetMainThread();
|
||||
nsCOMPtr<nsIEventTarget> main = mozilla::GetMainThreadEventTarget();
|
||||
return sDNSService->AsyncResolveNative(mHostname,
|
||||
flags | nsIDNSService::RESOLVE_SPECULATE,
|
||||
this, mainThread, mOriginAttributes,
|
||||
this, main, mOriginAttributes,
|
||||
getter_AddRefs(tmpOutstanding));
|
||||
}
|
||||
|
||||
|
||||
@@ -133,7 +133,7 @@ nsInputStreamPump::EnsureWaiting()
|
||||
if (mState == STATE_STOP) {
|
||||
nsCOMPtr<nsIEventTarget> mainThread = mLabeledMainThreadTarget
|
||||
? mLabeledMainThreadTarget
|
||||
: do_GetMainThread();
|
||||
: do_AddRef(GetMainThreadEventTarget());
|
||||
if (mTargetThread != mainThread) {
|
||||
mTargetThread = do_QueryInterface(mainThread);
|
||||
}
|
||||
@@ -383,7 +383,7 @@ nsInputStreamPump::AsyncRead(nsIStreamListener *listener, nsISupports *ctxt)
|
||||
if (NS_IsMainThread() && mLabeledMainThreadTarget) {
|
||||
mTargetThread = mLabeledMainThreadTarget;
|
||||
} else {
|
||||
mTargetThread = do_GetCurrentThread();
|
||||
mTargetThread = GetCurrentThreadEventTarget();
|
||||
}
|
||||
NS_ENSURE_STATE(mTargetThread);
|
||||
|
||||
|
||||
@@ -189,7 +189,7 @@ nsRequestObserverProxy::Init(nsIRequestObserver *observer, nsISupports *context)
|
||||
nsresult
|
||||
nsRequestObserverProxy::FireEvent(nsARequestObserverEvent *event)
|
||||
{
|
||||
nsCOMPtr<nsIEventTarget> mainThread(do_GetMainThread());
|
||||
nsCOMPtr<nsIEventTarget> mainThread(GetMainThreadEventTarget());
|
||||
return mainThread->Dispatch(event, NS_DISPATCH_NORMAL);
|
||||
}
|
||||
|
||||
|
||||
@@ -423,7 +423,7 @@ class ServerSocketListenerProxy final : public nsIServerSocketListener
|
||||
public:
|
||||
explicit ServerSocketListenerProxy(nsIServerSocketListener* aListener)
|
||||
: mListener(new nsMainThreadPtrHolder<nsIServerSocketListener>(aListener))
|
||||
, mTargetThread(do_GetCurrentThread())
|
||||
, mTarget(GetCurrentThreadEventTarget())
|
||||
{ }
|
||||
|
||||
NS_DECL_THREADSAFE_ISUPPORTS
|
||||
@@ -469,7 +469,7 @@ public:
|
||||
|
||||
private:
|
||||
nsMainThreadPtrHandle<nsIServerSocketListener> mListener;
|
||||
nsCOMPtr<nsIEventTarget> mTargetThread;
|
||||
nsCOMPtr<nsIEventTarget> mTarget;
|
||||
};
|
||||
|
||||
NS_IMPL_ISUPPORTS(ServerSocketListenerProxy,
|
||||
@@ -481,7 +481,7 @@ ServerSocketListenerProxy::OnSocketAccepted(nsIServerSocket* aServ,
|
||||
{
|
||||
RefPtr<OnSocketAcceptedRunnable> r =
|
||||
new OnSocketAcceptedRunnable(mListener, aServ, aTransport);
|
||||
return mTargetThread->Dispatch(r, NS_DISPATCH_NORMAL);
|
||||
return mTarget->Dispatch(r, NS_DISPATCH_NORMAL);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
@@ -490,7 +490,7 @@ ServerSocketListenerProxy::OnStopListening(nsIServerSocket* aServ,
|
||||
{
|
||||
RefPtr<OnStopListeningRunnable> r =
|
||||
new OnStopListeningRunnable(mListener, aServ, aStatus);
|
||||
return mTargetThread->Dispatch(r, NS_DISPATCH_NORMAL);
|
||||
return mTarget->Dispatch(r, NS_DISPATCH_NORMAL);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
@@ -518,7 +518,7 @@ nsServerSocket::AsyncListen(nsIServerSocketListener *aListener)
|
||||
{
|
||||
MutexAutoLock lock(mLock);
|
||||
mListener = new ServerSocketListenerProxy(aListener);
|
||||
mListenerTarget = NS_GetCurrentThread();
|
||||
mListenerTarget = GetCurrentThreadEventTarget();
|
||||
}
|
||||
|
||||
// Child classes may need to do additional setup just before listening begins
|
||||
|
||||
@@ -2544,7 +2544,7 @@ nsSocketTransport::SetSecurityCallbacks(nsIInterfaceRequestor *callbacks)
|
||||
{
|
||||
nsCOMPtr<nsIInterfaceRequestor> threadsafeCallbacks;
|
||||
NS_NewNotificationCallbacksAggregation(callbacks, nullptr,
|
||||
NS_GetCurrentThread(),
|
||||
GetCurrentThreadEventTarget(),
|
||||
getter_AddRefs(threadsafeCallbacks));
|
||||
|
||||
nsCOMPtr<nsISupports> secinfo;
|
||||
|
||||
@@ -584,7 +584,7 @@ class AvailableEvent final : public Runnable
|
||||
, mSize(0)
|
||||
, mResultForCallback(NS_OK)
|
||||
{
|
||||
mCallbackTarget = NS_GetCurrentThread();
|
||||
mCallbackTarget = GetCurrentThreadEventTarget();
|
||||
}
|
||||
|
||||
NS_IMETHOD Run() override
|
||||
|
||||
@@ -847,7 +847,7 @@ class SocketListenerProxy final : public nsIUDPSocketListener
|
||||
public:
|
||||
explicit SocketListenerProxy(nsIUDPSocketListener* aListener)
|
||||
: mListener(new nsMainThreadPtrHolder<nsIUDPSocketListener>(aListener))
|
||||
, mTargetThread(do_GetCurrentThread())
|
||||
, mTarget(GetCurrentThreadEventTarget())
|
||||
{ }
|
||||
|
||||
NS_DECL_THREADSAFE_ISUPPORTS
|
||||
@@ -893,7 +893,7 @@ public:
|
||||
|
||||
private:
|
||||
nsMainThreadPtrHandle<nsIUDPSocketListener> mListener;
|
||||
nsCOMPtr<nsIEventTarget> mTargetThread;
|
||||
nsCOMPtr<nsIEventTarget> mTarget;
|
||||
};
|
||||
|
||||
NS_IMPL_ISUPPORTS(SocketListenerProxy,
|
||||
@@ -905,7 +905,7 @@ SocketListenerProxy::OnPacketReceived(nsIUDPSocket* aSocket,
|
||||
{
|
||||
RefPtr<OnPacketReceivedRunnable> r =
|
||||
new OnPacketReceivedRunnable(mListener, aSocket, aMessage);
|
||||
return mTargetThread->Dispatch(r, NS_DISPATCH_NORMAL);
|
||||
return mTarget->Dispatch(r, NS_DISPATCH_NORMAL);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
@@ -914,7 +914,7 @@ SocketListenerProxy::OnStopListening(nsIUDPSocket* aSocket,
|
||||
{
|
||||
RefPtr<OnStopListeningRunnable> r =
|
||||
new OnStopListeningRunnable(mListener, aSocket, aStatus);
|
||||
return mTargetThread->Dispatch(r, NS_DISPATCH_NORMAL);
|
||||
return mTarget->Dispatch(r, NS_DISPATCH_NORMAL);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
@@ -952,7 +952,7 @@ class SocketListenerProxyBackground final : public nsIUDPSocketListener
|
||||
public:
|
||||
explicit SocketListenerProxyBackground(nsIUDPSocketListener* aListener)
|
||||
: mListener(aListener)
|
||||
, mTargetThread(do_GetCurrentThread())
|
||||
, mTarget(GetCurrentThreadEventTarget())
|
||||
{ }
|
||||
|
||||
NS_DECL_THREADSAFE_ISUPPORTS
|
||||
@@ -998,7 +998,7 @@ public:
|
||||
|
||||
private:
|
||||
nsCOMPtr<nsIUDPSocketListener> mListener;
|
||||
nsCOMPtr<nsIEventTarget> mTargetThread;
|
||||
nsCOMPtr<nsIEventTarget> mTarget;
|
||||
};
|
||||
|
||||
NS_IMPL_ISUPPORTS(SocketListenerProxyBackground,
|
||||
@@ -1010,7 +1010,7 @@ SocketListenerProxyBackground::OnPacketReceived(nsIUDPSocket* aSocket,
|
||||
{
|
||||
RefPtr<OnPacketReceivedRunnable> r =
|
||||
new OnPacketReceivedRunnable(mListener, aSocket, aMessage);
|
||||
return mTargetThread->Dispatch(r, NS_DISPATCH_NORMAL);
|
||||
return mTarget->Dispatch(r, NS_DISPATCH_NORMAL);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
@@ -1019,7 +1019,7 @@ SocketListenerProxyBackground::OnStopListening(nsIUDPSocket* aSocket,
|
||||
{
|
||||
RefPtr<OnStopListeningRunnable> r =
|
||||
new OnStopListeningRunnable(mListener, aSocket, aStatus);
|
||||
return mTargetThread->Dispatch(r, NS_DISPATCH_NORMAL);
|
||||
return mTarget->Dispatch(r, NS_DISPATCH_NORMAL);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
@@ -1174,7 +1174,7 @@ nsUDPSocket::AsyncListen(nsIUDPSocketListener *aListener)
|
||||
NS_ENSURE_TRUE(mListener == nullptr, NS_ERROR_IN_PROGRESS);
|
||||
{
|
||||
MutexAutoLock lock(mLock);
|
||||
mListenerTarget = NS_GetCurrentThread();
|
||||
mListenerTarget = GetCurrentThreadEventTarget();
|
||||
if (NS_IsMainThread()) {
|
||||
// PNecko usage
|
||||
mListener = new SocketListenerProxy(aListener);
|
||||
|
||||
6
netwerk/cache/nsCacheEntry.cpp
vendored
6
netwerk/cache/nsCacheEntry.cpp
vendored
@@ -52,7 +52,7 @@ nsCacheEntry::~nsCacheEntry()
|
||||
MOZ_COUNT_DTOR(nsCacheEntry);
|
||||
|
||||
if (mData)
|
||||
nsCacheService::ReleaseObject_Locked(mData, mThread);
|
||||
nsCacheService::ReleaseObject_Locked(mData, mEventTarget);
|
||||
}
|
||||
|
||||
|
||||
@@ -101,13 +101,13 @@ void
|
||||
nsCacheEntry::SetData(nsISupports * data)
|
||||
{
|
||||
if (mData) {
|
||||
nsCacheService::ReleaseObject_Locked(mData, mThread);
|
||||
nsCacheService::ReleaseObject_Locked(mData, mEventTarget);
|
||||
mData = nullptr;
|
||||
}
|
||||
|
||||
if (data) {
|
||||
NS_ADDREF(mData = data);
|
||||
mThread = do_GetCurrentThread();
|
||||
mEventTarget = GetCurrentThreadEventTarget();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
2
netwerk/cache/nsCacheEntry.h
vendored
2
netwerk/cache/nsCacheEntry.h
vendored
@@ -223,7 +223,7 @@ private:
|
||||
nsCacheDevice * mCustomDevice; // 4
|
||||
nsCOMPtr<nsISupports> mSecurityInfo; //
|
||||
nsISupports * mData; // strong ref
|
||||
nsCOMPtr<nsIThread> mThread;
|
||||
nsCOMPtr<nsIEventTarget> mEventTarget;
|
||||
nsCacheMetaData mMetaData; // 4
|
||||
PRCList mRequestQ; // 8
|
||||
PRCList mDescriptorQ; // 8
|
||||
|
||||
6
netwerk/cache/nsCacheEntryDescriptor.cpp
vendored
6
netwerk/cache/nsCacheEntryDescriptor.cpp
vendored
@@ -31,7 +31,7 @@ public:
|
||||
{
|
||||
mDescriptor = descriptor;
|
||||
mListener = listener;
|
||||
mThread = do_GetCurrentThread();
|
||||
mEventTarget = GetCurrentThreadEventTarget();
|
||||
// We addref the listener here and release it in nsNotifyDoomListener
|
||||
// on the callers thread. If posting of nsNotifyDoomListener event fails
|
||||
// we leak the listener which is better than releasing it on a wrong
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
}
|
||||
|
||||
if (mListener) {
|
||||
mThread->Dispatch(new nsNotifyDoomListener(mListener, status),
|
||||
mEventTarget->Dispatch(new nsNotifyDoomListener(mListener, status),
|
||||
NS_DISPATCH_NORMAL);
|
||||
// posted event will release the reference on the correct thread
|
||||
mListener = nullptr;
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
private:
|
||||
RefPtr<nsCacheEntryDescriptor> mDescriptor;
|
||||
nsICacheListener *mListener;
|
||||
nsCOMPtr<nsIThread> mThread;
|
||||
nsCOMPtr<nsIEventTarget> mEventTarget;
|
||||
};
|
||||
|
||||
|
||||
|
||||
4
netwerk/cache/nsCacheRequest.h
vendored
4
netwerk/cache/nsCacheRequest.h
vendored
@@ -58,7 +58,7 @@ private:
|
||||
NS_ASSERTION(PR_CLIST_IS_EMPTY(this), "request still on a list");
|
||||
|
||||
if (mListener)
|
||||
nsCacheService::ReleaseObject_Locked(mListener, mThread);
|
||||
nsCacheService::ReleaseObject_Locked(mListener, mEventTarget);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -149,7 +149,7 @@ private:
|
||||
nsCString mKey;
|
||||
uint32_t mInfo;
|
||||
nsICacheListener * mListener; // strong ref
|
||||
nsCOMPtr<nsIThread> mThread;
|
||||
nsCOMPtr<nsIEventTarget> mEventTarget;
|
||||
Mutex mLock;
|
||||
CondVar mCondVar;
|
||||
nsCOMPtr<nsIFile> mProfileDir;
|
||||
|
||||
12
netwerk/cache/nsCacheService.cpp
vendored
12
netwerk/cache/nsCacheService.cpp
vendored
@@ -1023,7 +1023,7 @@ public:
|
||||
mKey.Append(key);
|
||||
mStoragePolicy = session->StoragePolicy();
|
||||
mListener = listener;
|
||||
mThread = do_GetCurrentThread();
|
||||
mEventTarget = GetCurrentThreadEventTarget();
|
||||
// We addref the listener here and release it in nsNotifyDoomListener
|
||||
// on the callers thread. If posting of nsNotifyDoomListener event fails
|
||||
// we leak the listener which is better than releasing it on a wrong
|
||||
@@ -1053,7 +1053,7 @@ public:
|
||||
}
|
||||
|
||||
if (mListener) {
|
||||
mThread->Dispatch(new nsNotifyDoomListener(mListener, status),
|
||||
mEventTarget->Dispatch(new nsNotifyDoomListener(mListener, status),
|
||||
NS_DISPATCH_NORMAL);
|
||||
// posted event will release the reference on the correct thread
|
||||
mListener = nullptr;
|
||||
@@ -1066,7 +1066,7 @@ private:
|
||||
nsCString mKey;
|
||||
nsCacheStoragePolicy mStoragePolicy;
|
||||
nsICacheListener *mListener;
|
||||
nsCOMPtr<nsIThread> mThread;
|
||||
nsCOMPtr<nsIEventTarget> mEventTarget;
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
@@ -1847,7 +1847,7 @@ nsCacheService::CreateRequest(nsCacheSession * session,
|
||||
if (!listener) return NS_OK; // we're sync, we're done.
|
||||
|
||||
// get the request's thread
|
||||
(*request)->mThread = do_GetCurrentThread();
|
||||
(*request)->mEventTarget = GetCurrentThreadEventTarget();
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
@@ -1893,7 +1893,7 @@ nsCacheService::NotifyListener(nsCacheRequest * request,
|
||||
nsCacheAccessMode accessGranted,
|
||||
nsresult status)
|
||||
{
|
||||
NS_ASSERTION(request->mThread, "no thread set in async request!");
|
||||
NS_ASSERTION(request->mEventTarget, "no thread set in async request!");
|
||||
|
||||
// Swap ownership, and release listener on target thread...
|
||||
nsICacheListener *listener = request->mListener;
|
||||
@@ -1909,7 +1909,7 @@ nsCacheService::NotifyListener(nsCacheRequest * request,
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
return request->mThread->Dispatch(ev, NS_DISPATCH_NORMAL);
|
||||
return request->mEventTarget->Dispatch(ev, NS_DISPATCH_NORMAL);
|
||||
}
|
||||
|
||||
|
||||
|
||||
10
netwerk/cache/nsDiskCacheDeviceSQL.cpp
vendored
10
netwerk/cache/nsDiskCacheDeviceSQL.cpp
vendored
@@ -1207,7 +1207,7 @@ nsOfflineCacheDevice::InitWithSqlite(mozIStorageService * ss)
|
||||
rv = ss->OpenDatabase(indexFile, getter_AddRefs(mDB));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
mInitThread = do_GetCurrentThread();
|
||||
mInitEventTarget = GetCurrentThreadEventTarget();
|
||||
|
||||
mDB->ExecuteSimpleSQL(NS_LITERAL_CSTRING("PRAGMA synchronous = OFF;"));
|
||||
|
||||
@@ -1492,14 +1492,14 @@ nsOfflineCacheDevice::Shutdown()
|
||||
|
||||
// Close Database on the correct thread
|
||||
bool isOnCurrentThread = true;
|
||||
if (mInitThread)
|
||||
mInitThread->IsOnCurrentThread(&isOnCurrentThread);
|
||||
if (mInitEventTarget)
|
||||
isOnCurrentThread = mInitEventTarget->IsOnCurrentThread();
|
||||
|
||||
if (!isOnCurrentThread) {
|
||||
nsCOMPtr<nsIRunnable> ev = new nsCloseDBEvent(mDB);
|
||||
|
||||
if (ev) {
|
||||
mInitThread->Dispatch(ev, NS_DISPATCH_NORMAL);
|
||||
mInitEventTarget->Dispatch(ev, NS_DISPATCH_NORMAL);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -1507,7 +1507,7 @@ nsOfflineCacheDevice::Shutdown()
|
||||
}
|
||||
|
||||
mDB = nullptr;
|
||||
mInitThread = nullptr;
|
||||
mInitEventTarget = nullptr;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
2
netwerk/cache/nsDiskCacheDeviceSQL.h
vendored
2
netwerk/cache/nsDiskCacheDeviceSQL.h
vendored
@@ -284,7 +284,7 @@ private:
|
||||
nsTHashtable<nsCStringHashKey> mActiveCaches;
|
||||
nsTHashtable<nsCStringHashKey> mLockedEntries;
|
||||
|
||||
nsCOMPtr<nsIThread> mInitThread;
|
||||
nsCOMPtr<nsIEventTarget> mInitEventTarget;
|
||||
};
|
||||
|
||||
#endif // nsOfflineCacheDevice_h__
|
||||
|
||||
@@ -77,7 +77,7 @@ CacheEntry::Callback::Callback(CacheEntry* aEntry,
|
||||
bool aSecret)
|
||||
: mEntry(aEntry)
|
||||
, mCallback(aCallback)
|
||||
, mTargetThread(do_GetCurrentThread())
|
||||
, mTarget(GetCurrentThreadEventTarget())
|
||||
, mReadOnly(aReadOnly)
|
||||
, mRevalidating(false)
|
||||
, mCheckOnAnyThread(aCheckOnAnyThread)
|
||||
@@ -114,7 +114,7 @@ CacheEntry::Callback::Callback(CacheEntry* aEntry, bool aDoomWhenFoundInPinStatu
|
||||
CacheEntry::Callback::Callback(CacheEntry::Callback const &aThat)
|
||||
: mEntry(aThat.mEntry)
|
||||
, mCallback(aThat.mCallback)
|
||||
, mTargetThread(aThat.mTargetThread)
|
||||
, mTarget(aThat.mTarget)
|
||||
, mReadOnly(aThat.mReadOnly)
|
||||
, mRevalidating(aThat.mRevalidating)
|
||||
, mCheckOnAnyThread(aThat.mCheckOnAnyThread)
|
||||
@@ -134,7 +134,7 @@ CacheEntry::Callback::Callback(CacheEntry::Callback const &aThat)
|
||||
|
||||
CacheEntry::Callback::~Callback()
|
||||
{
|
||||
ProxyRelease(mCallback, mTargetThread);
|
||||
ProxyRelease(mCallback, mTarget);
|
||||
|
||||
mEntry->ReleaseHandleRef();
|
||||
MOZ_COUNT_DTOR(CacheEntry::Callback);
|
||||
@@ -171,7 +171,7 @@ nsresult CacheEntry::Callback::OnCheckThread(bool *aOnCheckThread) const
|
||||
{
|
||||
if (!mCheckOnAnyThread) {
|
||||
// Check we are on the target
|
||||
return mTargetThread->IsOnCurrentThread(aOnCheckThread);
|
||||
return mTarget->IsOnCurrentThread(aOnCheckThread);
|
||||
}
|
||||
|
||||
// We can invoke check anywhere
|
||||
@@ -181,7 +181,7 @@ nsresult CacheEntry::Callback::OnCheckThread(bool *aOnCheckThread) const
|
||||
|
||||
nsresult CacheEntry::Callback::OnAvailThread(bool *aOnAvailThread) const
|
||||
{
|
||||
return mTargetThread->IsOnCurrentThread(aOnAvailThread);
|
||||
return mTarget->IsOnCurrentThread(aOnAvailThread);
|
||||
}
|
||||
|
||||
// CacheEntry
|
||||
@@ -663,7 +663,7 @@ bool CacheEntry::InvokeCallbacks(bool aReadOnly)
|
||||
|
||||
if (NS_SUCCEEDED(rv) && !onCheckThread) {
|
||||
// Redispatch to the target thread
|
||||
rv = mCallbacks[i].mTargetThread->Dispatch(NewRunnableMethod(this,
|
||||
rv = mCallbacks[i].mTarget->Dispatch(NewRunnableMethod(this,
|
||||
&CacheEntry::InvokeCallbacksLock),
|
||||
nsIEventTarget::DISPATCH_NORMAL);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
@@ -839,7 +839,7 @@ void CacheEntry::InvokeAvailableCallback(Callback const & aCallback)
|
||||
RefPtr<AvailableCallbackRunnable> event =
|
||||
new AvailableCallbackRunnable(this, aCallback);
|
||||
|
||||
rv = aCallback.mTargetThread->Dispatch(event, nsIEventTarget::DISPATCH_NORMAL);
|
||||
rv = aCallback.mTarget->Dispatch(event, nsIEventTarget::DISPATCH_NORMAL);
|
||||
LOG((" redispatched, (rv = 0x%08" PRIx32 ")", static_cast<uint32_t>(rv)));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -160,7 +160,7 @@ private:
|
||||
// it's pointer).
|
||||
RefPtr<CacheEntry> mEntry;
|
||||
nsCOMPtr<nsICacheEntryOpenCallback> mCallback;
|
||||
nsCOMPtr<nsIThread> mTargetThread;
|
||||
nsCOMPtr<nsIEventTarget> mTarget;
|
||||
bool mReadOnly : 1;
|
||||
bool mRevalidating : 1;
|
||||
bool mCheckOnAnyThread : 1;
|
||||
|
||||
@@ -2135,7 +2135,7 @@ CacheFile::QueueChunkListener(uint32_t aIndex,
|
||||
if (!item->mTarget) {
|
||||
LOG(("CacheFile::QueueChunkListener() - Cannot get Cache I/O thread! Using "
|
||||
"main thread for callback."));
|
||||
item->mTarget = do_GetMainThread();
|
||||
item->mTarget = GetMainThreadEventTarget();
|
||||
}
|
||||
item->mCallback = aCallback;
|
||||
|
||||
|
||||
@@ -487,7 +487,7 @@ CacheFileChunk::WaitForUpdate(CacheFileChunkListener *aCallback)
|
||||
if (!item->mTarget) {
|
||||
LOG(("CacheFileChunk::WaitForUpdate() - Cannot get Cache I/O thread! Using "
|
||||
"main thread for callback."));
|
||||
item->mTarget = do_GetMainThread();
|
||||
item->mTarget = GetMainThreadEventTarget();
|
||||
}
|
||||
item->mCallback = aCallback;
|
||||
MOZ_ASSERT(item->mTarget);
|
||||
|
||||
@@ -630,7 +630,7 @@ CacheFileInputStream::NotifyListener()
|
||||
if (!mCallbackTarget) {
|
||||
LOG(("CacheFileInputStream::NotifyListener() - Cannot get Cache I/O "
|
||||
"thread! Using main thread for callback."));
|
||||
mCallbackTarget = do_GetMainThread();
|
||||
mCallbackTarget = GetMainThreadEventTarget();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -452,7 +452,7 @@ CacheFileOutputStream::NotifyListener()
|
||||
if (!mCallbackTarget) {
|
||||
LOG(("CacheFileOutputStream::NotifyListener() - Cannot get Cache I/O "
|
||||
"thread! Using main thread for callback."));
|
||||
mCallbackTarget = do_GetMainThread();
|
||||
mCallbackTarget = GetMainThreadEventTarget();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -400,16 +400,15 @@ private:
|
||||
};
|
||||
|
||||
template<class T>
|
||||
void ProxyRelease(nsCOMPtr<T> &object, nsIThread* thread)
|
||||
void ProxyRelease(nsCOMPtr<T> &object, nsIEventTarget* target)
|
||||
{
|
||||
NS_ProxyRelease(thread, object.forget());
|
||||
NS_ProxyRelease(target, object.forget());
|
||||
}
|
||||
|
||||
template<class T>
|
||||
void ProxyReleaseMainThread(nsCOMPtr<T> &object)
|
||||
{
|
||||
nsCOMPtr<nsIThread> mainThread = do_GetMainThread();
|
||||
ProxyRelease(object, mainThread);
|
||||
ProxyRelease(object, GetMainThreadEventTarget());
|
||||
}
|
||||
|
||||
} // namespace net
|
||||
|
||||
@@ -41,11 +41,11 @@ DNSRequestParent::DoAsyncResolve(const nsACString &hostname,
|
||||
mFlags = flags;
|
||||
nsCOMPtr<nsIDNSService> dns = do_GetService(NS_DNSSERVICE_CONTRACTID, &rv);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
nsCOMPtr<nsIThread> mainThread = do_GetMainThread();
|
||||
nsCOMPtr<nsIEventTarget> main = GetMainThreadEventTarget();
|
||||
nsCOMPtr<nsICancelable> unused;
|
||||
rv = dns->AsyncResolveExtendedNative(hostname, flags,
|
||||
networkInterface, this,
|
||||
mainThread, originAttributes,
|
||||
main, originAttributes,
|
||||
getter_AddRefs(unused));
|
||||
}
|
||||
|
||||
|
||||
@@ -842,9 +842,7 @@ nsDNSService::AsyncResolveExtendedNative(const nsACString &aHostname,
|
||||
// make sure JS callers get notification on the main thread
|
||||
nsCOMPtr<nsIXPConnectWrappedJS> wrappedListener = do_QueryInterface(listener);
|
||||
if (wrappedListener && !target) {
|
||||
nsCOMPtr<nsIThread> mainThread;
|
||||
NS_GetMainThread(getter_AddRefs(mainThread));
|
||||
target = do_QueryInterface(mainThread);
|
||||
target = GetMainThreadEventTarget();
|
||||
}
|
||||
|
||||
if (target) {
|
||||
|
||||
@@ -46,7 +46,7 @@ class MainThreadChannelEvent : public ChannelEvent
|
||||
{
|
||||
MOZ_ASSERT(XRE_IsParentProcess());
|
||||
|
||||
return do_GetMainThread();
|
||||
return do_AddRef(GetMainThreadEventTarget());
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -139,7 +139,7 @@ class FTPEventSinkProxy final : public nsIFTPEventSink
|
||||
public:
|
||||
explicit FTPEventSinkProxy(nsIFTPEventSink* aTarget)
|
||||
: mTarget(aTarget)
|
||||
, mTargetThread(do_GetCurrentThread())
|
||||
, mEventTarget(GetCurrentThreadEventTarget())
|
||||
{ }
|
||||
|
||||
NS_DECL_THREADSAFE_ISUPPORTS
|
||||
@@ -166,7 +166,7 @@ public:
|
||||
|
||||
private:
|
||||
nsCOMPtr<nsIFTPEventSink> mTarget;
|
||||
nsCOMPtr<nsIThread> mTargetThread;
|
||||
nsCOMPtr<nsIEventTarget> mEventTarget;
|
||||
};
|
||||
|
||||
NS_IMPL_ISUPPORTS(FTPEventSinkProxy, nsIFTPEventSink)
|
||||
@@ -176,7 +176,7 @@ FTPEventSinkProxy::OnFTPControlLog(bool aServer, const char* aMsg)
|
||||
{
|
||||
RefPtr<OnFTPControlLogRunnable> r =
|
||||
new OnFTPControlLogRunnable(mTarget, aServer, aMsg);
|
||||
return mTargetThread->Dispatch(r, NS_DISPATCH_NORMAL);
|
||||
return mEventTarget->Dispatch(r, NS_DISPATCH_NORMAL);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
||||
@@ -1504,7 +1504,7 @@ nsFtpState::R_pasv() {
|
||||
LOG(("FTP:(%p) created DT (%s:%x)\n", this, host.get(), port));
|
||||
|
||||
// hook ourself up as a proxy for status notifications
|
||||
rv = mDataTransport->SetEventSink(this, NS_GetCurrentThread());
|
||||
rv = mDataTransport->SetEventSink(this, GetCurrentThreadEventTarget());
|
||||
NS_ENSURE_SUCCESS(rv, FTP_ERROR);
|
||||
|
||||
if (mAction == PUT) {
|
||||
|
||||
@@ -110,7 +110,7 @@ nsFtpControlConnection::Connect(nsIProxyInfo* proxyInfo,
|
||||
|
||||
// proxy transport events back to current thread
|
||||
if (eventSink)
|
||||
mSocket->SetEventSink(eventSink, NS_GetCurrentThread());
|
||||
mSocket->SetEventSink(eventSink, GetCurrentThreadEventTarget());
|
||||
|
||||
// open buffered, blocking output stream to socket. so long as commands
|
||||
// do not exceed 1024 bytes in length, the writing thread (the main thread)
|
||||
@@ -147,7 +147,7 @@ nsFtpControlConnection::WaitData(nsFtpControlConnectionListener *listener)
|
||||
NS_ENSURE_STATE(mSocketInput);
|
||||
|
||||
mListener = listener;
|
||||
return mSocketInput->AsyncWait(this, 0, 0, NS_GetCurrentThread());
|
||||
return mSocketInput->AsyncWait(this, 0, 0, GetCurrentThreadEventTarget());
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
||||
@@ -2284,7 +2284,7 @@ HttpChannelChild::GetNeckoTarget()
|
||||
}
|
||||
|
||||
if (!target) {
|
||||
target = do_GetMainThread();
|
||||
target = GetMainThreadEventTarget();
|
||||
}
|
||||
return target.forget();
|
||||
}
|
||||
@@ -2299,7 +2299,7 @@ HttpChannelChild::GetODATarget()
|
||||
}
|
||||
|
||||
if (!target) {
|
||||
target = do_GetMainThread();
|
||||
target = GetMainThreadEventTarget();
|
||||
}
|
||||
return target.forget();
|
||||
}
|
||||
@@ -3123,7 +3123,7 @@ HttpChannelChild::RetargetDeliveryTo(nsIEventTarget* aNewTarget)
|
||||
MOZ_ASSERT(aNewTarget);
|
||||
|
||||
NS_ENSURE_ARG(aNewTarget);
|
||||
if (aNewTarget == NS_GetCurrentThread()) {
|
||||
if (aNewTarget->IsOnCurrentThread()) {
|
||||
NS_WARNING("Retargeting delivery to same thread");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@@ -1118,7 +1118,7 @@ nsHttpChannel::SetupTransaction()
|
||||
rv = mTransaction->Init(mCaps, mConnectionInfo, &mRequestHead,
|
||||
mUploadStream, mReqContentLength,
|
||||
mUploadStreamHasHeaders,
|
||||
NS_GetCurrentThread(), callbacks, this,
|
||||
GetCurrentThreadEventTarget(), callbacks, this,
|
||||
mTopLevelOuterContentWindowId,
|
||||
getter_AddRefs(responseStream));
|
||||
if (NS_FAILED(rv)) {
|
||||
@@ -7567,7 +7567,7 @@ nsHttpChannel::RetargetDeliveryTo(nsIEventTarget* aNewTarget)
|
||||
MOZ_ASSERT(NS_IsMainThread(), "Should be called on main thread only");
|
||||
|
||||
NS_ENSURE_ARG(aNewTarget);
|
||||
if (aNewTarget == NS_GetCurrentThread()) {
|
||||
if (aNewTarget->IsOnCurrentThread()) {
|
||||
NS_WARNING("Retargeting delivery to same thread");
|
||||
return NS_OK;
|
||||
}
|
||||
@@ -7596,10 +7596,9 @@ nsHttpChannel::RetargetDeliveryTo(nsIEventTarget* aNewTarget)
|
||||
|
||||
// If retarget fails for transaction pump, we must restore mCachePump.
|
||||
if (NS_FAILED(rv) && retargetableCachePump) {
|
||||
nsCOMPtr<nsIThread> mainThread;
|
||||
rv = NS_GetMainThread(getter_AddRefs(mainThread));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
rv = retargetableCachePump->RetargetDeliveryTo(mainThread);
|
||||
nsCOMPtr<nsIEventTarget> main = GetMainThreadEventTarget();
|
||||
NS_ENSURE_TRUE(main, NS_ERROR_UNEXPECTED);
|
||||
rv = retargetableCachePump->RetargetDeliveryTo(main);
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
@@ -8425,7 +8424,7 @@ nsHttpChannel::UpdateAggregateCallbacks()
|
||||
}
|
||||
nsCOMPtr<nsIInterfaceRequestor> callbacks;
|
||||
NS_NewNotificationCallbacksAggregation(mCallbacks, mLoadGroup,
|
||||
NS_GetCurrentThread(),
|
||||
GetCurrentThreadEventTarget(),
|
||||
getter_AddRefs(callbacks));
|
||||
mTransaction->SetSecurityCallbacks(callbacks);
|
||||
}
|
||||
|
||||
@@ -2891,11 +2891,10 @@ WebSocketChannel::DoAdmissionDNS()
|
||||
mPort = (mEncrypted ? kDefaultWSSPort : kDefaultWSPort);
|
||||
nsCOMPtr<nsIDNSService> dns = do_GetService(NS_DNSSERVICE_CONTRACTID, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
nsCOMPtr<nsIThread> mainThread;
|
||||
NS_GetMainThread(getter_AddRefs(mainThread));
|
||||
nsCOMPtr<nsIEventTarget> main = GetMainThreadEventTarget();
|
||||
MOZ_ASSERT(!mCancelable);
|
||||
return dns->AsyncResolveNative(hostName, 0, this,
|
||||
mainThread, mLoadInfo->GetOriginAttributes(),
|
||||
main, mLoadInfo->GetOriginAttributes(),
|
||||
getter_AddRefs(mCancelable));
|
||||
}
|
||||
|
||||
@@ -3342,7 +3341,7 @@ WebSocketChannel::AsyncOpen(nsIURI *aURI,
|
||||
|
||||
// Ensure target thread is set.
|
||||
if (!mTargetThread) {
|
||||
mTargetThread = do_GetMainThread();
|
||||
mTargetThread = GetMainThreadEventTarget();
|
||||
}
|
||||
|
||||
mSocketThread = do_GetService(NS_SOCKETTRANSPORTSERVICE_CONTRACTID, &rv);
|
||||
|
||||
@@ -180,7 +180,7 @@ public:
|
||||
{
|
||||
nsCOMPtr<nsIEventTarget> target = mEventTarget;
|
||||
if (!target) {
|
||||
target = do_GetMainThread();
|
||||
target = GetMainThreadEventTarget();
|
||||
}
|
||||
return target.forget();
|
||||
}
|
||||
@@ -212,8 +212,7 @@ class StartEvent : public ChannelEvent
|
||||
|
||||
already_AddRefed<nsIEventTarget> GetEventTarget()
|
||||
{
|
||||
nsCOMPtr<nsIEventTarget> target = do_GetCurrentThread();
|
||||
return target.forget();
|
||||
return do_AddRef(GetCurrentThreadEventTarget());
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -277,8 +276,7 @@ class StopEvent : public ChannelEvent
|
||||
|
||||
already_AddRefed<nsIEventTarget> GetEventTarget()
|
||||
{
|
||||
nsCOMPtr<nsIEventTarget> target = do_GetCurrentThread();
|
||||
return target.forget();
|
||||
return do_AddRef(GetCurrentThreadEventTarget());
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -334,8 +332,7 @@ class MessageEvent : public ChannelEvent
|
||||
|
||||
already_AddRefed<nsIEventTarget> GetEventTarget()
|
||||
{
|
||||
nsCOMPtr<nsIEventTarget> target = do_GetCurrentThread();
|
||||
return target.forget();
|
||||
return do_AddRef(GetCurrentThreadEventTarget());
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -413,8 +410,7 @@ class AcknowledgeEvent : public ChannelEvent
|
||||
|
||||
already_AddRefed<nsIEventTarget> GetEventTarget()
|
||||
{
|
||||
nsCOMPtr<nsIEventTarget> target = do_GetCurrentThread();
|
||||
return target.forget();
|
||||
return do_AddRef(GetCurrentThreadEventTarget());
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -466,8 +462,7 @@ class ServerCloseEvent : public ChannelEvent
|
||||
|
||||
already_AddRefed<nsIEventTarget> GetEventTarget()
|
||||
{
|
||||
nsCOMPtr<nsIEventTarget> target = do_GetCurrentThread();
|
||||
return target.forget();
|
||||
return do_AddRef(GetCurrentThreadEventTarget());
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -611,7 +606,7 @@ NS_IMETHODIMP
|
||||
WebSocketChannelChild::Close(uint16_t code, const nsACString & reason)
|
||||
{
|
||||
if (!NS_IsMainThread()) {
|
||||
MOZ_RELEASE_ASSERT(NS_GetCurrentThread() == mTargetThread);
|
||||
MOZ_RELEASE_ASSERT(mTargetThread->IsOnCurrentThread());
|
||||
return NS_DispatchToMainThread(new CloseEvent(this, code, reason));
|
||||
}
|
||||
LOG(("WebSocketChannelChild::Close() %p\n", this));
|
||||
@@ -739,7 +734,7 @@ WebSocketChannelChild::SendBinaryStream(nsIInputStream *aStream,
|
||||
uint32_t aLength)
|
||||
{
|
||||
if (!NS_IsMainThread()) {
|
||||
MOZ_RELEASE_ASSERT(NS_GetCurrentThread() == mTargetThread);
|
||||
MOZ_RELEASE_ASSERT(mTargetThread->IsOnCurrentThread());
|
||||
return NS_DispatchToMainThread(new BinaryStreamEvent(this, aStream, aLength));
|
||||
}
|
||||
|
||||
|
||||
@@ -2397,8 +2397,6 @@ DataChannelConnection::ReadBlob(already_AddRefed<DataChannelConnection> aThis,
|
||||
// For now as a hack, send as a single blast of queued packets which may
|
||||
// be deferred until buffer space is available.
|
||||
uint64_t len;
|
||||
nsCOMPtr<nsIThread> mainThread;
|
||||
NS_GetMainThread(getter_AddRefs(mainThread));
|
||||
|
||||
// Must not let Dispatching it cause the DataChannelConnection to get
|
||||
// released on the wrong thread. Using WrapRunnable(RefPtr<DataChannelConnection>(aThis),...
|
||||
@@ -2412,7 +2410,7 @@ DataChannelConnection::ReadBlob(already_AddRefed<DataChannelConnection> aThis,
|
||||
// Bug 966602: Doesn't return an error to the caller via onerror.
|
||||
// We must release DataChannelConnection on MainThread to avoid issues (bug 876167)
|
||||
// aThis is now owned by the runnable; release it there
|
||||
NS_ProxyRelease(mainThread, runnable.forget());
|
||||
NS_ReleaseOnMainThread(runnable.forget());
|
||||
return;
|
||||
}
|
||||
aBlob->Close();
|
||||
|
||||
@@ -470,7 +470,7 @@ nsSOCKSSocketInfo::StartDNS(PRFileDesc *fd)
|
||||
|
||||
mFD = fd;
|
||||
nsresult rv = dns->AsyncResolveNative(proxyHost, 0, this,
|
||||
NS_GetCurrentThread(), attrs,
|
||||
mozilla::GetCurrentThreadEventTarget(), attrs,
|
||||
getter_AddRefs(mLookup));
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
|
||||
@@ -174,15 +174,15 @@ NS_IMETHODIMP nsWifiMonitor::Run()
|
||||
}
|
||||
|
||||
if (doError) {
|
||||
nsCOMPtr<nsIThread> thread = do_GetMainThread();
|
||||
if (!thread)
|
||||
nsCOMPtr<nsIEventTarget> target = GetMainThreadEventTarget();
|
||||
if (!target)
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
|
||||
nsCOMPtr<nsIRunnable> runnable(new nsPassErrorToWifiListeners(currentListeners, rv));
|
||||
if (!runnable)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
thread->Dispatch(runnable, NS_DISPATCH_SYNC);
|
||||
target->Dispatch(runnable, NS_DISPATCH_SYNC);
|
||||
}
|
||||
|
||||
LOG(("@@@@@ wifi monitor run complete\n"));
|
||||
|
||||
Reference in New Issue
Block a user