Commit 6f09d2e3 authored by Marijn Kruisselbrink's avatar Marijn Kruisselbrink Committed by Commit Bot

[NativeFS] Make sure the same file isn't shown as both readable and writable.

We already filtered out writable directories from the list of readable
directories in the usage indicator bubble, this CL extends that to also apply
to files. This way the same file will only show up once in the usage indicator
bubble.

Bug: 992158
Change-Id: I04c4a45c41701d9291f0fee3edd4cd9797f6ac5f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2088675Reviewed-by: default avatarOlivier Yiptong <oyiptong@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#747077}
parent fd14a399
...@@ -252,17 +252,19 @@ void NativeFileSystemUsageBubbleView::ShowBubble( ...@@ -252,17 +252,19 @@ void NativeFileSystemUsageBubbleView::ShowBubble(
ToolbarButtonProvider* button_provider = ToolbarButtonProvider* button_provider =
BrowserView::GetBrowserViewForBrowser(browser)->toolbar_button_provider(); BrowserView::GetBrowserViewForBrowser(browser)->toolbar_button_provider();
// Writable directories are generally also readable, but we don't want to // Writable files or directories are generally also readable, but we don't
// display the same directory twice. So filter out any writable directories // want to display the same path twice. So filter out any writable paths from
// from the readable directories list. // the readable lists.
std::set<base::FilePath> writable_directories( std::set<base::FilePath> writable_directories(
usage.writable_directories.begin(), usage.writable_directories.end()); usage.writable_directories.begin(), usage.writable_directories.end());
std::vector<base::FilePath> readable_directories; base::EraseIf(usage.readable_directories, [&](const base::FilePath& path) {
for (base::FilePath& path : usage.readable_directories) { return base::Contains(writable_directories, path);
if (!base::Contains(writable_directories, path)) });
readable_directories.push_back(std::move(path)); std::set<base::FilePath> writable_files(usage.writable_files.begin(),
} usage.writable_files.end());
usage.readable_directories = readable_directories; base::EraseIf(usage.readable_files, [&](const base::FilePath& path) {
return base::Contains(writable_files, path);
});
bubble_ = new NativeFileSystemUsageBubbleView( bubble_ = new NativeFileSystemUsageBubbleView(
button_provider->GetAnchorView( button_provider->GetAnchorView(
...@@ -296,9 +298,10 @@ NativeFileSystemUsageBubbleView::NativeFileSystemUsageBubbleView( ...@@ -296,9 +298,10 @@ NativeFileSystemUsageBubbleView::NativeFileSystemUsageBubbleView(
: LocationBarBubbleDelegateView(anchor_view, web_contents), : LocationBarBubbleDelegateView(anchor_view, web_contents),
origin_(origin), origin_(origin),
usage_(std::move(usage)), usage_(std::move(usage)),
writable_paths_model_(usage_.writable_files, usage_.writable_directories), readable_paths_model_(std::move(usage_.readable_files),
readable_paths_model_(usage_.readable_files, std::move(usage_.readable_directories)),
usage_.readable_directories) { writable_paths_model_(std::move(usage_.writable_files),
std::move(usage_.writable_directories)) {
DialogDelegate::set_button_label(ui::DIALOG_BUTTON_OK, DialogDelegate::set_button_label(ui::DIALOG_BUTTON_OK,
l10n_util::GetStringUTF16(IDS_DONE)); l10n_util::GetStringUTF16(IDS_DONE));
DialogDelegate::set_button_label( DialogDelegate::set_button_label(
......
...@@ -78,8 +78,8 @@ class NativeFileSystemUsageBubbleView : public LocationBarBubbleDelegateView { ...@@ -78,8 +78,8 @@ class NativeFileSystemUsageBubbleView : public LocationBarBubbleDelegateView {
const url::Origin origin_; const url::Origin origin_;
const Usage usage_; const Usage usage_;
FilePathListModel writable_paths_model_;
FilePathListModel readable_paths_model_; FilePathListModel readable_paths_model_;
FilePathListModel writable_paths_model_;
DISALLOW_COPY_AND_ASSIGN(NativeFileSystemUsageBubbleView); DISALLOW_COPY_AND_ASSIGN(NativeFileSystemUsageBubbleView);
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment