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

Unified Diff: ios/web/web_state/ui/crw_web_controller.mm

Issue 2292773002: Disallow WKBackForwardListItem navigations for pushState pages. (Closed)
Patch Set: Fix comment Created 4 years, 4 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/web/web_state/ui/crw_web_controller.mm
diff --git a/ios/web/web_state/ui/crw_web_controller.mm b/ios/web/web_state/ui/crw_web_controller.mm
index ac54fae6cb1165cbe32452f382ac5e5a74d5c55b..b00480f8839552a20b2481b17fdedcf05b3c70c7 100644
--- a/ios/web/web_state/ui/crw_web_controller.mm
+++ b/ios/web/web_state/ui/crw_web_controller.mm
@@ -1853,6 +1853,15 @@ - (void)updateCurrentBackForwardListItemHolder {
// page, and should not be associated.
if (_webUIManager)
return;
+ // The WKWebViewConfiguration's |userScripts| are not injected when navigating
+ // via BFLI to a page created using window.history.pushState. This means that
+ // calling window.history navigation functions will invoke WKWebView's
+ // non-overridden implementations, causing a mismatch between the
+ // WKBackForwardList and NavigationManager.
+ web::NavigationItemImpl* currentItem =
+ [self currentSessionEntry].navigationItemImpl;
+ if (currentItem->IsCreatedFromPushState())
+ return;
web::WKBackForwardListItemHolder* holder =
[self currentBackForwardListItemHolder];
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698