blob: d90f1159fa716fbb34562c1f6e91d7ae0567119b [file] [log] [blame]
[email protected]87ac1562014-02-26 17:50:461// 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
[email protected]af39f002014-08-22 10:18:187#include "chrome/grit/generated_resources.h"
[email protected]87ac1562014-02-26 17:50:468#include "ui/base/l10n/l10n_util.h"
9
timloh178801f2017-06-13 04:17:5810#if defined(OS_ANDROID)
11#include "chrome/browser/android/android_theme_resources.h"
Mugdha Lakhani6b39f5fd2018-11-23 11:19:0112#include "components/url_formatter/elide_url.h"
13#include "url/origin.h"
timloh178801f2017-06-13 04:17:5814#else
Mugdha Lakhanib6762162020-03-30 10:23:2515#include "components/vector_icons/vector_icons.h"
timloh178801f2017-06-13 04:17:5816#endif
17
[email protected]87ac1562014-02-26 17:50:4618DownloadPermissionRequest::DownloadPermissionRequest(
Min Qin357184a2019-06-25 16:31:4419 base::WeakPtr<DownloadRequestLimiter::TabDownloadState> host,
Min Qin5f2f6a12019-08-12 21:50:4820 const url::Origin& request_origin)
Min Qin357184a2019-06-25 16:31:4421 : host_(host), request_origin_(request_origin) {}
[email protected]87ac1562014-02-26 17:50:4622
23DownloadPermissionRequest::~DownloadPermissionRequest() {}
24
Clark DuVall484c2562020-01-23 22:05:0925permissions::PermissionRequest::IconId DownloadPermissionRequest::GetIconId()
26 const {
timloh178801f2017-06-13 04:17:5827#if defined(OS_ANDROID)
28 return IDR_ANDROID_INFOBAR_MULTIPLE_DOWNLOADS;
29#else
Mugdha Lakhanib6762162020-03-30 10:23:2530 return vector_icons::kFileDownloadIcon;
timloh178801f2017-06-13 04:17:5831#endif
[email protected]d23cdeee2014-03-10 06:39:5332}
33
timloh178801f2017-06-13 04:17:5834#if defined(OS_ANDROID)
timloh178801f2017-06-13 04:17:5835base::string16 DownloadPermissionRequest::GetMessageText() const {
Mugdha Lakhani6b39f5fd2018-11-23 11:19:0136 return l10n_util::GetStringFUTF16(
Min Qin5f2f6a12019-08-12 21:50:4837 IDS_MULTI_DOWNLOAD_WARNING, url_formatter::FormatOriginForSecurityDisplay(
38 request_origin_,
39 /*scheme_display = */ url_formatter::
40 SchemeDisplay::OMIT_CRYPTOGRAPHIC));
timloh178801f2017-06-13 04:17:5841}
42#endif
43
[email protected]87ac1562014-02-26 17:50:4644base::string16 DownloadPermissionRequest::GetMessageTextFragment() const {
45 return l10n_util::GetStringUTF16(IDS_MULTI_DOWNLOAD_PERMISSION_FRAGMENT);
46}
47
johnmefe4e96d2016-01-27 16:14:4148GURL DownloadPermissionRequest::GetOrigin() const {
Min Qin5f2f6a12019-08-12 21:50:4849 return request_origin_.GetURL();
[email protected]87ac1562014-02-26 17:50:4650}
51
52void DownloadPermissionRequest::PermissionGranted() {
53 if (host_) {
54 // This may invalidate |host_|.
Min Qin357184a2019-06-25 16:31:4455 host_->Accept(request_origin_);
[email protected]87ac1562014-02-26 17:50:4656 }
57}
58
59void DownloadPermissionRequest::PermissionDenied() {
60 if (host_) {
61 // This may invalidate |host_|.
Min Qin357184a2019-06-25 16:31:4462 host_->Cancel(request_origin_);
[email protected]87ac1562014-02-26 17:50:4663 }
64}
65
66void DownloadPermissionRequest::Cancelled() {
felt43d0cdb2015-04-11 00:00:1767 if (host_) {
68 // This may invalidate |host_|.
Min Qin357184a2019-06-25 16:31:4469 host_->CancelOnce(request_origin_);
felt43d0cdb2015-04-11 00:00:1770 }
[email protected]87ac1562014-02-26 17:50:4671}
72
73void DownloadPermissionRequest::RequestFinished() {
74 delete this;
75}
benwells46b02fa2016-04-20 02:37:0276
Clark DuVall484c2562020-01-23 22:05:0977permissions::PermissionRequestType
78DownloadPermissionRequest::GetPermissionRequestType() const {
79 return permissions::PermissionRequestType::DOWNLOAD;
benwells46b02fa2016-04-20 02:37:0280}