DLP: Add class with info about confidential file
Create a DlpConfidentialFile class for passing icon and file name to
the dialog.
This class is an alternative to DlpConfidentialContent for files. The
difference between them should be in comparison methods:
DlpConfidentialContent compares elements by source urls while
DlpConfidentialFile should compare elements by file paths.
Bug: 1368651
Change-Id: Icb5f8b2d33da8302ef9586b1f248a501b1f028fb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3924803
Commit-Queue: Anna Ibatullina <[email protected]>
Reviewed-by: Aya Elsayed <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1053486}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index ae6a346c..197a108 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -5461,6 +5461,8 @@
"chromeos/policy/dlp/dlp_clipboard_notifier.h",
"chromeos/policy/dlp/dlp_confidential_contents.cc",
"chromeos/policy/dlp/dlp_confidential_contents.h",
+ "chromeos/policy/dlp/dlp_confidential_file.cc",
+ "chromeos/policy/dlp/dlp_confidential_file.h",
"chromeos/policy/dlp/dlp_content_manager.cc",
"chromeos/policy/dlp/dlp_content_manager.h",
"chromeos/policy/dlp/dlp_content_manager_lacros.cc",
diff --git a/chrome/browser/ash/policy/dlp/dlp_files_controller.cc b/chrome/browser/ash/policy/dlp/dlp_files_controller.cc
index 9d847fc..0413246 100644
--- a/chrome/browser/ash/policy/dlp/dlp_files_controller.cc
+++ b/chrome/browser/ash/policy/dlp/dlp_files_controller.cc
@@ -20,7 +20,7 @@
#include "base/ranges/algorithm.h"
#include "chrome/browser/ash/drive/drive_integration_service.h"
#include "chrome/browser/ash/file_manager/path_util.h"
-#include "chrome/browser/chromeos/policy/dlp/dlp_confidential_contents.h"
+#include "chrome/browser/chromeos/policy/dlp/dlp_confidential_file.h"
#include "chrome/browser/chromeos/policy/dlp/dlp_histogram_helper.h"
#include "chrome/browser/chromeos/policy/dlp/dlp_reporting_manager.h"
#include "chrome/browser/chromeos/policy/dlp/dlp_rules_manager.h"
@@ -30,7 +30,6 @@
#include "chrome/browser/profiles/profile_manager.h"
#include "chromeos/dbus/dlp/dlp_client.h"
#include "chromeos/dbus/dlp/dlp_service.pb.h"
-#include "chromeos/ui/base/file_icon_util.h"
#include "storage/browser/file_system/file_system_url.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "third_party/blink/public/mojom/choosers/file_chooser.mojom.h"
@@ -353,7 +352,7 @@
std::vector<FileDaemonInfo> restricted_files;
std::vector<FileDaemonInfo> warned_files;
- DlpConfidentialContents dialog_files;
+ std::vector<DlpConfidentialFile> dialog_files;
std::string destination_pattern;
std::vector<std::string> warned_source_patterns;
for (const auto& file : transferred_files) {
@@ -384,10 +383,7 @@
warned_files.push_back(file);
warned_source_patterns.emplace_back(source_pattern);
if (files_action != FileAction::kDownload) {
- dialog_files.Add(
- // TODO(crbug.com/1357593): Pass the proper |dark_background|
- chromeos::GetIconForPath(file.path, /*dark_background=*/false),
- file.path.BaseName().LossyDisplayName(), GURL(file.source_url));
+ dialog_files.emplace_back(file.path);
}
DlpHistogramEnumeration(dlp::kFileActionWarnedUMA, files_action);
}
diff --git a/chrome/browser/ash/policy/dlp/dlp_files_controller_unittest.cc b/chrome/browser/ash/policy/dlp/dlp_files_controller_unittest.cc
index f138f49..e69f387 100644
--- a/chrome/browser/ash/policy/dlp/dlp_files_controller_unittest.cc
+++ b/chrome/browser/ash/policy/dlp/dlp_files_controller_unittest.cc
@@ -1065,20 +1065,14 @@
std::make_unique<MockDlpWarnNotifier>(false);
MockDlpWarnNotifier* mock_dlp_warn_notifier = wrapper.get();
files_controller_->SetWarnNotifierForTesting(std::move(wrapper));
- DlpConfidentialContents expected_contents;
+ std::vector<DlpConfidentialFile> expected_files;
if (transfer_info.files_action != DlpFilesController::FileAction::kDownload) {
- for (size_t i = 0; i < transfer_info.file_sources.size(); ++i) {
- expected_contents.Add(
- chromeos::GetIconForPath(
- base::FilePath(std::string(transfer_info.file_paths[i])),
- /*dark_background=*/false),
- base::UTF8ToUTF16(transfer_info.file_paths[i]),
- GURL(transfer_info.file_sources[i]));
- }
+ for (const auto& file_path : transfer_info.file_paths)
+ expected_files.emplace_back(base::FilePath(file_path));
}
DlpWarnDialog::DlpWarnDialogOptions expected_dialog_options(
- DlpWarnDialog::Restriction::kFiles, expected_contents,
+ DlpWarnDialog::Restriction::kFiles, expected_files,
DlpRulesManager::Component::kUsb, /*destination_pattern=*/"",
transfer_info.files_action);
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn
index 3c771ce..6e51f5cc 100644
--- a/chrome/browser/chromeos/BUILD.gn
+++ b/chrome/browser/chromeos/BUILD.gn
@@ -702,6 +702,8 @@
"policy/dlp/dlp_clipboard_notifier.h",
"policy/dlp/dlp_confidential_contents.cc",
"policy/dlp/dlp_confidential_contents.h",
+ "policy/dlp/dlp_confidential_file.cc",
+ "policy/dlp/dlp_confidential_file.h",
"policy/dlp/dlp_content_manager.cc",
"policy/dlp/dlp_content_manager.h",
"policy/dlp/dlp_content_manager_observer.h",
@@ -1960,6 +1962,7 @@
"policy/dlp/data_transfer_dlp_controller_unittest.cc",
"policy/dlp/dlp_clipboard_notifier_unittest.cc",
"policy/dlp/dlp_confidential_contents_unittest.cc",
+ "policy/dlp/dlp_confidential_file_unittest.cc",
"policy/dlp/dlp_content_tab_helper_unittest.cc",
"policy/dlp/dlp_drag_drop_notifier_unittest.cc",
"policy/dlp/dlp_reporting_manager_test_helper.cc",
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_confidential_contents.cc b/chrome/browser/chromeos/policy/dlp/dlp_confidential_contents.cc
index a8f3e5c..019b7f75 100644
--- a/chrome/browser/chromeos/policy/dlp/dlp_confidential_contents.cc
+++ b/chrome/browser/chromeos/policy/dlp/dlp_confidential_contents.cc
@@ -59,11 +59,6 @@
title(window->GetTitle()),
url(GetWithoutRef(url)) {}
-DlpConfidentialContent::DlpConfidentialContent(const gfx::ImageSkia& icon,
- const std::u16string& title,
- const GURL& url)
- : icon(icon), title(title), url(url) {}
-
DlpConfidentialContent::DlpConfidentialContent(
const DlpConfidentialContent& other) = default;
DlpConfidentialContent& DlpConfidentialContent::operator=(
@@ -132,12 +127,6 @@
contents_.insert(DlpConfidentialContent(window, url));
}
-void DlpConfidentialContents::Add(const gfx::ImageSkia& icon,
- const std::u16string& title,
- const GURL& url) {
- contents_.insert(DlpConfidentialContent(icon, title, url));
-}
-
void DlpConfidentialContents::ClearAndAdd(content::WebContents* web_contents) {
contents_.clear();
Add(web_contents);
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_confidential_contents.h b/chrome/browser/chromeos/policy/dlp/dlp_confidential_contents.h
index 3b9ff61..39439aa 100644
--- a/chrome/browser/chromeos/policy/dlp/dlp_confidential_contents.h
+++ b/chrome/browser/chromeos/policy/dlp/dlp_confidential_contents.h
@@ -39,9 +39,6 @@
// Constructs DlpConfidentialContent from the title and icon obtained from
// |window|, which cannot be null and |url|.
DlpConfidentialContent(aura::Window* window, const GURL& url);
- DlpConfidentialContent(const gfx::ImageSkia& icon,
- const std::u16string& title,
- const GURL& url);
DlpConfidentialContent(const DlpConfidentialContent& other);
DlpConfidentialContent& operator=(const DlpConfidentialContent& other);
~DlpConfidentialContent() = default;
@@ -104,10 +101,6 @@
void Add(content::WebContents* web_contents);
// Same for |window| and |url| pair.
void Add(aura::Window* window, const GURL& url);
- // Same for |icon|, |title| and |url|.
- void Add(const gfx::ImageSkia& icon,
- const std::u16string& title,
- const GURL& url);
// Removes all stored confidential content, if there was any, and adds
// |web_contents| converted to a DlpConfidentialContent.
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_confidential_file.cc b/chrome/browser/chromeos/policy/dlp/dlp_confidential_file.cc
new file mode 100644
index 0000000..de52071
--- /dev/null
+++ b/chrome/browser/chromeos/policy/dlp/dlp_confidential_file.cc
@@ -0,0 +1,32 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/policy/dlp/dlp_confidential_file.h"
+
+#include "base/files/file_path.h"
+#include "chromeos/ui/base/file_icon_util.h"
+#include "ui/gfx/image/image_skia.h"
+
+namespace policy {
+
+DlpConfidentialFile::DlpConfidentialFile(const base::FilePath& file_path)
+ : // TODO(crbug.com/1357593): Pass the proper |dark_background|
+ icon(chromeos::GetIconForPath(file_path, /*dark_background=*/false)),
+ title(file_path.BaseName().LossyDisplayName()),
+ file_path(file_path) {}
+
+DlpConfidentialFile::DlpConfidentialFile(const DlpConfidentialFile& other) =
+ default;
+DlpConfidentialFile& DlpConfidentialFile::operator=(
+ const DlpConfidentialFile& other) = default;
+
+bool DlpConfidentialFile::operator==(const DlpConfidentialFile& other) const {
+ return file_path == other.file_path;
+}
+
+bool DlpConfidentialFile::operator!=(const DlpConfidentialFile& other) const {
+ return !(*this == other);
+}
+
+} // namespace policy
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_confidential_file.h b/chrome/browser/chromeos/policy/dlp/dlp_confidential_file.h
new file mode 100644
index 0000000..4dd4ae0
--- /dev/null
+++ b/chrome/browser/chromeos/policy/dlp/dlp_confidential_file.h
@@ -0,0 +1,38 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_POLICY_DLP_DLP_CONFIDENTIAL_FILE_H_
+#define CHROME_BROWSER_CHROMEOS_POLICY_DLP_DLP_CONFIDENTIAL_FILE_H_
+
+#include <string>
+
+#include "base/files/file_path.h"
+#include "ui/gfx/image/image_skia.h"
+
+namespace policy {
+
+// Keeps track of title and corresponding icon of a file.
+// Used to show information about confidential file to the user.
+struct DlpConfidentialFile {
+ DlpConfidentialFile() = delete;
+ explicit DlpConfidentialFile(const base::FilePath& file_path);
+ DlpConfidentialFile(const DlpConfidentialFile& other);
+ DlpConfidentialFile& operator=(const DlpConfidentialFile& other);
+ ~DlpConfidentialFile() = default;
+
+ // Files with the same file_path are considered equal.
+ bool operator==(const DlpConfidentialFile& other) const;
+ bool operator!=(const DlpConfidentialFile& other) const;
+
+ // File icon used to display in the warning dialog.
+ gfx::ImageSkia icon;
+ // File name used to display in the warning dialog.
+ std::u16string title;
+ // File path used to retrieve |icon| and |title|.
+ base::FilePath file_path;
+};
+
+} // namespace policy
+
+#endif // CHROME_BROWSER_CHROMEOS_POLICY_DLP_DLP_CONFIDENTIAL_FILE_H_
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_confidential_file_unittest.cc b/chrome/browser/chromeos/policy/dlp/dlp_confidential_file_unittest.cc
new file mode 100644
index 0000000..e5380ef
--- /dev/null
+++ b/chrome/browser/chromeos/policy/dlp/dlp_confidential_file_unittest.cc
@@ -0,0 +1,50 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/policy/dlp/dlp_confidential_file.h"
+
+#include <sstream>
+#include <string>
+
+#include "base/files/file_path.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace policy {
+
+constexpr char kFilePath1[] = "test1.txt";
+constexpr char kFilePath2[] = "test2.txt";
+
+class DlpConfidentialFileTest : public testing::Test {
+ public:
+ DlpConfidentialFileTest() = default;
+ DlpConfidentialFileTest(const DlpConfidentialFileTest&) = delete;
+ DlpConfidentialFileTest& operator=(const DlpConfidentialFileTest&) = delete;
+ ~DlpConfidentialFileTest() override = default;
+};
+
+TEST_F(DlpConfidentialFileTest, ComparisonWithDifferentPaths) {
+ DlpConfidentialFile file1 = DlpConfidentialFile(base::FilePath(kFilePath1));
+ DlpConfidentialFile file2 = DlpConfidentialFile(base::FilePath(kFilePath2));
+
+ EXPECT_TRUE(file1 != file2);
+}
+
+TEST_F(DlpConfidentialFileTest, ComparisonWithSamePaths) {
+ DlpConfidentialFile file1 = DlpConfidentialFile(base::FilePath(kFilePath1));
+ DlpConfidentialFile file2 = DlpConfidentialFile(base::FilePath(kFilePath1));
+
+ EXPECT_TRUE(file1 == file2);
+ EXPECT_FALSE(file1 != file2);
+}
+
+TEST_F(DlpConfidentialFileTest, ComparisonAfterAssignement) {
+ DlpConfidentialFile file1 = DlpConfidentialFile(base::FilePath(kFilePath1));
+ DlpConfidentialFile file2 = DlpConfidentialFile(base::FilePath(kFilePath2));
+ EXPECT_FALSE(file1 == file2);
+
+ file2 = file1;
+ EXPECT_TRUE(file1 == file2);
+}
+
+} // namespace policy
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_warn_dialog.cc b/chrome/browser/chromeos/policy/dlp/dlp_warn_dialog.cc
index 43ed0d7..781b292f 100644
--- a/chrome/browser/chromeos/policy/dlp/dlp_warn_dialog.cc
+++ b/chrome/browser/chromeos/policy/dlp/dlp_warn_dialog.cc
@@ -11,6 +11,7 @@
#include "build/chromeos_buildflags.h"
#include "chrome/browser/ash/policy/dlp/dlp_files_controller.h"
#include "chrome/browser/chromeos/policy/dlp/dlp_confidential_contents.h"
+#include "chrome/browser/chromeos/policy/dlp/dlp_confidential_file.h"
#include "chrome/browser/chromeos/policy/dlp/dlp_rules_manager.h"
#include "components/strings/grit/components_strings.h"
#include "components/vector_icons/vector_icons.h"
@@ -163,7 +164,7 @@
return base::ReplaceStringPlaceholders(
l10n_util::GetPluralStringFUTF16(
IDS_POLICY_DLP_FILES_UPLOAD_WARN_MESSAGE,
- options.confidential_contents.GetContents().size()),
+ options.confidential_files.size()),
base::UTF8ToUTF16(options.destination_pattern.value()),
/*offset=*/nullptr);
case DlpFilesController::FileAction::kTransfer:
@@ -181,7 +182,7 @@
return base::ReplaceStringPlaceholders(
l10n_util::GetPluralStringFUTF16(
IDS_POLICY_DLP_FILES_TRANSFER_WARN_MESSAGE,
- options.confidential_contents.GetContents().size()),
+ options.confidential_files.size()),
destination,
/*offset=*/nullptr);
}
@@ -238,9 +239,8 @@
return l10n_util::GetStringUTF16(IDS_POLICY_DLP_SCREEN_SHARE_WARN_TITLE);
case DlpWarnDialog::Restriction::kFiles:
DCHECK(options.files_action.has_value());
- return GetTitleForFiles(
- options.files_action.value(),
- options.confidential_contents.GetContents().size());
+ return GetTitleForFiles(options.files_action.value(),
+ options.confidential_files.size());
}
}
@@ -338,10 +338,10 @@
return total_width - margin_width - image_width - spacing;
}
-// Adds icon and title pair of the |confidential_content| to the container.
-void AddConfidentialContentRow(
- views::View* container,
- const DlpConfidentialContent& confidential_content) {
+// Adds |confidential_icon| and |confidential_title| to the container.
+void AddConfidentialContentRow(views::View* container,
+ const gfx::ImageSkia& confidential_icon,
+ const std::u16string& confidential_title) {
// TODO(crbug.com/1261496) Enable dynamic UI color & theme in lacros
#if BUILDFLAG(IS_CHROMEOS_ASH)
// When #dark-light-mode flag is disabled (default setting), the color mode is
@@ -359,10 +359,10 @@
views::ImageView* icon =
row->AddChildView(std::make_unique<views::ImageView>());
icon->SetImageSize(gfx::Size(kFaviconSize, kFaviconSize));
- icon->SetImage(confidential_content.icon);
+ icon->SetImage(confidential_icon);
- views::Label* title = row->AddChildView(
- std::make_unique<views::Label>(confidential_content.title));
+ views::Label* title =
+ row->AddChildView(std::make_unique<views::Label>(confidential_title));
title->SetMultiLine(true);
// TODO(crbug.com/682266) Remove the next line that sets the line size.
title->SetMaximumWidth(GetMaxConfidentialTitleWidth());
@@ -379,12 +379,21 @@
}
// Adds a scrollable child view to |parent| that lists the information from
-// |confidential_contents|. No-op if no contents are given.
-void MaybeAddConfidentialContent(
+// |confidential_files| if |restriction| is kFiles, otherwise from
+// |confidential_contents|. No-op if no contents or files are given.
+void MaybeAddConfidentialRows(
views::View* parent,
- const DlpConfidentialContents& confidential_contents) {
- if (confidential_contents.IsEmpty())
+ DlpWarnDialog::Restriction restriction,
+ const DlpConfidentialContents& confidential_contents,
+ const std::vector<DlpConfidentialFile>& confidential_files) {
+ if (restriction == DlpWarnDialog::Restriction::kFiles &&
+ confidential_files.empty()) {
return;
+ }
+ if (restriction != DlpWarnDialog::Restriction::kFiles &&
+ confidential_contents.IsEmpty()) {
+ return;
+ }
views::ScrollView* scroll_view =
parent->AddChildView(std::make_unique<views::ScrollView>());
@@ -398,9 +407,17 @@
layout->set_cross_axis_alignment(
views::BoxLayout::CrossAxisAlignment::kStart);
- for (const DlpConfidentialContent& confidential_content :
- confidential_contents.GetContents()) {
- AddConfidentialContentRow(container, confidential_content);
+ if (restriction == DlpWarnDialog::Restriction::kFiles) {
+ for (const DlpConfidentialFile& confidential_file : confidential_files) {
+ AddConfidentialContentRow(container, confidential_file.icon,
+ confidential_file.title);
+ }
+ } else {
+ for (const DlpConfidentialContent& confidential_content :
+ confidential_contents.GetContents()) {
+ AddConfidentialContentRow(container, confidential_content.icon,
+ confidential_content.title);
+ }
}
}
@@ -425,15 +442,17 @@
DlpWarnDialog::DlpWarnDialogOptions::DlpWarnDialogOptions(
Restriction restriction,
- DlpConfidentialContents confidential_contents,
+ const std::vector<DlpConfidentialFile>& confidential_files,
absl::optional<DlpRulesManager::Component> dst_component,
const std::string& destination_pattern,
DlpFilesController::FileAction files_action)
: restriction(restriction),
- confidential_contents(confidential_contents),
+ confidential_files(confidential_files),
destination_component(dst_component),
destination_pattern(destination_pattern),
- files_action(files_action) {}
+ files_action(files_action) {
+ DCHECK(restriction == Restriction::kFiles);
+}
DlpWarnDialog::DlpWarnDialogOptions::DlpWarnDialogOptions(
const DlpWarnDialogOptions& other) = default;
@@ -466,7 +485,9 @@
views::BoxLayout::Orientation::kVertical));
AddGeneralInformation(AddChildView(std::make_unique<views::View>()), options);
- MaybeAddConfidentialContent(this, options.confidential_contents);
+ MaybeAddConfidentialRows(this, options.restriction,
+ options.confidential_contents,
+ options.confidential_files);
}
BEGIN_METADATA(DlpWarnDialog, views::DialogDelegateView)
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_warn_dialog.h b/chrome/browser/chromeos/policy/dlp/dlp_warn_dialog.h
index 937dba4..7f378667 100644
--- a/chrome/browser/chromeos/policy/dlp/dlp_warn_dialog.h
+++ b/chrome/browser/chromeos/policy/dlp/dlp_warn_dialog.h
@@ -10,6 +10,7 @@
#include "base/callback_forward.h"
#include "chrome/browser/ash/policy/dlp/dlp_files_controller.h"
#include "chrome/browser/chromeos/policy/dlp/dlp_confidential_contents.h"
+#include "chrome/browser/chromeos/policy/dlp/dlp_confidential_file.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "ui/base/metadata/metadata_header_macros.h"
#include "ui/views/window/dialog_delegate.h"
@@ -51,7 +52,7 @@
const std::u16string& application_title);
DlpWarnDialogOptions(
Restriction restriction,
- DlpConfidentialContents confidential_contents,
+ const std::vector<DlpConfidentialFile>& confidential_files,
absl::optional<DlpRulesManager::Component> dst_component,
const std::string& destination_pattern,
DlpFilesController::FileAction files_action);
@@ -69,7 +70,9 @@
a.destination_component == b.destination_component &&
a.destination_pattern == b.destination_pattern &&
a.files_action == b.files_action &&
- EqualWithTitles(a.confidential_contents, b.confidential_contents);
+ EqualWithTitles(a.confidential_contents,
+ b.confidential_contents) &&
+ a.confidential_files == b.confidential_files;
}
friend bool operator!=(const DlpWarnDialogOptions& a,
const DlpWarnDialogOptions& b) {
@@ -77,7 +80,10 @@
}
Restriction restriction;
+ // May have content only if the |restriction| is not kFiles.
DlpConfidentialContents confidential_contents;
+ // May have files only if the |restriction| is kFiles.
+ std::vector<DlpConfidentialFile> confidential_files;
absl::optional<std::u16string> application_title;
// May have value only if the |restriction| is kFiles.
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_warn_notifier.cc b/chrome/browser/chromeos/policy/dlp/dlp_warn_notifier.cc
index 34173ca1..382e8e00 100644
--- a/chrome/browser/chromeos/policy/dlp/dlp_warn_notifier.cc
+++ b/chrome/browser/chromeos/policy/dlp/dlp_warn_notifier.cc
@@ -54,14 +54,14 @@
base::WeakPtr<views::Widget> DlpWarnNotifier::ShowDlpFilesWarningDialog(
OnDlpRestrictionCheckedCallback callback,
- const DlpConfidentialContents& confidential_contents,
+ const std::vector<DlpConfidentialFile>& confidential_files,
absl::optional<DlpRulesManager::Component> dst_component,
const std::string& destination_pattern,
DlpFilesController::FileAction files_action) {
return ShowDlpWarningDialog(
std::move(callback),
DlpWarnDialog::DlpWarnDialogOptions(DlpWarnDialog::Restriction::kFiles,
- confidential_contents, dst_component,
+ confidential_files, dst_component,
destination_pattern, files_action));
}
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_warn_notifier.h b/chrome/browser/chromeos/policy/dlp/dlp_warn_notifier.h
index d93c12fc..971b5f8d 100644
--- a/chrome/browser/chromeos/policy/dlp/dlp_warn_notifier.h
+++ b/chrome/browser/chromeos/policy/dlp/dlp_warn_notifier.h
@@ -10,6 +10,7 @@
#include "base/memory/weak_ptr.h"
#include "chrome/browser/ash/policy/dlp/dlp_files_controller.h"
#include "chrome/browser/chromeos/policy/dlp/dlp_confidential_contents.h"
+#include "chrome/browser/chromeos/policy/dlp/dlp_confidential_file.h"
#include "chrome/browser/chromeos/policy/dlp/dlp_warn_dialog.h"
#include "ui/views/widget/widget.h"
#include "ui/views/widget/widget_observer.h"
@@ -49,12 +50,12 @@
// Shows a warning dialog that informs the user that |files_action| to
// |dst_component| or |destination_pattern| on selected
- // |confidential_contents| files is not recommended. Calls |callback| and
+ // |confidential_files| is not recommended. Calls |callback| and
// passes user's choice of whether to proceed or not.
// Returns a pointer to the widget that owns the created dialog.
base::WeakPtr<views::Widget> ShowDlpFilesWarningDialog(
OnDlpRestrictionCheckedCallback callback,
- const DlpConfidentialContents& confidential_contents,
+ const std::vector<DlpConfidentialFile>& confidential_files,
absl::optional<DlpRulesManager::Component> dst_component,
const std::string& destination_pattern,
DlpFilesController::FileAction files_action);
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index c29efcf..a4802f7 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -7584,6 +7584,7 @@
"../browser/chromeos/policy/dlp/data_transfer_dlp_controller_unittest.cc",
"../browser/chromeos/policy/dlp/dlp_clipboard_notifier_unittest.cc",
"../browser/chromeos/policy/dlp/dlp_confidential_contents_unittest.cc",
+ "../browser/chromeos/policy/dlp/dlp_confidential_file_unittest.cc",
"../browser/chromeos/policy/dlp/dlp_content_tab_helper_unittest.cc",
"../browser/chromeos/policy/dlp/dlp_drag_drop_notifier_unittest.cc",
"../browser/chromeos/policy/dlp/dlp_reporting_manager_test_helper.cc",