nsresult nsPACMan::AsyncGetProxyForURI(nsIURI *uri, nsPACManCallback *callback, bool mainThreadResponse) { MOZ_ASSERT(NS_IsMainThread(), "wrong thread"); if (mShutdown) return NS_ERROR_NOT_AVAILABLE; // Maybe Reload PAC if (!mPACURISpec.IsEmpty() && !mScheduledReload.IsNull() && TimeStamp::Now() > mScheduledReload) { LOG(("nsPACMan::AsyncGetProxyForURI reload as scheduled\n")); LoadPACFromURI(EmptyCString()); } RefPtr<PendingPACQuery> query = new PendingPACQuery(this, uri, callback, mainThreadResponse); if (IsPACURI(uri)) { // deal with this directly instead of queueing it query->Complete(NS_OK, EmptyCString()); return NS_OK; } return mPACThread->Dispatch(query, nsIEventTarget::DISPATCH_NORMAL); }
void nsPACMan::MaybeReloadPAC() { if (!mPACURI) return; if (PR_Now() > mScheduledReload) LoadPACFromURI(nsnull); }