| 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/common/extensions/manifest_url_handler.h" | 5 #include "chrome/common/extensions/manifest_url_handler.h" |
| 6 | 6 |
| 7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
| 10 #include "base/stringprintf.h" | 10 #include "base/stringprintf.h" |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 std::string devtools_str; | 96 std::string devtools_str; |
| 97 if (!extension->manifest()->GetString(keys::kDevToolsPage, &devtools_str)) { | 97 if (!extension->manifest()->GetString(keys::kDevToolsPage, &devtools_str)) { |
| 98 *error = ASCIIToUTF16(errors::kInvalidDevToolsPage); | 98 *error = ASCIIToUTF16(errors::kInvalidDevToolsPage); |
| 99 return false; | 99 return false; |
| 100 } | 100 } |
| 101 manifest_url->url_ = extension->GetResourceURL(devtools_str); | 101 manifest_url->url_ = extension->GetResourceURL(devtools_str); |
| 102 extension->SetManifestData(keys::kDevToolsPage, manifest_url.release()); | 102 extension->SetManifestData(keys::kDevToolsPage, manifest_url.release()); |
| 103 return true; | 103 return true; |
| 104 } | 104 } |
| 105 | 105 |
| 106 const std::vector<std::string> DevToolsPageHandler::Keys() const { |
| 107 return SingleKey(keys::kDevToolsPage); |
| 108 } |
| 109 |
| 106 HomepageURLHandler::HomepageURLHandler() { | 110 HomepageURLHandler::HomepageURLHandler() { |
| 107 } | 111 } |
| 108 | 112 |
| 109 HomepageURLHandler::~HomepageURLHandler() { | 113 HomepageURLHandler::~HomepageURLHandler() { |
| 110 } | 114 } |
| 111 | 115 |
| 112 bool HomepageURLHandler::Parse(Extension* extension, string16* error) { | 116 bool HomepageURLHandler::Parse(Extension* extension, string16* error) { |
| 113 scoped_ptr<ManifestURL> manifest_url(new ManifestURL); | 117 scoped_ptr<ManifestURL> manifest_url(new ManifestURL); |
| 114 std::string homepage_url_str; | 118 std::string homepage_url_str; |
| 115 if (!extension->manifest()->GetString(keys::kHomepageURL, | 119 if (!extension->manifest()->GetString(keys::kHomepageURL, |
| 116 &homepage_url_str)) { | 120 &homepage_url_str)) { |
| 117 *error = ErrorUtils::FormatErrorMessageUTF16( | 121 *error = ErrorUtils::FormatErrorMessageUTF16( |
| 118 errors::kInvalidHomepageURL, ""); | 122 errors::kInvalidHomepageURL, ""); |
| 119 return false; | 123 return false; |
| 120 } | 124 } |
| 121 manifest_url->url_ = GURL(homepage_url_str); | 125 manifest_url->url_ = GURL(homepage_url_str); |
| 122 if (!manifest_url->url_.is_valid() || | 126 if (!manifest_url->url_.is_valid() || |
| 123 (!manifest_url->url_.SchemeIs("http") && | 127 (!manifest_url->url_.SchemeIs("http") && |
| 124 !manifest_url->url_.SchemeIs("https"))) { | 128 !manifest_url->url_.SchemeIs("https"))) { |
| 125 *error = ErrorUtils::FormatErrorMessageUTF16( | 129 *error = ErrorUtils::FormatErrorMessageUTF16( |
| 126 errors::kInvalidHomepageURL, homepage_url_str); | 130 errors::kInvalidHomepageURL, homepage_url_str); |
| 127 return false; | 131 return false; |
| 128 } | 132 } |
| 129 extension->SetManifestData(keys::kHomepageURL, manifest_url.release()); | 133 extension->SetManifestData(keys::kHomepageURL, manifest_url.release()); |
| 130 return true; | 134 return true; |
| 131 } | 135 } |
| 132 | 136 |
| 137 const std::vector<std::string> HomepageURLHandler::Keys() const { |
| 138 return SingleKey(keys::kHomepageURL); |
| 139 } |
| 140 |
| 133 UpdateURLHandler::UpdateURLHandler() { | 141 UpdateURLHandler::UpdateURLHandler() { |
| 134 } | 142 } |
| 135 | 143 |
| 136 UpdateURLHandler::~UpdateURLHandler() { | 144 UpdateURLHandler::~UpdateURLHandler() { |
| 137 } | 145 } |
| 138 | 146 |
| 139 bool UpdateURLHandler::Parse(Extension* extension, string16* error) { | 147 bool UpdateURLHandler::Parse(Extension* extension, string16* error) { |
| 140 scoped_ptr<ManifestURL> manifest_url(new ManifestURL); | 148 scoped_ptr<ManifestURL> manifest_url(new ManifestURL); |
| 141 std::string tmp_update_url; | 149 std::string tmp_update_url; |
| 142 | 150 |
| 143 if (!extension->manifest()->GetString(keys::kUpdateURL, &tmp_update_url)) { | 151 if (!extension->manifest()->GetString(keys::kUpdateURL, &tmp_update_url)) { |
| 144 *error = ErrorUtils::FormatErrorMessageUTF16( | 152 *error = ErrorUtils::FormatErrorMessageUTF16( |
| 145 errors::kInvalidUpdateURL, ""); | 153 errors::kInvalidUpdateURL, ""); |
| 146 return false; | 154 return false; |
| 147 } | 155 } |
| 148 | 156 |
| 149 manifest_url->url_ = GURL(tmp_update_url); | 157 manifest_url->url_ = GURL(tmp_update_url); |
| 150 if (!manifest_url->url_.is_valid() || | 158 if (!manifest_url->url_.is_valid() || |
| 151 manifest_url->url_.has_ref()) { | 159 manifest_url->url_.has_ref()) { |
| 152 *error = ErrorUtils::FormatErrorMessageUTF16( | 160 *error = ErrorUtils::FormatErrorMessageUTF16( |
| 153 errors::kInvalidUpdateURL, tmp_update_url); | 161 errors::kInvalidUpdateURL, tmp_update_url); |
| 154 return false; | 162 return false; |
| 155 } | 163 } |
| 156 | 164 |
| 157 extension->SetManifestData(keys::kUpdateURL, manifest_url.release()); | 165 extension->SetManifestData(keys::kUpdateURL, manifest_url.release()); |
| 158 return true; | 166 return true; |
| 159 } | 167 } |
| 160 | 168 |
| 169 const std::vector<std::string> UpdateURLHandler::Keys() const { |
| 170 return SingleKey(keys::kUpdateURL); |
| 171 } |
| 172 |
| 161 OptionsPageHandler::OptionsPageHandler() { | 173 OptionsPageHandler::OptionsPageHandler() { |
| 162 } | 174 } |
| 163 | 175 |
| 164 OptionsPageHandler::~OptionsPageHandler() { | 176 OptionsPageHandler::~OptionsPageHandler() { |
| 165 } | 177 } |
| 166 | 178 |
| 167 bool OptionsPageHandler::Parse(Extension* extension, string16* error) { | 179 bool OptionsPageHandler::Parse(Extension* extension, string16* error) { |
| 168 scoped_ptr<ManifestURL> manifest_url(new ManifestURL); | 180 scoped_ptr<ManifestURL> manifest_url(new ManifestURL); |
| 169 std::string options_str; | 181 std::string options_str; |
| 170 if (!extension->manifest()->GetString(keys::kOptionsPage, &options_str)) { | 182 if (!extension->manifest()->GetString(keys::kOptionsPage, &options_str)) { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 191 if (!manifest_url->url_.is_valid()) { | 203 if (!manifest_url->url_.is_valid()) { |
| 192 *error = ASCIIToUTF16(errors::kInvalidOptionsPage); | 204 *error = ASCIIToUTF16(errors::kInvalidOptionsPage); |
| 193 return false; | 205 return false; |
| 194 } | 206 } |
| 195 } | 207 } |
| 196 | 208 |
| 197 extension->SetManifestData(keys::kOptionsPage, manifest_url.release()); | 209 extension->SetManifestData(keys::kOptionsPage, manifest_url.release()); |
| 198 return true; | 210 return true; |
| 199 } | 211 } |
| 200 | 212 |
| 213 const std::vector<std::string> OptionsPageHandler::Keys() const { |
| 214 return SingleKey(keys::kOptionsPage); |
| 215 } |
| 216 |
| 201 URLOverridesHandler::URLOverridesHandler() { | 217 URLOverridesHandler::URLOverridesHandler() { |
| 202 } | 218 } |
| 203 | 219 |
| 204 URLOverridesHandler::~URLOverridesHandler() { | 220 URLOverridesHandler::~URLOverridesHandler() { |
| 205 } | 221 } |
| 206 | 222 |
| 207 bool URLOverridesHandler::Parse(Extension* extension, string16* error) { | 223 bool URLOverridesHandler::Parse(Extension* extension, string16* error) { |
| 208 const DictionaryValue* overrides = NULL; | 224 const DictionaryValue* overrides = NULL; |
| 209 if (!extension->manifest()->GetDictionary(keys::kChromeURLOverrides, | 225 if (!extension->manifest()->GetDictionary(keys::kChromeURLOverrides, |
| 210 &overrides)) { | 226 &overrides)) { |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 // An extension may override at most one page. | 272 // An extension may override at most one page. |
| 257 if (overrides->size() > 1) { | 273 if (overrides->size() > 1) { |
| 258 *error = ASCIIToUTF16(errors::kMultipleOverrides); | 274 *error = ASCIIToUTF16(errors::kMultipleOverrides); |
| 259 return false; | 275 return false; |
| 260 } | 276 } |
| 261 extension->SetManifestData(keys::kChromeURLOverrides, | 277 extension->SetManifestData(keys::kChromeURLOverrides, |
| 262 url_overrides.release()); | 278 url_overrides.release()); |
| 263 return true; | 279 return true; |
| 264 } | 280 } |
| 265 | 281 |
| 282 const std::vector<std::string> URLOverridesHandler::Keys() const { |
| 283 return SingleKey(keys::kChromeURLOverrides); |
| 284 } |
| 285 |
| 266 } // namespace extensions | 286 } // namespace extensions |
| OLD | NEW |