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

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

Issue 10834004: Correct const accessors in base/values.(h|cc) (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Reverting webdriver:Command::parameters_ to const Created 8 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/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 580 matching lines...) Expand 10 before | Expand all | Expand 10 after
591 bool all_frames = false; 591 bool all_frames = false;
592 if (!content_script->GetBoolean(keys::kAllFrames, &all_frames)) { 592 if (!content_script->GetBoolean(keys::kAllFrames, &all_frames)) {
593 *error = ExtensionErrorUtils::FormatErrorMessageUTF16( 593 *error = ExtensionErrorUtils::FormatErrorMessageUTF16(
594 errors::kInvalidAllFrames, base::IntToString(definition_index)); 594 errors::kInvalidAllFrames, base::IntToString(definition_index));
595 return false; 595 return false;
596 } 596 }
597 result->set_match_all_frames(all_frames); 597 result->set_match_all_frames(all_frames);
598 } 598 }
599 599
600 // matches (required) 600 // matches (required)
601 ListValue* matches = NULL; 601 const ListValue* matches = NULL;
602 if (!content_script->GetList(keys::kMatches, &matches)) { 602 if (!content_script->GetList(keys::kMatches, &matches)) {
603 *error = ExtensionErrorUtils::FormatErrorMessageUTF16( 603 *error = ExtensionErrorUtils::FormatErrorMessageUTF16(
604 errors::kInvalidMatches, 604 errors::kInvalidMatches,
605 base::IntToString(definition_index)); 605 base::IntToString(definition_index));
606 return false; 606 return false;
607 } 607 }
608 608
609 if (matches->GetSize() == 0) { 609 if (matches->GetSize() == 0) {
610 *error = ExtensionErrorUtils::FormatErrorMessageUTF16( 610 *error = ExtensionErrorUtils::FormatErrorMessageUTF16(
611 errors::kInvalidMatchCount, 611 errors::kInvalidMatchCount,
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 if (!(creation_flags_ & ALLOW_FILE_ACCESS)) 643 if (!(creation_flags_ & ALLOW_FILE_ACCESS))
644 pattern.SetValidSchemes( 644 pattern.SetValidSchemes(
645 pattern.valid_schemes() & ~URLPattern::SCHEME_FILE); 645 pattern.valid_schemes() & ~URLPattern::SCHEME_FILE);
646 } 646 }
647 647
648 result->add_url_pattern(pattern); 648 result->add_url_pattern(pattern);
649 } 649 }
650 650
651 // exclude_matches 651 // exclude_matches
652 if (content_script->HasKey(keys::kExcludeMatches)) { // optional 652 if (content_script->HasKey(keys::kExcludeMatches)) { // optional
653 ListValue* exclude_matches = NULL; 653 const ListValue* exclude_matches = NULL;
654 if (!content_script->GetList(keys::kExcludeMatches, &exclude_matches)) { 654 if (!content_script->GetList(keys::kExcludeMatches, &exclude_matches)) {
655 *error = ExtensionErrorUtils::FormatErrorMessageUTF16( 655 *error = ExtensionErrorUtils::FormatErrorMessageUTF16(
656 errors::kInvalidExcludeMatches, 656 errors::kInvalidExcludeMatches,
657 base::IntToString(definition_index)); 657 base::IntToString(definition_index));
658 return false; 658 return false;
659 } 659 }
660 660
661 for (size_t j = 0; j < exclude_matches->GetSize(); ++j) { 661 for (size_t j = 0; j < exclude_matches->GetSize(); ++j) {
662 std::string match_str; 662 std::string match_str;
663 if (!exclude_matches->GetString(j, &match_str)) { 663 if (!exclude_matches->GetString(j, &match_str)) {
(...skipping 26 matching lines...) Expand all
690 error, &UserScript::add_glob, result)) { 690 error, &UserScript::add_glob, result)) {
691 return false; 691 return false;
692 } 692 }
693 693
694 if (!LoadGlobsHelper(content_script, definition_index, keys::kExcludeGlobs, 694 if (!LoadGlobsHelper(content_script, definition_index, keys::kExcludeGlobs,
695 error, &UserScript::add_exclude_glob, result)) { 695 error, &UserScript::add_exclude_glob, result)) {
696 return false; 696 return false;
697 } 697 }
698 698
699 // js and css keys 699 // js and css keys
700 ListValue* js = NULL; 700 const ListValue* js = NULL;
701 if (content_script->HasKey(keys::kJs) && 701 if (content_script->HasKey(keys::kJs) &&
702 !content_script->GetList(keys::kJs, &js)) { 702 !content_script->GetList(keys::kJs, &js)) {
703 *error = ExtensionErrorUtils::FormatErrorMessageUTF16( 703 *error = ExtensionErrorUtils::FormatErrorMessageUTF16(
704 errors::kInvalidJsList, 704 errors::kInvalidJsList,
705 base::IntToString(definition_index)); 705 base::IntToString(definition_index));
706 return false; 706 return false;
707 } 707 }
708 708
709 ListValue* css = NULL; 709 const ListValue* css = NULL;
710 if (content_script->HasKey(keys::kCss) && 710 if (content_script->HasKey(keys::kCss) &&
711 !content_script->GetList(keys::kCss, &css)) { 711 !content_script->GetList(keys::kCss, &css)) {
712 *error = ExtensionErrorUtils:: 712 *error = ExtensionErrorUtils::
713 FormatErrorMessageUTF16(errors::kInvalidCssList, 713 FormatErrorMessageUTF16(errors::kInvalidCssList,
714 base::IntToString(definition_index)); 714 base::IntToString(definition_index));
715 return false; 715 return false;
716 } 716 }
717 717
718 // The manifest needs to have at least one js or css user script definition. 718 // The manifest needs to have at least one js or css user script definition.
719 if (((js ? js->GetSize() : 0) + (css ? css->GetSize() : 0)) == 0) { 719 if (((js ? js->GetSize() : 0) + (css ? css->GetSize() : 0)) == 0) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 bool Extension::LoadGlobsHelper( 767 bool Extension::LoadGlobsHelper(
768 const DictionaryValue* content_script, 768 const DictionaryValue* content_script,
769 int content_script_index, 769 int content_script_index,
770 const char* globs_property_name, 770 const char* globs_property_name,
771 string16* error, 771 string16* error,
772 void(UserScript::*add_method)(const std::string& glob), 772 void(UserScript::*add_method)(const std::string& glob),
773 UserScript* instance) { 773 UserScript* instance) {
774 if (!content_script->HasKey(globs_property_name)) 774 if (!content_script->HasKey(globs_property_name))
775 return true; // they are optional 775 return true; // they are optional
776 776
777 ListValue* list = NULL; 777 const ListValue* list = NULL;
778 if (!content_script->GetList(globs_property_name, &list)) { 778 if (!content_script->GetList(globs_property_name, &list)) {
779 *error = ExtensionErrorUtils::FormatErrorMessageUTF16( 779 *error = ExtensionErrorUtils::FormatErrorMessageUTF16(
780 errors::kInvalidGlobList, 780 errors::kInvalidGlobList,
781 base::IntToString(content_script_index), 781 base::IntToString(content_script_index),
782 globs_property_name); 782 globs_property_name);
783 return false; 783 return false;
784 } 784 }
785 785
786 for (size_t i = 0; i < list->GetSize(); ++i) { 786 for (size_t i = 0; i < list->GetSize(); ++i) {
787 std::string glob; 787 std::string glob;
(...skipping 17 matching lines...) Expand all
805 ExtensionAction::Type action_type, 805 ExtensionAction::Type action_type,
806 string16* error) { 806 string16* error) {
807 scoped_ptr<ExtensionAction> result(new ExtensionAction(id(), action_type)); 807 scoped_ptr<ExtensionAction> result(new ExtensionAction(id(), action_type));
808 808
809 // Page actions are hidden/disabled by default, and browser actions are 809 // Page actions are hidden/disabled by default, and browser actions are
810 // visible/enabled by default. 810 // visible/enabled by default.
811 result->SetIsVisible(ExtensionAction::kDefaultTabId, 811 result->SetIsVisible(ExtensionAction::kDefaultTabId,
812 action_type != ExtensionAction::TYPE_PAGE); 812 action_type != ExtensionAction::TYPE_PAGE);
813 813
814 if (manifest_version_ == 1) { 814 if (manifest_version_ == 1) {
815 ListValue* icons = NULL; 815 const ListValue* icons = NULL;
816 if (extension_action->HasKey(keys::kPageActionIcons) && 816 if (extension_action->HasKey(keys::kPageActionIcons) &&
817 extension_action->GetList(keys::kPageActionIcons, &icons)) { 817 extension_action->GetList(keys::kPageActionIcons, &icons)) {
818 for (ListValue::const_iterator iter = icons->begin(); 818 for (ListValue::const_iterator iter = icons->begin();
819 iter != icons->end(); ++iter) { 819 iter != icons->end(); ++iter) {
820 std::string path; 820 std::string path;
821 if (!(*iter)->GetAsString(&path) || path.empty()) { 821 if (!(*iter)->GetAsString(&path) || path.empty()) {
822 *error = ASCIIToUTF16(errors::kInvalidPageActionIconPath); 822 *error = ASCIIToUTF16(errors::kInvalidPageActionIconPath);
823 return scoped_ptr<ExtensionAction>(); 823 return scoped_ptr<ExtensionAction>();
824 } 824 }
825 825
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
876 *error = ExtensionErrorUtils::FormatErrorMessageUTF16( 876 *error = ExtensionErrorUtils::FormatErrorMessageUTF16(
877 errors::kInvalidPageActionOldAndNewKeys, 877 errors::kInvalidPageActionOldAndNewKeys,
878 keys::kPageActionDefaultPopup, 878 keys::kPageActionDefaultPopup,
879 keys::kPageActionPopup); 879 keys::kPageActionPopup);
880 return scoped_ptr<ExtensionAction>(); 880 return scoped_ptr<ExtensionAction>();
881 } 881 }
882 popup_key = keys::kPageActionPopup; 882 popup_key = keys::kPageActionPopup;
883 } 883 }
884 884
885 if (popup_key) { 885 if (popup_key) {
886 DictionaryValue* popup = NULL; 886 const DictionaryValue* popup = NULL;
887 std::string url_str; 887 std::string url_str;
888 888
889 if (extension_action->GetString(popup_key, &url_str)) { 889 if (extension_action->GetString(popup_key, &url_str)) {
890 // On success, |url_str| is set. Nothing else to do. 890 // On success, |url_str| is set. Nothing else to do.
891 } else if (manifest_version_ == 1 && 891 } else if (manifest_version_ == 1 &&
892 extension_action->GetDictionary(popup_key, &popup)) { 892 extension_action->GetDictionary(popup_key, &popup)) {
893 if (!popup->GetString(keys::kPageActionPopupPath, &url_str)) { 893 if (!popup->GetString(keys::kPageActionPopupPath, &url_str)) {
894 *error = ExtensionErrorUtils::FormatErrorMessageUTF16( 894 *error = ExtensionErrorUtils::FormatErrorMessageUTF16(
895 errors::kInvalidPageActionPopupPath, "<missing>"); 895 errors::kInvalidPageActionPopupPath, "<missing>");
896 return scoped_ptr<ExtensionAction>(); 896 return scoped_ptr<ExtensionAction>();
(...skipping 1003 matching lines...) Expand 10 before | Expand all | Expand 10 after
1900 1900
1901 bool Extension::LoadWebIntentAction(const std::string& action_name, 1901 bool Extension::LoadWebIntentAction(const std::string& action_name,
1902 const DictionaryValue& intent_service, 1902 const DictionaryValue& intent_service,
1903 string16* error) { 1903 string16* error) {
1904 DCHECK(error); 1904 DCHECK(error);
1905 webkit_glue::WebIntentServiceData service; 1905 webkit_glue::WebIntentServiceData service;
1906 std::string value; 1906 std::string value;
1907 1907
1908 service.action = UTF8ToUTF16(action_name); 1908 service.action = UTF8ToUTF16(action_name);
1909 1909
1910 ListValue* mime_types = NULL; 1910 const ListValue* mime_types = NULL;
1911 if (!intent_service.HasKey(keys::kIntentType) || 1911 if (!intent_service.HasKey(keys::kIntentType) ||
1912 !intent_service.GetList(keys::kIntentType, &mime_types) || 1912 !intent_service.GetList(keys::kIntentType, &mime_types) ||
1913 mime_types->GetSize() == 0) { 1913 mime_types->GetSize() == 0) {
1914 *error = ExtensionErrorUtils::FormatErrorMessageUTF16( 1914 *error = ExtensionErrorUtils::FormatErrorMessageUTF16(
1915 errors::kInvalidIntentType, action_name); 1915 errors::kInvalidIntentType, action_name);
1916 return false; 1916 return false;
1917 } 1917 }
1918 1918
1919 std::string href; 1919 std::string href;
1920 if (intent_service.HasKey(keys::kIntentPath)) { 1920 if (intent_service.HasKey(keys::kIntentPath)) {
(...skipping 516 matching lines...) Expand 10 before | Expand all | Expand 10 after
2437 // Read the page action title from |default_title| (mandatory). 2437 // Read the page action title from |default_title| (mandatory).
2438 std::string title; 2438 std::string title;
2439 if (!file_browser_handler->HasKey(keys::kPageActionDefaultTitle) || 2439 if (!file_browser_handler->HasKey(keys::kPageActionDefaultTitle) ||
2440 !file_browser_handler->GetString(keys::kPageActionDefaultTitle, &title)) { 2440 !file_browser_handler->GetString(keys::kPageActionDefaultTitle, &title)) {
2441 *error = ASCIIToUTF16(errors::kInvalidPageActionDefaultTitle); 2441 *error = ASCIIToUTF16(errors::kInvalidPageActionDefaultTitle);
2442 return NULL; 2442 return NULL;
2443 } 2443 }
2444 result->set_title(title); 2444 result->set_title(title);
2445 2445
2446 // Initialize access permissions (optional). 2446 // Initialize access permissions (optional).
2447 ListValue* access_list_value = NULL; 2447 const ListValue* access_list_value = NULL;
2448 if (file_browser_handler->HasKey(keys::kFileAccessList)) { 2448 if (file_browser_handler->HasKey(keys::kFileAccessList)) {
2449 if (!file_browser_handler->GetList(keys::kFileAccessList, 2449 if (!file_browser_handler->GetList(keys::kFileAccessList,
2450 &access_list_value) || 2450 &access_list_value) ||
2451 access_list_value->empty()) { 2451 access_list_value->empty()) {
2452 *error = ASCIIToUTF16(errors::kInvalidFileAccessList); 2452 *error = ASCIIToUTF16(errors::kInvalidFileAccessList);
2453 return NULL; 2453 return NULL;
2454 } 2454 }
2455 for (size_t i = 0; i < access_list_value->GetSize(); ++i) { 2455 for (size_t i = 0; i < access_list_value->GetSize(); ++i) {
2456 std::string access; 2456 std::string access;
2457 if (!access_list_value->GetString(i, &access) || 2457 if (!access_list_value->GetString(i, &access) ||
2458 result->AddFileAccessPermission(access)) { 2458 result->AddFileAccessPermission(access)) {
2459 *error = ExtensionErrorUtils::FormatErrorMessageUTF16( 2459 *error = ExtensionErrorUtils::FormatErrorMessageUTF16(
2460 errors::kInvalidFileAccessValue, base::IntToString(i)); 2460 errors::kInvalidFileAccessValue, base::IntToString(i));
2461 return NULL; 2461 return NULL;
2462 } 2462 }
2463 } 2463 }
2464 } 2464 }
2465 if (!result->ValidateFileAccessPermissions()) { 2465 if (!result->ValidateFileAccessPermissions()) {
2466 *error = ASCIIToUTF16(errors::kInvalidFileAccessList); 2466 *error = ASCIIToUTF16(errors::kInvalidFileAccessList);
2467 return NULL; 2467 return NULL;
2468 } 2468 }
2469 2469
2470 // Initialize file filters (mandatory, unless "create" access is specified, 2470 // Initialize file filters (mandatory, unless "create" access is specified,
2471 // in which case is ignored). 2471 // in which case is ignored).
2472 if (!result->HasCreateAccessPermission()) { 2472 if (!result->HasCreateAccessPermission()) {
2473 ListValue* list_value = NULL; 2473 const ListValue* list_value = NULL;
2474 if (!file_browser_handler->HasKey(keys::kFileFilters) || 2474 if (!file_browser_handler->HasKey(keys::kFileFilters) ||
2475 !file_browser_handler->GetList(keys::kFileFilters, &list_value) || 2475 !file_browser_handler->GetList(keys::kFileFilters, &list_value) ||
2476 list_value->empty()) { 2476 list_value->empty()) {
2477 *error = ASCIIToUTF16(errors::kInvalidFileFiltersList); 2477 *error = ASCIIToUTF16(errors::kInvalidFileFiltersList);
2478 return NULL; 2478 return NULL;
2479 } 2479 }
2480 for (size_t i = 0; i < list_value->GetSize(); ++i) { 2480 for (size_t i = 0; i < list_value->GetSize(); ++i) {
2481 std::string filter; 2481 std::string filter;
2482 if (!list_value->GetString(i, &filter)) { 2482 if (!list_value->GetString(i, &filter)) {
2483 *error = ExtensionErrorUtils::FormatErrorMessageUTF16( 2483 *error = ExtensionErrorUtils::FormatErrorMessageUTF16(
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
2795 if (!LoadThemeTints(theme_value, error)) 2795 if (!LoadThemeTints(theme_value, error))
2796 return false; 2796 return false;
2797 if (!LoadThemeDisplayProperties(theme_value, error)) 2797 if (!LoadThemeDisplayProperties(theme_value, error))
2798 return false; 2798 return false;
2799 2799
2800 return true; 2800 return true;
2801 } 2801 }
2802 2802
2803 bool Extension::LoadThemeImages(const DictionaryValue* theme_value, 2803 bool Extension::LoadThemeImages(const DictionaryValue* theme_value,
2804 string16* error) { 2804 string16* error) {
2805 DictionaryValue* images_value = NULL; 2805 const DictionaryValue* images_value = NULL;
2806 if (theme_value->GetDictionary(keys::kThemeImages, &images_value)) { 2806 if (theme_value->GetDictionary(keys::kThemeImages, &images_value)) {
2807 // Validate that the images are all strings 2807 // Validate that the images are all strings
2808 for (DictionaryValue::key_iterator iter = images_value->begin_keys(); 2808 for (DictionaryValue::key_iterator iter = images_value->begin_keys();
2809 iter != images_value->end_keys(); ++iter) { 2809 iter != images_value->end_keys(); ++iter) {
2810 std::string val; 2810 std::string val;
2811 if (!images_value->GetString(*iter, &val)) { 2811 if (!images_value->GetString(*iter, &val)) {
2812 *error = ASCIIToUTF16(errors::kInvalidThemeImages); 2812 *error = ASCIIToUTF16(errors::kInvalidThemeImages);
2813 return false; 2813 return false;
2814 } 2814 }
2815 } 2815 }
2816 theme_images_.reset(images_value->DeepCopy()); 2816 theme_images_.reset(images_value->DeepCopy());
2817 } 2817 }
2818 return true; 2818 return true;
2819 } 2819 }
2820 2820
2821 bool Extension::LoadThemeColors(const DictionaryValue* theme_value, 2821 bool Extension::LoadThemeColors(const DictionaryValue* theme_value,
2822 string16* error) { 2822 string16* error) {
2823 DictionaryValue* colors_value = NULL; 2823 const DictionaryValue* colors_value = NULL;
2824 if (theme_value->GetDictionary(keys::kThemeColors, &colors_value)) { 2824 if (theme_value->GetDictionary(keys::kThemeColors, &colors_value)) {
2825 // Validate that the colors are RGB or RGBA lists 2825 // Validate that the colors are RGB or RGBA lists
2826 for (DictionaryValue::key_iterator iter = colors_value->begin_keys(); 2826 for (DictionaryValue::key_iterator iter = colors_value->begin_keys();
2827 iter != colors_value->end_keys(); ++iter) { 2827 iter != colors_value->end_keys(); ++iter) {
2828 ListValue* color_list = NULL; 2828 const ListValue* color_list = NULL;
2829 double alpha = 0.0; 2829 double alpha = 0.0;
2830 int color = 0; 2830 int color = 0;
2831 // The color must be a list 2831 // The color must be a list
2832 if (!colors_value->GetListWithoutPathExpansion(*iter, &color_list) || 2832 if (!colors_value->GetListWithoutPathExpansion(*iter, &color_list) ||
2833 // And either 3 items (RGB) or 4 (RGBA) 2833 // And either 3 items (RGB) or 4 (RGBA)
2834 ((color_list->GetSize() != 3) && 2834 ((color_list->GetSize() != 3) &&
2835 ((color_list->GetSize() != 4) || 2835 ((color_list->GetSize() != 4) ||
2836 // For RGBA, the fourth item must be a real or int alpha value. 2836 // For RGBA, the fourth item must be a real or int alpha value.
2837 // Note that GetDouble() can get an integer value. 2837 // Note that GetDouble() can get an integer value.
2838 !color_list->GetDouble(3, &alpha))) || 2838 !color_list->GetDouble(3, &alpha))) ||
2839 // For both RGB and RGBA, the first three items must be ints (R,G,B) 2839 // For both RGB and RGBA, the first three items must be ints (R,G,B)
2840 !color_list->GetInteger(0, &color) || 2840 !color_list->GetInteger(0, &color) ||
2841 !color_list->GetInteger(1, &color) || 2841 !color_list->GetInteger(1, &color) ||
2842 !color_list->GetInteger(2, &color)) { 2842 !color_list->GetInteger(2, &color)) {
2843 *error = ASCIIToUTF16(errors::kInvalidThemeColors); 2843 *error = ASCIIToUTF16(errors::kInvalidThemeColors);
2844 return false; 2844 return false;
2845 } 2845 }
2846 } 2846 }
2847 theme_colors_.reset(colors_value->DeepCopy()); 2847 theme_colors_.reset(colors_value->DeepCopy());
2848 } 2848 }
2849 return true; 2849 return true;
2850 } 2850 }
2851 2851
2852 bool Extension::LoadThemeTints(const DictionaryValue* theme_value, 2852 bool Extension::LoadThemeTints(const DictionaryValue* theme_value,
2853 string16* error) { 2853 string16* error) {
2854 DictionaryValue* tints_value = NULL; 2854 const DictionaryValue* tints_value = NULL;
2855 if (theme_value->GetDictionary(keys::kThemeTints, &tints_value)) { 2855 if (theme_value->GetDictionary(keys::kThemeTints, &tints_value)) {
2856 // Validate that the tints are all reals. 2856 // Validate that the tints are all reals.
2857 for (DictionaryValue::key_iterator iter = tints_value->begin_keys(); 2857 for (DictionaryValue::key_iterator iter = tints_value->begin_keys();
2858 iter != tints_value->end_keys(); ++iter) { 2858 iter != tints_value->end_keys(); ++iter) {
2859 ListValue* tint_list = NULL; 2859 const ListValue* tint_list = NULL;
2860 double v = 0.0; 2860 double v = 0.0;
2861 if (!tints_value->GetListWithoutPathExpansion(*iter, &tint_list) || 2861 if (!tints_value->GetListWithoutPathExpansion(*iter, &tint_list) ||
2862 tint_list->GetSize() != 3 || 2862 tint_list->GetSize() != 3 ||
2863 !tint_list->GetDouble(0, &v) || 2863 !tint_list->GetDouble(0, &v) ||
2864 !tint_list->GetDouble(1, &v) || 2864 !tint_list->GetDouble(1, &v) ||
2865 !tint_list->GetDouble(2, &v)) { 2865 !tint_list->GetDouble(2, &v)) {
2866 *error = ASCIIToUTF16(errors::kInvalidThemeTints); 2866 *error = ASCIIToUTF16(errors::kInvalidThemeTints);
2867 return false; 2867 return false;
2868 } 2868 }
2869 } 2869 }
2870 theme_tints_.reset(tints_value->DeepCopy()); 2870 theme_tints_.reset(tints_value->DeepCopy());
2871 } 2871 }
2872 return true; 2872 return true;
2873 } 2873 }
2874 2874
2875 bool Extension::LoadThemeDisplayProperties(const DictionaryValue* theme_value, 2875 bool Extension::LoadThemeDisplayProperties(const DictionaryValue* theme_value,
2876 string16* error) { 2876 string16* error) {
2877 DictionaryValue* display_properties_value = NULL; 2877 const DictionaryValue* display_properties_value = NULL;
2878 if (theme_value->GetDictionary(keys::kThemeDisplayProperties, 2878 if (theme_value->GetDictionary(keys::kThemeDisplayProperties,
2879 &display_properties_value)) { 2879 &display_properties_value)) {
2880 theme_display_properties_.reset( 2880 theme_display_properties_.reset(
2881 display_properties_value->DeepCopy()); 2881 display_properties_value->DeepCopy());
2882 } 2882 }
2883 return true; 2883 return true;
2884 } 2884 }
2885 2885
2886 // static 2886 // static
2887 bool Extension::IsTrustedId(const std::string& id) { 2887 bool Extension::IsTrustedId(const std::string& id) {
(...skipping 996 matching lines...) Expand 10 before | Expand all | Expand 10 after
3884 3884
3885 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( 3885 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo(
3886 const Extension* extension, 3886 const Extension* extension,
3887 const PermissionSet* permissions, 3887 const PermissionSet* permissions,
3888 Reason reason) 3888 Reason reason)
3889 : reason(reason), 3889 : reason(reason),
3890 extension(extension), 3890 extension(extension),
3891 permissions(permissions) {} 3891 permissions(permissions) {}
3892 3892
3893 } // namespace extensions 3893 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/common/extensions/api/extension_api_unittest.cc ('k') | chrome/common/extensions/features/feature.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698