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

Side by Side Diff: extensions/common/manifest_handlers/launcher_page_info.cc

Issue 489753002: Added proper extension manifest parser for launcher_page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Blank line. Created 6 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « extensions/common/manifest_handlers/launcher_page_info.h ('k') | extensions/extensions.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 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 "extensions/common/manifest_handlers/launcher_page_info.h"
6
7 #include "base/files/file_util.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "extensions/common/manifest.h"
10 #include "extensions/common/manifest_constants.h"
11 #include "grit/extensions_strings.h"
12 #include "ui/base/l10n/l10n_util.h"
13
14 namespace extensions {
15
16 LauncherPageHandler::LauncherPageHandler() {
17 }
18
19 LauncherPageHandler::~LauncherPageHandler() {
20 }
21
22 // static
23 LauncherPageInfo* LauncherPageHandler::GetInfo(const Extension* extension) {
24 return static_cast<LauncherPageInfo*>(
25 extension->GetManifestData(manifest_keys::kLauncherPage));
26 }
27
28 bool LauncherPageHandler::Parse(Extension* extension, base::string16* error) {
29 const extensions::Manifest* manifest = extension->manifest();
30 scoped_ptr<LauncherPageInfo> launcher_page_info(new LauncherPageInfo);
31 const base::DictionaryValue* launcher_page_dict = NULL;
32 if (!manifest->GetDictionary(manifest_keys::kLauncherPage,
33 &launcher_page_dict)) {
34 *error = base::ASCIIToUTF16(manifest_errors::kInvalidLauncherPage);
35 return false;
36 }
37
38 if (!manifest->HasPath(extensions::manifest_keys::kLauncherPagePage)) {
39 *error = base::ASCIIToUTF16(manifest_errors::kLauncherPagePageRequired);
40 return false;
41 }
42
43 std::string launcher_page_page;
44 if (!manifest->GetString(extensions::manifest_keys::kLauncherPagePage,
45 &launcher_page_page)) {
46 *error = base::ASCIIToUTF16(manifest_errors::kInvalidLauncherPagePage);
47 return false;
48 }
49
50 launcher_page_info->page = launcher_page_page;
51
52 extension->SetManifestData(manifest_keys::kLauncherPage,
53 launcher_page_info.release());
54 return true;
55 }
56
57 bool LauncherPageHandler::Validate(
58 const Extension* extension,
59 std::string* error,
60 std::vector<InstallWarning>* warnings) const {
61 LauncherPageInfo* info = GetInfo(extension);
62 const base::FilePath path = extension->GetResource(info->page).GetFilePath();
63 if (!base::PathExists(path)) {
64 *error = l10n_util::GetStringFUTF8(IDS_EXTENSION_LOAD_LAUNCHER_PAGE_FAILED,
65 base::UTF8ToUTF16(info->page));
66 return false;
67 }
68
69 return true;
70 }
71
72 const std::vector<std::string> LauncherPageHandler::Keys() const {
73 return SingleKey(manifest_keys::kLauncherPage);
74 }
75
76 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/common/manifest_handlers/launcher_page_info.h ('k') | extensions/extensions.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698