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/extensions/convert_web_app.h" | 5 #include "chrome/browser/extensions/convert_web_app.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 #include <limits> | 8 #include <limits> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 // manifest and regenerates these extensions. | 50 // manifest and regenerates these extensions. |
51 std::string GenerateKey(const GURL& manifest_url) { | 51 std::string GenerateKey(const GURL& manifest_url) { |
52 char raw[crypto::kSHA256Length] = {0}; | 52 char raw[crypto::kSHA256Length] = {0}; |
53 std::string key; | 53 std::string key; |
54 crypto::SHA256HashString(manifest_url.spec().c_str(), raw, | 54 crypto::SHA256HashString(manifest_url.spec().c_str(), raw, |
55 crypto::kSHA256Length); | 55 crypto::kSHA256Length); |
56 base::Base64Encode(std::string(raw, crypto::kSHA256Length), &key); | 56 base::Base64Encode(std::string(raw, crypto::kSHA256Length), &key); |
57 return key; | 57 return key; |
58 } | 58 } |
59 | 59 |
60 } | 60 } // namespace |
61 | 61 |
62 | 62 |
63 // Generates a version for the converted app using the current date. This isn't | 63 // Generates a version for the converted app using the current date. This isn't |
64 // really needed, but it seems like useful information. | 64 // really needed, but it seems like useful information. |
65 std::string ConvertTimeToExtensionVersion(const Time& create_time) { | 65 std::string ConvertTimeToExtensionVersion(const Time& create_time) { |
66 Time::Exploded create_time_exploded; | 66 Time::Exploded create_time_exploded; |
67 create_time.UTCExplode(&create_time_exploded); | 67 create_time.UTCExplode(&create_time_exploded); |
68 | 68 |
69 double micros = static_cast<double>( | 69 double micros = static_cast<double>( |
70 (create_time_exploded.millisecond * Time::kMicrosecondsPerMillisecond) + | 70 (create_time_exploded.millisecond * Time::kMicrosecondsPerMillisecond) + |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 std::string size = base::StringPrintf("%i", web_app.icons[i].width); | 126 std::string size = base::StringPrintf("%i", web_app.icons[i].width); |
127 std::string icon_path = base::StringPrintf("%s/%s.png", kIconsDirName, | 127 std::string icon_path = base::StringPrintf("%s/%s.png", kIconsDirName, |
128 size.c_str()); | 128 size.c_str()); |
129 icons->SetString(size, icon_path); | 129 icons->SetString(size, icon_path); |
130 } | 130 } |
131 | 131 |
132 // Add the permissions. | 132 // Add the permissions. |
133 base::ListValue* permissions = new base::ListValue(); | 133 base::ListValue* permissions = new base::ListValue(); |
134 root->Set(keys::kPermissions, permissions); | 134 root->Set(keys::kPermissions, permissions); |
135 for (size_t i = 0; i < web_app.permissions.size(); ++i) { | 135 for (size_t i = 0; i < web_app.permissions.size(); ++i) { |
136 permissions->Append(Value::CreateStringValue(web_app.permissions[i])); | 136 permissions->Append(new base::StringValue(web_app.permissions[i])); |
137 } | 137 } |
138 | 138 |
139 // Add the URLs. | 139 // Add the URLs. |
140 base::ListValue* urls = new base::ListValue(); | 140 base::ListValue* urls = new base::ListValue(); |
141 root->Set(keys::kWebURLs, urls); | 141 root->Set(keys::kWebURLs, urls); |
142 for (size_t i = 0; i < web_app.urls.size(); ++i) { | 142 for (size_t i = 0; i < web_app.urls.size(); ++i) { |
143 urls->Append(Value::CreateStringValue(web_app.urls[i].spec())); | 143 urls->Append(new base::StringValue(web_app.urls[i].spec())); |
144 } | 144 } |
145 | 145 |
146 // Write the manifest. | 146 // Write the manifest. |
147 base::FilePath manifest_path = temp_dir.path().Append(kManifestFilename); | 147 base::FilePath manifest_path = temp_dir.path().Append(kManifestFilename); |
148 JSONFileValueSerializer serializer(manifest_path); | 148 JSONFileValueSerializer serializer(manifest_path); |
149 if (!serializer.Serialize(*root)) { | 149 if (!serializer.Serialize(*root)) { |
150 LOG(ERROR) << "Could not serialize manifest."; | 150 LOG(ERROR) << "Could not serialize manifest."; |
151 return NULL; | 151 return NULL; |
152 } | 152 } |
153 | 153 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
193 if (!extension.get()) { | 193 if (!extension.get()) { |
194 LOG(ERROR) << error; | 194 LOG(ERROR) << error; |
195 return NULL; | 195 return NULL; |
196 } | 196 } |
197 | 197 |
198 temp_dir.Take(); // The caller takes ownership of the directory. | 198 temp_dir.Take(); // The caller takes ownership of the directory. |
199 return extension; | 199 return extension; |
200 } | 200 } |
201 | 201 |
202 } // namespace extensions | 202 } // namespace extensions |
OLD | NEW |