Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Unified Diff: chrome/browser/ui/webui/settings/site_settings_handler.cc

Issue 2237823003: Site Settings Desktop: Implement USB devices section. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address feedback Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/settings/site_settings_handler.cc
diff --git a/chrome/browser/ui/webui/settings/site_settings_handler.cc b/chrome/browser/ui/webui/settings/site_settings_handler.cc
index e1e590d412174b69c0e54ab9cc3c81bc725b4ffa..03595e1453cfa7e860e7f10d05e321d9194113f7 100644
--- a/chrome/browser/ui/webui/settings/site_settings_handler.cc
+++ b/chrome/browser/ui/webui/settings/site_settings_handler.cc
@@ -13,6 +13,7 @@
#include "base/values.h"
#include "chrome/browser/browsing_data/browsing_data_local_storage_helper.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
+#include "chrome/browser/permissions/chooser_context_base.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/site_settings_helper.h"
#include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
@@ -121,6 +122,14 @@ void SiteSettingsHandler::RegisterMessages() {
base::Bind(&SiteSettingsHandler::HandleClearUsage,
base::Unretained(this)));
web_ui()->RegisterMessageCallback(
+ "fetchUsbDevices",
+ base::Bind(&SiteSettingsHandler::HandleFetchUsbDevices,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "removeUsbDevice",
+ base::Bind(&SiteSettingsHandler::HandleRemoveUsbDevice,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
"setDefaultValueForContentType",
base::Bind(&SiteSettingsHandler::HandleSetDefaultValueForContentType,
base::Unretained(this)));
@@ -251,6 +260,45 @@ void SiteSettingsHandler::HandleClearUsage(
}
}
+void SiteSettingsHandler::HandleFetchUsbDevices(const base::ListValue* args) {
+ AllowJavascript();
+
+ CHECK_EQ(1U, args->GetSize());
+ const base::Value* callback_id;
+ CHECK(args->Get(0, &callback_id));
+
+ base::ListValue exceptions;
+ const site_settings::ChooserTypeNameEntry* chooser_type =
+ site_settings::ChooserTypeFromGroupName(site_settings::kGroupTypeUsb);
+ // TODO(finnur): Figure out whether incognito permissions are also needed.
+ site_settings::GetChooserExceptionsFromProfile(
+ profile_, false, *chooser_type, &exceptions);
+ ResolveJavascriptCallback(*callback_id, exceptions);
+}
+
+void SiteSettingsHandler::HandleRemoveUsbDevice(const base::ListValue* args) {
+ CHECK_EQ(3U, args->GetSize());
+
+ std::string origin_string;
+ CHECK(args->GetString(0, &origin_string));
+ GURL requesting_origin(origin_string);
+ CHECK(requesting_origin.is_valid());
+
+ std::string embedding_origin_string;
+ CHECK(args->GetString(1, &embedding_origin_string));
+ GURL embedding_origin(embedding_origin_string);
+ CHECK(embedding_origin.is_valid());
+
+ const base::DictionaryValue* object = nullptr;
+ CHECK(args->GetDictionary(2, &object));
+
+ const site_settings::ChooserTypeNameEntry* chooser_type =
+ site_settings::ChooserTypeFromGroupName(site_settings::kGroupTypeUsb);
+ ChooserContextBase* chooser_context = chooser_type->get_context(profile_);
+ chooser_context->RevokeObjectPermission(requesting_origin, embedding_origin,
+ *object);
+}
+
void SiteSettingsHandler::HandleSetDefaultValueForContentType(
const base::ListValue* args) {
CHECK_EQ(2U, args->GetSize());
« no previous file with comments | « chrome/browser/ui/webui/settings/site_settings_handler.h ('k') | chrome/browser/ui/webui/site_settings_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698