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

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

Issue 12213093: Remove ImageLoadingTracker class (Closed) Base URL: https://git.chromium.org/chromium/src.git@Issue_163929
Patch Set: Fix merge conflict Created 7 years, 10 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
« no previous file with comments | « chrome/chrome_tests_unit.gypi ('k') | chrome/common/extensions/extension.cc » ('j') | 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) 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 CHROME_COMMON_EXTENSIONS_EXTENSION_H_ 5 #ifndef CHROME_COMMON_EXTENSIONS_EXTENSION_H_
6 #define CHROME_COMMON_EXTENSIONS_EXTENSION_H_ 6 #define CHROME_COMMON_EXTENSIONS_EXTENSION_H_
7 7
8 #include <algorithm> 8 #include <algorithm>
9 #include <iosfwd> 9 #include <iosfwd>
10 #include <map> 10 #include <map>
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 287
288 // Expects base64 encoded |input| and formats into |output| including 288 // Expects base64 encoded |input| and formats into |output| including
289 // the appropriate header & footer. 289 // the appropriate header & footer.
290 static bool FormatPEMForFileOutput(const std::string& input, 290 static bool FormatPEMForFileOutput(const std::string& input,
291 std::string* output, 291 std::string* output,
292 bool is_public); 292 bool is_public);
293 293
294 // Given an extension, icon size, and match type, read a valid icon if present 294 // Given an extension, icon size, and match type, read a valid icon if present
295 // and decode it into result. In the browser process, this will DCHECK if not 295 // and decode it into result. In the browser process, this will DCHECK if not
296 // called on the file thread. To easily load extension images on the UI 296 // called on the file thread. To easily load extension images on the UI
297 // thread, see ImageLoadingTracker. 297 // thread, see ImageLoader.
298 static void DecodeIcon(const Extension* extension, 298 static void DecodeIcon(const Extension* extension,
299 int icon_size, 299 int icon_size,
300 ExtensionIconSet::MatchType match_type, 300 ExtensionIconSet::MatchType match_type,
301 scoped_ptr<SkBitmap>* result); 301 scoped_ptr<SkBitmap>* result);
302 302
303 // Given an extension and icon size, read it if present and decode it into 303 // Given an extension and icon size, read it if present and decode it into
304 // result. In the browser process, this will DCHECK if not called on the 304 // result. In the browser process, this will DCHECK if not called on the
305 // file thread. To easily load extension images on the UI thread, see 305 // file thread. To easily load extension images on the UI thread, see
306 // ImageLoadingTracker. 306 // ImageLoader.
307 static void DecodeIcon(const Extension* extension, 307 static void DecodeIcon(const Extension* extension,
308 int icon_size, 308 int icon_size,
309 scoped_ptr<SkBitmap>* result); 309 scoped_ptr<SkBitmap>* result);
310 310
311 // Given an icon_path and icon size, read it if present and decode it into 311 // Given an icon_path and icon size, read it if present and decode it into
312 // result. In the browser process, this will DCHECK if not called on the 312 // result. In the browser process, this will DCHECK if not called on the
313 // file thread. To easily load extension images on the UI thread, see 313 // file thread. To easily load extension images on the UI thread, see
314 // ImageLoadingTracker. 314 // ImageLoader.
315 static void DecodeIconFromPath(const base::FilePath& icon_path, 315 static void DecodeIconFromPath(const base::FilePath& icon_path,
316 int icon_size, 316 int icon_size,
317 scoped_ptr<SkBitmap>* result); 317 scoped_ptr<SkBitmap>* result);
318 318
319 // Returns the default extension/app icon (for extensions or apps that don't 319 // Returns the default extension/app icon (for extensions or apps that don't
320 // have one). 320 // have one).
321 static const gfx::ImageSkia& GetDefaultIcon(bool is_app); 321 static const gfx::ImageSkia& GetDefaultIcon(bool is_app);
322 322
323 // Returns the base extension url for a given |extension_id|. 323 // Returns the base extension url for a given |extension_id|.
324 static GURL GetBaseURLFromExtensionId(const std::string& extension_id); 324 static GURL GetBaseURLFromExtensionId(const std::string& extension_id);
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 std::set<base::FilePath> GetBrowserImages() const; 395 std::set<base::FilePath> GetBrowserImages() const;
396 396
397 // Get an extension icon as a resource or URL. 397 // Get an extension icon as a resource or URL.
398 ExtensionResource GetIconResource( 398 ExtensionResource GetIconResource(
399 int size, ExtensionIconSet::MatchType match_type) const; 399 int size, ExtensionIconSet::MatchType match_type) const;
400 GURL GetIconURL(int size, ExtensionIconSet::MatchType match_type) const; 400 GURL GetIconURL(int size, ExtensionIconSet::MatchType match_type) const;
401 401
402 // Gets the fully resolved absolute launch URL. 402 // Gets the fully resolved absolute launch URL.
403 GURL GetFullLaunchURL() const; 403 GURL GetFullLaunchURL() const;
404 404
405 // Image cache related methods. These are only valid on the UI thread and
406 // not maintained by this class. See ImageLoadingTracker for usage. The
407 // |original_size| parameter should be the size of the image at |source|
408 // before any scaling may have been done to produce the pixels in |image|.
409 void SetCachedImage(const ExtensionResource& source,
410 const SkBitmap& image,
411 const gfx::Size& original_size) const;
412 bool HasCachedImage(const ExtensionResource& source,
413 const gfx::Size& max_size) const;
414 SkBitmap GetCachedImage(const ExtensionResource& source,
415 const gfx::Size& max_size) const;
416
417 // Returns true if this extension can execute script on a page. If a 405 // Returns true if this extension can execute script on a page. If a
418 // UserScript object is passed, permission to run that specific script is 406 // UserScript object is passed, permission to run that specific script is
419 // checked (using its matches list). Otherwise, permission to execute script 407 // checked (using its matches list). Otherwise, permission to execute script
420 // programmatically is checked (using the extension's host permission). 408 // programmatically is checked (using the extension's host permission).
421 // 409 //
422 // This method is also aware of certain special pages that extensions are 410 // This method is also aware of certain special pages that extensions are
423 // usually not allowed to run script on. 411 // usually not allowed to run script on.
424 bool CanExecuteScriptOnPage(const GURL& document_url, 412 bool CanExecuteScriptOnPage(const GURL& document_url,
425 const GURL& top_document_url, 413 const GURL& top_document_url,
426 int tab_id, 414 int tab_id,
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 580
593 // Content pack related. 581 // Content pack related.
594 bool is_content_pack() const; 582 bool is_content_pack() const;
595 ExtensionResource GetContentPackSiteList() const; 583 ExtensionResource GetContentPackSiteList() const;
596 584
597 GURL GetBackgroundURL() const; 585 GURL GetBackgroundURL() const;
598 586
599 private: 587 private:
600 friend class base::RefCountedThreadSafe<Extension>; 588 friend class base::RefCountedThreadSafe<Extension>;
601 589
602 // We keep a cache of images loaded from extension resources based on their
603 // path and a string representation of a size that may have been used to
604 // scale it (or the empty string if the image is at its original size).
605 typedef std::pair<base::FilePath, std::string> ImageCacheKey;
606 typedef std::map<ImageCacheKey, SkBitmap> ImageCache;
607
608 class RuntimeData { 590 class RuntimeData {
609 public: 591 public:
610 RuntimeData(); 592 RuntimeData();
611 explicit RuntimeData(const PermissionSet* active); 593 explicit RuntimeData(const PermissionSet* active);
612 ~RuntimeData(); 594 ~RuntimeData();
613 595
614 void SetActivePermissions(const PermissionSet* active); 596 void SetActivePermissions(const PermissionSet* active);
615 scoped_refptr<const PermissionSet> GetActivePermissions() const; 597 scoped_refptr<const PermissionSet> GetActivePermissions() const;
616 598
617 scoped_refptr<const PermissionSet> GetTabSpecificPermissions(int tab_id) 599 scoped_refptr<const PermissionSet> GetTabSpecificPermissions(int tab_id)
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 bool LoadIncognitoMode(string16* error); 693 bool LoadIncognitoMode(string16* error);
712 bool LoadContentSecurityPolicy(string16* error); 694 bool LoadContentSecurityPolicy(string16* error);
713 bool LoadManagedModeFeatures(string16* error); 695 bool LoadManagedModeFeatures(string16* error);
714 bool LoadManagedModeSites( 696 bool LoadManagedModeSites(
715 const base::DictionaryValue* content_pack_value, 697 const base::DictionaryValue* content_pack_value,
716 string16* error); 698 string16* error);
717 bool LoadManagedModeConfigurations( 699 bool LoadManagedModeConfigurations(
718 const base::DictionaryValue* content_pack_value, 700 const base::DictionaryValue* content_pack_value,
719 string16* error); 701 string16* error);
720 702
721 // Helper function for implementing HasCachedImage/GetCachedImage. A return
722 // value of NULL means there is no matching image cached (we allow caching an
723 // empty SkBitmap).
724 SkBitmap* GetCachedImageImpl(const ExtensionResource& source,
725 const gfx::Size& max_size) const;
726
727 // Helper method that loads a UserScript object from a 703 // Helper method that loads a UserScript object from a
728 // dictionary in the content_script list of the manifest. 704 // dictionary in the content_script list of the manifest.
729 bool LoadUserScriptHelper(const base::DictionaryValue* content_script, 705 bool LoadUserScriptHelper(const base::DictionaryValue* content_script,
730 int definition_index, 706 int definition_index,
731 string16* error, 707 string16* error,
732 UserScript* result); 708 UserScript* result);
733 709
734 // Helper method that loads either the include_globs or exclude_globs list 710 // Helper method that loads either the include_globs or exclude_globs list
735 // from an entry in the content_script lists of the manifest. 711 // from an entry in the content_script lists of the manifest.
736 bool LoadGlobsHelper(const base::DictionaryValue* content_script, 712 bool LoadGlobsHelper(const base::DictionaryValue* content_script,
(...skipping 21 matching lines...) Expand all
758 const APIPermissionSet& permissions) const; 734 const APIPermissionSet& permissions) const;
759 735
760 bool CheckMinimumChromeVersion(string16* error) const; 736 bool CheckMinimumChromeVersion(string16* error) const;
761 737
762 // Check that platform app features are valid. Called after InitFromValue. 738 // Check that platform app features are valid. Called after InitFromValue.
763 bool CheckPlatformAppFeatures(std::string* utf8_error) const; 739 bool CheckPlatformAppFeatures(std::string* utf8_error) const;
764 740
765 // Check that features don't conflict. Called after InitFromValue. 741 // Check that features don't conflict. Called after InitFromValue.
766 bool CheckConflictingFeatures(std::string* utf8_error) const; 742 bool CheckConflictingFeatures(std::string* utf8_error) const;
767 743
768 // Cached images for this extension. This should only be touched on the UI
769 // thread.
770 mutable ImageCache image_cache_;
771
772 // The extension's human-readable name. Name is used for display purpose. It 744 // The extension's human-readable name. Name is used for display purpose. It
773 // might be wrapped with unicode bidi control characters so that it is 745 // might be wrapped with unicode bidi control characters so that it is
774 // displayed correctly in RTL context. 746 // displayed correctly in RTL context.
775 // NOTE: Name is UTF-8 and may contain non-ascii characters. 747 // NOTE: Name is UTF-8 and may contain non-ascii characters.
776 std::string name_; 748 std::string name_;
777 749
778 // A non-localized version of the extension's name. This is useful for 750 // A non-localized version of the extension's name. This is useful for
779 // debug output. 751 // debug output.
780 std::string non_localized_name_; 752 std::string non_localized_name_;
781 753
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
995 967
996 UpdatedExtensionPermissionsInfo( 968 UpdatedExtensionPermissionsInfo(
997 const Extension* extension, 969 const Extension* extension,
998 const PermissionSet* permissions, 970 const PermissionSet* permissions,
999 Reason reason); 971 Reason reason);
1000 }; 972 };
1001 973
1002 } // namespace extensions 974 } // namespace extensions
1003 975
1004 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_H_ 976 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_H_
OLDNEW
« no previous file with comments | « chrome/chrome_tests_unit.gypi ('k') | chrome/common/extensions/extension.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698