@@ -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,24 @@ 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+ async requestTargetTabOrigin ( ) {
66+ // during tests
67+ if ( typeof chrome === 'undefined' ) {
68+ return ;
69+ }
70+ const resp = await chrome . devtools . inspectedWindow . eval ( 'window.location' ) ;
71+ const origin = resp [ 0 ] . origin ;
72+ this . inspectingTabOrigin = origin ;
73+ }
74+
5675 /*
5776 * Called when digging deeper into object stack
5877 * from within the ObjectInspector
@@ -190,4 +209,25 @@ export default class ApplicationController extends Controller {
190209 this . set ( 'mixinDetails' , null ) ;
191210 }
192211 }
212+
213+ @action
214+ requestPermissionForAll ( ) {
215+ function onResponse ( response ) {
216+ if ( response ) {
217+ console . log ( 'Permission was granted' ) ;
218+ } else {
219+ console . log ( 'Permission was refused' ) ;
220+ }
221+ return chrome . permissions . getAll ( ) ;
222+ }
223+
224+ const permissionsToRequest = {
225+ origins : [ '<all_urls>' ] ,
226+ } ;
227+
228+ chrome . permissions . request ( permissionsToRequest ) . then ( async ( response ) => {
229+ const currentPermissions = await onResponse ( response ) ;
230+ console . log ( `Current permissions:` , currentPermissions ) ;
231+ } ) ;
232+ }
193233}
0 commit comments