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

Side by Side Diff: chrome/browser/chromeos/extensions/file_manager/file_handler_util.cc

Issue 14670023: ChromeOS: Support opening files with apps from the downloads page. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: prioritize fallback handlers over non-default app handlers Created 7 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/extensions/file_manager/file_handler_util.h" 5 #include "chrome/browser/chromeos/extensions/file_manager/file_handler_util.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/i18n/case_conversion.h" 9 #include "base/i18n/case_conversion.h"
10 #include "base/json/json_writer.h" 10 #include "base/json/json_writer.h"
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 extensions::ExtensionSystem::Get(profile)->process_manager(); 91 extensions::ExtensionSystem::Get(profile)->process_manager();
92 92
93 SiteInstance* site_instance = manager->GetSiteInstanceForURL(extension_url); 93 SiteInstance* site_instance = manager->GetSiteInstanceForURL(extension_url);
94 if (!site_instance || !site_instance->HasProcess()) 94 if (!site_instance || !site_instance->HasProcess())
95 return -1; 95 return -1;
96 content::RenderProcessHost* process = site_instance->GetProcess(); 96 content::RenderProcessHost* process = site_instance->GetProcess();
97 97
98 return process->GetID(); 98 return process->GetID();
99 } 99 }
100 100
101 // Returns true if the task should be used as a fallback. Such tasks are
102 // Files.app's internal handlers as well as quick office extensions.
103 bool IsFallbackTask(const FileBrowserHandler* task) {
104 return (task->extension_id() == kFileBrowserDomain ||
105 task->extension_id() ==
106 extension_misc::kQuickOfficeComponentExtensionId ||
107 task->extension_id() == extension_misc::kQuickOfficeDevExtensionId ||
108 task->extension_id() == extension_misc::kQuickOfficeExtensionId);
109 }
110
111 const FileBrowserHandler* FindFileBrowserHandler(const Extension* extension, 101 const FileBrowserHandler* FindFileBrowserHandler(const Extension* extension,
112 const std::string& action_id) { 102 const std::string& action_id) {
113 FileBrowserHandler::List* handler_list = 103 FileBrowserHandler::List* handler_list =
114 FileBrowserHandler::GetHandlers(extension); 104 FileBrowserHandler::GetHandlers(extension);
115 for (FileBrowserHandler::List::const_iterator action_iter = 105 for (FileBrowserHandler::List::const_iterator action_iter =
116 handler_list->begin(); 106 handler_list->begin();
117 action_iter != handler_list->end(); 107 action_iter != handler_list->end();
118 ++action_iter) { 108 ++action_iter) {
119 if (action_iter->get()->id() == action_id) 109 if (action_iter->get()->id() == action_id)
120 return action_iter->get(); 110 return action_iter->get();
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 continue; 169 continue;
180 170
181 results->push_back(action_iter->get()); 171 results->push_back(action_iter->get());
182 } 172 }
183 } 173 }
184 return true; 174 return true;
185 } 175 }
186 176
187 } // namespace 177 } // namespace
188 178
179 bool IsFallbackTask(const FileBrowserHandler* task) {
180 return (task->extension_id() == kFileBrowserDomain ||
181 task->extension_id() ==
182 extension_misc::kQuickOfficeComponentExtensionId ||
183 task->extension_id() == extension_misc::kQuickOfficeDevExtensionId ||
184 task->extension_id() == extension_misc::kQuickOfficeExtensionId);
185 }
186
189 void UpdateDefaultTask(Profile* profile, 187 void UpdateDefaultTask(Profile* profile,
190 const std::string& task_id, 188 const std::string& task_id,
191 const std::set<std::string>& suffixes, 189 const std::set<std::string>& suffixes,
192 const std::set<std::string>& mime_types) { 190 const std::set<std::string>& mime_types) {
193 if (!profile || !profile->GetPrefs()) 191 if (!profile || !profile->GetPrefs())
194 return; 192 return;
195 193
196 if (!mime_types.empty()) { 194 if (!mime_types.empty()) {
197 DictionaryPrefUpdate mime_type_pref(profile->GetPrefs(), 195 DictionaryPrefUpdate mime_type_pref(profile->GetPrefs(),
198 prefs::kDefaultTasksByMimeType); 196 prefs::kDefaultTasksByMimeType);
(...skipping 773 matching lines...) Expand 10 before | Expand all | Expand 10 after
972 extensions::LaunchPlatformAppWithFileHandler(profile(), GetExtension(), 970 extensions::LaunchPlatformAppWithFileHandler(profile(), GetExtension(),
973 action_id_, file_urls[i].path()); 971 action_id_, file_urls[i].path());
974 } 972 }
975 973
976 if (!done.is_null()) 974 if (!done.is_null())
977 done.Run(true); 975 done.Run(true);
978 return true; 976 return true;
979 } 977 }
980 978
981 } // namespace file_handler_util 979 } // namespace file_handler_util
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698