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 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 document.body.appendChild(overlay); | 302 document.body.appendChild(overlay); |
303 return overlay; | 303 return overlay; |
304 } | 304 } |
305 | 305 |
306 // Show dialog asking user whether she wants to add the proposed filters derived | 306 // Show dialog asking user whether she wants to add the proposed filters derived |
307 // from selected page element | 307 // from selected page element |
308 function clickHide_showDialog(left, top, filters) | 308 function clickHide_showDialog(left, top, filters) |
309 { | 309 { |
310 // If we are already selecting, abort now | 310 // If we are already selecting, abort now |
311 if (clickHide_activated || clickHideFiltersDialog) | 311 if (clickHide_activated || clickHideFiltersDialog) |
312 { | 312 clickHide_deactivate(true); |
313 var savedElement = (currentElement.prisoner ? currentElement.prisoner : curr
entElement); | |
314 clickHide_deactivate(); | |
315 currentElement = savedElement; | |
316 } | |
317 | 313 |
318 clickHide_filters = filters; | 314 clickHide_filters = filters; |
319 | 315 |
320 clickHideFiltersDialog = document.createElement("iframe"); | 316 clickHideFiltersDialog = document.createElement("iframe"); |
321 clickHideFiltersDialog.src = ext.getURL("block.html"); | 317 clickHideFiltersDialog.src = ext.getURL("block.html"); |
322 clickHideFiltersDialog.setAttribute("style", "position: fixed !important; visi
bility: hidden; display: block !important; border: 0px !important;"); | 318 clickHideFiltersDialog.setAttribute("style", "position: fixed !important; visi
bility: hidden; display: block !important; border: 0px !important;"); |
323 clickHideFiltersDialog.style.WebkitBoxShadow = "5px 5px 20px rgba(0,0,0,0.5)"; | 319 clickHideFiltersDialog.style.WebkitBoxShadow = "5px 5px 20px rgba(0,0,0,0.5)"; |
324 clickHideFiltersDialog.style.zIndex = 0x7FFFFFFF; | 320 clickHideFiltersDialog.style.zIndex = 0x7FFFFFFF; |
325 | 321 |
326 // Position in upper-left all the time | 322 // Position in upper-left all the time |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
368 // on whether the user actually wants these filters | 364 // on whether the user actually wants these filters |
369 function clickHide_rulesPending() { | 365 function clickHide_rulesPending() { |
370 clickHide_activated = false; | 366 clickHide_activated = false; |
371 document.removeEventListener("mouseover", clickHide_mouseOver, true); | 367 document.removeEventListener("mouseover", clickHide_mouseOver, true); |
372 document.removeEventListener("mouseout", clickHide_mouseOut, true); | 368 document.removeEventListener("mouseout", clickHide_mouseOut, true); |
373 document.removeEventListener("click", clickHide_mouseClick, true); | 369 document.removeEventListener("click", clickHide_mouseClick, true); |
374 document.removeEventListener("keydown", clickHide_keyDown, true); | 370 document.removeEventListener("keydown", clickHide_keyDown, true); |
375 } | 371 } |
376 | 372 |
377 // Turn off click-to-hide | 373 // Turn off click-to-hide |
378 function clickHide_deactivate() | 374 function clickHide_deactivate(keepOverlays) |
379 { | 375 { |
380 if (clickHideFiltersDialog) | 376 if (clickHideFiltersDialog) |
381 { | 377 { |
382 document.body.removeChild(clickHideFiltersDialog); | 378 document.body.removeChild(clickHideFiltersDialog); |
383 clickHideFiltersDialog = null; | 379 clickHideFiltersDialog = null; |
384 } | 380 } |
385 | 381 |
386 if(currentElement) { | |
387 currentElement.removeEventListener("contextmenu", clickHide_elementClickHand
ler, true); | |
388 unhighlightElements(); | |
389 unhighlightElement(currentElement); | |
390 currentElement = null; | |
391 clickHideFilters = null; | |
392 } | |
393 unhighlightElements(); | |
394 | |
395 clickHide_activated = false; | 382 clickHide_activated = false; |
396 clickHide_filters = null; | 383 clickHide_filters = null; |
397 if(!document) | 384 if(!document) |
398 return; // This can happen inside a nuked iframe...I think | 385 return; // This can happen inside a nuked iframe...I think |
399 document.removeEventListener("mouseover", clickHide_mouseOver, true); | 386 document.removeEventListener("mouseover", clickHide_mouseOver, true); |
400 document.removeEventListener("mouseout", clickHide_mouseOut, true); | 387 document.removeEventListener("mouseout", clickHide_mouseOut, true); |
401 document.removeEventListener("click", clickHide_mouseClick, true); | 388 document.removeEventListener("click", clickHide_mouseClick, true); |
402 document.removeEventListener("keydown", clickHide_keyDown, true); | 389 document.removeEventListener("keydown", clickHide_keyDown, true); |
403 | 390 |
404 // Remove overlays | 391 if (!keepOverlays) |
405 // For some reason iterating over the array returend by getElementsByClassName
() doesn't work | 392 { |
406 var elt; | 393 if (currentElement) { |
407 while(elt = document.querySelector('.__adblockplus__overlay')) | 394 currentElement.removeEventListener("contextmenu", clickHide_elementClickH
andler, true); |
408 elt.parentNode.removeChild(elt); | 395 unhighlightElements(); |
| 396 unhighlightElement(currentElement); |
| 397 currentElement = null; |
| 398 clickHideFilters = null; |
| 399 } |
| 400 unhighlightElements(); |
| 401 |
| 402 var overlays = document.getElementsByClassName("__adblockplus__overlay"); |
| 403 while (overlays.length > 0) |
| 404 overlays[0].parentNode.removeChild(overlays[0]); |
| 405 } |
409 } | 406 } |
410 | 407 |
411 function clickHide_elementClickHandler(ev) { | 408 function clickHide_elementClickHandler(ev) { |
412 ev.preventDefault(); | 409 ev.preventDefault(); |
413 ev.stopPropagation(); | 410 ev.stopPropagation(); |
414 clickHide_mouseClick(ev); | 411 clickHide_mouseClick(ev); |
415 } | 412 } |
416 | 413 |
417 // Hovering over an element so highlight it | 414 // Hovering over an element so highlight it |
418 function clickHide_mouseOver(e) | 415 function clickHide_mouseOver(e) |
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
718 break; | 715 break; |
719 default: | 716 default: |
720 sendResponse({}); | 717 sendResponse({}); |
721 break; | 718 break; |
722 } | 719 } |
723 }); | 720 }); |
724 | 721 |
725 if (window == window.top) | 722 if (window == window.top) |
726 ext.backgroundPage.sendMessage({type: "report-html-page"}); | 723 ext.backgroundPage.sendMessage({type: "report-html-page"}); |
727 } | 724 } |
OLD | NEW |