| Left: | ||
| Right: | 
| LEFT | RIGHT | 
|---|---|
| 1 /* | 1 /* | 
| 2 * This file is part of Adblock Plus <http://adblockplus.org/>, | 2 * This file is part of Adblock Plus <http://adblockplus.org/>, | 
| 3 * Copyright (C) 2006-2014 Eyeo GmbH | 3 * Copyright (C) 2006-2014 Eyeo GmbH | 
| 4 * | 4 * | 
| 5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify | 
| 6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as | 
| 7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. | 
| 8 * | 8 * | 
| 9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, | 
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| (...skipping 14 matching lines...) Expand all Loading... | |
| 25 let {FilterStorage} = require("filterStorage"); | 25 let {FilterStorage} = require("filterStorage"); | 
| 26 let {FilterNotifier} = require("filterNotifier"); | 26 let {FilterNotifier} = require("filterNotifier"); | 
| 27 let {RequestNotifier} = require("requestNotifier"); | 27 let {RequestNotifier} = require("requestNotifier"); | 
| 28 let {Filter} = require("filterClasses"); | 28 let {Filter} = require("filterClasses"); | 
| 29 let {Subscription, SpecialSubscription, DownloadableSubscription} = require("sub scriptionClasses"); | 29 let {Subscription, SpecialSubscription, DownloadableSubscription} = require("sub scriptionClasses"); | 
| 30 let {Synchronizer} = require("synchronizer"); | 30 let {Synchronizer} = require("synchronizer"); | 
| 31 let {KeySelector} = require("keySelector"); | 31 let {KeySelector} = require("keySelector"); | 
| 32 let {Notification} = require("notification"); | 32 let {Notification} = require("notification"); | 
| 33 let {initAntiAdblockNotification} = require("antiadblockInit"); | 33 let {initAntiAdblockNotification} = require("antiadblockInit"); | 
| 34 | 34 | 
| 35 let CustomizableUI; | 35 let CustomizableUI = null; | 
| 36 | 36 | 
| 37 /** | 37 /** | 
| 38 * Filter corresponding with "disable on site" menu item (set in fillIconMent()) . | 38 * Filter corresponding with "disable on site" menu item (set in fillIconMent()) . | 
| 39 * @type Filter | 39 * @type Filter | 
| 40 */ | 40 */ | 
| 41 let siteWhitelist = null; | 41 let siteWhitelist = null; | 
| 42 /** | 42 /** | 
| 43 * Filter corresponding with "disable on site" menu item (set in fillIconMenu()) . | 43 * Filter corresponding with "disable on site" menu item (set in fillIconMenu()) . | 
| 44 * @type Filter | 44 * @type Filter | 
| 45 */ | 45 */ | 
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 261 */ | 261 */ | 
| 262 let notificationTimer = null; | 262 let notificationTimer = null; | 
| 263 | 263 | 
| 264 let UI = exports.UI = | 264 let UI = exports.UI = | 
| 265 { | 265 { | 
| 266 /** | 266 /** | 
| 267 * Gets called on startup, initializes UI integration. | 267 * Gets called on startup, initializes UI integration. | 
| 268 */ | 268 */ | 
| 269 init: function() | 269 init: function() | 
| 270 { | 270 { | 
| 271 try | |
| 272 { | |
| 273 ({CustomizableUI}) = Cu.import("resource:///modules/CustomizableUI.jsm", n ull); | |
| 
 
saroyanm
2014/04/25 12:08:06
Not sure if we need this here ?
 
 | |
| 274 } | |
| 275 catch (e) | |
| 276 { | |
| 277 // No built-in CustomizableUI API, use our own implementation. | |
| 278 ({CustomizableUI}) = require("customizableUI"); | |
| 279 } | |
| 
 
Wladimir Palant
2014/04/25 12:39:54
This doesn't resolve the circular reference. The m
 
saroyanm
2014/04/25 14:04:22
Thanks for descriptive comment.
Done.
 
 | |
| 280 | |
| 281 // We should call initDone once both overlay and filters are loaded | 271 // We should call initDone once both overlay and filters are loaded | 
| 282 let overlayLoaded = false; | 272 let overlayLoaded = false; | 
| 283 let filtersLoaded = false; | 273 let filtersLoaded = false; | 
| 284 let sessionRestored = false; | 274 let sessionRestored = false; | 
| 285 | 275 | 
| 286 // Start loading overlay | 276 // Start loading overlay | 
| 287 let request = new XMLHttpRequest(); | 277 let request = new XMLHttpRequest(); | 
| 288 request.mozBackgroundRequest = true; | 278 request.mozBackgroundRequest = true; | 
| 289 request.open("GET", "chrome://adblockplus/content/ui/overlay.xul"); | 279 request.open("GET", "chrome://adblockplus/content/ui/overlay.xul"); | 
| 290 request.addEventListener("load", function(event) | 280 request.addEventListener("load", function(event) | 
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 406 */ | 396 */ | 
| 407 initDone: function() | 397 initDone: function() | 
| 408 { | 398 { | 
| 409 let {WindowObserver} = require("windowObserver"); | 399 let {WindowObserver} = require("windowObserver"); | 
| 410 new WindowObserver(this); | 400 new WindowObserver(this); | 
| 411 | 401 | 
| 412 // Add toolbar icon | 402 // Add toolbar icon | 
| 413 let {defaultToolbarPosition} = require("appSupport"); | 403 let {defaultToolbarPosition} = require("appSupport"); | 
| 414 if ("abp-toolbarbutton" in this.overlay && defaultToolbarPosition) | 404 if ("abp-toolbarbutton" in this.overlay && defaultToolbarPosition) | 
| 415 { | 405 { | 
| 406 try | |
| 407 { | |
| 408 ({CustomizableUI}) = Cu.import("resource:///modules/CustomizableUI.jsm", null); | |
| 409 } | |
| 410 catch (e) | |
| 411 { | |
| 412 // No built-in CustomizableUI API, use our own implementation. | |
| 413 ({CustomizableUI}) = require("customizableUI"); | |
| 414 } | |
| 415 | |
| 416 CustomizableUI.createWidget({ | 416 CustomizableUI.createWidget({ | 
| 417 id: "abp-toolbarbutton", | 417 id: "abp-toolbarbutton", | 
| 418 type: "custom", | 418 type: "custom", | 
| 419 positionAttribute: "abp-iconposition", // For emulation only | 419 positionAttribute: "abp-iconposition", // For emulation only | 
| 420 defaultArea: defaultToolbarPosition.parent, | 420 defaultArea: defaultToolbarPosition.parent, | 
| 421 defaultBefore: defaultToolbarPosition.before, // For emulation only | 421 defaultBefore: defaultToolbarPosition.before, // For emulation only | 
| 422 defaultAfter: defaultToolbarPosition.after, // For emulation only | 422 defaultAfter: defaultToolbarPosition.after, // For emulation only | 
| 423 removable: true, | 423 removable: true, | 
| 424 onBuild: function(document) | 424 onBuild: function(document) | 
| 425 { | 425 { | 
| (...skipping 602 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1028 } | 1028 } | 
| 1029 | 1029 | 
| 1030 return [parent, before]; | 1030 return [parent, before]; | 
| 1031 }, | 1031 }, | 
| 1032 | 1032 | 
| 1033 /** | 1033 /** | 
| 1034 * Toggles visibility state of the toolbar icon. | 1034 * Toggles visibility state of the toolbar icon. | 
| 1035 */ | 1035 */ | 
| 1036 toggleToolbarIcon: function() | 1036 toggleToolbarIcon: function() | 
| 1037 { | 1037 { | 
| 1038 if (!CustomizableUI) | |
| 1039 return; | |
| 1038 if (this.isToolbarIconVisible()) | 1040 if (this.isToolbarIconVisible()) | 
| 1039 CustomizableUI.removeWidgetFromArea("abp-toolbarbutton"); | 1041 CustomizableUI.removeWidgetFromArea("abp-toolbarbutton"); | 
| 1040 else | 1042 else | 
| 1041 { | 1043 { | 
| 1042 let {defaultToolbarPosition} = require("appSupport"); | 1044 let {defaultToolbarPosition} = require("appSupport"); | 
| 1043 CustomizableUI.addWidgetToArea("abp-toolbarbutton", defaultToolbarPosition .parent); | 1045 CustomizableUI.addWidgetToArea("abp-toolbarbutton", defaultToolbarPosition .parent); | 
| 1044 } | 1046 } | 
| 1045 }, | 1047 }, | 
| 1046 | 1048 | 
| 1047 /** | 1049 /** | 
| (...skipping 654 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1702 command.doCommand(); | 1704 command.doCommand(); | 
| 1703 } | 1705 } | 
| 1704 } | 1706 } | 
| 1705 }, | 1707 }, | 
| 1706 | 1708 | 
| 1707 /** | 1709 /** | 
| 1708 * Checks whether the toolbar icon is currently displayed. | 1710 * Checks whether the toolbar icon is currently displayed. | 
| 1709 */ | 1711 */ | 
| 1710 isToolbarIconVisible: function() /**Boolean*/ | 1712 isToolbarIconVisible: function() /**Boolean*/ | 
| 1711 { | 1713 { | 
| 1714 if (!CustomizableUI) | |
| 1715 return false; | |
| 1712 let placement = CustomizableUI.getPlacementOfWidget("abp-toolbarbutton"); | 1716 let placement = CustomizableUI.getPlacementOfWidget("abp-toolbarbutton"); | 
| 1713 return !!placement; | 1717 return !!placement; | 
| 1714 }, | 1718 }, | 
| 1715 | 1719 | 
| 1716 /** | 1720 /** | 
| 1717 * Stores the selected hotkeys, initialized when the user presses a key. | 1721 * Stores the selected hotkeys, initialized when the user presses a key. | 
| 1718 */ | 1722 */ | 
| 1719 hotkeys: null, | 1723 hotkeys: null, | 
| 1720 | 1724 | 
| 1721 /** | 1725 /** | 
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1913 ["abp-command-contribute", "command", UI.openContributePage.bind(UI)], | 1917 ["abp-command-contribute", "command", UI.openContributePage.bind(UI)], | 
| 1914 ["abp-command-contribute-hide", "command", UI.hideContributeButton.bind(UI)] | 1918 ["abp-command-contribute-hide", "command", UI.hideContributeButton.bind(UI)] | 
| 1915 ]; | 1919 ]; | 
| 1916 | 1920 | 
| 1917 onShutdown.add(function() | 1921 onShutdown.add(function() | 
| 1918 { | 1922 { | 
| 1919 for (let window in UI.applicationWindows) | 1923 for (let window in UI.applicationWindows) | 
| 1920 if (UI.isBottombarOpen(window)) | 1924 if (UI.isBottombarOpen(window)) | 
| 1921 UI.toggleBottombar(window); | 1925 UI.toggleBottombar(window); | 
| 1922 }); | 1926 }); | 
| LEFT | RIGHT |