diff options
-rw-r--r-- | chromium/content/browser/renderer_host/navigation_controller_impl.cc | 4 | ||||
-rw-r--r-- | chromium/content/common/navigation_client.mojom | 2 | ||||
-rw-r--r-- | chromium/content/renderer/render_frame_impl.cc | 4 |
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 = |