OLD | NEW |
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 "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_path.h" | 10 #include "base/file_path.h" |
(...skipping 1426 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1437 !LoadPlugins(error) || | 1437 !LoadPlugins(error) || |
1438 !LoadNaClModules(error) || | 1438 !LoadNaClModules(error) || |
1439 !LoadWebAccessibleResources(error) || | 1439 !LoadWebAccessibleResources(error) || |
1440 !CheckRequirements(error) || | 1440 !CheckRequirements(error) || |
1441 !LoadDefaultLocale(error) || | 1441 !LoadDefaultLocale(error) || |
1442 !LoadOfflineEnabled(error) || | 1442 !LoadOfflineEnabled(error) || |
1443 !LoadOptionsPage(error) || | 1443 !LoadOptionsPage(error) || |
1444 // LoadBackgroundScripts() must be called before LoadBackgroundPage(). | 1444 // LoadBackgroundScripts() must be called before LoadBackgroundPage(). |
1445 !LoadBackgroundScripts(error) || | 1445 !LoadBackgroundScripts(error) || |
1446 !LoadBackgroundPage(api_permissions, error) || | 1446 !LoadBackgroundPage(api_permissions, error) || |
1447 !LoadBackgroundTransient(api_permissions, error) || | 1447 !LoadBackgroundPersistent(api_permissions, error) || |
1448 !LoadBackgroundAllowJSAccess(api_permissions, error) || | 1448 !LoadBackgroundAllowJSAccess(api_permissions, error) || |
1449 !LoadWebIntentServices(error)) | 1449 !LoadWebIntentServices(error)) |
1450 return false; | 1450 return false; |
1451 | 1451 |
1452 return true; | 1452 return true; |
1453 } | 1453 } |
1454 | 1454 |
1455 bool Extension::LoadVersion(string16* error) { | 1455 bool Extension::LoadVersion(string16* error) { |
1456 std::string version_str; | 1456 std::string version_str; |
1457 if (!manifest_->GetString(keys::kVersion, &version_str)) { | 1457 if (!manifest_->GetString(keys::kVersion, &version_str)) { |
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1859 return false; | 1859 return false; |
1860 } | 1860 } |
1861 background_url_ = bg_page; | 1861 background_url_ = bg_page; |
1862 } else { | 1862 } else { |
1863 background_url_ = GetResourceURL(background_str); | 1863 background_url_ = GetResourceURL(background_str); |
1864 } | 1864 } |
1865 | 1865 |
1866 return true; | 1866 return true; |
1867 } | 1867 } |
1868 | 1868 |
1869 bool Extension::LoadBackgroundTransient( | 1869 bool Extension::LoadBackgroundPersistent( |
1870 const ExtensionAPIPermissionSet& api_permissions, | 1870 const ExtensionAPIPermissionSet& api_permissions, |
1871 string16* error) { | 1871 string16* error) { |
1872 Value* background_transient = NULL; | 1872 Value* background_persistent = NULL; |
1873 if (!api_permissions.count(ExtensionAPIPermission::kExperimental) || | 1873 if (!api_permissions.count(ExtensionAPIPermission::kExperimental) || |
1874 !manifest_->Get(keys::kBackgroundTransient, &background_transient)) | 1874 !manifest_->Get(keys::kBackgroundPersistent, &background_persistent)) |
1875 return true; | 1875 return true; |
1876 | 1876 |
1877 if (!background_transient->IsType(Value::TYPE_BOOLEAN) || | 1877 if (!background_persistent->IsType(Value::TYPE_BOOLEAN) || |
1878 !background_transient->GetAsBoolean(&background_page_is_transient_)) { | 1878 !background_persistent->GetAsBoolean(&background_page_is_persistent_)) { |
1879 *error = ASCIIToUTF16(errors::kInvalidBackgroundTransient); | 1879 *error = ASCIIToUTF16(errors::kInvalidBackgroundPersistent); |
1880 return false; | 1880 return false; |
1881 } | 1881 } |
1882 | 1882 |
1883 if (!has_background_page()) { | 1883 if (!has_background_page()) { |
1884 *error = ASCIIToUTF16(errors::kInvalidBackgroundTransientNoPage); | 1884 *error = ASCIIToUTF16(errors::kInvalidBackgroundPersistentNoPage); |
1885 return false; | 1885 return false; |
1886 } | 1886 } |
1887 | 1887 |
1888 return true; | 1888 return true; |
1889 } | 1889 } |
1890 | 1890 |
1891 bool Extension::LoadBackgroundAllowJSAccess( | 1891 bool Extension::LoadBackgroundAllowJSAccess( |
1892 const ExtensionAPIPermissionSet& api_permissions, | 1892 const ExtensionAPIPermissionSet& api_permissions, |
1893 string16* error) { | 1893 string16* error) { |
1894 Value* allow_js_access = NULL; | 1894 Value* allow_js_access = NULL; |
(...skipping 903 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2798 // See http://b/4946060 for more details. | 2798 // See http://b/4946060 for more details. |
2799 return id == std::string("nckgahadagoaajjgafhacjanaoiihapd"); | 2799 return id == std::string("nckgahadagoaajjgafhacjanaoiihapd"); |
2800 } | 2800 } |
2801 | 2801 |
2802 Extension::Extension(const FilePath& path, | 2802 Extension::Extension(const FilePath& path, |
2803 scoped_ptr<extensions::Manifest> manifest) | 2803 scoped_ptr<extensions::Manifest> manifest) |
2804 : manifest_version_(0), | 2804 : manifest_version_(0), |
2805 incognito_split_mode_(false), | 2805 incognito_split_mode_(false), |
2806 offline_enabled_(false), | 2806 offline_enabled_(false), |
2807 converted_from_user_script_(false), | 2807 converted_from_user_script_(false), |
2808 background_page_is_transient_(false), | 2808 background_page_is_persistent_(true), |
2809 allow_background_js_access_(true), | 2809 allow_background_js_access_(true), |
2810 manifest_(manifest.release()), | 2810 manifest_(manifest.release()), |
2811 is_storage_isolated_(false), | 2811 is_storage_isolated_(false), |
2812 launch_container_(extension_misc::LAUNCH_TAB), | 2812 launch_container_(extension_misc::LAUNCH_TAB), |
2813 launch_width_(0), | 2813 launch_width_(0), |
2814 launch_height_(0), | 2814 launch_height_(0), |
2815 wants_file_access_(false), | 2815 wants_file_access_(false), |
2816 creation_flags_(0) { | 2816 creation_flags_(0) { |
2817 DCHECK(path.empty() || path.IsAbsolute()); | 2817 DCHECK(path.empty() || path.IsAbsolute()); |
2818 path_ = MaybeNormalizePath(path); | 2818 path_ = MaybeNormalizePath(path); |
(...skipping 828 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3647 already_disabled(false), | 3647 already_disabled(false), |
3648 extension(extension) {} | 3648 extension(extension) {} |
3649 | 3649 |
3650 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( | 3650 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( |
3651 const Extension* extension, | 3651 const Extension* extension, |
3652 const ExtensionPermissionSet* permissions, | 3652 const ExtensionPermissionSet* permissions, |
3653 Reason reason) | 3653 Reason reason) |
3654 : reason(reason), | 3654 : reason(reason), |
3655 extension(extension), | 3655 extension(extension), |
3656 permissions(permissions) {} | 3656 permissions(permissions) {} |
OLD | NEW |