index.html 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title></title>
  6. <script>
  7. function testStorageClear (callback) {
  8. chrome.storage.sync.clear(function () {
  9. chrome.storage.sync.get(null, function (syncItems) {
  10. chrome.storage.local.clear(function () {
  11. chrome.storage.local.get(null, function(localItems) {
  12. callback(syncItems, localItems)
  13. })
  14. })
  15. })
  16. })
  17. }
  18. function testStorageRemove (callback) {
  19. chrome.storage.sync.remove('bar', function () {
  20. chrome.storage.sync.get({foo: 'baz'}, function (syncItems) {
  21. chrome.storage.local.remove(['hello'], function () {
  22. chrome.storage.local.get(null, function(localItems) {
  23. callback(syncItems, localItems)
  24. })
  25. })
  26. })
  27. })
  28. }
  29. function testStorageSet (callback) {
  30. chrome.storage.sync.set({foo: 'bar', bar: 'foo'}, function () {
  31. chrome.storage.sync.get({foo: 'baz', bar: 'fooo'}, function (syncItems) {
  32. chrome.storage.local.set({hello: 'world', world: 'hello'}, function () {
  33. chrome.storage.local.get(null, function(localItems) {
  34. callback(syncItems, localItems)
  35. })
  36. })
  37. })
  38. })
  39. }
  40. function testStorage (callback) {
  41. testStorageSet(function (syncForSet, localForSet) {
  42. testStorageRemove(function (syncForRemove, localForRemove) {
  43. testStorageClear(function (syncForClear, localForClear) {
  44. callback(
  45. syncForSet, localForSet,
  46. syncForRemove, localForRemove,
  47. syncForClear, localForClear
  48. )
  49. })
  50. })
  51. })
  52. }
  53. function reportCoverage () {
  54. var message = JSON.stringify({
  55. pid: chrome.runtime.id,
  56. coverage: window.__coverage__
  57. })
  58. var coverageMessage = `require('electron').ipcRenderer.send('report-coverage', ${message})`
  59. window.chrome.devtools.inspectedWindow.eval(coverageMessage, function () {})
  60. }
  61. testStorage(function (
  62. syncForSet, localForSet,
  63. syncForRemove, localForRemove,
  64. syncForClear, localForClear
  65. ) {
  66. var message = JSON.stringify({
  67. runtimeId: chrome.runtime.id,
  68. tabId: chrome.devtools.inspectedWindow.tabId,
  69. i18nString: chrome.i18n.getMessage('foo', ['bar', 'baz']),
  70. storageItems: {
  71. local: {
  72. set: localForSet,
  73. remove: localForRemove,
  74. clear: localForClear
  75. },
  76. sync: {
  77. set: syncForSet,
  78. remove: syncForRemove,
  79. clear: syncForClear
  80. }
  81. }
  82. })
  83. reportCoverage()
  84. var sendMessage = `require('electron').ipcRenderer.send('answer', ${message})`
  85. window.chrome.devtools.inspectedWindow.eval(sendMessage, function () {})
  86. })
  87. </script>
  88. </head>
  89. <body>
  90. a custom devtools extension
  91. </body>
  92. </html>