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

Unified Diff: content/renderer/render_view_impl.cc

Issue 12052023: Add "frame to navigate" to NavigationEntry and plumb it to the RenderViewImpl (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updates Created 7 years, 11 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/renderer/render_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 27954584dafce499c41ee8b697137e7d099287c6..9474343e7761b311200ba2249a370a6f94adef7a 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -1132,8 +1132,15 @@ void RenderViewImpl::OnNavigate(const ViewMsg_Navigate_Params& params) {
GetContentClient()->SetActiveURL(params.url);
- WebFrame* main_frame = webview()->mainFrame();
- if (is_reload && main_frame->currentHistoryItem().isNull()) {
+ WebFrame* frame = webview()->mainFrame();
+ if (!params.frame_to_navigate.empty()) {
+ frame = webview()->findFrameByName(
+ WebString::fromUTF8(params.frame_to_navigate));
+ if (!frame)
+ return;
Charlie Reis 2013/01/23 01:38:45 Is there any way to trigger a navigation error ins
jochen (gone - plz use gerrit) 2013/01/23 08:22:42 There is no code path to report an error back. If
Charlie Reis 2013/01/23 18:38:17 Ok, since it's just for tests, that seems like it
+ }
+
+ if (is_reload && frame->currentHistoryItem().isNull()) {
// We cannot reload if we do not have any history state. This happens, for
// example, when recovering from a crash. Our workaround here is a bit of
// a hack since it means that reload after a crashed tab does not cause an
@@ -1155,9 +1162,9 @@ void RenderViewImpl::OnNavigate(const ViewMsg_Navigate_Params& params) {
ViewMsg_Navigate_Type::RELOAD_IGNORING_CACHE);
if (reload_original_url)
- main_frame->reloadWithOverrideURL(params.url, true);
+ frame->reloadWithOverrideURL(params.url, true);
else
- main_frame->reload(ignore_cache);
+ frame->reload(ignore_cache);
} else if (!params.state.empty()) {
// We must know the page ID of the page we are navigating back to.
DCHECK_NE(params.page_id, -1);
@@ -1166,13 +1173,13 @@ void RenderViewImpl::OnNavigate(const ViewMsg_Navigate_Params& params) {
// Ensure we didn't save the swapped out URL in UpdateState, since the
// browser should never be telling us to navigate to swappedout://.
CHECK(item.urlString() != WebString::fromUTF8(kSwappedOutURL));
- main_frame->loadHistoryItem(item);
+ frame->loadHistoryItem(item);
}
} else if (!params.base_url_for_data_url.is_empty()) {
// A loadData request with a specified base URL.
std::string mime_type, charset, data;
if (net::DataURL::Parse(params.url, &mime_type, &charset, &data)) {
- main_frame->loadData(
+ frame->loadData(
WebData(data.c_str(), data.length()),
WebString::fromUTF8(mime_type),
WebString::fromUTF8(charset),
@@ -1190,7 +1197,7 @@ void RenderViewImpl::OnNavigate(const ViewMsg_Navigate_Params& params) {
// A session history navigation should have been accompanied by state.
CHECK_EQ(params.page_id, -1);
- if (main_frame->isViewSourceModeEnabled())
+ if (frame->isViewSourceModeEnabled())
Charlie Reis 2013/01/23 01:38:45 Do subframes return true here when the main frame
jochen (gone - plz use gerrit) 2013/01/23 08:22:42 a view-source page can't have frames
request.setCachePolicy(WebURLRequest::ReturnCacheDataElseLoad);
if (params.referrer.url.is_valid()) {
@@ -1224,7 +1231,7 @@ void RenderViewImpl::OnNavigate(const ViewMsg_Navigate_Params& params) {
request.setHTTPBody(http_body);
}
- main_frame->loadRequest(request);
+ frame->loadRequest(request);
}
// In case LoadRequest failed before DidCreateDataSource was called.
« content/public/browser/navigation_entry.h ('K') | « content/renderer/render_view_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698