From 7b45b7ae4b175afdfdb512ed87f425cc4f402f51 Mon Sep 17 00:00:00 2001 From: Ruslan Aliev Date: Sun, 3 Dec 2017 12:27:40 +0400 Subject: [PATCH] Fix back button on Firefox and Safari Firefox (and Safari) uses bfcache (back-forward cache) to load re-visited pages. The solution is to force a reload when page is loaded from bfcache, so back button will work correctly. More information can be found here [1] and here [2]. [1] https://madhatted.com/2013/6/16/you-do-not-understand-browser-history [2] https://stackoverflow.com/questions/8788802/prevent-safari-loading-from-cache-when-back-button-is-clicked Change-Id: If023bca7c73f983e55c383856e304379c7b8be3a Closes-bug: #1686315 --- horizon/static/horizon/js/horizon.hacks.js | 24 +++++++++++++++++++ .../templates/horizon/_scripts.html | 1 + 2 files changed, 25 insertions(+) create mode 100644 horizon/static/horizon/js/horizon.hacks.js diff --git a/horizon/static/horizon/js/horizon.hacks.js b/horizon/static/horizon/js/horizon.hacks.js new file mode 100644 index 0000000000..d1db9fa93a --- /dev/null +++ b/horizon/static/horizon/js/horizon.hacks.js @@ -0,0 +1,24 @@ +/** + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +// Added so that we can break Firefox and Safari bfcache to +// prevent loading previous page from cache. +horizon.addInitFunction(function () { + $(window).bind('pageshow', function(event) { + if (event.originalEvent.persisted) { + window.location.reload(); + } + }); +}); + diff --git a/openstack_dashboard/templates/horizon/_scripts.html b/openstack_dashboard/templates/horizon/_scripts.html index 78b0430ce4..49d75d8c94 100644 --- a/openstack_dashboard/templates/horizon/_scripts.html +++ b/openstack_dashboard/templates/horizon/_scripts.html @@ -27,6 +27,7 @@ +