You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
3.3 KiB

10 years ago
10 years ago
  1. /*******************************************************************************
  2. µBlock - a browser extension to block requests.
  3. Copyright (C) 2014 The µBlock authors
  4. This program is free software: you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation, either version 3 of the License, or
  7. (at your option) any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this program. If not, see {http://www.gnu.org/licenses/}.
  14. Home: https://github.com/gorhill/uBlock
  15. */
  16. // For background page or non-background pages
  17. /* global self */
  18. /******************************************************************************/
  19. (function() {
  20. 'use strict';
  21. var fileName = 'options_ui.html';
  22. if ( location.pathname.slice(-fileName.length) === fileName ) {
  23. var messager = vAPI.messaging.channel('_open');
  24. messager.send({
  25. what: 'gotoURL',
  26. details: {
  27. url: 'dashboard.html',
  28. index: -1
  29. }
  30. });
  31. window.close();
  32. }
  33. })();
  34. /******************************************************************************/
  35. /******************************************************************************/
  36. (function() {
  37. 'use strict';
  38. self.vAPI = self.vAPI || {};
  39. var chrome = self.chrome;
  40. var vAPI = self.vAPI;
  41. /******************************************************************************/
  42. // http://www.w3.org/International/questions/qa-scripts#directions
  43. var setScriptDirection = function(language) {
  44. document.body.setAttribute(
  45. 'dir',
  46. ['ar', 'he', 'fa', 'ps', 'ur'].indexOf(language) !== -1 ? 'rtl' : 'ltr'
  47. );
  48. };
  49. /******************************************************************************/
  50. vAPI.download = function(details) {
  51. if ( !details.url ) {
  52. return;
  53. }
  54. var a = document.createElement('a');
  55. if ( 'download' in a ) {
  56. a.href = details.url;
  57. a.setAttribute('download', details.filename || '');
  58. a.dispatchEvent(new MouseEvent('click'));
  59. return;
  60. }
  61. var messager = vAPI.messaging.channel('_download');
  62. messager.send({
  63. what: 'gotoURL',
  64. details: {
  65. url: details.url,
  66. index: -1
  67. }
  68. });
  69. messager.close();
  70. };
  71. /******************************************************************************/
  72. vAPI.insertHTML = function(node, html) {
  73. node.innerHTML = html;
  74. };
  75. /******************************************************************************/
  76. vAPI.getURL = chrome.runtime.getURL;
  77. /******************************************************************************/
  78. vAPI.i18n = chrome.i18n.getMessage;
  79. setScriptDirection(vAPI.i18n('@@ui_locale'));
  80. /******************************************************************************/
  81. vAPI.closePopup = function() {
  82. window.open('','_self').close();
  83. };
  84. /******************************************************************************/
  85. })();
  86. /******************************************************************************/