Bug 115189

Summary: [BlackBerry] Enable balanced page group load deferrer behaviour.
Product: WebKit Reporter: Mike Lattanzio <mlattanzio>
Component: WebKit BlackBerryAssignee: Mike Lattanzio <mlattanzio>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, joenotcharles
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Other   
OS: Other   
Attachments:
Description Flags
Patch
none
Patch none

Description Mike Lattanzio 2013-04-25 11:22:10 PDT
Every port uses PageGroupLoadDeferrer wrapper objects, as do we. 
We should therefore enable the balanced page group load deferrer behavior so they can be safely nested.
Comment 1 Mike Lattanzio 2013-04-25 11:28:05 PDT
Created attachment 199695 [details]
Patch
Comment 2 Rob Buis 2013-04-25 11:36:59 PDT
Comment on attachment 199695 [details]
Patch

Ok.
Comment 3 WebKit Commit Bot 2013-04-25 11:39:27 PDT
Comment on attachment 199695 [details]
Patch

Rejecting attachment 199695 [details] from commit-queue.

Failed to run "['/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch', '--status-host=webkit-queues.appspot.com', '--bot-id=webkit-cq-01', 'apply-attachment', '--no-update', '--non-interactive', 199695, '--port=mac']" exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
Rob Buis']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Parsed 2 diffs from patch file(s).
patching file Source/WebKit/blackberry/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebKit/blackberry/Api/WebPage.cpp
Hunk #1 FAILED at 631.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebKit/blackberry/Api/WebPage.cpp.rej

Failed to run "[u'/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply', '--force', '--reviewer', u'Rob Buis']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/11340
Comment 4 Joe Mason 2013-04-25 11:41:53 PDT
    I've done an audit to prove that this use is safe. Unlike other ports we don't expose the setWantsBalancedSetDefersLoadingBehavior in the platform API, and we don't expose any access to setDefersLoading except for a wrapper for PageGroupLoadDeferrer, which is meant to be created on the stack and calls setDefersLoading in the constructor and destructor, keeping the calls balanced. So we definitely do not have any unbalanced calls to setDefersLoading.

    And since we assumed PageGroupLoadDeferrers could be nested, and make heavy use of them, it's unsafe to NOT set wantsBalancedSetDefersLoadingBehavior.
Comment 5 Joe Mason 2013-04-25 11:45:05 PDT
(In reply to comment #3)
> (From update of attachment 199695 [details])
> patching file Source/WebKit/blackberry/Api/WebPage.cpp
> Hunk #1 FAILED at 631.
> 1 out of 1 hunk FAILED -- saving rejects to file Source/WebKit/blackberry/Api/WebPage.cpp.rej

Oops, this was based on the internal branch and not the upstream branch and I guess it's diverged. We'll need to make the change in the internal and svn/master branches simultaneously, and merge them at the next rebase. (Hopefully the rest of the local changes will be upstreamed by then.)

Leaving this open until there's time to do that.
Comment 6 Mike Lattanzio 2013-04-25 11:54:17 PDT
Created attachment 199727 [details]
Patch
Comment 7 WebKit Commit Bot 2013-04-25 12:55:52 PDT
Comment on attachment 199727 [details]
Patch

Clearing flags on attachment: 199727

Committed r149135: <http://trac.webkit.org/changeset/149135>
Comment 8 WebKit Commit Bot 2013-04-25 12:55:53 PDT
All reviewed patches have been landed.  Closing bug.