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

Unified Diff: chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc

Issue 1089193002: Add chrome.fileManagerPrivate.getProvidingExtensions(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. Created 5 years, 8 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/chromeos/extensions/file_manager/private_api_misc.cc
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
index 0b2b7316476759df7392a118551411a653a858c6..25c830a1672f17e1790c3cfab49c90f9702f1cc6 100644
--- a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
@@ -15,6 +15,7 @@
#include "chrome/browser/chromeos/file_manager/app_installer.h"
#include "chrome/browser/chromeos/file_manager/fileapi_util.h"
#include "chrome/browser/chromeos/file_manager/zip_file_creator.h"
+#include "chrome/browser/chromeos/file_system_provider/service.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/chromeos/settings/cros_settings.h"
#include "chrome/browser/devtools/devtools_window.h"
@@ -463,12 +464,40 @@ void FileManagerPrivateGetMimeTypeFunction::OnGetMimeType(
ExtensionFunction::ResponseAction
FileManagerPrivateIsPiexLoaderEnabledFunction::Run() {
#if defined(OFFICIAL_BUILD)
- return RespondNow(OneArgument(
- new base::FundamentalValue(true)));
+ return RespondNow(OneArgument(new base::FundamentalValue(true)));
#else
- return RespondNow(OneArgument(
- new base::FundamentalValue(false)));
+ return RespondNow(OneArgument(new base::FundamentalValue(false)));
#endif
}
+FileManagerPrivateGetProvidingExtensionsFunction::
+ FileManagerPrivateGetProvidingExtensionsFunction()
+ : chrome_details_(this) {
+}
+
+ExtensionFunction::ResponseAction
+FileManagerPrivateGetProvidingExtensionsFunction::Run() {
+ using chromeos::file_system_provider::Service;
+ using chromeos::file_system_provider::ProvidingExtensionInfo;
+ const Service* const service = Service::Get(chrome_details_.GetProfile());
+ const std::vector<ProvidingExtensionInfo> info_list =
+ service->GetProvidingExtensionInfoList();
+
+ using api::file_manager_private::ProvidingExtension;
+ std::vector<linked_ptr<ProvidingExtension>> providing_extensions;
+ for (const auto& info : info_list) {
+ const linked_ptr<ProvidingExtension> providing_extension(
+ new ProvidingExtension);
+ providing_extension->extension_id = info.extension_id;
+ providing_extension->name = info.name;
+ providing_extension->can_configure = info.can_configure;
+ providing_extension->can_add = info.can_add;
+ providing_extensions.push_back(providing_extension);
+ }
+
+ return RespondNow(ArgumentList(
+ api::file_manager_private::GetProvidingExtensions::Results::Create(
+ providing_extensions).Pass()));
+}
+
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698