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

Side by Side Diff: chrome/browser/drive/drive_api_util.cc

Issue 861133002: Remove WAPI-related code, except the type definition of ResourceEntry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove more WAPI related code. Created 5 years, 11 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/drive/drive_api_util.h" 5 #include "chrome/browser/drive/drive_api_util.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/files/file.h" 9 #include "base/files/file.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 base::StringAppendF( 114 base::StringAppendF(
115 &result, 115 &result,
116 "%sfullText contains \'%s\'", 116 "%sfullText contains \'%s\'",
117 is_exclusion ? "not " : "", 117 is_exclusion ? "not " : "",
118 EscapeQueryStringValue(base::UTF16ToUTF8(token)).c_str()); 118 EscapeQueryStringValue(base::UTF16ToUTF8(token)).c_str());
119 } 119 }
120 120
121 return result; 121 return result;
122 } 122 }
123 123
124 std::string ExtractResourceIdFromUrl(const GURL& url) {
125 return net::UnescapeURLComponent(url.ExtractFileName(),
126 net::UnescapeRule::URL_SPECIAL_CHARS);
127 }
128
129 std::string CanonicalizeResourceId(const std::string& resource_id) { 124 std::string CanonicalizeResourceId(const std::string& resource_id) {
130 // If resource ID is in the old WAPI format starting with a prefix like 125 // If resource ID is in the old WAPI format starting with a prefix like
131 // "document:", strip it and return the remaining part. 126 // "document:", strip it and return the remaining part.
132 std::string stripped_resource_id; 127 std::string stripped_resource_id;
133 if (RE2::FullMatch(resource_id, "^[a-z-]+(?::|%3A)([\\w-]+)$", 128 if (RE2::FullMatch(resource_id, "^[a-z-]+(?::|%3A)([\\w-]+)$",
134 &stripped_resource_id)) 129 &stripped_resource_id))
135 return stripped_resource_id; 130 return stripped_resource_id;
136 return resource_id; 131 return resource_id;
137 } 132 }
138 133
139 scoped_ptr<google_apis::ResourceEntry> 134 scoped_ptr<google_apis::ResourceEntry>
140 ConvertFileResourceToResourceEntry( 135 ConvertFileResourceToResourceEntry(
141 const google_apis::FileResource& file_resource) { 136 const google_apis::FileResource& file_resource) {
142 scoped_ptr<google_apis::ResourceEntry> entry(new google_apis::ResourceEntry); 137 scoped_ptr<google_apis::ResourceEntry> entry(new google_apis::ResourceEntry);
143 138
144 // ResourceEntry 139 // ResourceEntry
145 entry->set_resource_id(file_resource.file_id()); 140 entry->set_resource_id(file_resource.file_id());
146 entry->set_id(file_resource.file_id());
147 if (file_resource.IsDirectory()) 141 if (file_resource.IsDirectory())
148 entry->set_kind(google_apis::ResourceEntry::ENTRY_KIND_FOLDER); 142 entry->set_kind(google_apis::ResourceEntry::ENTRY_KIND_FOLDER);
149 else if (file_resource.IsHostedDocument()) 143 else if (file_resource.IsHostedDocument())
150 entry->set_kind(google_apis::ResourceEntry::ENTRY_KIND_UNKNOWN); 144 entry->set_kind(google_apis::ResourceEntry::ENTRY_KIND_UNKNOWN);
151 else 145 else
152 entry->set_kind(google_apis::ResourceEntry::ENTRY_KIND_FILE); 146 entry->set_kind(google_apis::ResourceEntry::ENTRY_KIND_FILE);
153 entry->set_title(file_resource.title()); 147 entry->set_title(file_resource.title());
154 entry->set_published_time(file_resource.created_date());
155
156 std::vector<std::string> labels;
157 if (!file_resource.shared_with_me_date().is_null())
158 labels.push_back("shared-with-me");
159 if (file_resource.shared())
160 labels.push_back("shared");
161 entry->set_labels(labels);
162
163 // This should be the url to download the file_resource.
164 {
165 google_apis::Content content;
166 content.set_mime_type(file_resource.mime_type());
167 entry->set_content(content);
168 }
169 // TODO(kochi): entry->resource_links_
170
171 // For file entries
172 entry->set_filename(file_resource.title());
173 entry->set_suggested_filename(file_resource.title());
174 entry->set_file_md5(file_resource.md5_checksum());
175 entry->set_file_size(file_resource.file_size());
176 148
177 // If file is removed completely, that information is only available in 149 // If file is removed completely, that information is only available in
178 // ChangeResource, and is reflected in |removed_|. If file is trashed, the 150 // ChangeResource, and is reflected in |removed_|. If file is trashed, the
179 // file entry still exists but with its "trashed" label true. 151 // file entry still exists but with its "trashed" label true.
180 entry->set_deleted(file_resource.labels().is_trashed()); 152 entry->set_deleted(file_resource.labels().is_trashed());
181 153
182 // ImageMediaMetadata
183 entry->set_image_width(file_resource.image_media_metadata().width());
184 entry->set_image_height(file_resource.image_media_metadata().height());
185 entry->set_image_rotation(file_resource.image_media_metadata().rotation());
186
187 // CommonMetadata
188 entry->set_etag(file_resource.etag());
189 // entry->authors_
190 // entry->links_.
191 ScopedVector<google_apis::Link> links;
192 for (size_t i = 0; i < file_resource.parents().size(); ++i) {
193 google_apis::Link* link = new google_apis::Link;
194 link->set_type(google_apis::Link::LINK_PARENT);
195 link->set_href(file_resource.parents()[i].parent_link());
196 links.push_back(link);
197 }
198 if (!file_resource.alternate_link().is_empty()) {
199 google_apis::Link* link = new google_apis::Link;
200 link->set_type(google_apis::Link::LINK_ALTERNATE);
201 link->set_href(file_resource.alternate_link());
202 links.push_back(link);
203 }
204 entry->set_links(links.Pass());
205
206 // entry->categories_
207 entry->set_updated_time(file_resource.modified_date());
208 entry->set_last_viewed_time(file_resource.last_viewed_by_me_date());
209
210 entry->FillRemainingFields();
211 return entry.Pass(); 154 return entry.Pass();
212 } 155 }
213 156
214 scoped_ptr<google_apis::ResourceEntry>
215 ConvertChangeResourceToResourceEntry(
216 const google_apis::ChangeResource& change_resource) {
217 scoped_ptr<google_apis::ResourceEntry> entry;
218 if (change_resource.file())
219 entry = ConvertFileResourceToResourceEntry(*change_resource.file()).Pass();
220 else
221 entry.reset(new google_apis::ResourceEntry);
222
223 entry->set_resource_id(change_resource.file_id());
224 // If |is_deleted()| returns true, the file is removed from Drive.
225 entry->set_removed(change_resource.is_deleted());
226 entry->set_changestamp(change_resource.change_id());
227 entry->set_modification_date(change_resource.modification_date());
228
229 return entry.Pass();
230 }
231
232 scoped_ptr<google_apis::ResourceList>
233 ConvertFileListToResourceList(const google_apis::FileList& file_list) {
234 scoped_ptr<google_apis::ResourceList> feed(new google_apis::ResourceList);
235
236 const ScopedVector<google_apis::FileResource>& items = file_list.items();
237 ScopedVector<google_apis::ResourceEntry> entries;
238 for (size_t i = 0; i < items.size(); ++i)
239 entries.push_back(ConvertFileResourceToResourceEntry(*items[i]).release());
240 feed->set_entries(entries.Pass());
241
242 ScopedVector<google_apis::Link> links;
243 if (!file_list.next_link().is_empty()) {
244 google_apis::Link* link = new google_apis::Link;
245 link->set_type(google_apis::Link::LINK_NEXT);
246 link->set_href(file_list.next_link());
247 links.push_back(link);
248 }
249 feed->set_links(links.Pass());
250
251 return feed.Pass();
252 }
253
254 scoped_ptr<google_apis::ResourceList>
255 ConvertChangeListToResourceList(const google_apis::ChangeList& change_list) {
256 scoped_ptr<google_apis::ResourceList> feed(new google_apis::ResourceList);
257
258 const ScopedVector<google_apis::ChangeResource>& items = change_list.items();
259 ScopedVector<google_apis::ResourceEntry> entries;
260 for (size_t i = 0; i < items.size(); ++i) {
261 entries.push_back(
262 ConvertChangeResourceToResourceEntry(*items[i]).release());
263 }
264 feed->set_entries(entries.Pass());
265
266 feed->set_largest_changestamp(change_list.largest_change_id());
267
268 ScopedVector<google_apis::Link> links;
269 if (!change_list.next_link().is_empty()) {
270 google_apis::Link* link = new google_apis::Link;
271 link->set_type(google_apis::Link::LINK_NEXT);
272 link->set_href(change_list.next_link());
273 links.push_back(link);
274 }
275 feed->set_links(links.Pass());
276
277 return feed.Pass();
278 }
279
280 std::string GetMd5Digest(const base::FilePath& file_path) { 157 std::string GetMd5Digest(const base::FilePath& file_path) {
281 const int kBufferSize = 512 * 1024; // 512kB. 158 const int kBufferSize = 512 * 1024; // 512kB.
282 159
283 base::File file(file_path, base::File::FLAG_OPEN | base::File::FLAG_READ); 160 base::File file(file_path, base::File::FLAG_OPEN | base::File::FLAG_READ);
284 if (!file.IsValid()) 161 if (!file.IsValid())
285 return std::string(); 162 return std::string();
286 163
287 base::MD5Context context; 164 base::MD5Context context;
288 base::MD5Init(&context); 165 base::MD5Init(&context);
289 166
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 const std::string extension = base::FilePath(path.Extension()).AsUTF8Unsafe(); 207 const std::string extension = base::FilePath(path.Extension()).AsUTF8Unsafe();
331 for (size_t i = 0; i < arraysize(kHostedDocumentKinds); ++i) { 208 for (size_t i = 0; i < arraysize(kHostedDocumentKinds); ++i) {
332 if (extension == kHostedDocumentKinds[i].extension) 209 if (extension == kHostedDocumentKinds[i].extension)
333 return true; 210 return true;
334 } 211 }
335 return extension == kUnknownHostedDocumentExtension; 212 return extension == kUnknownHostedDocumentExtension;
336 } 213 }
337 214
338 } // namespace util 215 } // namespace util
339 } // namespace drive 216 } // namespace drive
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698