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

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

Issue 10443105: Take 2 at implementing activeTab. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: empty -> is_empty Created 8 years, 6 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/chrome_tests.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) 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 #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 #pragma once 7 #pragma once
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <map> 10 #include <map>
(...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 const gfx::Size& max_size) const; 487 const gfx::Size& max_size) const;
488 488
489 // Returns true if this extension can execute script on a page. If a 489 // Returns true if this extension can execute script on a page. If a
490 // UserScript object is passed, permission to run that specific script is 490 // UserScript object is passed, permission to run that specific script is
491 // checked (using its matches list). Otherwise, permission to execute script 491 // checked (using its matches list). Otherwise, permission to execute script
492 // programmatically is checked (using the extension's host permission). 492 // programmatically is checked (using the extension's host permission).
493 // 493 //
494 // This method is also aware of certain special pages that extensions are 494 // This method is also aware of certain special pages that extensions are
495 // usually not allowed to run script on. 495 // usually not allowed to run script on.
496 bool CanExecuteScriptOnPage(const GURL& page_url, 496 bool CanExecuteScriptOnPage(const GURL& page_url,
497 int tab_id,
497 const UserScript* script, 498 const UserScript* script,
498 std::string* error) const; 499 std::string* error) const;
499 500
500 // Returns true if this extension is a COMPONENT extension, or if it is 501 // Returns true if this extension is a COMPONENT extension, or if it is
501 // on the whitelist of extensions that can script all pages. 502 // on the whitelist of extensions that can script all pages.
502 bool CanExecuteScriptEverywhere() const; 503 bool CanExecuteScriptEverywhere() const;
503 504
504 // Returns true if this extension is allowed to obtain the contents of a 505 // Returns true if this extension is allowed to obtain the contents of a
505 // page as an image. Since a page may contain sensitive information, this 506 // page as an image. Since a page may contain sensitive information, this
506 // is restricted to the extension's host permissions as well as the 507 // is restricted to the extension's host permissions as well as the
507 // extension page itself. 508 // extension page itself.
508 bool CanCaptureVisiblePage(const GURL& page_url, std::string* error) const; 509 bool CanCaptureVisiblePage(const GURL& page_url,
510 int tab_id,
511 std::string* error) const;
509 512
510 // Returns true if this extension updates itself using the extension 513 // Returns true if this extension updates itself using the extension
511 // gallery. 514 // gallery.
512 bool UpdatesFromGallery() const; 515 bool UpdatesFromGallery() const;
513 516
514 // Returns true if this extension or app includes areas within |origin|. 517 // Returns true if this extension or app includes areas within |origin|.
515 bool OverlapsWithOrigin(const GURL& origin) const; 518 bool OverlapsWithOrigin(const GURL& origin) const;
516 519
517 // Returns the sync bucket to use for this extension. 520 // Returns the sync bucket to use for this extension.
518 SyncType GetSyncType() const; 521 SyncType GetSyncType() const;
519 522
520 // Returns true if the extension should be synced. 523 // Returns true if the extension should be synced.
521 bool IsSyncable() const; 524 bool IsSyncable() const;
522 525
523 // Returns true if the extension should be displayed in the launcher. 526 // Returns true if the extension should be displayed in the launcher.
524 bool ShouldDisplayInLauncher() const; 527 bool ShouldDisplayInLauncher() const;
525 528
526 // Returns true if the extension should be displayed in the extension 529 // Returns true if the extension should be displayed in the extension
527 // settings page (i.e. chrome://extensions). 530 // settings page (i.e. chrome://extensions).
528 bool ShouldDisplayInExtensionSettings() const; 531 bool ShouldDisplayInExtensionSettings() const;
529 532
530 // Returns true if the extension has a content script declared at |url|. 533 // Returns true if the extension has a content script declared at |url|.
531 bool HasContentScriptAtURL(const GURL& url) const; 534 bool HasContentScriptAtURL(const GURL& url) const;
532 535
533 // Returns an ExtensionAction representing the script badge that should be 536 // Returns an ExtensionAction representing the script badge that should be
534 // shown for this extension in the location bar. 537 // shown for this extension in the location bar.
535 ExtensionAction* GetScriptBadge() const; 538 ExtensionAction* GetScriptBadge() const;
536 539
540 // Gets the tab-specific host permissions of |tab_id|, or NULL if there
541 // aren't any.
542 //
543 // This is a weak pointer. Callers should create a copy before mutating any
544 // tab specific permissions.
545 const URLPatternSet* GetTabSpecificHostPermissions(int tab_id) const;
546
547 // Sets the tab-specific host permissions of |tab_id| to |permissions|.
548 void SetTabSpecificHostPermissions(int tab_id,
549 const URLPatternSet& permissions) const;
550
551 // Clears the tab-specific host permissions of |tab_id|.
552 void ClearTabSpecificHostPermissions(int tab_id) const;
553
537 // Accessors: 554 // Accessors:
538 555
539 const FilePath& path() const { return path_; } 556 const FilePath& path() const { return path_; }
540 const GURL& url() const { return extension_url_; } 557 const GURL& url() const { return extension_url_; }
541 Location location() const; 558 Location location() const;
542 const std::string& id() const; 559 const std::string& id() const;
543 const Version* version() const { return version_.get(); } 560 const Version* version() const { return version_.get(); }
544 const std::string VersionString() const; 561 const std::string VersionString() const;
545 const std::string& name() const { return name_; } 562 const std::string& name() const { return name_; }
546 const std::string& non_localized_name() const { return non_localized_name_; } 563 const std::string& non_localized_name() const { return non_localized_name_; }
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
678 695
679 class RuntimeData { 696 class RuntimeData {
680 public: 697 public:
681 RuntimeData(); 698 RuntimeData();
682 explicit RuntimeData(const ExtensionPermissionSet* active); 699 explicit RuntimeData(const ExtensionPermissionSet* active);
683 ~RuntimeData(); 700 ~RuntimeData();
684 701
685 void SetActivePermissions(const ExtensionPermissionSet* active); 702 void SetActivePermissions(const ExtensionPermissionSet* active);
686 scoped_refptr<const ExtensionPermissionSet> GetActivePermissions() const; 703 scoped_refptr<const ExtensionPermissionSet> GetActivePermissions() const;
687 704
705 const URLPatternSet* GetTabSpecificHostPermissions(int tab_id) const;
706 void SetTabSpecificHostPermissions(int tab_id,
707 const URLPatternSet& permissions);
708 void ClearTabSpecificHostPermissions(int tab_id);
709
688 private: 710 private:
689 friend class base::RefCountedThreadSafe<RuntimeData>; 711 friend class base::RefCountedThreadSafe<RuntimeData>;
712
690 scoped_refptr<const ExtensionPermissionSet> active_permissions_; 713 scoped_refptr<const ExtensionPermissionSet> active_permissions_;
714
715 typedef std::map<int, linked_ptr<const URLPatternSet> >
716 TabHostPermissionsMap;
717 TabHostPermissionsMap tab_specific_host_permissions_;
691 }; 718 };
692 719
693 // Chooses the extension ID for an extension based on a variety of criteria. 720 // Chooses the extension ID for an extension based on a variety of criteria.
694 // The chosen ID will be set in |manifest|. 721 // The chosen ID will be set in |manifest|.
695 static bool InitExtensionID(extensions::Manifest* manifest, 722 static bool InitExtensionID(extensions::Manifest* manifest,
696 const FilePath& path, 723 const FilePath& path,
697 const std::string& explicit_id, 724 const std::string& explicit_id,
698 int creation_flags, 725 int creation_flags,
699 string16* error); 726 string16* error);
700 727
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
1136 1163
1137 UpdatedExtensionPermissionsInfo( 1164 UpdatedExtensionPermissionsInfo(
1138 const Extension* extension, 1165 const Extension* extension,
1139 const ExtensionPermissionSet* permissions, 1166 const ExtensionPermissionSet* permissions,
1140 Reason reason); 1167 Reason reason);
1141 }; 1168 };
1142 1169
1143 } // namespace extensions 1170 } // namespace extensions
1144 1171
1145 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_H_ 1172 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_H_
OLDNEW
« no previous file with comments | « chrome/chrome_tests.gypi ('k') | chrome/common/extensions/extension.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698