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.

69 lines
1.9 KiB

10 years ago
10 years ago
10 years ago
  1. /*******************************************************************************
  2. µMatrix - a Chromium browser extension to black/white list requests.
  3. Copyright (C) 2014 Raymond Hill
  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/uMatrix
  15. */
  16. /******************************************************************************/
  17. µMatrix.changeUserSettings = function(name, value) {
  18. if ( typeof name !== 'string' || name === '' ) {
  19. return;
  20. }
  21. // Do not allow an unknown user setting to be created
  22. if ( this.userSettings[name] === undefined ) {
  23. return;
  24. }
  25. if ( value === undefined ) {
  26. return this.userSettings[name];
  27. }
  28. // Pre-change
  29. switch ( name ) {
  30. case 'maxLoggedRequests':
  31. value = Math.max(Math.min(value, 500), 0);
  32. break;
  33. default:
  34. break;
  35. }
  36. // Change
  37. this.userSettings[name] = value;
  38. // Post-change
  39. switch ( name ) {
  40. case 'maxLoggedRequests':
  41. this.resizeLogBuffers(value);
  42. break;
  43. // https://github.com/gorhill/httpswitchboard/issues/344
  44. case 'spoofUserAgentWith':
  45. this.userAgentSpoofer.shuffle();
  46. break;
  47. default:
  48. break;
  49. }
  50. this.saveUserSettings();
  51. };