// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/download/download_permission_request.h" #include "content/public/browser/web_contents.h" #include "grit/generated_resources.h" #include "grit/theme_resources.h" #include "ui/base/l10n/l10n_util.h" DownloadPermissionRequest::DownloadPermissionRequest( base::WeakPtr<DownloadRequestLimiter::TabDownloadState> host) : host_(host) {} DownloadPermissionRequest::~DownloadPermissionRequest() {} int DownloadPermissionRequest::GetIconID() const { return IDR_INFOBAR_MULTIPLE_DOWNLOADS; } base::string16 DownloadPermissionRequest::GetMessageText() const { return l10n_util::GetStringUTF16(IDS_MULTI_DOWNLOAD_WARNING); } base::string16 DownloadPermissionRequest::GetMessageTextFragment() const { return l10n_util::GetStringUTF16(IDS_MULTI_DOWNLOAD_PERMISSION_FRAGMENT); } bool DownloadPermissionRequest::HasUserGesture() const { // TODO(gbillock): user gesture for multiple downloads is difficult to // propagate, and the normal thing is that it is background. return false; } GURL DownloadPermissionRequest::GetRequestingHostname() const { const content::WebContents* web_contents = host_->web_contents(); if (web_contents) { return web_contents->GetURL(); } return GURL(); } void DownloadPermissionRequest::PermissionGranted() { if (host_) { // This may invalidate |host_|. host_->Accept(); } } void DownloadPermissionRequest::PermissionDenied() { if (host_) { // This may invalidate |host_|. host_->Cancel(); } } void DownloadPermissionRequest::Cancelled() { // TODO(gbillock): There's currently no suitable method for telling the host // that a request is cancelled. } void DownloadPermissionRequest::RequestFinished() { delete this; }