summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/profile_manager.cc20
1 files changed, 19 insertions, 1 deletions
diff --git a/chrome/browser/profile_manager.cc b/chrome/browser/profile_manager.cc
index f8cb344..209c2d2 100644
--- a/chrome/browser/profile_manager.cc
+++ b/chrome/browser/profile_manager.cc
@@ -168,10 +168,24 @@ void ProfileManager::OnResume() {
}
}
+#if defined(OS_WIN)
+#pragma optimize("", off)
+#pragma warning(disable:4748)
+#endif
void ProfileManager::SuspendProfile(Profile* profile) {
- DCHECK(profile);
+ CHECK(profile);
DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
+ // TODO(rvargas): remove this after finding the cause for bug 31723.
+ URLRequestJob* job_list[50] = { NULL };
+ int count = 0;
+ for (URLRequestJobTracker::JobIterator i = g_url_request_job_tracker.begin();
+ i != g_url_request_job_tracker.end(); ++i) {
+ if (count < 50)
+ job_list[count] = *i;
+ count++;
+ }
+
for (URLRequestJobTracker::JobIterator i = g_url_request_job_tracker.begin();
i != g_url_request_job_tracker.end(); ++i)
(*i)->Kill();
@@ -179,6 +193,10 @@ void ProfileManager::SuspendProfile(Profile* profile) {
profile->GetRequestContext()->GetURLRequestContext()->
http_transaction_factory()->Suspend(true);
}
+#if defined(OS_WIN)
+#pragma warning(default:4748)
+#pragma optimize("", on)
+#endif
void ProfileManager::ResumeProfile(Profile* profile) {
DCHECK(profile);