@@ -76,17 +76,22 @@ const str_ = i18n.i18n.registerUIStrings('panels/security/SecurityPanelSidebar.t
7676const i18nString = i18n . i18n . getLocalizedString . bind ( undefined , str_ ) ;
7777
7878export class SecurityPanelSidebar extends UI . Widget . VBox {
79+ readonly #securitySidebarLastItemSetting: Common . Settings . Setting < string > ;
7980 readonly sidebarTree : UI . TreeOutline . TreeOutlineInShadow ;
8081 readonly #originGroupTitles: Map < OriginGroup , string > ;
8182 #originGroups: Map < OriginGroup , UI . TreeOutline . TreeElement > ;
8283 securityOverviewElement : OriginTreeElement ;
84+ readonly #cookieControlsTreeElement: CookieControlsTreeElement | undefined ;
85+ readonly #cookieReportTreeElement: CookieReportTreeElement | undefined ;
8386 readonly #elementsByOrigin: Map < string , OriginTreeElement > ;
8487 readonly #mainViewReloadMessage: UI . TreeOutline . TreeElement ;
8588 #mainOrigin: string | null ;
8689
8790 constructor ( element ?: HTMLElement ) {
8891 super ( undefined , undefined , element ) ;
8992
93+ this . #securitySidebarLastItemSetting =
94+ Common . Settings . Settings . instance ( ) . createSetting ( 'security-last-selected-element-path' , 'overview' ) ;
9095 this . #mainOrigin = null ;
9196
9297 this . sidebarTree = new UI . TreeOutline . TreeOutlineInShadow ( UI . TreeOutline . TreeVariant . NAVIGATION_TREE ) ;
@@ -95,9 +100,11 @@ export class SecurityPanelSidebar extends UI.Widget.VBox {
95100
96101 if ( Common . Settings . Settings . instance ( ) . getHostConfig ( ) . devToolsPrivacyUI ?. enabled ) {
97102 const privacyTreeSection = this . #addSidebarSection( i18nString ( UIStrings . privacy ) , 'privacy' ) ;
98- privacyTreeSection . appendChild (
99- new CookieControlsTreeElement ( i18nString ( UIStrings . flagControls ) , 'cookie-flag-controls' ) ) ;
100- privacyTreeSection . appendChild ( new CookieReportTreeElement ( i18nString ( UIStrings . cookieReport ) , 'cookie-report' ) ) ;
103+ this . #cookieControlsTreeElement =
104+ new CookieControlsTreeElement ( i18nString ( UIStrings . flagControls ) , 'cookie-flag-controls' ) ;
105+ privacyTreeSection . appendChild ( this . #cookieControlsTreeElement) ;
106+ this . #cookieReportTreeElement = new CookieReportTreeElement ( i18nString ( UIStrings . cookieReport ) , 'cookie-report' ) ;
107+ privacyTreeSection . appendChild ( this . #cookieReportTreeElement) ;
101108 }
102109
103110 const securitySectionTitle = i18nString ( UIStrings . security ) ;
@@ -131,6 +138,25 @@ export class SecurityPanelSidebar extends UI.Widget.VBox {
131138 this . #clearOriginGroups( ) ;
132139
133140 this . #elementsByOrigin = new Map ( ) ;
141+
142+ this . element . addEventListener ( 'update-sidebar-selection' , ( event : Event ) => {
143+ const id : string = ( event as CustomEvent ) . detail . id ;
144+ this . #securitySidebarLastItemSetting. set ( id ) ;
145+ } ) ;
146+ this . showLastSelectedElement ( ) ;
147+ }
148+
149+ showLastSelectedElement ( ) : void {
150+ if ( this . #cookieControlsTreeElement &&
151+ this . #securitySidebarLastItemSetting. get ( ) === this . #cookieControlsTreeElement. elemId ) {
152+ this . #cookieControlsTreeElement. showElement ( ) ;
153+ } else if (
154+ this . #cookieReportTreeElement &&
155+ this . #securitySidebarLastItemSetting. get ( ) === this . #cookieReportTreeElement. elemId ) {
156+ this . #cookieReportTreeElement. showElement ( ) ;
157+ } else {
158+ this . securityOverviewElement . showElement ( ) ;
159+ }
134160 }
135161
136162 #addSidebarSection( title : string , jslogContext : string ) : UI . TreeOutline . TreeElement {
0 commit comments