@@ -32,6 +32,7 @@ export default class ApplicationController extends Controller {
3232 @tracked _navWidthExpanded = 180 ;
3333 @tracked _navWidthCollapsed = 48 ;
3434 @tracked navIsCollapsed = false ;
35+ @tracked inspectingTabOrigin = null ;
3536
3637 get navWidth ( ) {
3738 return this . navIsCollapsed
@@ -53,6 +54,25 @@ export default class ApplicationController extends Controller {
5354 this . mixinDetails = [ ] ;
5455 }
5556
57+ get targetTabOrigin ( ) {
58+ if ( ! this . inspectingTabOrigin ) {
59+ void this . requestTargetTabOrigin ( ) ;
60+ return null ;
61+ }
62+ return `${ window . location . origin } /request.html?tabOrigin=${ this . inspectingTabOrigin } ` ;
63+ }
64+
65+ requestTargetTabOrigin ( ) {
66+ // during tests
67+ if ( typeof chrome === 'undefined' ) {
68+ return ;
69+ }
70+ chrome . devtools . inspectedWindow . eval ( 'window.location' , ( resp ) => {
71+ const origin = resp . origin ;
72+ this . inspectingTabOrigin = origin ;
73+ } ) ;
74+ }
75+
5676 /*
5777 * Called when digging deeper into object stack
5878 * from within the ObjectInspector
@@ -190,4 +210,25 @@ export default class ApplicationController extends Controller {
190210 this . set ( 'mixinDetails' , null ) ;
191211 }
192212 }
213+
214+ @action
215+ requestPermissionForAll ( ) {
216+ function onResponse ( response ) {
217+ if ( response ) {
218+ console . log ( 'Permission was granted' ) ;
219+ } else {
220+ console . log ( 'Permission was refused' ) ;
221+ }
222+ return chrome . permissions . getAll ( ) ;
223+ }
224+
225+ const permissionsToRequest = {
226+ origins : [ '<all_urls>' ] ,
227+ } ;
228+
229+ chrome . permissions . request ( permissionsToRequest ) . then ( async ( response ) => {
230+ const currentPermissions = await onResponse ( response ) ;
231+ console . log ( `Current permissions:` , currentPermissions ) ;
232+ } ) ;
233+ }
193234}
0 commit comments