Commit fdbfb4dd authored by Marijn Kruisselbrink's avatar Marijn Kruisselbrink Committed by Commit Bot

[Native File System] Make sure usage indicator doesn't show same directory as...

[Native File System] Make sure usage indicator doesn't show same directory as readable and writable.

Bug: 985982
Change-Id: Ib1b04538e06523e38b885033b1f47ad9cdfc91a4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713031Reviewed-by: default avatarVictor Costan <pwnall@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#680012}
parent 55dccbf6
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include "base/i18n/message_formatter.h" #include "base/i18n/message_formatter.h"
#include "base/i18n/unicodestring.h" #include "base/i18n/unicodestring.h"
#include "base/stl_util.h"
#include "chrome/app/vector_icons/vector_icons.h" #include "chrome/app/vector_icons/vector_icons.h"
#include "chrome/browser/native_file_system/chrome_native_file_system_permission_context.h" #include "chrome/browser/native_file_system/chrome_native_file_system_permission_context.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
...@@ -248,6 +249,18 @@ void NativeFileSystemUsageBubbleView::ShowBubble( ...@@ -248,6 +249,18 @@ void NativeFileSystemUsageBubbleView::ShowBubble(
->toolbar_button_provider() ->toolbar_button_provider()
->GetOmniboxPageActionIconContainerView(); ->GetOmniboxPageActionIconContainerView();
// Writable directories are generally also readable, but we don't want to
// display the same directory twice. So filter out any writable directories
// from the readable directories list.
std::set<base::FilePath> writable_directories(
usage.writable_directories.begin(), usage.writable_directories.end());
std::vector<base::FilePath> readable_directories;
for (base::FilePath& path : usage.readable_directories) {
if (!base::Contains(writable_directories, path))
readable_directories.push_back(std::move(path));
}
usage.readable_directories = readable_directories;
bubble_ = new NativeFileSystemUsageBubbleView( bubble_ = new NativeFileSystemUsageBubbleView(
anchor_view, gfx::Point(), web_contents, origin, std::move(usage)); anchor_view, gfx::Point(), web_contents, origin, std::move(usage));
......
...@@ -54,6 +54,16 @@ class NativeFileSystemUsageBubbleViewTest : public DialogBrowserTest { ...@@ -54,6 +54,16 @@ class NativeFileSystemUsageBubbleViewTest : public DialogBrowserTest {
usage.readable_directories.emplace_back( usage.readable_directories.emplace_back(
FILE_PATH_LITERAL("/baz/My Project")); FILE_PATH_LITERAL("/baz/My Project"));
usage.readable_directories.emplace_back(FILE_PATH_LITERAL("/baz/Assets")); usage.readable_directories.emplace_back(FILE_PATH_LITERAL("/baz/Assets"));
} else if (name == "ReadableAndWritableFolders") {
usage.readable_directories.emplace_back(
FILE_PATH_LITERAL("/foo/bar/Images"));
usage.readable_directories.emplace_back(
FILE_PATH_LITERAL("/baz/My Project"));
usage.readable_directories.emplace_back(FILE_PATH_LITERAL("/baz/Assets"));
usage.writable_directories.emplace_back(FILE_PATH_LITERAL("/baz/Assets"));
usage.writable_directories.emplace_back(
FILE_PATH_LITERAL("/la/asdf/Processing"));
usage.writable_directories.emplace_back(FILE_PATH_LITERAL("/baz/Images"));
} else if (name == "default") { } else if (name == "default") {
usage.readable_directories.emplace_back( usage.readable_directories.emplace_back(
FILE_PATH_LITERAL("/home/me/Images")); FILE_PATH_LITERAL("/home/me/Images"));
...@@ -119,3 +129,8 @@ IN_PROC_BROWSER_TEST_F(NativeFileSystemUsageBubbleViewTest, ...@@ -119,3 +129,8 @@ IN_PROC_BROWSER_TEST_F(NativeFileSystemUsageBubbleViewTest,
InvokeUi_MultipleReadableFolders) { InvokeUi_MultipleReadableFolders) {
ShowAndVerifyUi(); ShowAndVerifyUi();
} }
IN_PROC_BROWSER_TEST_F(NativeFileSystemUsageBubbleViewTest,
InvokeUi_ReadableAndWritableFolders) {
ShowAndVerifyUi();
}
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