summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStuart Morgan <stuartmorgan@chromium.org>2015-10-28 12:03:01 -0700
committerStuart Morgan <stuartmorgan@chromium.org>2015-10-28 19:04:59 +0000
commita75027e2120a46929924de4f54b915e10a89fbdb (patch)
tree2c983da27011f6334c328aefe160b790bd72c67a
parent16b82d6e33b05e47e12464b0df3e5b42b5d4317d (diff)
downloadchromium_src-a75027e2120a46929924de4f54b915e10a89fbdb.zip
chromium_src-a75027e2120a46929924de4f54b915e10a89fbdb.tar.gz
chromium_src-a75027e2120a46929924de4f54b915e10a89fbdb.tar.bz2
Fix WKWebView back/forward mapping with WebUI
Since directly loading HTML into a web view doesn't make a WKBackForwardListItem, don't try to map WebUI pages to the current item on load. BUG=547007 Review URL: https://codereview.chromium.org/1422403002 Cr-Commit-Position: refs/heads/master@{#356592} (cherry picked from commit 470e2fc2d3c98980a6b892ca9f505c297fd8b4c1) Review URL: https://codereview.chromium.org/1421553009 . Cr-Commit-Position: refs/branch-heads/2526@{#256} Cr-Branched-From: cb947c0153db0ec02a8abbcb3ca086d88bf6006f-refs/heads/master@{#352221}
-rw-r--r--ios/web/web_state/ui/crw_wk_web_view_web_controller.mm6
1 files changed, 6 insertions, 0 deletions
diff --git a/ios/web/web_state/ui/crw_wk_web_view_web_controller.mm b/ios/web/web_state/ui/crw_wk_web_view_web_controller.mm
index 50cd746..6f29ff8 100644
--- a/ios/web/web_state/ui/crw_wk_web_view_web_controller.mm
+++ b/ios/web/web_state/ui/crw_wk_web_view_web_controller.mm
@@ -744,6 +744,12 @@ WKWebViewErrorSource WKWebViewErrorSourceFromError(NSError* error) {
}
- (void)updateCurrentBackForwardListItemHolder {
+ // WebUI pages (which are loaded via loadHTMLString:baseURL:) have no entry
+ // in the back/forward list, so the current item will still be the previous
+ // page, and should not be associated.
+ if (_webUIManager)
+ return;
+
web::WKBackForwardListItemHolder* holder =
[self currentBackForwardListItemHolder];
// If |decidePolicyForNavigationAction| gets called for every load,