Bug 141977

Summary: Regression(r164091): Pages using URL.createObjectURL() cannot enter the PageCache
Product: WebKit Reporter: Chris Dumez <cdumez>
Component: DOMAssignee: Chris Dumez <cdumez>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, commit-queue, esprehn+autocc, gyuyoung.kim, jer.noble, kling, rniwa, sun.shin
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 128532    
Attachments:
Description Flags
Patch none

Chris Dumez
Reported 2015-02-24 10:37:16 PST
Make PublicURLManager suspendable. There is nothing preventing it from being suspended. It is used on baidu.com and prevents pages from going into the PageCache unnecessarily. Radar: <rdar://problem/19923085>
Attachments
Patch (7.80 KB, patch)
2015-02-24 21:23 PST, Chris Dumez
no flags
Chris Dumez
Comment 1 2015-02-24 11:39:17 PST
This is a regression from <http://trac.webkit.org/changeset/164091>.
Chris Dumez
Comment 2 2015-02-24 11:45:31 PST
At first, I thought I would simply mark PublicURLManager as suspendable. However, I think the correct fix is for PublicURLManager to not be an ActiveDOMObject (because it never causes any JS to be executed). The reference cycle from Bug 128532 can be likely fixed by clearing the URLRegistry from Document::prepareForDestruction() instead of from ~ScriptExecutionContext().
Byungseon(Sun) Shin
Comment 3 2015-02-24 18:07:30 PST
(In reply to comment #2) > At first, I thought I would simply mark PublicURLManager as suspendable. > However, I think the correct fix is for PublicURLManager to not be an > ActiveDOMObject (because it never causes any JS to be executed). > > The reference cycle from Bug 128532 can be likely fixed by clearing the > URLRegistry from Document::prepareForDestruction() instead of from > ~ScriptExecutionContext(). @Chris, thanks for sharing this issue. I will check memory leakage issue by using "Document::prepareForDestruction()" and update here soon.
Chris Dumez
Comment 4 2015-02-24 18:55:12 PST
(In reply to comment #3) > (In reply to comment #2) > > At first, I thought I would simply mark PublicURLManager as suspendable. > > However, I think the correct fix is for PublicURLManager to not be an > > ActiveDOMObject (because it never causes any JS to be executed). > > > > The reference cycle from Bug 128532 can be likely fixed by clearing the > > URLRegistry from Document::prepareForDestruction() instead of from > > ~ScriptExecutionContext(). > > @Chris, thanks for sharing this issue. > I will check memory leakage issue by using > "Document::prepareForDestruction()" and update here soon. I am actually working on it already.
Chris Dumez
Comment 5 2015-02-24 18:56:08 PST
(In reply to comment #4) > (In reply to comment #3) > > (In reply to comment #2) > > > At first, I thought I would simply mark PublicURLManager as suspendable. > > > However, I think the correct fix is for PublicURLManager to not be an > > > ActiveDOMObject (because it never causes any JS to be executed). > > > > > > The reference cycle from Bug 128532 can be likely fixed by clearing the > > > URLRegistry from Document::prepareForDestruction() instead of from > > > ~ScriptExecutionContext(). > > > > @Chris, thanks for sharing this issue. > > I will check memory leakage issue by using > > "Document::prepareForDestruction()" and update here soon. > > I am actually working on it already. The reason I haven't uploaded a patch is because I am trying to figure out why MediaSource would ref the Document in the first place.
Byungseon(Sun) Shin
Comment 6 2015-02-24 20:28:44 PST
(In reply to comment #5) > (In reply to comment #4) > > (In reply to comment #3) > > > (In reply to comment #2) > > > > At first, I thought I would simply mark PublicURLManager as suspendable. > > > > However, I think the correct fix is for PublicURLManager to not be an > > > > ActiveDOMObject (because it never causes any JS to be executed). > > > > > > > > The reference cycle from Bug 128532 can be likely fixed by clearing the > > > > URLRegistry from Document::prepareForDestruction() instead of from > > > > ~ScriptExecutionContext(). > > > > > > @Chris, thanks for sharing this issue. > > > I will check memory leakage issue by using > > > "Document::prepareForDestruction()" and update here soon. > > > > I am actually working on it already. > > The reason I haven't uploaded a patch is because I am trying to figure out > why MediaSource would ref the Document in the first place. I see. Thanks for the reply.
Chris Dumez
Comment 7 2015-02-24 21:23:28 PST
Andreas Kling
Comment 8 2015-02-25 15:03:22 PST
Comment on attachment 247310 [details] Patch I suppose this is reasonable.
WebKit Commit Bot
Comment 9 2015-02-25 15:49:26 PST
Comment on attachment 247310 [details] Patch Clearing flags on attachment: 247310 Committed r180646: <http://trac.webkit.org/changeset/180646>
WebKit Commit Bot
Comment 10 2015-02-25 15:49:31 PST
All reviewed patches have been landed. Closing bug.
Brent Fulgham
Comment 11 2015-02-25 17:13:40 PST
Did you check if eventSender.beginDragWithFiles(). is supported on Windows? The test bots say "NO". :-|
Brent Fulgham
Comment 12 2015-02-25 17:17:10 PST
Windows marked as Skip in <https://trac.webkit.org/changeset/180650>
Note You need to log in before you can comment on or make changes to this bug.