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

Unified Diff: content/browser/web_contents/navigation_controller_impl.cc

Issue 10544175: Add an ability to call WebKit's WebFrame::loadData via NavigationController. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More comments addressed Created 8 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/web_contents/navigation_controller_impl.cc
diff --git a/content/browser/web_contents/navigation_controller_impl.cc b/content/browser/web_contents/navigation_controller_impl.cc
index dc49e94328368eecc10a1caa0d416835b118d46a..c539bbf1ff15fd356ba0dde192fda8037cefe1ed 100644
--- a/content/browser/web_contents/navigation_controller_impl.cc
+++ b/content/browser/web_contents/navigation_controller_impl.cc
@@ -29,6 +29,7 @@
#include "content/public/browser/user_metrics.h"
#include "content/public/browser/web_contents_delegate.h"
#include "content/public/common/content_constants.h"
+#include "content/public/common/url_constants.h"
#include "net/base/escape.h"
#include "net/base/mime_util.h"
#include "net/base/net_util.h"
@@ -623,6 +624,35 @@ void NavigationControllerImpl::LoadURLWithUserAgentOverride(
LoadEntry(entry);
}
+void NavigationControllerImpl::LoadDataWithBaseURL(
+ const GURL& data_url,
+ const content::Referrer& referrer,
+ const GURL& base_url,
+ const GURL& history_url,
+ bool is_overriding_user_agent) {
+ // Make sure we don't allow non-'data:' URLs.
+ if (!data_url.SchemeIs(chrome::kDataScheme)) {
+ NOTREACHED();
+ return;
+ }
+
+ needs_reload_ = false;
+
+ NavigationEntryImpl* entry = NavigationEntryImpl::FromNavigationEntry(
+ CreateNavigationEntry(
+ data_url,
+ referrer,
+ content::PAGE_TRANSITION_TYPED,
+ false,
+ std::string(),
+ browser_context_));
+ entry->SetIsOverridingUserAgent(is_overriding_user_agent);
+ entry->SetBaseURLForDataURL(base_url);
+ entry->SetVirtualURL(history_url);
+
+ LoadEntry(entry);
+}
+
void NavigationControllerImpl::DocumentLoadedInFrame() {
last_document_loaded_ = base::TimeTicks::Now();
}
« no previous file with comments | « content/browser/web_contents/navigation_controller_impl.h ('k') | content/browser/web_contents/navigation_entry_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698