feat: enable native extensions support (#21814)
This commit is contained in:
parent
bdf65a75d0
commit
a061c87e56
61 changed files with 1054 additions and 941 deletions
77
spec-main/fixtures/devtools-extensions/foo/panel.js
Normal file
77
spec-main/fixtures/devtools-extensions/foo/panel.js
Normal file
|
@ -0,0 +1,77 @@
|
|||
/* global chrome */
|
||||
function testStorageClear (callback) {
|
||||
chrome.storage.sync.clear(function () {
|
||||
chrome.storage.sync.get(null, function (syncItems) {
|
||||
chrome.storage.local.clear(function () {
|
||||
chrome.storage.local.get(null, function (localItems) {
|
||||
callback(syncItems, localItems)
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function testStorageRemove (callback) {
|
||||
chrome.storage.sync.remove('bar', function () {
|
||||
chrome.storage.sync.get({ foo: 'baz' }, function (syncItems) {
|
||||
chrome.storage.local.remove(['hello'], function () {
|
||||
chrome.storage.local.get(null, function (localItems) {
|
||||
callback(syncItems, localItems)
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function testStorageSet (callback) {
|
||||
chrome.storage.sync.set({ foo: 'bar', bar: 'foo' }, function () {
|
||||
chrome.storage.sync.get({ foo: 'baz', bar: 'fooo' }, function (syncItems) {
|
||||
chrome.storage.local.set({ hello: 'world', world: 'hello' }, function () {
|
||||
chrome.storage.local.get(null, function (localItems) {
|
||||
callback(syncItems, localItems)
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function testStorage (callback) {
|
||||
testStorageSet(function (syncForSet, localForSet) {
|
||||
testStorageRemove(function (syncForRemove, localForRemove) {
|
||||
testStorageClear(function (syncForClear, localForClear) {
|
||||
callback(
|
||||
syncForSet, localForSet,
|
||||
syncForRemove, localForRemove,
|
||||
syncForClear, localForClear
|
||||
)
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
testStorage(function (
|
||||
syncForSet, localForSet,
|
||||
syncForRemove, localForRemove,
|
||||
syncForClear, localForClear
|
||||
) {
|
||||
const message = JSON.stringify({
|
||||
runtimeId: chrome.runtime.id,
|
||||
tabId: chrome.devtools.inspectedWindow.tabId,
|
||||
i18nString: null, // chrome.i18n.getMessage('foo', ['bar', 'baz']),
|
||||
storageItems: {
|
||||
local: {
|
||||
set: localForSet,
|
||||
remove: localForRemove,
|
||||
clear: localForClear
|
||||
},
|
||||
sync: {
|
||||
set: syncForSet,
|
||||
remove: syncForRemove,
|
||||
clear: syncForClear
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
const sendMessage = `require('electron').ipcRenderer.send('answer', ${message})`
|
||||
window.chrome.devtools.inspectedWindow.eval(sendMessage, function () {})
|
||||
})
|
Loading…
Add table
Add a link
Reference in a new issue