OLD | NEW |
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/file_manager/file_tasks.h" | 5 #include "chrome/browser/chromeos/file_manager/file_tasks.h" |
6 | 6 |
7 #include "apps/launcher.h" | 7 #include "apps/launcher.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
10 #include "base/prefs/scoped_user_pref_update.h" | 10 #include "base/prefs/scoped_user_pref_update.h" |
11 #include "base/strings/stringprintf.h" | 11 #include "base/strings/stringprintf.h" |
12 #include "chrome/browser/chromeos/drive/file_system_util.h" | 12 #include "chrome/browser/chromeos/drive/file_system_util.h" |
13 #include "chrome/browser/chromeos/drive/file_task_executor.h" | 13 #include "chrome/browser/chromeos/drive/file_task_executor.h" |
14 #include "chrome/browser/chromeos/file_manager/app_id.h" | 14 #include "chrome/browser/chromeos/file_manager/app_id.h" |
15 #include "chrome/browser/chromeos/file_manager/file_browser_handlers.h" | 15 #include "chrome/browser/chromeos/file_manager/file_browser_handlers.h" |
16 #include "chrome/browser/chromeos/file_manager/fileapi_util.h" | 16 #include "chrome/browser/chromeos/file_manager/fileapi_util.h" |
17 #include "chrome/browser/chromeos/file_manager/open_util.h" | 17 #include "chrome/browser/chromeos/file_manager/open_util.h" |
18 #include "chrome/browser/drive/drive_api_util.h" | 18 #include "chrome/browser/drive/drive_api_util.h" |
19 #include "chrome/browser/drive/drive_app_registry.h" | 19 #include "chrome/browser/drive/drive_app_registry.h" |
20 #include "chrome/browser/extensions/extension_tab_util.h" | 20 #include "chrome/browser/extensions/extension_tab_util.h" |
21 #include "chrome/browser/extensions/extension_util.h" | 21 #include "chrome/browser/extensions/extension_util.h" |
22 #include "chrome/browser/profiles/profile.h" | 22 #include "chrome/browser/profiles/profile.h" |
| 23 #include "chrome/browser/ui/extensions/application_launch.h" |
23 #include "chrome/browser/ui/webui/extensions/extension_icon_source.h" | 24 #include "chrome/browser/ui/webui/extensions/extension_icon_source.h" |
24 #include "chrome/common/extensions/api/file_browser_handlers/file_browser_handle
r.h" | 25 #include "chrome/common/extensions/api/file_browser_handlers/file_browser_handle
r.h" |
25 #include "chrome/common/extensions/api/file_manager_private.h" | 26 #include "chrome/common/extensions/api/file_manager_private.h" |
26 #include "chrome/common/extensions/extension_constants.h" | 27 #include "chrome/common/extensions/extension_constants.h" |
27 #include "chrome/common/pref_names.h" | 28 #include "chrome/common/pref_names.h" |
28 #include "extensions/browser/extension_host.h" | 29 #include "extensions/browser/extension_host.h" |
29 #include "extensions/browser/extension_registry.h" | 30 #include "extensions/browser/extension_registry.h" |
30 #include "extensions/browser/extension_system.h" | 31 #include "extensions/browser/extension_system.h" |
31 #include "extensions/browser/extension_util.h" | 32 #include "extensions/browser/extension_util.h" |
32 #include "extensions/common/constants.h" | 33 #include "extensions/common/constants.h" |
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
364 DCHECK(result_list); | 365 DCHECK(result_list); |
365 | 366 |
366 const extensions::ExtensionSet& enabled_extensions = | 367 const extensions::ExtensionSet& enabled_extensions = |
367 extensions::ExtensionRegistry::Get(profile)->enabled_extensions(); | 368 extensions::ExtensionRegistry::Get(profile)->enabled_extensions(); |
368 for (extensions::ExtensionSet::const_iterator iter = | 369 for (extensions::ExtensionSet::const_iterator iter = |
369 enabled_extensions.begin(); | 370 enabled_extensions.begin(); |
370 iter != enabled_extensions.end(); | 371 iter != enabled_extensions.end(); |
371 ++iter) { | 372 ++iter) { |
372 const Extension* extension = iter->get(); | 373 const Extension* extension = iter->get(); |
373 | 374 |
374 // We don't support using hosted apps to open files. | 375 // Check that the extension can be launched via an event. This includes all |
375 if (!extension->is_platform_app()) | 376 // platform apps plus whitelisted extensions. |
| 377 if (!CanLaunchViaEvent(extension)) |
376 continue; | 378 continue; |
377 | 379 |
378 // Ephemeral apps cannot be file handlers. | 380 // Ephemeral apps cannot be file handlers. |
379 if (extensions::util::IsEphemeralApp(extension->id(), profile)) | 381 if (extensions::util::IsEphemeralApp(extension->id(), profile)) |
380 continue; | 382 continue; |
381 | 383 |
382 if (profile->IsOffTheRecord() && | 384 if (profile->IsOffTheRecord() && |
383 !extensions::util::IsIncognitoEnabled(extension->id(), profile)) | 385 !extensions::util::IsIncognitoEnabled(extension->id(), profile)) |
384 continue; | 386 continue; |
385 | 387 |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
516 DCHECK(!task->is_default()); | 518 DCHECK(!task->is_default()); |
517 if (IsFallbackFileHandler(task->task_descriptor())) { | 519 if (IsFallbackFileHandler(task->task_descriptor())) { |
518 task->set_is_default(true); | 520 task->set_is_default(true); |
519 return; | 521 return; |
520 } | 522 } |
521 } | 523 } |
522 } | 524 } |
523 | 525 |
524 } // namespace file_tasks | 526 } // namespace file_tasks |
525 } // namespace file_manager | 527 } // namespace file_manager |
OLD | NEW |