index.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. /*
  2. * Copyright 2010-2020 Gildas Lormeau
  3. * contact : gildas.lormeau <at> gmail.com
  4. *
  5. * This file is part of SingleFile.
  6. *
  7. * The code in this file is free software: you can redistribute it and/or
  8. * modify it under the terms of the GNU Affero General Public License
  9. * (GNU AGPL) as published by the Free Software Foundation, either version 3
  10. * of the License, or (at your option) any later version.
  11. *
  12. * The code in this file is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
  15. * General Public License for more details.
  16. *
  17. * As additional permission under GNU AGPL version 3 section 7, you may
  18. * distribute UNMODIFIED VERSIONS OF THIS file without the copy of the GNU
  19. * AGPL normally required by section 4, provided you include this license
  20. * notice and a URL through which recipients can access the Corresponding
  21. * Source.
  22. */
  23. /* global browser */
  24. import * as button from "./ui-button.js";
  25. import * as menus from "./ui-menus.js";
  26. import * as command from "./ui-commands.js";
  27. export {
  28. onMessage,
  29. refreshTab,
  30. onForbiddenDomain,
  31. onStart,
  32. onError,
  33. onEdit,
  34. onEnd,
  35. onCancelled,
  36. onUploadProgress,
  37. onTabCreated,
  38. onTabActivated,
  39. onInit,
  40. setBusiness
  41. };
  42. function setBusiness(businessApi) {
  43. menus.setBusiness(businessApi);
  44. button.setBusiness(businessApi);
  45. command.setBusiness(businessApi);
  46. }
  47. function onMessage(message, sender) {
  48. if (message.method.endsWith(".refreshMenu")) {
  49. return menus.onMessage(message, sender);
  50. } else {
  51. return button.onMessage(message, sender);
  52. }
  53. }
  54. async function refreshTab(tab) {
  55. return Promise.all([menus.refreshTab(tab), button.refreshTab(tab)]);
  56. }
  57. function onForbiddenDomain(tab) {
  58. button.onForbiddenDomain(tab);
  59. }
  60. function onStart(tabId, step, autoSave) {
  61. button.onStart(tabId, step, autoSave);
  62. }
  63. async function onError(tabId, message, link) {
  64. button.onError(tabId);
  65. if (message) {
  66. await browser.tabs.sendMessage(tabId, { method: "content.error", error: message.toString(), link });
  67. }
  68. }
  69. function onEdit(tabId) {
  70. button.onEdit(tabId);
  71. }
  72. function onEnd(tabId, autoSave) {
  73. button.onEnd(tabId, autoSave);
  74. }
  75. function onCancelled(tabId) {
  76. button.onCancelled(tabId);
  77. }
  78. function onUploadProgress(tabId, index, maxIndex) {
  79. button.onUploadProgress(tabId, index, maxIndex);
  80. }
  81. function onTabCreated(tab) {
  82. menus.onTabCreated(tab);
  83. }
  84. function onTabActivated(tab) {
  85. menus.onTabActivated(tab);
  86. }
  87. function onInit(tab) {
  88. menus.onInit(tab);
  89. }