Chromium Code Reviews| Index: chrome/common/extensions/api/file_browser_handlers/file_browser_handler.cc |
| diff --git a/chrome/common/extensions/api/file_browser_handlers/file_browser_handler.cc b/chrome/common/extensions/api/file_browser_handlers/file_browser_handler.cc |
| index 92124d282f94c0934ddf452f891eb0bbd32a7f37..58961220381b4642914fd14dc01122ed56ec343d 100644 |
| --- a/chrome/common/extensions/api/file_browser_handlers/file_browser_handler.cc |
| +++ b/chrome/common/extensions/api/file_browser_handlers/file_browser_handler.cc |
| @@ -13,6 +13,8 @@ |
| #include "extensions/common/error_utils.h" |
| #include "extensions/common/manifest.h" |
| #include "extensions/common/manifest_constants.h" |
| +#include "extensions/common/permissions/api_permission.h" |
| +#include "extensions/common/permissions/permissions_data.h" |
| #include "extensions/common/url_pattern.h" |
| #include "url/url_constants.h" |
| @@ -115,11 +117,19 @@ bool FileBrowserHandler::HasCreateAccessPermission() const { |
| // static |
| FileBrowserHandler::List* |
| FileBrowserHandler::GetHandlers(const extensions::Extension* extension) { |
| - FileBrowserHandlerInfo* info = static_cast<FileBrowserHandlerInfo*>( |
| + // Manifest is parsed before permissions are loaded, so file browser handlers |
|
Yoyo Zhou
2015/03/25 20:37:09
I'm not sure I follow. The manifest gets deseriali
mtomasz
2015/03/26 01:11:45
Done per offline discussion.
|
| + // have to be loaded even though the permission is missing. Hence, check here |
| + // for the permission and prevent returning it, if it is missing. |
| + if (!extension->permissions_data()->HasAPIPermission( |
| + extensions::APIPermission::kFileBrowserHandler)) { |
| + return nullptr; |
| + } |
| + FileBrowserHandlerInfo* const info = static_cast<FileBrowserHandlerInfo*>( |
| extension->GetManifestData(keys::kFileBrowserHandlers)); |
| - if (info) |
| - return &info->file_browser_handlers; |
| - return NULL; |
| + if (!info) |
| + return nullptr; |
| + |
| + return &info->file_browser_handlers; |
| } |
| FileBrowserHandlerParser::FileBrowserHandlerParser() { |