Index: ios/web/web_state/ui/crw_ui_web_view_web_controller.mm |
diff --git a/ios/web/web_state/ui/crw_ui_web_view_web_controller.mm b/ios/web/web_state/ui/crw_ui_web_view_web_controller.mm |
index 36a9d8355b95e293957d35ffb6490f85408fc391..bd241939dab383377783720c431749e332a380e2 100644 |
--- a/ios/web/web_state/ui/crw_ui_web_view_web_controller.mm |
+++ b/ios/web/web_state/ui/crw_ui_web_view_web_controller.mm |
@@ -531,7 +531,18 @@ const size_t kMaxMessageQueueSize = 262144; |
return web::WEB_VIEW_DOCUMENT_TYPE_UNKNOWN; |
} |
-- (void)loadWebRequest:(NSURLRequest*)request { |
+- (void)loadRequest:(NSMutableURLRequest*)request { |
+ DCHECK(web::GetWebClient()); |
+ GURL requestURL = net::GURLWithNSURL(request.URL); |
+ // If the request is for WebUI, add information to let the network stack |
+ // access the requestGroupID. |
+ if (web::GetWebClient()->IsAppSpecificURL(requestURL)) { |
+ // Sub requests of a chrome:// page will not contain the user agent. |
+ // Instead use the username part of the URL to allow the network stack to |
+ // associate a request to the correct tab. |
+ request.URL = web::AddRequestGroupIDToURL( |
+ request.URL, self.webStateImpl->GetRequestGroupID()); |
+ } |
[_uiWebView loadRequest:request]; |
} |