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

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

Issue 2950203002: Add new permission string for extensions that override new tab pages. (Closed)
Patch Set: Devlin's last feedback. Created 3 years, 5 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/common/extensions/chrome_manifest_url_handlers.h" 5 #include "chrome/common/extensions/chrome_manifest_url_handlers.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/files/file_util.h" 9 #include "base/files/file_util.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 } 135 }
136 extension->AddWebExtentPattern(pattern); 136 extension->AddWebExtentPattern(pattern);
137 } 137 }
138 } 138 }
139 139
140 // An extension may override at most one page. 140 // An extension may override at most one page.
141 if (overrides->size() > 1) { 141 if (overrides->size() > 1) {
142 *error = base::ASCIIToUTF16(errors::kMultipleOverrides); 142 *error = base::ASCIIToUTF16(errors::kMultipleOverrides);
143 return false; 143 return false;
144 } 144 }
145
146 // If this is an NTP override extension, add the NTP override permission.
147 if (url_overrides->chrome_url_overrides_.count(chrome::kChromeUINewTabHost)) {
148 PermissionsParser::AddAPIPermission(extension,
149 APIPermission::kNewTabPageOverride);
150 }
151
145 extension->SetManifestData(keys::kChromeURLOverrides, 152 extension->SetManifestData(keys::kChromeURLOverrides,
146 std::move(url_overrides)); 153 std::move(url_overrides));
154
147 return true; 155 return true;
148 } 156 }
149 157
150 bool URLOverridesHandler::Validate( 158 bool URLOverridesHandler::Validate(
151 const Extension* extension, 159 const Extension* extension,
152 std::string* error, 160 std::string* error,
153 std::vector<InstallWarning>* warnings) const { 161 std::vector<InstallWarning>* warnings) const {
154 const URLOverrides::URLOverrideMap& overrides = 162 const URLOverrides::URLOverrideMap& overrides =
155 URLOverrides::GetChromeURLOverrides(extension); 163 URLOverrides::GetChromeURLOverrides(extension);
156 if (overrides.empty()) 164 if (overrides.empty())
(...skipping 11 matching lines...) Expand all
168 } 176 }
169 } 177 }
170 return true; 178 return true;
171 } 179 }
172 180
173 const std::vector<std::string> URLOverridesHandler::Keys() const { 181 const std::vector<std::string> URLOverridesHandler::Keys() const {
174 return SingleKey(keys::kChromeURLOverrides); 182 return SingleKey(keys::kChromeURLOverrides);
175 } 183 }
176 184
177 } // namespace extensions 185 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698