summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chromium/content/browser/renderer_host/navigation_controller_impl.cc4
-rw-r--r--chromium/content/common/navigation_client.mojom2
-rw-r--r--chromium/content/renderer/render_frame_impl.cc4
3 files changed, 10 insertions, 0 deletions
diff --git a/chromium/content/browser/renderer_host/navigation_controller_impl.cc b/chromium/content/browser/renderer_host/navigation_controller_impl.cc
index 2627b4846c0..908c0ebe17e 100644
--- a/chromium/content/browser/renderer_host/navigation_controller_impl.cc
+++ b/chromium/content/browser/renderer_host/navigation_controller_impl.cc
@@ -1684,6 +1684,8 @@ void NavigationControllerImpl::RendererDidNavigateToNewEntry(
new_entry->SetURL(params.url);
if (update_virtual_url)
UpdateVirtualURLToURL(new_entry.get(), params.url);
+ else if (!params.virtual_url.is_empty())
+ new_entry->SetVirtualURL(params.virtual_url);
new_entry->SetReferrer(Referrer(*params.referrer));
new_entry->SetTransitionType(params.transition);
new_entry->set_site_instance(
@@ -1921,6 +1923,8 @@ void NavigationControllerImpl::RendererDidNavigateToExistingEntry(
entry->SetReferrer(Referrer(*params.referrer));
if (entry->update_virtual_url_with_url())
UpdateVirtualURLToURL(entry, params.url);
+ else if (!params.virtual_url.is_empty())
+ entry->SetVirtualURL(params.virtual_url);
entry->SetOriginalRequestURL(request->GetOriginalRequestURL());
diff --git a/chromium/content/common/navigation_client.mojom b/chromium/content/common/navigation_client.mojom
index 7085eb8e390..5560156827d 100644
--- a/chromium/content/common/navigation_client.mojom
+++ b/chromium/content/common/navigation_client.mojom
@@ -56,6 +56,8 @@ struct DidCommitProvisionalLoadParams {
// URL of the page being loaded.
url.mojom.Url url;
+ url.mojom.Url virtual_url;
+
// URL of the referrer of this load. WebKit generates this based on the
// source of the event that caused the load.
blink.mojom.Referrer referrer;
diff --git a/chromium/content/renderer/render_frame_impl.cc b/chromium/content/renderer/render_frame_impl.cc
index 6c6bfdc1838..09cf0bc111e 100644
--- a/chromium/content/renderer/render_frame_impl.cc
+++ b/chromium/content/renderer/render_frame_impl.cc
@@ -4459,6 +4459,10 @@ RenderFrameImpl::MakeDidCommitProvisionalLoadParams(
// Set the URL to be displayed in the browser UI to the user.
params->url = GetLoadingUrl();
+ if (DocumentState::FromDocumentLoader(document_loader)->was_load_data_with_base_url_request() &&
+ GURL(frame_document.Url()) != params->url)
+ params->virtual_url = frame_document.Url();
+
// TODO(https://crbug.com/1158101): Reconsider how we calculate
// should_update_history.
params->should_update_history =