diff --git a/.eslintrc.js b/.eslintrc.js index dd8e8716f1..105d873d1e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -20,6 +20,7 @@ module.exports = { browser: true, }, globals: { + chrome: false, basicContext: false, require: false, requireModule: false, diff --git a/app/controllers/application.js b/app/controllers/application.js index c0d189728d..f14f0c7a5e 100644 --- a/app/controllers/application.js +++ b/app/controllers/application.js @@ -32,6 +32,7 @@ export default class ApplicationController extends Controller { @tracked _navWidthExpanded = 180; @tracked _navWidthCollapsed = 48; @tracked navIsCollapsed = false; + @tracked inspectingTabOrigin = null; get navWidth() { return this.navIsCollapsed @@ -53,6 +54,25 @@ export default class ApplicationController extends Controller { this.mixinDetails = []; } + get targetTabOrigin() { + if (!this.inspectingTabOrigin) { + void this.requestTargetTabOrigin(); + return null; + } + return `${window.location.origin}/request.html?tabOrigin=${this.inspectingTabOrigin}`; + } + + requestTargetTabOrigin() { + // during tests + if (typeof chrome === 'undefined') { + return; + } + chrome.devtools.inspectedWindow.eval('window.location', (resp) => { + const origin = resp.origin; + this.inspectingTabOrigin = origin; + }); + } + /* * Called when digging deeper into object stack * from within the ObjectInspector @@ -190,4 +210,25 @@ export default class ApplicationController extends Controller { this.set('mixinDetails', null); } } + + @action + requestPermissionForAll() { + function onResponse(response) { + if (response) { + console.log('Permission was granted'); + } else { + console.log('Permission was refused'); + } + return chrome.permissions.getAll(); + } + + const permissionsToRequest = { + origins: [''], + }; + + chrome.permissions.request(permissionsToRequest).then(async (response) => { + const currentPermissions = await onResponse(response); + console.log(`Current permissions:`, currentPermissions); + }); + } } diff --git a/app/services/adapters/chrome.js b/app/services/adapters/chrome.js index d5a68a2076..2b37c9c1b7 100644 --- a/app/services/adapters/chrome.js +++ b/app/services/adapters/chrome.js @@ -6,7 +6,6 @@ export default class Chrome extends WebExtension { @tracked canOpenResource = true; openResource(file, line) { - /*global chrome */ // For some reason it opens the line after the one specified chrome.devtools.panels.openResource(file, line - 1); } diff --git a/app/services/adapters/web-extension.js b/app/services/adapters/web-extension.js index a8659973ea..2e8b58c195 100644 --- a/app/services/adapters/web-extension.js +++ b/app/services/adapters/web-extension.js @@ -1,4 +1,3 @@ -/* globals chrome */ import { computed } from '@ember/object'; import { tracked } from '@glimmer/tracking'; diff --git a/app/templates/application.hbs b/app/templates/application.hbs index 56546e35a1..a1a0a39345 100644 --- a/app/templates/application.hbs +++ b/app/templates/application.hbs @@ -83,6 +83,9 @@