diff --git a/core/modules/contextual/js/contextual.toolbar.js b/core/modules/contextual/js/contextual.toolbar.js index 2cbac3e139..97602d6e27 100644 --- a/core/modules/contextual/js/contextual.toolbar.js +++ b/core/modules/contextual/js/contextual.toolbar.js @@ -32,8 +32,9 @@ // rather than view mode. // @see Drupal.contextualToolbar.VisualView.persist isViewing: - localStorage.getItem('Drupal.contextualToolbar.isViewing') !== - 'false', + localStorage.getItem('Drupal.contextualToolbar.isViewing') !== 'false' + ? true + : !$('body .contextual-region').length, }, { contextualCollection: Drupal.contextual.collection, diff --git a/core/modules/contextual/tests/src/FunctionalJavascript/EditModeTest.php b/core/modules/contextual/tests/src/FunctionalJavascript/EditModeTest.php index 6cb1b68c38..ba9e9fe769 100644 --- a/core/modules/contextual/tests/src/FunctionalJavascript/EditModeTest.php +++ b/core/modules/contextual/tests/src/FunctionalJavascript/EditModeTest.php @@ -86,6 +86,17 @@ public function testEditModeEnableDisable() { // correct after toggling the edit mode at least once. $this->assertAnnounceEditMode(); $this->assertSame($expected_restricted_tab_count, $this->getTabbableElementsCount()); + + // Test while Edit Mode is enabled it doesn't interfere with pages with + // no contextual links. + $block_storage = \Drupal::service('entity_type.manager')->getStorage('block'); + $blocks = $block_storage->loadMultiple(); + foreach ($blocks as $block) { + $block->delete(); + } + $this->drupalGet('admin/structure/block'); + $this->assertSame(0, count($page->findAll('css', '[data-contextual-id]'))); + $this->assertSame(15, $this->getTabbableElementsCount()); } }