OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
247 } | 247 } |
248 | 248 |
249 if (!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)) { | 249 if (!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)) { |
250 content::BrowserThread::PostTask( | 250 content::BrowserThread::PostTask( |
251 content::BrowserThread::UI, FROM_HERE, | 251 content::BrowserThread::UI, FROM_HERE, |
252 base::Bind(&ChromeQuotaPermissionContext::RequestQuotaPermission, this, | 252 base::Bind(&ChromeQuotaPermissionContext::RequestQuotaPermission, this, |
253 params, render_process_id, callback)); | 253 params, render_process_id, callback)); |
254 return; | 254 return; |
255 } | 255 } |
256 | 256 |
257 content::WebContents* web_contents = | 257 content::WebContents* web_contents = tab_util::GetWebContentsByFrameID( |
258 tab_util::GetWebContentsByID(render_process_id, | 258 render_process_id, params.render_frame_id); |
259 params.render_view_id); | |
260 if (!web_contents) { | 259 if (!web_contents) { |
261 // The tab may have gone away or the request may not be from a tab. | 260 // The tab may have gone away or the request may not be from a tab. |
262 LOG(WARNING) << "Attempt to request quota tabless renderer: " | 261 LOG(WARNING) << "Attempt to request quota tabless renderer: " |
263 << render_process_id << "," << params.render_view_id; | 262 << render_process_id << "," << params.render_frame_id; |
264 DispatchCallbackOnIOThread(callback, QUOTA_PERMISSION_RESPONSE_CANCELLED); | 263 DispatchCallbackOnIOThread(callback, QUOTA_PERMISSION_RESPONSE_CANCELLED); |
265 return; | 264 return; |
266 } | 265 } |
267 | 266 |
268 #if defined(OS_ANDROID) | 267 #if defined(OS_ANDROID) |
269 InfoBarService* infobar_service = | 268 InfoBarService* infobar_service = |
270 InfoBarService::FromWebContents(web_contents); | 269 InfoBarService::FromWebContents(web_contents); |
271 if (infobar_service) { | 270 if (infobar_service) { |
272 RequestQuotaInfoBarDelegate::Create( | 271 RequestQuotaInfoBarDelegate::Create( |
273 infobar_service, this, params.origin_url, params.requested_size, | 272 infobar_service, this, params.origin_url, params.requested_size, |
274 callback); | 273 callback); |
275 return; | 274 return; |
276 } | 275 } |
277 #else | 276 #else |
278 PermissionRequestManager* permission_request_manager = | 277 PermissionRequestManager* permission_request_manager = |
279 PermissionRequestManager::FromWebContents(web_contents); | 278 PermissionRequestManager::FromWebContents(web_contents); |
280 if (permission_request_manager) { | 279 if (permission_request_manager) { |
281 permission_request_manager->AddRequest( | 280 permission_request_manager->AddRequest( |
282 new QuotaPermissionRequest(this, params.origin_url, callback)); | 281 new QuotaPermissionRequest(this, params.origin_url, callback)); |
283 return; | 282 return; |
284 } | 283 } |
285 #endif | 284 #endif |
286 | 285 |
287 // The tab has no UI service for presenting the permissions request. | 286 // The tab has no UI service for presenting the permissions request. |
288 LOG(WARNING) << "Attempt to request quota from a background page: " | 287 LOG(WARNING) << "Attempt to request quota from a background page: " |
289 << render_process_id << "," << params.render_view_id; | 288 << render_process_id << "," << params.render_frame_id; |
290 DispatchCallbackOnIOThread(callback, QUOTA_PERMISSION_RESPONSE_CANCELLED); | 289 DispatchCallbackOnIOThread(callback, QUOTA_PERMISSION_RESPONSE_CANCELLED); |
291 } | 290 } |
292 | 291 |
293 void ChromeQuotaPermissionContext::DispatchCallbackOnIOThread( | 292 void ChromeQuotaPermissionContext::DispatchCallbackOnIOThread( |
294 const PermissionCallback& callback, | 293 const PermissionCallback& callback, |
295 QuotaPermissionResponse response) { | 294 QuotaPermissionResponse response) { |
296 DCHECK_EQ(false, callback.is_null()); | 295 DCHECK_EQ(false, callback.is_null()); |
297 | 296 |
298 if (!content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)) { | 297 if (!content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)) { |
299 content::BrowserThread::PostTask( | 298 content::BrowserThread::PostTask( |
300 content::BrowserThread::IO, FROM_HERE, | 299 content::BrowserThread::IO, FROM_HERE, |
301 base::Bind(&ChromeQuotaPermissionContext::DispatchCallbackOnIOThread, | 300 base::Bind(&ChromeQuotaPermissionContext::DispatchCallbackOnIOThread, |
302 this, callback, response)); | 301 this, callback, response)); |
303 return; | 302 return; |
304 } | 303 } |
305 | 304 |
306 callback.Run(response); | 305 callback.Run(response); |
307 } | 306 } |
308 | 307 |
309 ChromeQuotaPermissionContext::~ChromeQuotaPermissionContext() {} | 308 ChromeQuotaPermissionContext::~ChromeQuotaPermissionContext() {} |
OLD | NEW |