@@ -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+ @action
58+ requestEndpoint ( ) {
59+ if ( ! this . inspectingTabOrigin ) {
60+ void this . requestTargetTabOrigin ( ) ;
61+ return null ;
62+ }
63+ return `${ window . location . origin } /request.html?tabOrigin=${ this . inspectingTabOrigin } ` ;
64+ }
65+
66+ async requestTargetTabOrigin ( ) {
67+ // during tests
68+ if ( typeof chrome === 'undefined' ) {
69+ return ;
70+ }
71+ const resp = await chrome . devtools . inspectedWindow . eval ( 'window.location' ) ;
72+ const origin = resp [ 0 ] . origin ;
73+ this . inspectingTabOrigin = origin ;
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