OLD | NEW |
1 /* | 1 /* |
2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
3 * Copyright (C) 2006-2016 Eyeo GmbH | 3 * Copyright (C) 2006-2016 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 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
478 } | 478 } |
479 unhighlightElements(); | 479 unhighlightElements(); |
480 | 480 |
481 let overlays = document.getElementsByClassName("__adblockplus__overlay"); | 481 let overlays = document.getElementsByClassName("__adblockplus__overlay"); |
482 while (overlays.length > 0) | 482 while (overlays.length > 0) |
483 overlays[0].parentNode.removeChild(overlays[0]); | 483 overlays[0].parentNode.removeChild(overlays[0]); |
484 | 484 |
485 ext.onExtensionUnloaded.removeListener(deactivateBlockElement); | 485 ext.onExtensionUnloaded.removeListener(deactivateBlockElement); |
486 } | 486 } |
487 | 487 |
488 // In Chrome 37-40, the document_end content script (this one) runs properly, | 488 if (document instanceof HTMLDocument) |
489 // while the document_start content scripts (that defines ext) might not. Check | |
490 // whether variable ext exists before continuing to avoid | |
491 // "Uncaught ReferenceError: ext is not defined". See https://crbug.com/416907 | |
492 if ("ext" in window && document instanceof HTMLDocument) | |
493 { | 489 { |
494 // Use a contextmenu handler to save the last element the user right-clicked | 490 // Use a contextmenu handler to save the last element the user right-clicked |
495 // on. To make things easier, we actually save the DOM event. We have to do | 491 // on. To make things easier, we actually save the DOM event. We have to do |
496 // this because the contextMenu API only provides a URL, not the actual DOM | 492 // this because the contextMenu API only provides a URL, not the actual DOM |
497 // element. | 493 // element. |
498 // We also need to make sure that the previous right click event, | 494 // We also need to make sure that the previous right click event, |
499 // if there is one, is removed. We don't know which frame it is in so we must | 495 // if there is one, is removed. We don't know which frame it is in so we must |
500 // send a message to the other frames to clear their old right click events. | 496 // send a message to the other frames to clear their old right click events. |
501 document.addEventListener("contextmenu", event => | 497 document.addEventListener("contextmenu", event => |
502 { | 498 { |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
546 if (currentElement && msg.remove) | 542 if (currentElement && msg.remove) |
547 { | 543 { |
548 // Hide the selected element itself if an added blocking | 544 // Hide the selected element itself if an added blocking |
549 // filter is causing it to collapse. Note that this | 545 // filter is causing it to collapse. Note that this |
550 // behavior is incomplete, but the best we can do here, | 546 // behavior is incomplete, but the best we can do here, |
551 // e.g. if an added blocking filter matches other elements, | 547 // e.g. if an added blocking filter matches other elements, |
552 // the effect won't be visible until the page is is reloaded. | 548 // the effect won't be visible until the page is is reloaded. |
553 checkCollapse(currentElement.prisoner || currentElement); | 549 checkCollapse(currentElement.prisoner || currentElement); |
554 | 550 |
555 // Apply added element hiding filters. | 551 // Apply added element hiding filters. |
556 updateStylesheet(); | 552 elemhide.apply(); |
557 } | 553 } |
558 deactivateBlockElement(); | 554 deactivateBlockElement(); |
559 break; | 555 break; |
560 case "composer.content.clearPreviousRightClickEvent": | 556 case "composer.content.clearPreviousRightClickEvent": |
561 if (!lastRightClickEventIsMostRecent) | 557 if (!lastRightClickEventIsMostRecent) |
562 lastRightClickEvent = null; | 558 lastRightClickEvent = null; |
563 lastRightClickEventIsMostRecent = false; | 559 lastRightClickEventIsMostRecent = false; |
564 break; | 560 break; |
565 case "composer.content.dialogOpened": | 561 case "composer.content.dialogOpened": |
566 if (window == window.top) | 562 if (window == window.top) |
(...skipping 13 matching lines...) Expand all Loading... |
580 } | 576 } |
581 }); | 577 }); |
582 } | 578 } |
583 break; | 579 break; |
584 } | 580 } |
585 }); | 581 }); |
586 | 582 |
587 if (window == window.top) | 583 if (window == window.top) |
588 ext.backgroundPage.sendMessage({type: "composer.ready"}); | 584 ext.backgroundPage.sendMessage({type: "composer.ready"}); |
589 } | 585 } |
OLD | NEW |