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

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

Issue 11611004: Move the InputComponents out of extensions entirely. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: 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 | Annotate | Revision Log
« no previous file with comments | « chrome/common/extensions/extension.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/extension.h" 5 #include "chrome/common/extensions/extension.h"
6 6
7 #include <ostream> 7 #include <ostream>
8 8
9 #include "base/base64.h" 9 #include "base/base64.h"
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 UserScript::kValidUserScriptSchemes | URLPattern::SCHEME_CHROMEUI; 336 UserScript::kValidUserScriptSchemes | URLPattern::SCHEME_CHROMEUI;
337 337
338 Extension::Requirements::Requirements() 338 Extension::Requirements::Requirements()
339 : webgl(false), 339 : webgl(false),
340 css3d(false), 340 css3d(false),
341 npapi(false) { 341 npapi(false) {
342 } 342 }
343 343
344 Extension::Requirements::~Requirements() {} 344 Extension::Requirements::~Requirements() {}
345 345
346 Extension::InputComponentInfo::InputComponentInfo()
347 : type(INPUT_COMPONENT_TYPE_NONE),
348 shortcut_alt(false),
349 shortcut_ctrl(false),
350 shortcut_shift(false) {
351 }
352
353 Extension::InputComponentInfo::~InputComponentInfo() {}
354
355 Extension::TtsVoice::TtsVoice() {} 346 Extension::TtsVoice::TtsVoice() {}
356 Extension::TtsVoice::~TtsVoice() {} 347 Extension::TtsVoice::~TtsVoice() {}
357 348
358 Extension::OAuth2Info::OAuth2Info() {} 349 Extension::OAuth2Info::OAuth2Info() {}
359 Extension::OAuth2Info::~OAuth2Info() {} 350 Extension::OAuth2Info::~OAuth2Info() {}
360 351
361 Extension::ActionInfo::ActionInfo() {} 352 Extension::ActionInfo::ActionInfo() {}
362 Extension::ActionInfo::~ActionInfo() {} 353 Extension::ActionInfo::~ActionInfo() {}
363 354
364 Extension::FileHandlerInfo::FileHandlerInfo() {} 355 Extension::FileHandlerInfo::FileHandlerInfo() {}
(...skipping 2419 matching lines...) Expand 10 before | Expand all | Expand 10 after
2784 } 2775 }
2785 2776
2786 bool Extension::LoadExtensionFeatures(APIPermissionSet* api_permissions, 2777 bool Extension::LoadExtensionFeatures(APIPermissionSet* api_permissions,
2787 string16* error) { 2778 string16* error) {
2788 if (manifest_->HasKey(keys::kConvertedFromUserScript)) 2779 if (manifest_->HasKey(keys::kConvertedFromUserScript))
2789 manifest_->GetBoolean(keys::kConvertedFromUserScript, 2780 manifest_->GetBoolean(keys::kConvertedFromUserScript,
2790 &converted_from_user_script_); 2781 &converted_from_user_script_);
2791 2782
2792 if (!LoadManifestHandlerFeatures(error) || 2783 if (!LoadManifestHandlerFeatures(error) ||
2793 !LoadDevToolsPage(error) || 2784 !LoadDevToolsPage(error) ||
2794 !LoadInputComponents(*api_permissions, error) ||
2795 !LoadContentScripts(error) || 2785 !LoadContentScripts(error) ||
2796 !LoadPageAction(error) || 2786 !LoadPageAction(error) ||
2797 !LoadBrowserAction(error) || 2787 !LoadBrowserAction(error) ||
2798 !LoadSystemIndicator(api_permissions, error) || 2788 !LoadSystemIndicator(api_permissions, error) ||
2799 !LoadScriptBadge(error) || 2789 !LoadScriptBadge(error) ||
2800 !LoadChromeURLOverrides(error) || 2790 !LoadChromeURLOverrides(error) ||
2801 !LoadTextToSpeechVoices(error) || 2791 !LoadTextToSpeechVoices(error) ||
2802 !LoadIncognitoMode(error) || 2792 !LoadIncognitoMode(error) ||
2803 !LoadFileHandlers(error) || 2793 !LoadFileHandlers(error) ||
2804 !LoadContentSecurityPolicy(error)) 2794 !LoadContentSecurityPolicy(error))
(...skipping 19 matching lines...) Expand all
2824 return true; 2814 return true;
2825 std::string devtools_str; 2815 std::string devtools_str;
2826 if (!manifest_->GetString(keys::kDevToolsPage, &devtools_str)) { 2816 if (!manifest_->GetString(keys::kDevToolsPage, &devtools_str)) {
2827 *error = ASCIIToUTF16(errors::kInvalidDevToolsPage); 2817 *error = ASCIIToUTF16(errors::kInvalidDevToolsPage);
2828 return false; 2818 return false;
2829 } 2819 }
2830 devtools_url_ = GetResourceURL(devtools_str); 2820 devtools_url_ = GetResourceURL(devtools_str);
2831 return true; 2821 return true;
2832 } 2822 }
2833 2823
2834 bool Extension::LoadInputComponents(const APIPermissionSet& api_permissions,
2835 string16* error) {
2836 if (!manifest_->HasKey(keys::kInputComponents))
2837 return true;
2838 ListValue* list_value = NULL;
2839 if (!manifest_->GetList(keys::kInputComponents, &list_value)) {
2840 *error = ASCIIToUTF16(errors::kInvalidInputComponents);
2841 return false;
2842 }
2843
2844 for (size_t i = 0; i < list_value->GetSize(); ++i) {
2845 DictionaryValue* module_value = NULL;
2846 std::string name_str;
2847 InputComponentType type;
2848 std::string id_str;
2849 std::string description_str;
2850 std::string language_str;
2851 std::set<std::string> layouts;
2852 std::string shortcut_keycode_str;
2853 bool shortcut_alt = false;
2854 bool shortcut_ctrl = false;
2855 bool shortcut_shift = false;
2856
2857 if (!list_value->GetDictionary(i, &module_value)) {
2858 *error = ASCIIToUTF16(errors::kInvalidInputComponents);
2859 return false;
2860 }
2861
2862 // Get input_components[i].name.
2863 if (!module_value->GetString(keys::kName, &name_str)) {
2864 *error = ErrorUtils::FormatErrorMessageUTF16(
2865 errors::kInvalidInputComponentName, base::IntToString(i));
2866 return false;
2867 }
2868
2869 // Get input_components[i].type.
2870 std::string type_str;
2871 if (module_value->GetString(keys::kType, &type_str)) {
2872 if (type_str == "ime") {
2873 type = INPUT_COMPONENT_TYPE_IME;
2874 } else {
2875 *error = ErrorUtils::FormatErrorMessageUTF16(
2876 errors::kInvalidInputComponentType, base::IntToString(i));
2877 return false;
2878 }
2879 } else {
2880 *error = ErrorUtils::FormatErrorMessageUTF16(
2881 errors::kInvalidInputComponentType, base::IntToString(i));
2882 return false;
2883 }
2884
2885 // Get input_components[i].id.
2886 if (!module_value->GetString(keys::kId, &id_str)) {
2887 id_str = "";
2888 }
2889
2890 // Get input_components[i].description.
2891 if (!module_value->GetString(keys::kDescription, &description_str)) {
2892 *error = ErrorUtils::FormatErrorMessageUTF16(
2893 errors::kInvalidInputComponentDescription, base::IntToString(i));
2894 return false;
2895 }
2896 // Get input_components[i].language.
2897 if (!module_value->GetString(keys::kLanguage, &language_str)) {
2898 language_str = "";
2899 }
2900
2901 // Get input_components[i].layouts.
2902 ListValue* layouts_value = NULL;
2903 if (!module_value->GetList(keys::kLayouts, &layouts_value)) {
2904 *error = ASCIIToUTF16(errors::kInvalidInputComponentLayouts);
2905 return false;
2906 }
2907
2908 for (size_t j = 0; j < layouts_value->GetSize(); ++j) {
2909 std::string layout_name_str;
2910 if (!layouts_value->GetString(j, &layout_name_str)) {
2911 *error = ErrorUtils::FormatErrorMessageUTF16(
2912 errors::kInvalidInputComponentLayoutName, base::IntToString(i),
2913 base::IntToString(j));
2914 return false;
2915 }
2916 layouts.insert(layout_name_str);
2917 }
2918
2919 if (module_value->HasKey(keys::kShortcutKey)) {
2920 DictionaryValue* shortcut_value = NULL;
2921 if (!module_value->GetDictionary(keys::kShortcutKey, &shortcut_value)) {
2922 *error = ErrorUtils::FormatErrorMessageUTF16(
2923 errors::kInvalidInputComponentShortcutKey, base::IntToString(i));
2924 return false;
2925 }
2926
2927 // Get input_components[i].shortcut_keycode.
2928 if (!shortcut_value->GetString(keys::kKeycode, &shortcut_keycode_str)) {
2929 *error = ErrorUtils::FormatErrorMessageUTF16(
2930 errors::kInvalidInputComponentShortcutKeycode,
2931 base::IntToString(i));
2932 return false;
2933 }
2934
2935 // Get input_components[i].shortcut_alt.
2936 if (!shortcut_value->GetBoolean(keys::kAltKey, &shortcut_alt)) {
2937 shortcut_alt = false;
2938 }
2939
2940 // Get input_components[i].shortcut_ctrl.
2941 if (!shortcut_value->GetBoolean(keys::kCtrlKey, &shortcut_ctrl)) {
2942 shortcut_ctrl = false;
2943 }
2944
2945 // Get input_components[i].shortcut_shift.
2946 if (!shortcut_value->GetBoolean(keys::kShiftKey, &shortcut_shift)) {
2947 shortcut_shift = false;
2948 }
2949 }
2950
2951 input_components_.push_back(InputComponentInfo());
2952 input_components_.back().name = name_str;
2953 input_components_.back().type = type;
2954 input_components_.back().id = id_str;
2955 input_components_.back().description = description_str;
2956 input_components_.back().language = language_str;
2957 input_components_.back().layouts.insert(layouts.begin(), layouts.end());
2958 input_components_.back().shortcut_keycode = shortcut_keycode_str;
2959 input_components_.back().shortcut_alt = shortcut_alt;
2960 input_components_.back().shortcut_ctrl = shortcut_ctrl;
2961 input_components_.back().shortcut_shift = shortcut_shift;
2962 }
2963
2964 return true;
2965 }
2966
2967 bool Extension::LoadContentScripts(string16* error) { 2824 bool Extension::LoadContentScripts(string16* error) {
2968 if (!manifest_->HasKey(keys::kContentScripts)) 2825 if (!manifest_->HasKey(keys::kContentScripts))
2969 return true; 2826 return true;
2970 ListValue* list_value; 2827 ListValue* list_value;
2971 if (!manifest_->GetList(keys::kContentScripts, &list_value)) { 2828 if (!manifest_->GetList(keys::kContentScripts, &list_value)) {
2972 *error = ASCIIToUTF16(errors::kInvalidContentScriptsList); 2829 *error = ASCIIToUTF16(errors::kInvalidContentScriptsList);
2973 return false; 2830 return false;
2974 } 2831 }
2975 2832
2976 for (size_t i = 0; i < list_value->GetSize(); ++i) { 2833 for (size_t i = 0; i < list_value->GetSize(); ++i) {
(...skipping 1071 matching lines...) Expand 10 before | Expand all | Expand 10 after
4048 3905
4049 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( 3906 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo(
4050 const Extension* extension, 3907 const Extension* extension,
4051 const PermissionSet* permissions, 3908 const PermissionSet* permissions,
4052 Reason reason) 3909 Reason reason)
4053 : reason(reason), 3910 : reason(reason),
4054 extension(extension), 3911 extension(extension),
4055 permissions(permissions) {} 3912 permissions(permissions) {}
4056 3913
4057 } // namespace extensions 3914 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/common/extensions/extension.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698