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

Unified Diff: chrome_frame/utils.cc

Issue 5698005: Add support for gcf:about:plugins in chrome frame full tab mode. The URL vali... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years 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 side-by-side diff with in-line comments
Download patch
« chrome_frame/test/util_unittests.cc ('K') | « chrome_frame/utils.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome_frame/utils.cc
===================================================================
--- chrome_frame/utils.cc (revision 68604)
+++ chrome_frame/utils.cc (working copy)
@@ -29,6 +29,7 @@
#include "chrome/common/chrome_paths_internal.h"
#include "chrome/common/url_constants.h"
#include "chrome/installer/util/chrome_frame_distribution.h"
+#include "chrome_frame/chrome_frame_delegate.h"
#include "chrome_frame/extra_system_apis.h"
#include "chrome_frame/html_utils.h"
#include "chrome_frame/policy_settings.h"
@@ -39,6 +40,9 @@
#include "net/base/escape.h"
#include "net/http/http_util.h"
+// Include without path to make GYP build see it.
+#include "chrome_tab.h" // NOLINT
+
using base::win::RegKey;
using base::win::ScopedComPtr;
@@ -1423,44 +1427,30 @@
profile_name_.clear();
}
-bool CanNavigate(const GURL& url, IInternetSecurityManager* security_manager,
- bool is_privileged) {
+bool CanNavigate(const GURL& url,
+ NavigationConstraints* navigation_constraints) {
if (!url.is_valid()) {
DLOG(ERROR) << "Invalid URL passed to InitiateNavigation: " << url;
return false;
}
+ if (!navigation_constraints)
amit 2010/12/10 23:56:17 We must have navigation_constraints, so crash if w
ananta 2010/12/11 02:11:11 Replaced with a NOTREACHED and return false.
+ return true;
+
// No sanity checks if unsafe URLs are allowed
- if (GetConfigBool(false, kAllowUnsafeURLs))
+ if (navigation_constraints->AllowUnsafeUrls())
return true;
- if (!IsValidUrlScheme(url, is_privileged)) {
+ if (!navigation_constraints->IsSchemeAllowed(url)) {
DLOG(WARNING) << __FUNCTION__ << " Disallowing navigation to url: " << url;
return false;
}
- // Allow only about:blank or about:version
- if (url.SchemeIs(chrome::kAboutScheme)) {
- if (!LowerCaseEqualsASCII(url.spec(), chrome::kAboutBlankURL) &&
- !LowerCaseEqualsASCII(url.spec(), chrome::kAboutVersionURL)) {
- DLOG(WARNING) << __FUNCTION__
- << " Disallowing navigation to about url: " << url;
- return false;
- }
+ if (!navigation_constraints->IsZoneAllowed(url)) {
+ DLOG(WARNING) << __FUNCTION__
+ << " Disallowing navigation to restricted url: " << url;
+ return false;
}
-
- // Prevent navigations to URLs in untrusted zone, even in Firefox.
- if (security_manager) {
- DWORD zone = URLZONE_INVALID;
- std::wstring unicode_url = UTF8ToWide(url.spec());
- security_manager->MapUrlToZone(unicode_url.c_str(), &zone, 0);
- if (zone == URLZONE_UNTRUSTED) {
- DLOG(WARNING) << __FUNCTION__
- << " Disallowing navigation to restricted url: " << url;
- return false;
- }
- }
-
return true;
}
@@ -1576,3 +1566,14 @@
++url_list;
}
}
+
+bool IsChromeFrameDocument(IWebBrowser2* web_browser) {
+ ScopedComPtr<IDispatch> doc;
+ web_browser->get_Document(doc.Receive());
+ if (doc) {
+ ScopedComPtr<IChromeFrame> chrome_frame;
+ if (chrome_frame.QueryFrom(doc) == S_OK)
+ return true;
+ }
+ return false;
+}
« chrome_frame/test/util_unittests.cc ('K') | « chrome_frame/utils.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698