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