summaryrefslogtreecommitdiffstats
path: root/chrome_frame/navigation_constraints.h
diff options
context:
space:
mode:
authorrogerta@chromium.org <rogerta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-15 14:45:05 +0000
committerrogerta@chromium.org <rogerta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-15 14:45:05 +0000
commit0753db59d038d9a7feaf11f02e4df7587a2b4d1f (patch)
tree338094b1771c1a9d82e74e5c743d924fb01b44ec /chrome_frame/navigation_constraints.h
parent74ca044ddeb27bca294a88f397e85429ce28e2b6 (diff)
downloadchromium_src-0753db59d038d9a7feaf11f02e4df7587a2b4d1f.zip
chromium_src-0753db59d038d9a7feaf11f02e4df7587a2b4d1f.tar.gz
chromium_src-0753db59d038d9a7feaf11f02e4df7587a2b4d1f.tar.bz2
Fixing a regression introduced with r69101, which now prevents Chrome Frame
from loading chrome extension URL in privileged mode using the NPAPI plugin. The behaviour that was implemented only for the ActiveX control has been moved into the base class NavigationConstraintsImpl, which both the ActieX and NPAPI plugin derive from. TEST=Added new unit tests for this case BUG=0 Review URL: http://codereview.chromium.org/5814004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69257 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/navigation_constraints.h')
-rw-r--r--chrome_frame/navigation_constraints.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/chrome_frame/navigation_constraints.h b/chrome_frame/navigation_constraints.h
index a66cdeb..fe24558 100644
--- a/chrome_frame/navigation_constraints.h
+++ b/chrome_frame/navigation_constraints.h
@@ -23,15 +23,27 @@ class NavigationConstraints {
// Provides default implementation for the NavigationConstraints interface.
class NavigationConstraintsImpl : public NavigationConstraints {
public:
+ NavigationConstraintsImpl();
virtual ~NavigationConstraintsImpl() {}
// NavigationConstraints method overrides.
virtual bool AllowUnsafeUrls();
virtual bool IsSchemeAllowed(const GURL& url);
virtual bool IsZoneAllowed(const GURL& url);
+
+ bool is_privileged() const;
+ void set_is_privileged(bool is_privileged);
+
private:
base::win::ScopedComPtr<IInternetSecurityManager> security_manager_;
+
+ // The plugin is privileged if it is:
+ // * Invoked by a window running under the system principal in FireFox.
+ // * Being hosted by a custom host exposing the SID_ChromeFramePrivileged
+ // service.
+ //
+ // When privileged, additional interfaces are made available to the user.
+ bool is_privileged_;
};
#endif // CHROME_FRAME_NAVIGATION_CONSTRAINTS_H_
-