1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/download/download_permission_request.h" 6 7#include "chrome/grit/generated_resources.h" 8#include "content/public/browser/web_contents.h" 9#include "grit/theme_resources.h" 10#include "ui/base/l10n/l10n_util.h" 11 12DownloadPermissionRequest::DownloadPermissionRequest( 13 base::WeakPtr<DownloadRequestLimiter::TabDownloadState> host) 14 : host_(host) {} 15 16DownloadPermissionRequest::~DownloadPermissionRequest() {} 17 18int DownloadPermissionRequest::GetIconID() const { 19 return IDR_INFOBAR_MULTIPLE_DOWNLOADS; 20} 21 22base::string16 DownloadPermissionRequest::GetMessageText() const { 23 return l10n_util::GetStringUTF16(IDS_MULTI_DOWNLOAD_WARNING); 24} 25 26base::string16 DownloadPermissionRequest::GetMessageTextFragment() const { 27 return l10n_util::GetStringUTF16(IDS_MULTI_DOWNLOAD_PERMISSION_FRAGMENT); 28} 29 30bool DownloadPermissionRequest::HasUserGesture() const { 31 // TODO(gbillock): user gesture for multiple downloads is difficult to 32 // propagate, and the normal thing is that it is background. 33 return false; 34} 35 36GURL DownloadPermissionRequest::GetRequestingHostname() const { 37 const content::WebContents* web_contents = host_->web_contents(); 38 if (web_contents) { 39 return web_contents->GetURL(); 40 } 41 return GURL(); 42} 43 44void DownloadPermissionRequest::PermissionGranted() { 45 if (host_) { 46 // This may invalidate |host_|. 47 host_->Accept(); 48 } 49} 50 51void DownloadPermissionRequest::PermissionDenied() { 52 if (host_) { 53 // This may invalidate |host_|. 54 host_->Cancel(); 55 } 56} 57 58void DownloadPermissionRequest::Cancelled() { 59 // TODO(gbillock): There's currently no suitable method for telling the host 60 // that a request is cancelled. 61} 62 63void DownloadPermissionRequest::RequestFinished() { 64 delete this; 65} 66