| OLD | NEW |
| 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 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 | 246 |
| 247 TimeLine.leave("ElemHide.apply() done (no file changes)"); | 247 TimeLine.leave("ElemHide.apply() done (no file changes)"); |
| 248 return; | 248 return; |
| 249 } | 249 } |
| 250 | 250 |
| 251 IO.writeToFile(styleURL.file, this._generateCSSContent(), function(e) | 251 IO.writeToFile(styleURL.file, this._generateCSSContent(), function(e) |
| 252 { | 252 { |
| 253 TimeLine.enter("ElemHide.apply() write callback"); | 253 TimeLine.enter("ElemHide.apply() write callback"); |
| 254 this._applying = false; | 254 this._applying = false; |
| 255 | 255 |
| 256 if (e && e.result == Cr.NS_ERROR_NOT_AVAILABLE) | 256 // _generateCSSContent is throwing NS_ERROR_NOT_AVAILABLE to indicate that |
| 257 IO.removeFile(styleURL.file, function(e2) {}); | 257 // there are no filters. If that exception is passed through XPCOM we will |
| 258 // see a proper exception here, otherwise a number. |
| 259 let noFilters = (e == Cr.NS_ERROR_NOT_AVAILABLE || (e && e.result == Cr.NS
_ERROR_NOT_AVAILABLE)); |
| 260 if (noFilters) |
| 261 { |
| 262 e = null; |
| 263 IO.removeFile(styleURL.file, function(e) {}); |
| 264 } |
| 258 else if (e) | 265 else if (e) |
| 259 Cu.reportError(e); | 266 Cu.reportError(e); |
| 260 | 267 |
| 261 if (this._needsApply) | 268 if (this._needsApply) |
| 262 { | 269 { |
| 263 this._needsApply = false; | 270 this._needsApply = false; |
| 264 this.apply(); | 271 this.apply(); |
| 265 } | 272 } |
| 266 else if (!e || e.result == Cr.NS_ERROR_NOT_AVAILABLE) | 273 else if (!e) |
| 267 { | 274 { |
| 268 ElemHide.isDirty = false; | 275 ElemHide.isDirty = false; |
| 269 | 276 |
| 270 ElemHide.unapply(); | 277 ElemHide.unapply(); |
| 271 TimeLine.log("ElemHide.unapply() finished"); | 278 TimeLine.log("ElemHide.unapply() finished"); |
| 272 | 279 |
| 273 if (!e) | 280 if (!noFilters) |
| 274 { | 281 { |
| 275 try | 282 try |
| 276 { | 283 { |
| 277 Utils.styleService.loadAndRegisterSheet(styleURL, Ci.nsIStyleSheetSe
rvice.USER_SHEET); | 284 Utils.styleService.loadAndRegisterSheet(styleURL, Ci.nsIStyleSheetSe
rvice.USER_SHEET); |
| 278 ElemHide.applied = true; | 285 ElemHide.applied = true; |
| 279 } | 286 } |
| 280 catch (e) | 287 catch (e) |
| 281 { | 288 { |
| 282 Cu.reportError(e); | 289 Cu.reportError(e); |
| 283 } | 290 } |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 394 let filter = filterByKey[key]; | 401 let filter = filterByKey[key]; |
| 395 if (specificOnly && (!filter.domains || filter.domains[""])) | 402 if (specificOnly && (!filter.domains || filter.domains[""])) |
| 396 continue; | 403 continue; |
| 397 | 404 |
| 398 if (filter.isActiveOnDomain(domain) && !this.getException(filter, domain)) | 405 if (filter.isActiveOnDomain(domain) && !this.getException(filter, domain)) |
| 399 result.push(filter.selector); | 406 result.push(filter.selector); |
| 400 } | 407 } |
| 401 return result; | 408 return result; |
| 402 } | 409 } |
| 403 }; | 410 }; |
| OLD | NEW |