Skip to content

Commit 1659ded

Browse files
committed
Use try-finally and ordering to reduce the risk we might generate a blank page.
1 parent d03a49d commit 1659ded

File tree

1 file changed

+23
-18
lines changed

1 file changed

+23
-18
lines changed

lib/resources/script.js

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -47,25 +47,29 @@ function saveRightScroll() {
4747

4848
function restoreScrolls() {
4949
var leftSidebar = document.getElementById('dartdoc-sidebar-left');
50-
var leftSidebarX = sessionStorage.getItem('dartdoc-sidebar-left-scrolll');
51-
var leftSidebarY = sessionStorage.getItem('dartdoc-sidebar-left-scrollt');
52-
5350
var mainContent = document.getElementById('dartdoc-main-content');
54-
var mainContentX = sessionStorage.getItem('dartdoc-main-content-scrolll');
55-
var mainContentY = sessionStorage.getItem('dartdoc-main-content-scrollt');
56-
5751
var rightSidebar = document.getElementById('dartdoc-sidebar-right');
58-
var rightSidebarX = sessionStorage.getItem('dartdoc-sidebar-right-scrolll');
59-
var rightSidebarY = sessionStorage.getItem('dartdoc-sidebar-right-scrollt');
60-
61-
// Set visibility to visible after scroll to prevent the brief appearance of the
62-
// panel in the wrong position.
63-
leftSidebar.scrollTo(leftSidebarX, leftSidebarY);
64-
leftSidebar.style.visibility = 'visible';
65-
mainContent.scrollTo(mainContentX, mainContentY);
66-
mainContent.style.visibility = 'visible';
67-
rightSidebar.scrollTo(rightSidebarX, rightSidebarY);
68-
rightSidebar.style.visibility = 'visible';
52+
53+
try {
54+
var leftSidebarX = sessionStorage.getItem('dartdoc-sidebar-left-scrolll');
55+
var leftSidebarY = sessionStorage.getItem('dartdoc-sidebar-left-scrollt');
56+
57+
var mainContentX = sessionStorage.getItem('dartdoc-main-content-scrolll');
58+
var mainContentY = sessionStorage.getItem('dartdoc-main-content-scrollt');
59+
60+
var rightSidebarX = sessionStorage.getItem('dartdoc-sidebar-right-scrolll');
61+
var rightSidebarY = sessionStorage.getItem('dartdoc-sidebar-right-scrollt');
62+
63+
leftSidebar.scrollTo(leftSidebarX, leftSidebarY);
64+
mainContent.scrollTo(mainContentX, mainContentY);
65+
rightSidebar.scrollTo(rightSidebarX, rightSidebarY);
66+
} finally {
67+
// Set visibility to visible after scroll to prevent the brief appearance of the
68+
// panel in the wrong position.
69+
leftSidebar.style.visibility = 'visible';
70+
mainContent.style.visibility = 'visible';
71+
rightSidebar.style.visibility = 'visible';
72+
}
6973
}
7074

7175
function initScrollSave() {
@@ -250,9 +254,10 @@ function initSearch(name) {
250254
}
251255

252256
document.addEventListener("DOMContentLoaded", function() {
257+
// Place this first so that unexpected exceptions in other JavaScript do not block page visibility.
258+
restoreScrolls();
253259
hljs.initHighlightingOnLoad();
254260
initSideNav();
255-
restoreScrolls();
256261
initScrollSave();
257262
initSearch("search-box");
258263
initSearch("search-body");

0 commit comments

Comments
 (0)