| 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 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 const std::vector<MediaFileSystemInfo>& filesystems) { | 136 const std::vector<MediaFileSystemInfo>& filesystems) { |
| 137 content::RenderViewHost* rvh = render_view_host(); | 137 content::RenderViewHost* rvh = render_view_host(); |
| 138 if (!rvh) { | 138 if (!rvh) { |
| 139 SendResponse(false); | 139 SendResponse(false); |
| 140 return; | 140 return; |
| 141 } | 141 } |
| 142 MediaGalleriesPermission::CheckParam read_param( | 142 MediaGalleriesPermission::CheckParam read_param( |
| 143 MediaGalleriesPermission::kReadPermission); | 143 MediaGalleriesPermission::kReadPermission); |
| 144 bool has_read_permission = GetExtension()->CheckAPIPermissionWithParam( | 144 bool has_read_permission = GetExtension()->CheckAPIPermissionWithParam( |
| 145 APIPermission::kMediaGalleries, &read_param); | 145 APIPermission::kMediaGalleries, &read_param); |
| 146 MediaGalleriesPermission::CheckParam write_param( | |
| 147 MediaGalleriesPermission::kWritePermission); | |
| 148 bool has_write_permission = GetExtension()->CheckAPIPermissionWithParam( | |
| 149 APIPermission::kMediaGalleries, &write_param); | |
| 150 | 146 |
| 151 const int child_id = rvh->GetProcess()->GetID(); | 147 const int child_id = rvh->GetProcess()->GetID(); |
| 152 std::set<std::string> file_system_names; | 148 std::set<std::string> file_system_names; |
| 153 base::ListValue* list = new base::ListValue(); | 149 base::ListValue* list = new base::ListValue(); |
| 154 for (size_t i = 0; i < filesystems.size(); i++) { | 150 for (size_t i = 0; i < filesystems.size(); i++) { |
| 155 scoped_ptr<base::DictionaryValue> file_system_dict_value( | 151 scoped_ptr<base::DictionaryValue> file_system_dict_value( |
| 156 new base::DictionaryValue()); | 152 new base::DictionaryValue()); |
| 157 | 153 |
| 158 // Send the file system id so the renderer can create a valid FileSystem | 154 // Send the file system id so the renderer can create a valid FileSystem |
| 159 // object. | 155 // object. |
| (...skipping 18 matching lines...) Expand all Loading... |
| 178 file_system_dict_value->SetBooleanWithoutPathExpansion( | 174 file_system_dict_value->SetBooleanWithoutPathExpansion( |
| 179 kIsRemovableKey, filesystems[i].removable); | 175 kIsRemovableKey, filesystems[i].removable); |
| 180 file_system_dict_value->SetBooleanWithoutPathExpansion( | 176 file_system_dict_value->SetBooleanWithoutPathExpansion( |
| 181 kIsMediaDeviceKey, filesystems[i].media_device); | 177 kIsMediaDeviceKey, filesystems[i].media_device); |
| 182 | 178 |
| 183 list->Append(file_system_dict_value.release()); | 179 list->Append(file_system_dict_value.release()); |
| 184 | 180 |
| 185 if (filesystems[i].path.empty()) | 181 if (filesystems[i].path.empty()) |
| 186 continue; | 182 continue; |
| 187 | 183 |
| 188 if (has_read_permission || has_write_permission) { | 184 if (has_read_permission) { |
| 189 content::ChildProcessSecurityPolicy* policy = | 185 content::ChildProcessSecurityPolicy* policy = |
| 190 ChildProcessSecurityPolicy::GetInstance(); | 186 ChildProcessSecurityPolicy::GetInstance(); |
| 191 if (!policy->CanReadFile(child_id, filesystems[i].path)) | 187 if (!policy->CanReadFile(child_id, filesystems[i].path)) |
| 192 policy->GrantReadFile(child_id, filesystems[i].path); | 188 policy->GrantReadFile(child_id, filesystems[i].path); |
| 193 policy->GrantReadFileSystem(child_id, filesystems[i].fsid); | 189 policy->GrantReadFileSystem(child_id, filesystems[i].fsid); |
| 194 if (has_write_permission) { | |
| 195 policy->GrantWriteFileSystem(child_id, filesystems[i].fsid); | |
| 196 policy->GrantCreateFileForFileSystem(child_id, filesystems[i].fsid); | |
| 197 } | |
| 198 } | 190 } |
| 199 } | 191 } |
| 200 | 192 |
| 201 SetResult(list); | 193 SetResult(list); |
| 202 SendResponse(true); | 194 SendResponse(true); |
| 203 } | 195 } |
| 204 | 196 |
| 205 void MediaGalleriesGetMediaFileSystemsFunction::ShowDialog() { | 197 void MediaGalleriesGetMediaFileSystemsFunction::ShowDialog() { |
| 206 WebContents* contents = WebContents::FromRenderViewHost(render_view_host()); | 198 WebContents* contents = WebContents::FromRenderViewHost(render_view_host()); |
| 207 WebContentsModalDialogManager* web_contents_modal_dialog_manager = | 199 WebContentsModalDialogManager* web_contents_modal_dialog_manager = |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 bool MediaGalleriesAssembleMediaFileFunction::RunImpl() { | 240 bool MediaGalleriesAssembleMediaFileFunction::RunImpl() { |
| 249 if (!ApiIsAccessible(&error_)) | 241 if (!ApiIsAccessible(&error_)) |
| 250 return false; | 242 return false; |
| 251 | 243 |
| 252 // TODO(vandebo) Update the metadata and return the new file. | 244 // TODO(vandebo) Update the metadata and return the new file. |
| 253 SetResult(base::Value::CreateNullValue()); | 245 SetResult(base::Value::CreateNullValue()); |
| 254 return true; | 246 return true; |
| 255 } | 247 } |
| 256 | 248 |
| 257 } // namespace extensions | 249 } // namespace extensions |
| OLD | NEW |