HostMap.jsm 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*******************************************************************************
  2. ηMatrix - a browser extension to black/white list requests.
  3. Copyright (C) 2014-2019 The uMatrix/uBlock Origin authors
  4. Copyright (C) 2020 Alessio Vanni
  5. This program is free software: you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation, either version 3 of the License, or
  8. (at your option) any later version.
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with this program. If not, see {http://www.gnu.org/licenses/}.
  15. Home: https://gitlab.com/vannilla/ematrix
  16. uMatrix Home: https://github.com/gorhill/uMatrix
  17. */
  18. 'use strict';
  19. var Ci = Components.interfaces;
  20. var EXPORTED_SYMBOLS = ['HostMap'];
  21. var map = new Map();
  22. var HostMap = {
  23. put: function (key, value) {
  24. if (typeof key !== 'string' || !(value instanceof Ci.nsIURI)
  25. || !key || !value) {
  26. throw new Error('invalid argument(s)');
  27. }
  28. if (map.get(key)) {
  29. return;
  30. }
  31. map.set(key, value);
  32. },
  33. get: function (key) {
  34. if (typeof key !== 'string' || !key) {
  35. throw new Error('invalid argument');
  36. }
  37. return map.get(key);
  38. },
  39. };