Chromium Code Reviews| 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 // Implements the Chrome Extensions Media Galleries API. | 5 // Implements the Chrome Extensions Media Galleries API. |
| 6 | 6 |
| 7 #include "chrome/browser/extensions/api/media_galleries/media_galleries_api.h" | 7 #include "chrome/browser/extensions/api/media_galleries/media_galleries_api.h" |
| 8 | 8 |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 41 namespace MediaGalleries = extensions::api::media_galleries; | 41 namespace MediaGalleries = extensions::api::media_galleries; |
| 42 namespace GetMediaFileSystems = MediaGalleries::GetMediaFileSystems; | 42 namespace GetMediaFileSystems = MediaGalleries::GetMediaFileSystems; |
| 43 | 43 |
| 44 namespace extensions { | 44 namespace extensions { |
| 45 | 45 |
| 46 namespace { | 46 namespace { |
| 47 | 47 |
| 48 const char kDisallowedByPolicy[] = | 48 const char kDisallowedByPolicy[] = |
| 49 "Media Galleries API is disallowed by policy: "; | 49 "Media Galleries API is disallowed by policy: "; |
| 50 const char kInvalidInteractive[] = "Unknown value for interactive."; | 50 const char kInvalidInteractive[] = "Unknown value for interactive."; |
| 51 const char kInvalidRPH[] = "The render process no longer exists."; | |
| 51 | 52 |
| 52 // Checks whether the MediaGalleries API is currently accessible (it may be | 53 // Checks whether the MediaGalleries API is currently accessible (it may be |
| 53 // disallowed even if an extension has the requisite permission). | 54 // disallowed even if an extension has the requisite permission). |
| 54 bool ApiIsAccessible(std::string* error) { | 55 bool ApiIsAccessible(std::string* error) { |
| 55 if (!ChromeSelectFilePolicy::FileSelectDialogsAllowed()) { | 56 if (!ChromeSelectFilePolicy::FileSelectDialogsAllowed()) { |
| 56 *error = std::string(kDisallowedByPolicy) + | 57 *error = std::string(kDisallowedByPolicy) + |
| 57 prefs::kAllowFileSelectionDialogs; | 58 prefs::kAllowFileSelectionDialogs; |
| 58 return false; | 59 return false; |
| 59 } | 60 } |
| 60 | 61 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 114 } | 115 } |
| 115 | 116 |
| 116 void MediaGalleriesGetMediaFileSystemsFunction::GetAndReturnGalleries() { | 117 void MediaGalleriesGetMediaFileSystemsFunction::GetAndReturnGalleries() { |
| 117 MediaFileSystemRegistry::GetInstance()->GetMediaFileSystemsForExtension( | 118 MediaFileSystemRegistry::GetInstance()->GetMediaFileSystemsForExtension( |
| 118 render_view_host(), GetExtension(), base::Bind( | 119 render_view_host(), GetExtension(), base::Bind( |
| 119 &MediaGalleriesGetMediaFileSystemsFunction::ReturnGalleries, this)); | 120 &MediaGalleriesGetMediaFileSystemsFunction::ReturnGalleries, this)); |
| 120 } | 121 } |
| 121 | 122 |
| 122 void MediaGalleriesGetMediaFileSystemsFunction::ReturnGalleries( | 123 void MediaGalleriesGetMediaFileSystemsFunction::ReturnGalleries( |
| 123 const std::vector<MediaFileSystemInfo>& filesystems) { | 124 const std::vector<MediaFileSystemInfo>& filesystems) { |
| 124 const int child_id = render_view_host()->GetProcess()->GetID(); | 125 content::RenderViewHost* rvh = render_view_host(); |
| 126 if (!rvh) { | |
| 127 error_ = kInvalidRPH; | |
|
asargent_no_longer_on_chrome
2012/10/16 23:01:47
If the RPH no longer exists, doesn't that mean it'
vandebo (ex-Chrome)
2012/10/16 23:17:28
Yea, I wasn't sure about that part. Looking into
| |
| 128 SendResponse(false); | |
| 129 return; | |
| 130 } | |
| 131 content::RenderProcessHost* rph = rvh->GetProcess(); | |
| 132 if (!rph) { | |
| 133 error_ = kInvalidRPH; | |
| 134 SendResponse(false); | |
| 135 return; | |
| 136 } | |
| 137 const int child_id = rph->GetID(); | |
| 125 std::set<std::string> file_system_names; | 138 std::set<std::string> file_system_names; |
| 126 base::ListValue* list = new base::ListValue(); | 139 base::ListValue* list = new base::ListValue(); |
| 127 for (size_t i = 0; i < filesystems.size(); i++) { | 140 for (size_t i = 0; i < filesystems.size(); i++) { |
| 128 scoped_ptr<base::DictionaryValue> file_system_dict_value( | 141 scoped_ptr<base::DictionaryValue> file_system_dict_value( |
| 129 new base::DictionaryValue()); | 142 new base::DictionaryValue()); |
| 130 | 143 |
| 131 // Send the file system id so the renderer can create a valid FileSystem | 144 // Send the file system id so the renderer can create a valid FileSystem |
| 132 // object. | 145 // object. |
| 133 file_system_dict_value->SetWithoutPathExpansion( | 146 file_system_dict_value->SetWithoutPathExpansion( |
| 134 "fsid", Value::CreateStringValue(filesystems[i].fsid)); | 147 "fsid", Value::CreateStringValue(filesystems[i].fsid)); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 189 bool MediaGalleriesAssembleMediaFileFunction::RunImpl() { | 202 bool MediaGalleriesAssembleMediaFileFunction::RunImpl() { |
| 190 if (!ApiIsAccessible(&error_)) | 203 if (!ApiIsAccessible(&error_)) |
| 191 return false; | 204 return false; |
| 192 | 205 |
| 193 // TODO(vandebo) Update the metadata and return the new file. | 206 // TODO(vandebo) Update the metadata and return the new file. |
| 194 SetResult(Value::CreateNullValue()); | 207 SetResult(Value::CreateNullValue()); |
| 195 return true; | 208 return true; |
| 196 } | 209 } |
| 197 | 210 |
| 198 } // namespace extensions | 211 } // namespace extensions |
| OLD | NEW |