index.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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. import * as button from "./ui-button.js";
  24. import * as menus from "./ui-menus.js";
  25. import * as tabs from "./../../core/bg/tabs.js";
  26. export {
  27. onMessage,
  28. refreshTab,
  29. onForbiddenDomain,
  30. onStart,
  31. onError,
  32. onEdit,
  33. onEnd,
  34. onCancelled,
  35. onUploadProgress,
  36. onTabCreated,
  37. onTabActivated,
  38. onInit
  39. };
  40. function onMessage(message, sender) {
  41. if (message.method.endsWith(".refreshMenu")) {
  42. return menus.onMessage(message, sender);
  43. } else {
  44. return button.onMessage(message, sender);
  45. }
  46. }
  47. async function refreshTab(tab) {
  48. return Promise.all([menus.refreshTab(tab), button.refreshTab(tab)]);
  49. }
  50. function onForbiddenDomain(tab) {
  51. button.onForbiddenDomain(tab);
  52. }
  53. function onStart(tabId, step, autoSave) {
  54. button.onStart(tabId, step, autoSave);
  55. }
  56. async function onError(tabId, message) {
  57. button.onError(tabId);
  58. if (message) {
  59. await tabs.sendMessage(tabId, { method: "content.error", error: message.toString() });
  60. }
  61. }
  62. function onEdit(tabId) {
  63. button.onEdit(tabId);
  64. }
  65. function onEnd(tabId, autoSave) {
  66. button.onEnd(tabId, autoSave);
  67. }
  68. function onCancelled(tabId) {
  69. button.onCancelled(tabId);
  70. }
  71. function onUploadProgress(tabId, index, maxIndex) {
  72. button.onUploadProgress(tabId, index, maxIndex);
  73. }
  74. function onTabCreated(tab) {
  75. menus.onTabCreated(tab);
  76. }
  77. function onTabActivated(tab) {
  78. menus.onTabActivated(tab);
  79. }
  80. function onInit(tab) {
  81. menus.onInit(tab);
  82. }