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

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

Issue 12618009: Move SystemIndicator parsing out of Extension class (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 9 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/extension.h" 5 #include "chrome/common/extensions/extension.h"
6 6
7 #include "base/base64.h" 7 #include "base/base64.h"
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 if ((*i)->ManifestEntryForbidden()) { 176 if ((*i)->ManifestEntryForbidden()) {
177 *error = ErrorUtils::FormatErrorMessageUTF16( 177 *error = ErrorUtils::FormatErrorMessageUTF16(
178 errors::kPermissionNotAllowedInManifest, 178 errors::kPermissionNotAllowedInManifest,
179 (*i)->info()->name()); 179 (*i)->info()->name());
180 return true; 180 return true;
181 } 181 }
182 } 182 }
183 return false; 183 return false;
184 } 184 }
185 185
186 // Helper method to load an ExtensionAction from the page_action, script_badge,
187 // browser_action, or system_indicator entries in the manifest.
188 // TODO(rdevlin.cronin): Remove this once PageAction, BrowserAction, and
189 // SystemIndicator have been moved out of Extension.
190 scoped_ptr<ActionInfo> LoadExtensionActionInfoHelper(
191 const Extension* extension,
192 const DictionaryValue* extension_action,
193 string16* error) {
194 return manifest_handler_helpers::LoadActionInfo(
195 extension, extension_action, error);
196 }
197
198 } // namespace 186 } // namespace
199 187
200 const base::FilePath::CharType Extension::kManifestFilename[] = 188 const base::FilePath::CharType Extension::kManifestFilename[] =
201 FILE_PATH_LITERAL("manifest.json"); 189 FILE_PATH_LITERAL("manifest.json");
202 const base::FilePath::CharType Extension::kLocaleFolder[] = 190 const base::FilePath::CharType Extension::kLocaleFolder[] =
203 FILE_PATH_LITERAL("_locales"); 191 FILE_PATH_LITERAL("_locales");
204 const base::FilePath::CharType Extension::kMessagesFilename[] = 192 const base::FilePath::CharType Extension::kMessagesFilename[] =
205 FILE_PATH_LITERAL("messages.json"); 193 FILE_PATH_LITERAL("messages.json");
206 194
207 #if defined(OS_WIN) 195 #if defined(OS_WIN)
(...skipping 1737 matching lines...) Expand 10 before | Expand all | Expand 10 after
1945 } 1933 }
1946 return true; 1934 return true;
1947 } 1935 }
1948 1936
1949 bool Extension::LoadExtensionFeatures(string16* error) { 1937 bool Extension::LoadExtensionFeatures(string16* error) {
1950 if (manifest_->HasKey(keys::kConvertedFromUserScript)) 1938 if (manifest_->HasKey(keys::kConvertedFromUserScript))
1951 manifest_->GetBoolean(keys::kConvertedFromUserScript, 1939 manifest_->GetBoolean(keys::kConvertedFromUserScript,
1952 &converted_from_user_script_); 1940 &converted_from_user_script_);
1953 1941
1954 if (!LoadContentScripts(error) || 1942 if (!LoadContentScripts(error) ||
1955 !LoadSystemIndicator(error) ||
1956 !LoadIncognitoMode(error)) 1943 !LoadIncognitoMode(error))
1957 return false; 1944 return false;
1958 1945
1959 return true; 1946 return true;
1960 } 1947 }
1961 1948
1962 bool Extension::LoadContentScripts(string16* error) { 1949 bool Extension::LoadContentScripts(string16* error) {
1963 if (!manifest_->HasKey(keys::kContentScripts)) 1950 if (!manifest_->HasKey(keys::kContentScripts))
1964 return true; 1951 return true;
1965 const ListValue* list_value; 1952 const ListValue* list_value;
(...skipping 16 matching lines...) Expand all
1982 script.set_extension_id(id()); 1969 script.set_extension_id(id());
1983 if (converted_from_user_script_) { 1970 if (converted_from_user_script_) {
1984 script.set_emulate_greasemonkey(true); 1971 script.set_emulate_greasemonkey(true);
1985 script.set_match_all_frames(true); // Greasemonkey matches all frames. 1972 script.set_match_all_frames(true); // Greasemonkey matches all frames.
1986 } 1973 }
1987 content_scripts_.push_back(script); 1974 content_scripts_.push_back(script);
1988 } 1975 }
1989 return true; 1976 return true;
1990 } 1977 }
1991 1978
1992 bool Extension::LoadSystemIndicator(string16* error) {
1993 if (!manifest_->HasKey(keys::kSystemIndicator)) {
1994 // There was no manifest entry for the system indicator.
1995 return true;
1996 }
1997
1998 const DictionaryValue* system_indicator_value = NULL;
1999 if (!manifest_->GetDictionary(keys::kSystemIndicator,
2000 &system_indicator_value)) {
2001 *error = ASCIIToUTF16(errors::kInvalidSystemIndicator);
2002 return false;
2003 }
2004
2005 system_indicator_info_ = LoadExtensionActionInfoHelper(
2006 this, system_indicator_value, error);
2007
2008 if (!system_indicator_info_.get()) {
2009 return false;
2010 }
2011
2012 // Because the manifest was successfully parsed, auto-grant the permission.
2013 // TODO(dewittj) Add this for all extension action APIs.
2014 initial_api_permissions()->insert(APIPermission::kSystemIndicator);
2015
2016 return true;
2017 }
2018
2019 bool Extension::LoadIncognitoMode(string16* error) { 1979 bool Extension::LoadIncognitoMode(string16* error) {
2020 // Apps default to split mode, extensions default to spanning. 1980 // Apps default to split mode, extensions default to spanning.
2021 incognito_split_mode_ = is_app(); 1981 incognito_split_mode_ = is_app();
2022 if (!manifest_->HasKey(keys::kIncognito)) 1982 if (!manifest_->HasKey(keys::kIncognito))
2023 return true; 1983 return true;
2024 std::string value; 1984 std::string value;
2025 if (!manifest_->GetString(keys::kIncognito, &value)) { 1985 if (!manifest_->GetString(keys::kIncognito, &value)) {
2026 *error = ASCIIToUTF16(errors::kInvalidIncognitoBehavior); 1986 *error = ASCIIToUTF16(errors::kInvalidIncognitoBehavior);
2027 return false; 1987 return false;
2028 } 1988 }
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after
2451 2411
2452 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( 2412 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo(
2453 const Extension* extension, 2413 const Extension* extension,
2454 const PermissionSet* permissions, 2414 const PermissionSet* permissions,
2455 Reason reason) 2415 Reason reason)
2456 : reason(reason), 2416 : reason(reason),
2457 extension(extension), 2417 extension(extension),
2458 permissions(permissions) {} 2418 permissions(permissions) {}
2459 2419
2460 } // namespace extensions 2420 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698