OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chrome_quota_permission_context.h" | 5 #include "chrome/browser/chrome_quota_permission_context.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
| 10 #include "chrome/browser/infobars/infobar_tab_helper.h" |
10 #include "chrome/browser/prefs/pref_service.h" | 11 #include "chrome/browser/prefs/pref_service.h" |
11 #include "chrome/browser/profiles/profile.h" | 12 #include "chrome/browser/profiles/profile.h" |
12 #include "chrome/browser/tab_contents/confirm_infobar_delegate.h" | 13 #include "chrome/browser/tab_contents/confirm_infobar_delegate.h" |
13 #include "chrome/browser/tab_contents/tab_util.h" | 14 #include "chrome/browser/tab_contents/tab_util.h" |
14 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 15 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
15 #include "chrome/common/pref_names.h" | 16 #include "chrome/common/pref_names.h" |
16 #include "content/browser/browser_thread.h" | 17 #include "content/browser/browser_thread.h" |
17 #include "content/browser/tab_contents/navigation_details.h" | 18 #include "content/browser/tab_contents/navigation_details.h" |
18 #include "content/browser/tab_contents/tab_contents.h" | 19 #include "content/browser/tab_contents/tab_contents.h" |
19 #include "googleurl/src/gurl.h" | 20 #include "googleurl/src/gurl.h" |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 if (!tab_contents) { | 137 if (!tab_contents) { |
137 // The tab may have gone away or the request may not be from a tab. | 138 // The tab may have gone away or the request may not be from a tab. |
138 LOG(WARNING) << "Attempt to request quota tabless renderer: " | 139 LOG(WARNING) << "Attempt to request quota tabless renderer: " |
139 << render_process_id << "," << render_view_id; | 140 << render_process_id << "," << render_view_id; |
140 DispatchCallbackOnIOThread(callback.release(), kResponseCancelled); | 141 DispatchCallbackOnIOThread(callback.release(), kResponseCancelled); |
141 return; | 142 return; |
142 } | 143 } |
143 | 144 |
144 TabContentsWrapper* wrapper = | 145 TabContentsWrapper* wrapper = |
145 TabContentsWrapper::GetCurrentWrapperForContents(tab_contents); | 146 TabContentsWrapper::GetCurrentWrapperForContents(tab_contents); |
146 wrapper->AddInfoBar(new RequestQuotaInfoBarDelegate( | 147 wrapper->infobar_tab_helper()->AddInfoBar(new RequestQuotaInfoBarDelegate( |
147 tab_contents, this, | 148 tab_contents, this, |
148 origin_url, requested_quota, | 149 origin_url, requested_quota, |
149 wrapper->profile()->GetPrefs()->GetString(prefs::kAcceptLanguages), | 150 wrapper->profile()->GetPrefs()->GetString(prefs::kAcceptLanguages), |
150 callback.release())); | 151 callback.release())); |
151 } | 152 } |
152 | 153 |
153 void ChromeQuotaPermissionContext::DispatchCallbackOnIOThread( | 154 void ChromeQuotaPermissionContext::DispatchCallbackOnIOThread( |
154 PermissionCallback* callback_ptr, | 155 PermissionCallback* callback_ptr, |
155 Response response) { | 156 Response response) { |
156 DCHECK(callback_ptr); | 157 DCHECK(callback_ptr); |
157 scoped_ptr<PermissionCallback> callback(callback_ptr); | 158 scoped_ptr<PermissionCallback> callback(callback_ptr); |
158 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { | 159 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { |
159 BrowserThread::PostTask( | 160 BrowserThread::PostTask( |
160 BrowserThread::IO, FROM_HERE, | 161 BrowserThread::IO, FROM_HERE, |
161 NewRunnableMethod( | 162 NewRunnableMethod( |
162 this, &ChromeQuotaPermissionContext::DispatchCallbackOnIOThread, | 163 this, &ChromeQuotaPermissionContext::DispatchCallbackOnIOThread, |
163 callback.release(), response)); | 164 callback.release(), response)); |
164 return; | 165 return; |
165 } | 166 } |
166 callback->Run(response); | 167 callback->Run(response); |
167 } | 168 } |
OLD | NEW |