2
0

url_polyfill.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /**
  2. * @licstart The following is the entire license notice for the
  3. * Javascript code in this page
  4. *
  5. * Copyright 2019 Mozilla Foundation
  6. *
  7. * Licensed under the Apache License, Version 2.0 (the "License");
  8. * you may not use this file except in compliance with the License.
  9. * You may obtain a copy of the License at
  10. *
  11. * http://www.apache.org/licenses/LICENSE-2.0
  12. *
  13. * Unless required by applicable law or agreed to in writing, software
  14. * distributed under the License is distributed on an "AS IS" BASIS,
  15. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16. * See the License for the specific language governing permissions and
  17. * limitations under the License.
  18. *
  19. * @licend The above is the entire license notice for the
  20. * Javascript code in this page
  21. */
  22. "use strict";
  23. function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
  24. {
  25. var isURLSupported = false;
  26. try {
  27. if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) {
  28. var u = new URL('b', 'http://a');
  29. u.pathname = 'c%20d';
  30. isURLSupported = u.href === 'http://a/c%20d';
  31. }
  32. } catch (ex) {}
  33. if (isURLSupported) {
  34. exports.URL = URL;
  35. } else {
  36. var PolyfillURL = require('../../external/url/url-lib').URL;
  37. var OriginalURL = require('./global_scope').URL;
  38. if (OriginalURL) {
  39. PolyfillURL.createObjectURL = function (blob) {
  40. return OriginalURL.createObjectURL.apply(OriginalURL, arguments);
  41. };
  42. PolyfillURL.revokeObjectURL = function (url) {
  43. OriginalURL.revokeObjectURL(url);
  44. };
  45. }
  46. exports.URL = PolyfillURL;
  47. }
  48. }