| OLD | NEW |
| 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 #ifndef EXTENSIONS_COMMON_EXTENSION_H_ | 5 #ifndef EXTENSIONS_COMMON_EXTENSION_H_ |
| 6 #define EXTENSIONS_COMMON_EXTENSION_H_ | 6 #define EXTENSIONS_COMMON_EXTENSION_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <memory> |
| 9 #include <set> | 10 #include <set> |
| 10 #include <string> | 11 #include <string> |
| 11 #include <vector> | 12 #include <vector> |
| 12 | 13 |
| 13 #include "base/files/file_path.h" | 14 #include "base/files/file_path.h" |
| 14 #include "base/macros.h" | 15 #include "base/macros.h" |
| 15 #include "base/memory/linked_ptr.h" | 16 #include "base/memory/linked_ptr.h" |
| 16 #include "base/memory/ref_counted.h" | 17 #include "base/memory/ref_counted.h" |
| 17 #include "base/memory/scoped_ptr.h" | |
| 18 #include "base/threading/thread_checker.h" | 18 #include "base/threading/thread_checker.h" |
| 19 #include "extensions/common/extension_resource.h" | 19 #include "extensions/common/extension_resource.h" |
| 20 #include "extensions/common/install_warning.h" | 20 #include "extensions/common/install_warning.h" |
| 21 #include "extensions/common/manifest.h" | 21 #include "extensions/common/manifest.h" |
| 22 #include "extensions/common/url_pattern_set.h" | 22 #include "extensions/common/url_pattern_set.h" |
| 23 #include "url/gurl.h" | 23 #include "url/gurl.h" |
| 24 | 24 |
| 25 #if !defined(ENABLE_EXTENSIONS) | 25 #if !defined(ENABLE_EXTENSIONS) |
| 26 #error "Extensions must be enabled" | 26 #error "Extensions must be enabled" |
| 27 #endif | 27 #endif |
| (...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 352 | 352 |
| 353 // Chooses the extension ID for an extension based on a variety of criteria. | 353 // Chooses the extension ID for an extension based on a variety of criteria. |
| 354 // The chosen ID will be set in |manifest|. | 354 // The chosen ID will be set in |manifest|. |
| 355 static bool InitExtensionID(extensions::Manifest* manifest, | 355 static bool InitExtensionID(extensions::Manifest* manifest, |
| 356 const base::FilePath& path, | 356 const base::FilePath& path, |
| 357 const ExtensionId& explicit_id, | 357 const ExtensionId& explicit_id, |
| 358 int creation_flags, | 358 int creation_flags, |
| 359 base::string16* error); | 359 base::string16* error); |
| 360 | 360 |
| 361 Extension(const base::FilePath& path, | 361 Extension(const base::FilePath& path, |
| 362 scoped_ptr<extensions::Manifest> manifest); | 362 std::unique_ptr<extensions::Manifest> manifest); |
| 363 virtual ~Extension(); | 363 virtual ~Extension(); |
| 364 | 364 |
| 365 // Initialize the extension from a parsed manifest. | 365 // Initialize the extension from a parsed manifest. |
| 366 // TODO(aa): Rename to just Init()? There's no Value here anymore. | 366 // TODO(aa): Rename to just Init()? There's no Value here anymore. |
| 367 // TODO(aa): It is really weird the way this class essentially contains a copy | 367 // TODO(aa): It is really weird the way this class essentially contains a copy |
| 368 // of the underlying DictionaryValue in its members. We should decide to | 368 // of the underlying DictionaryValue in its members. We should decide to |
| 369 // either wrap the DictionaryValue and go with that only, or we should parse | 369 // either wrap the DictionaryValue and go with that only, or we should parse |
| 370 // into strong types and discard the value. But doing both is bad. | 370 // into strong types and discard the value. But doing both is bad. |
| 371 bool InitFromValue(int flags, base::string16* error); | 371 bool InitFromValue(int flags, base::string16* error); |
| 372 | 372 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 417 | 417 |
| 418 // The absolute path to the directory the extension is stored in. | 418 // The absolute path to the directory the extension is stored in. |
| 419 base::FilePath path_; | 419 base::FilePath path_; |
| 420 | 420 |
| 421 // Defines the set of URLs in the extension's web content. | 421 // Defines the set of URLs in the extension's web content. |
| 422 URLPatternSet extent_; | 422 URLPatternSet extent_; |
| 423 | 423 |
| 424 // The parser for the manifest's permissions. This is NULL anytime not during | 424 // The parser for the manifest's permissions. This is NULL anytime not during |
| 425 // initialization. | 425 // initialization. |
| 426 // TODO(rdevlin.cronin): This doesn't really belong here. | 426 // TODO(rdevlin.cronin): This doesn't really belong here. |
| 427 scoped_ptr<PermissionsParser> permissions_parser_; | 427 std::unique_ptr<PermissionsParser> permissions_parser_; |
| 428 | 428 |
| 429 // The active permissions for the extension. | 429 // The active permissions for the extension. |
| 430 scoped_ptr<PermissionsData> permissions_data_; | 430 std::unique_ptr<PermissionsData> permissions_data_; |
| 431 | 431 |
| 432 // Any warnings that occurred when trying to create/parse the extension. | 432 // Any warnings that occurred when trying to create/parse the extension. |
| 433 std::vector<InstallWarning> install_warnings_; | 433 std::vector<InstallWarning> install_warnings_; |
| 434 | 434 |
| 435 // The base extension url for the extension. | 435 // The base extension url for the extension. |
| 436 GURL extension_url_; | 436 GURL extension_url_; |
| 437 | 437 |
| 438 // The extension's version. | 438 // The extension's version. |
| 439 scoped_ptr<base::Version> version_; | 439 std::unique_ptr<base::Version> version_; |
| 440 | 440 |
| 441 // The extension's user visible version name. | 441 // The extension's user visible version name. |
| 442 std::string version_name_; | 442 std::string version_name_; |
| 443 | 443 |
| 444 // An optional longer description of the extension. | 444 // An optional longer description of the extension. |
| 445 std::string description_; | 445 std::string description_; |
| 446 | 446 |
| 447 // True if the extension was generated from a user script. (We show slightly | 447 // True if the extension was generated from a user script. (We show slightly |
| 448 // different UI if so). | 448 // different UI if so). |
| 449 bool converted_from_user_script_; | 449 bool converted_from_user_script_; |
| 450 | 450 |
| 451 // The public key used to sign the contents of the crx package. | 451 // The public key used to sign the contents of the crx package. |
| 452 std::string public_key_; | 452 std::string public_key_; |
| 453 | 453 |
| 454 // The manifest from which this extension was created. | 454 // The manifest from which this extension was created. |
| 455 scoped_ptr<Manifest> manifest_; | 455 std::unique_ptr<Manifest> manifest_; |
| 456 | 456 |
| 457 // Stored parsed manifest data. | 457 // Stored parsed manifest data. |
| 458 using ManifestDataMap = std::map<std::string, scoped_ptr<ManifestData>>; | 458 using ManifestDataMap = std::map<std::string, std::unique_ptr<ManifestData>>; |
| 459 ManifestDataMap manifest_data_; | 459 ManifestDataMap manifest_data_; |
| 460 | 460 |
| 461 // Set to true at the end of InitValue when initialization is finished. | 461 // Set to true at the end of InitValue when initialization is finished. |
| 462 bool finished_parsing_manifest_; | 462 bool finished_parsing_manifest_; |
| 463 | 463 |
| 464 // Ensures that any call to GetManifestData() prior to finishing | 464 // Ensures that any call to GetManifestData() prior to finishing |
| 465 // initialization happens from the same thread (this can happen when certain | 465 // initialization happens from the same thread (this can happen when certain |
| 466 // parts of the initialization process need information from previous parts). | 466 // parts of the initialization process need information from previous parts). |
| 467 base::ThreadChecker thread_checker_; | 467 base::ThreadChecker thread_checker_; |
| 468 | 468 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 488 typedef std::vector<ExtensionId> ExtensionIdList; | 488 typedef std::vector<ExtensionId> ExtensionIdList; |
| 489 | 489 |
| 490 // Handy struct to pass core extension info around. | 490 // Handy struct to pass core extension info around. |
| 491 struct ExtensionInfo { | 491 struct ExtensionInfo { |
| 492 ExtensionInfo(const base::DictionaryValue* manifest, | 492 ExtensionInfo(const base::DictionaryValue* manifest, |
| 493 const ExtensionId& id, | 493 const ExtensionId& id, |
| 494 const base::FilePath& path, | 494 const base::FilePath& path, |
| 495 Manifest::Location location); | 495 Manifest::Location location); |
| 496 ~ExtensionInfo(); | 496 ~ExtensionInfo(); |
| 497 | 497 |
| 498 scoped_ptr<base::DictionaryValue> extension_manifest; | 498 std::unique_ptr<base::DictionaryValue> extension_manifest; |
| 499 ExtensionId extension_id; | 499 ExtensionId extension_id; |
| 500 base::FilePath extension_path; | 500 base::FilePath extension_path; |
| 501 Manifest::Location extension_location; | 501 Manifest::Location extension_location; |
| 502 | 502 |
| 503 private: | 503 private: |
| 504 DISALLOW_COPY_AND_ASSIGN(ExtensionInfo); | 504 DISALLOW_COPY_AND_ASSIGN(ExtensionInfo); |
| 505 }; | 505 }; |
| 506 | 506 |
| 507 struct InstalledExtensionInfo { | 507 struct InstalledExtensionInfo { |
| 508 // The extension being installed - this should always be non-NULL. | 508 // The extension being installed - this should always be non-NULL. |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 566 const PermissionSet& permissions; | 566 const PermissionSet& permissions; |
| 567 | 567 |
| 568 UpdatedExtensionPermissionsInfo(const Extension* extension, | 568 UpdatedExtensionPermissionsInfo(const Extension* extension, |
| 569 const PermissionSet& permissions, | 569 const PermissionSet& permissions, |
| 570 Reason reason); | 570 Reason reason); |
| 571 }; | 571 }; |
| 572 | 572 |
| 573 } // namespace extensions | 573 } // namespace extensions |
| 574 | 574 |
| 575 #endif // EXTENSIONS_COMMON_EXTENSION_H_ | 575 #endif // EXTENSIONS_COMMON_EXTENSION_H_ |
| OLD | NEW |