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

Side by Side Diff: chrome/common/extensions/manifest_url_handler.cc

Issue 11624036: Move the parsing of homepage_url" and "devtools_page" out of Extension. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: patch-rebased- 2 Created 7 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/common/extensions/manifest_url_handler.h"
6
7 #include "base/memory/scoped_ptr.h"
8 #include "base/utf_string_conversions.h"
9 #include "base/values.h"
10 #include "chrome/common/extensions/extension_manifest_constants.h"
11 #include "extensions/common/error_utils.h"
12
13 namespace keys = extension_manifest_keys;
14 namespace errors = extension_manifest_errors;
15
16 namespace extensions {
17
18 namespace {
19
20 const GURL& GetManifestURL(const Extension* extension,
21 const std::string& key) {
22 ManifestURL* manifest_url =
23 static_cast<ManifestURL*>(extension->GetManifestData(key));
24 return manifest_url ? manifest_url->url_ : GURL::EmptyGURL();
25 }
26
27 } // namespace
28
29 // static
30 const GURL& ManifestURL::GetDevToolsPage(const Extension* extension) {
31 return GetManifestURL(extension, keys::kDevToolsPage);
32 }
33
34 // static
35 const GURL ManifestURL::GetHomepageURL(const Extension* extension) {
36 const GURL& homepage_url = GetManifestURL(extension, keys::kHomepageURL);
37 if (homepage_url.is_valid())
38 return homepage_url;
39 return extension->UpdatesFromGallery() ?
40 GURL(extension_urls::GetWebstoreItemDetailURLPrefix() + extension->id()) :
41 GURL::EmptyGURL();
42 }
43
44 DevToolsPageHandler::DevToolsPageHandler() {
45 }
46
47 DevToolsPageHandler::~DevToolsPageHandler() {
48 }
49
50 bool DevToolsPageHandler::Parse(const base::Value* value,
51 Extension* extension,
52 string16* error) {
53 scoped_ptr<ManifestURL> manifest_url(new ManifestURL);
54 std::string devtools_str;
55 if (!value->GetAsString(&devtools_str)) {
56 *error = ASCIIToUTF16(errors::kInvalidDevToolsPage);
57 return false;
58 }
59 manifest_url->url_ = extension->GetResourceURL(devtools_str);
60 extension->SetManifestData(keys::kDevToolsPage, manifest_url.release());
61 return true;
62 }
63
64 HomepageURLHandler::HomepageURLHandler() {
65 }
66
67 HomepageURLHandler::~HomepageURLHandler() {
68 }
69
70 bool HomepageURLHandler::Parse(const base::Value* value,
71 Extension* extension,
72 string16* error) {
73 scoped_ptr<ManifestURL> manifest_url(new ManifestURL);
74 std::string homepage_url_str;
75 if (!value->GetAsString(&homepage_url_str)) {
76 *error = ErrorUtils::FormatErrorMessageUTF16(
77 errors::kInvalidHomepageURL, "");
78 return false;
79 }
80 manifest_url->url_ = GURL(homepage_url_str);
81 if (!manifest_url->url_.is_valid() ||
82 (!manifest_url->url_.SchemeIs("http") &&
83 !manifest_url->url_.SchemeIs("https"))) {
84 *error = ErrorUtils::FormatErrorMessageUTF16(
85 errors::kInvalidHomepageURL, homepage_url_str);
86 return false;
87 }
88 extension->SetManifestData(keys::kHomepageURL, manifest_url.release());
89 return true;
90 }
91
92 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/common/extensions/manifest_url_handler.h ('k') | chrome/common/extensions/permissions/permission_set.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698