head.js (3028B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 /* eslint no-unused-vars: [2, {"vars": "local"}] */ 4 5 "use strict"; 6 7 // Import the inspector's head.js first (which itself imports shared-head.js). 8 Services.scriptloader.loadSubScript( 9 "chrome://mochitests/content/browser/devtools/client/inspector/test/head.js", 10 this 11 ); 12 13 const FLEXBOX_OPENED_PREF = "devtools.layout.flexbox.opened"; 14 const FLEX_CONTAINER_OPENED_PREF = "devtools.layout.flex-container.opened"; 15 const FLEX_ITEM_OPENED_PREF = "devtools.layout.flex-item.opened"; 16 const GRID_OPENED_PREF = "devtools.layout.grid.opened"; 17 const BOXMODEL_OPENED_PREF = "devtools.layout.boxmodel.opened"; 18 19 // Make sure only the flexbox layout accordions are opened, and the others are closed. 20 Services.prefs.setBoolPref(FLEXBOX_OPENED_PREF, true); 21 Services.prefs.setBoolPref(FLEX_CONTAINER_OPENED_PREF, true); 22 Services.prefs.setBoolPref(FLEX_ITEM_OPENED_PREF, true); 23 Services.prefs.setBoolPref(BOXMODEL_OPENED_PREF, false); 24 Services.prefs.setBoolPref(GRID_OPENED_PREF, false); 25 26 // Clear all set prefs. 27 registerCleanupFunction(() => { 28 Services.prefs.clearUserPref(FLEXBOX_OPENED_PREF); 29 Services.prefs.clearUserPref(FLEX_CONTAINER_OPENED_PREF); 30 Services.prefs.clearUserPref(FLEX_ITEM_OPENED_PREF); 31 Services.prefs.clearUserPref(BOXMODEL_OPENED_PREF); 32 Services.prefs.clearUserPref(GRID_OPENED_PREF); 33 }); 34 35 /** 36 * Toggles ON the flexbox highlighter given the flexbox highlighter button from the 37 * layout panel. 38 * 39 * @param {DOMNode} button 40 * The flexbox highlighter toggle button in the flex container panel. 41 * @param {Inspector} inspector 42 * Inspector panel instance. 43 */ 44 async function toggleHighlighterON(button, inspector) { 45 info("Toggling ON the flexbox highlighter from the layout panel."); 46 const { waitForHighlighterTypeShown } = getHighlighterTestHelpers(inspector); 47 const onHighlighterShown = waitForHighlighterTypeShown( 48 inspector.highlighters.TYPES.FLEXBOX 49 ); 50 const { store } = inspector; 51 const onToggleChange = waitUntilState( 52 store, 53 state => state.flexbox.highlighted 54 ); 55 button.click(); 56 await Promise.all([onHighlighterShown, onToggleChange]); 57 } 58 59 /** 60 * Toggles OFF the flexbox highlighter given the flexbox highlighter button from the 61 * layout panel. 62 * 63 * @param {DOMNode} button 64 * The flexbox highlighter toggle button in the flex container panel. 65 * @param {Inspector} inspector 66 * Inspector panel instance. 67 */ 68 async function toggleHighlighterOFF(button, inspector) { 69 info("Toggling OFF the flexbox highlighter from the layout panel."); 70 const { waitForHighlighterTypeHidden } = getHighlighterTestHelpers(inspector); 71 const onHighlighterHidden = waitForHighlighterTypeHidden( 72 inspector.highlighters.TYPES.FLEXBOX 73 ); 74 const { store } = inspector; 75 const onToggleChange = waitUntilState( 76 store, 77 state => !state.flexbox.highlighted 78 ); 79 button.click(); 80 await Promise.all([onHighlighterHidden, onToggleChange]); 81 }