Opened on 03/25/2015 at 01:53:30 PM

Closed on 04/08/2015 at 11:54:37 AM

Last modified on 04/08/2015 at 03:50:37 PM

#2215 closed defect (fixed)

"Block element" freezes page when highlighting too many elements

Reported by: passbrains Assignee: sebastian
Priority: Unknown Milestone: Adblock-Plus-1.9-for-Chrome-Opera-Safari
Module: Platform Keywords:
Cc: sebastian, Ross Blocked By:
Blocking: Platform: Opera
Ready: yes Confidential: no
Tester: Verified working: no
Review URL(s):

http://codereview.adblockplus.org/4806142987337728

Description (last modified by sebastian)

Adapted from https://www.passbrains.com/dashboard/view-ticket.php?ticket_no=AOP-205

Environment

Windows + Vista 64bit + Opera + English
ABP version opera 1.8.12.1396

How to reproduce

  1. Install latest ABP extension.
  2. Load website  http://fileinfo.com/filetypes/video
  3. Click on ABP icon and select "Block Element".
  4. Select second row to block as shown in snapshot.
  5. Observe 1
  6. Try to move  mouse cursor anywhere.
  7. Observe 2.


Observed behaviour

Observe 1 : Add filter dialog does not cpme up.
Observe 2  No response on screen on moving mouse cursor.
Check 3 times, same behavior observed.

Expected behaviour

Add filter dialog should come up immediately. The page shouldn't freeze.

Attachments (1)

3668_1426871680_file.jpg (132.2 KB) - added by passbrains on 03/25/2015 at 01:53:33 PM.

Download all attachments as: .zip

Change History (10)

Changed on 03/25/2015 at 01:53:33 PM by passbrains

comment:1 Changed on 03/25/2015 at 01:53:36 PM by passbrains

1 - 25 Mar 2015 13:53:17 posted by Ross Green
Reproduced.

It appears to hang for a "long" time (5+ seconds) after selecting one of the list entries. The Add filter dialog is eventually displayed with either "fileinfo.com##.odd" or "fileinfo.com##.even" as the filter.

Opera 28 / Windows Vista x64 / ABP Build: 1.8.12.1401

comment:2 Changed on 03/25/2015 at 05:53:14 PM by sebastian

  • Cc sebastian Ross added
  • Description modified (diff)

That is because the high number of other elements with the same class which will be highlighted as well when that element is selected.

Instead of highlighting all elements at once, I could highlight them progressively. This would prevent the tab from freezing and the dialog would show up immediately, while the remaining elements will get highlighted in the background with a delay.

Though I'm not sure whether that it worth it. This seems like a corner case to me.

comment:3 Changed on 03/26/2015 at 11:42:21 AM by sebastian

Also see #2210.

comment:4 Changed on 04/05/2015 at 06:19:29 PM by sebastian

  • Component changed from Unknown to Platform

comment:5 Changed on 04/08/2015 at 10:19:47 AM by sebastian

  • Description modified (diff)
  • Owner set to sebastian
  • Ready set
  • Summary changed from Selecting element for blocking cuase non response/hang of webpage to "Block element" freezes page when highlighting too many elements

comment:6 Changed on 04/08/2015 at 10:26:12 AM by sebastian

  • Review URL(s) modified (diff)
  • Status changed from new to reviewing

comment:7 Changed on 04/08/2015 at 11:54:37 AM by sebastian

  • Milestone set to Adblock-Plus-for-Chrome-Opera-Safari-next
  • Resolution set to fixed
  • Status changed from reviewing to closed

comment:8 Changed on 04/08/2015 at 12:21:06 PM by sebastian

The elements are now highlighted progressively, giving other code a chance to run in between highlighting the individual elements. This will still result in high CPU-load when a huge number of elements is highlighted. But the dialog should show up immediately and the page shouldn't freeze anymore.

@Ross: Can you confirm that this change fixes this issue as well as #2210?

comment:9 Changed on 04/08/2015 at 03:50:37 PM by Ross

Fixed and feels much more responsive (comparing to Opera which currently doesn't have this fix). Dialog appears quickly and I couldn't reproduce the page freezing at all.

Chrome 41.0.2272.118 / Windows 8.1 x64 / ABP: 1.8.12.1409

Add Comment

Modify Ticket

Change Properties
Action
as closed .
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from sebastian.
 
Note: See TracTickets for help on using tickets.