Closed Bug 718127 Opened 13 years ago Closed 13 years ago

Zombie compartment when 'Add Adblock Plus filter rule' window stays open after closing the tab

Categories

(Firefox :: Untriaged, defect)

12 Branch
All
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: epinal99-bugzilla2, Unassigned)

Details

Attachments

(1 file)

Attached file testcase.html
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0a1) Gecko/20120113 Firefox/12.0a1
Build ID: 20120113031050

Steps to reproduce:

I'm not sure if it's a valid bug about Adblock Plus add-on, but I prefer to report it.
I tried with FF9 and FF12, same result.

STR:
0) Create a new profile and install Adblock Plus add-on
1) Open the testcase I attached (.html file)
2) Right click on the image
3) Select 'Adblock Plus: Block image...'
4) Close the tab (not the 'Add Adblock Plus filter rule' window)

While the 'Add Adblock Plus filter rule' window stays open, a compartment is present:

│  ├──────93,800 B (00.13%) -- compartment(file:///C:/Users/<User>/Downloads/testcase.html)
│  │      ├──81,920 B (00.12%) -- gc-heap
│  │      │  ├──58,608 B (00.08%) -- arena
│  │      │  │  ├──58,064 B (00.08%) -- unused
│  │      │  │  ├─────320 B (00.00%) -- headers
│  │      │  │  └─────224 B (00.00%) -- padding
│  │      │  ├──14,768 B (00.02%) -- shapes
│  │      │  │  ├───9,696 B (00.01%) -- dict
│  │      │  │  ├───3,872 B (00.01%) -- base
│  │      │  │  └───1,200 B (00.00%) -- tree
│  │      │  ├───7,856 B (00.01%) -- objects
│  │      │  │   ├──7,232 B (00.01%) -- function
│  │      │  │   └────624 B (00.00%) -- non-function
│  │      │  ├─────544 B (00.00%) -- type-objects
│  │      │  └─────144 B (00.00%) -- scripts
│  │      ├───7,968 B (00.01%) -- shapes-extra
│  │      │   ├──4,576 B (00.01%) -- dict-tables
│  │      │   ├──3,264 B (00.00%) -- compartment-tables
│  │      │   └────128 B (00.00%) -- tree-shape-kids
│  │      ├───3,904 B (00.01%) -- object-slots
│  │      └───────8 B (00.00%) -- script-data

Sometimes 2 compartments can stay in memory.

STR:
1) Open http://www.pcinpact.com/news/68273-apple-target-mini-store-mac.htm
2) Right click on the central image (URL: http://static.pcinpact.com/images/bd/news/mini-107806-apple-store-louvre.jpg )
3) Select 'Adblock Plus: Block image...'
4) Close the tab (not the 'Add Adblock Plus filter rule' window)

│  ├───4,772,456 B (05.90%) -- compartment(http://www.pcinpact.com/news/68273-apple-target-mini-store-mac.htm)
│  │   ├──2,936,832 B (03.63%) -- gc-heap
│  │   │  ├──1,478,744 B (01.83%) -- arena
│  │   │  │  ├──1,456,824 B (01.80%) -- unused
│  │   │  │  ├─────11,472 B (00.01%) -- headers
│  │   │  │  └─────10,448 B (00.01%) -- padding
│  │   │  ├────498,080 B (00.62%) -- objects
│  │   │  │    ├──253,136 B (00.31%) -- non-function
│  │   │  │    └──244,944 B (00.30%) -- function
│  │   │  ├────450,864 B (00.56%) -- scripts
│  │   │  ├────377,848 B (00.47%) -- shapes
│  │   │  │    ├──226,968 B (00.28%) -- tree
│  │   │  │    ├──123,840 B (00.15%) -- dict
│  │   │  │    └───27,040 B (00.03%) -- base
│  │   │  ├────119,104 B (00.15%) -- type-objects
│  │   │  └─────12,192 B (00.02%) -- strings
│  │   ├────925,448 B (01.14%) -- script-data
│  │   ├────327,680 B (00.41%) -- mjit-code
│  │   ├────245,440 B (00.30%) -- shapes-extra
│  │   │    ├──121,408 B (00.15%) -- tree-tables
│  │   │    ├───56,480 B (00.07%) -- dict-tables
│  │   │    ├───54,112 B (00.07%) -- tree-shape-kids
│  │   │    └───13,440 B (00.02%) -- compartment-tables
│  │   ├────144,496 B (00.18%) -- object-slots
│  │   ├────111,552 B (00.14%) -- type-inference
│  │   │    ├───91,728 B (00.11%) -- object-main
│  │   │    └───19,824 B (00.02%) -- tables
│  │   ├─────41,664 B (00.05%) -- string-chars
│  │   └─────39,344 B (00.05%) -- analysis-temporary

│  ├─────219,024 B (00.27%) -- compartment(http://platform.twitter.com/widgets/hub.1326407570.html)
│  │     ├──131,072 B (00.16%) -- mjit-code
│  │     ├───77,824 B (00.10%) -- gc-heap
│  │     │   ├──72,960 B (00.09%) -- arena
│  │     │   │  ├──72,432 B (00.09%) -- unused
│  │     │   │  ├─────304 B (00.00%) -- headers
│  │     │   │  └─────224 B (00.00%) -- padding
│  │     │   ├───2,640 B (00.00%) -- shapes
│  │     │   │   ├──1,128 B (00.00%) -- tree
│  │     │   │   ├────960 B (00.00%) -- base
│  │     │   │   └────552 B (00.00%) -- dict
│  │     │   ├───1,856 B (00.00%) -- objects
│  │     │   │   ├──1,360 B (00.00%) -- function
│  │     │   │   └────496 B (00.00%) -- non-function
│  │     │   ├─────224 B (00.00%) -- type-objects
│  │     │   └─────144 B (00.00%) -- scripts
│  │     ├────7,240 B (00.01%) -- shapes-extra
│  │     │    ├──6,664 B (00.01%) -- compartment-tables
│  │     │    ├────352 B (00.00%) -- dict-tables
│  │     │    ├────128 B (00.00%) -- tree-shape-kids
│  │     │    └─────96 B (00.00%) -- tree-tables
│  │     ├────2,880 B (00.00%) -- object-slots
│  │     └────────8 B (00.00%) -- script-data
Hardware: x86_64 → All
Attachment #588579 - Attachment mime type: text/plain → text/html
This window holds a reference to the element that it was opened for - it might need to remove that element. So as long as the window is open the compartment won't be garbage collected, that's expected. What I'm not sure about is whether this is an issue and if it is - how it should be fixed. Store a weak reference to the DOM node? This kind of thing caused weird memory leaks in the past when executed from JavaScript.
Note that the "Page Info" window in Firefox similarly "leaks" memory. As long as this window is open the compartment of the corresponding web page won't be garbage collected even if the tab is closed.
Thanks for the testing and report, Loic.  But I think this behaviour is quite reasonable, so I'll WONTFIX this.
No longer blocks: ZombieCompartments, LeakyAddons
Status: UNCONFIRMED → RESOLVED
Closed: 13 years ago
Resolution: --- → WONTFIX
(In reply to Wladimir Palant from comment #1)
> Store a weak reference to the DOM node? This kind of thing caused weird
> memory leaks in the past when executed from JavaScript.
As of Firefox 11, weak maps shouldn't be leaky any more. If you happen to try them out and find that they are, please file a bug and CC me.  Thanks.
Andrew, I like the idea of weak maps, a lot actually. But I am just about to drop support for Firefox 3.6 and require at least Firefox 8 - it will take at least another 18 weeks until I can set minVersion to Firefox 11.
Yeah, I understand, I was just putting it on your radar in case you weren't aware.  They are starting to be used in Firefox itself, so hopefully any remaining wrinkles will be worked out soon.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: