Add `chrome.*` APIs to support Accessibility DevTools extension
jlord opened this issue · 3 comments
We want to have Electron support the Chrome Accessibility DevTools extension but not all of the necessary chrome.*
APIs are in yet. Many more have just been added so we've gone through to see which ones the extension needs that aren't yet in.
I'm not sure the the difficulty of getting in these remaining APIs and if it's something myself and @kevinsawicki can do? Would love feedback on that.
APIs needed for Accessibility DevTools Extension
-
chrome.devtools.inspectedWindow.tabID
-
chrome.devtools.inspectedWindow.eval
-
chrome.devtools.panels.elements.onSelectionChanged.addListener
-
chrome.devtools.panels.elements.createSidebarPane
-
chrome.experimental.devtools.audits.addCategory
-
chrome.extension.getURL
chrome.extension.lastError
-
chrome.extension.onRequest.addListener
-
chrome.extension.sendRequest
-
chrome.il8n.getMessage
via #5924 -
chrome.runtime.id
via #5894 -
chrome.storage.sync.get
via #5974 -
chrome.storage.sync.set
via #5974 -
chrome.tabs.executeScript
-
chrome.tabs.onRemoved.addListener
-
chrome.webNavigation.onBeforeNavigate.addListener
via #6090 -
chrome.webNavigation.onBeforeNavigate.removeListener
via #6090 -
chrome.webNavigation.onCompleted.addListener
via #6090 -
chrome.webNavigation.onCompleted.removeListener
via #6090
Parts of the chrome.extension
API have been implemented, as well as the chrome.tabs
. However it doesn't seem like we have any of chrome.webNavigation
, chrome.il8n
, or chrome.runtime
in yet.
/cc @zcbenz
Currently Implemented chrome.*
APIs
chrome.devtools.inspectedWindow.eval
chrome.devtools.inspectedWindow.getResources
chrome.devtools.inspectedWindow.onResourceAdded.addListener
chrome.devtools.inspectedWindow.onResourceAdded.removeListener
chrome.devtools.inspectedWindow.onResourceContentCommitted.addListener
chrome.devtools.inspectedWindow.onResourceContentCommitted.removeListener
chrome.devtools.inspectedWindow.reload
chrome.devtools.inspectedWindow.tabId
chrome.devtools.network.addRequestHeaders
chrome.devtools.network.getHAR
chrome.devtools.network.onFinished.addListener
chrome.devtools.network.onFinished.removeListener
chrome.devtools.network.onNavigated.addListener
chrome.devtools.network.onNavigated.removeListener
chrome.devtools.network.onRequestFinished.addListener
chrome.devtools.network.onRequestFinished.removeListener
chrome.devtools.panels.SearchAction.CancelSearch
chrome.devtools.panels.SearchAction.NextSearchResult
chrome.devtools.panels.SearchAction.PerformSearch
chrome.devtools.panels.SearchAction.PreviousSearchResult
chrome.devtools.panels.applyStyleSheet
chrome.devtools.panels.create
chrome.devtools.panels.elements.createSidebarPane
chrome.devtools.panels.elements.onSelectionChanged.addListener
chrome.devtools.panels.elements.onSelectionChanged.removeListener
chrome.devtools.panels.openResource
chrome.devtools.panels.setOpenResourceHandler
chrome.devtools.panels.sources.createSidebarPane
chrome.devtools.panels.sources.onSelectionChanged.addListener
chrome.devtools.panels.sources.onSelectionChanged.removeListener
chrome.experimental.devtools.audits.addCategory
chrome.experimental.devtools.inspectedWindow.eval
chrome.experimental.devtools.inspectedWindow.getResources
chrome.experimental.devtools.inspectedWindow.onResourceAdded.addListener
chrome.experimental.devtools.inspectedWindow.onResourceAdded.removeListener
chrome.experimental.devtools.inspectedWindow.onResourceContentCommitted.addListener
chrome.experimental.devtools.inspectedWindow.onResourceContentCommitted.removeListener
chrome.experimental.devtools.inspectedWindow.reload
chrome.experimental.devtools.inspectedWindow.tabId
chrome.experimental.devtools.network.addRequestHeaders
chrome.experimental.devtools.network.getHAR
chrome.experimental.devtools.network.onFinished.addListener
chrome.experimental.devtools.network.onFinished.removeListener
chrome.experimental.devtools.network.onNavigated.addListener
chrome.experimental.devtools.network.onNavigated.removeListener
chrome.experimental.devtools.network.onRequestFinished.addListener
chrome.experimental.devtools.network.onRequestFinished.removeListener
chrome.experimental.devtools.panels.SearchAction.CancelSearch
chrome.experimental.devtools.panels.SearchAction.NextSearchResult
chrome.experimental.devtools.panels.SearchAction.PerformSearch
chrome.experimental.devtools.panels.SearchAction.PreviousSearchResult
chrome.experimental.devtools.panels.applyStyleSheet
chrome.experimental.devtools.panels.create
chrome.experimental.devtools.panels.elements.createSidebarPane
chrome.experimental.devtools.panels.elements.onSelectionChanged.addListener
chrome.experimental.devtools.panels.elements.onSelectionChanged.removeListener
chrome.experimental.devtools.panels.openResource
chrome.experimental.devtools.panels.setOpenResourceHandler
chrome.experimental.devtools.panels.sources.createSidebarPane
chrome.experimental.devtools.panels.sources.onSelectionChanged.addListener
chrome.experimental.devtools.panels.sources.onSelectionChanged.removeListener
chrome.experimental.devtools.resources.addRequestHeaders
chrome.experimental.devtools.resources.getHAR
chrome.experimental.devtools.resources.onFinished.addListener
chrome.experimental.devtools.resources.onFinished.removeListener
chrome.experimental.devtools.resources.onNavigated.addListener
chrome.experimental.devtools.resources.onNavigated.removeListener
chrome.experimental.devtools.resources.onRequestFinished.addListener
chrome.experimental.devtools.resources.onRequestFinished.removeListener
chrome.extension.connect
chrome.extension.getURL
chrome.extension.sendMessage
chrome.pageAction.getPopup
chrome.pageAction.getTitle
chrome.pageAction.hide
chrome.pageAction.setIcon
chrome.pageAction.setPopup
chrome.pageAction.setTitle
chrome.pageAction.show
chrome.runtime.connect
chrome.runtime.getURL
chrome.runtime.sendMessage
chrome.storage.sync.get
chrome.storage.sync.set
chrome.tabs.executeScript
chrome.tabs.sendMessage
Most of the needed APIs can be implemented by following how other APIs were implemented in chrome-api.js
. The chrome.webNavigation
APIs are a bit challenging, we have to wrap the ses.webRequest API to implement it, and it may conflict with apps that using that API.
I say it would take many efforts, but most of the work should be just JavaScript.
Closing this out since the APIs needed to ship http://electron.atom.io/blog/2016/08/23/accessibility-tools were completed.
Can open up new issues for additional APIs needed going forward.