RESOLVED FIXED103969
[BlackBerry] On taking over a backingstore, reset the previous page's tiles
https://bugs.webkit.org/show_bug.cgi?id=103969
Summary [BlackBerry] On taking over a backingstore, reset the previous page's tiles
Jakob Petsovits
Reported 2012-12-03 21:03:40 PST
With buffers being explicitly reclaimed from backingstore geometries, we have to make sure that the previously active backingstore releases its front buffers for use in the newly active one. Previously, this clearing of backingstore tiles occurred after the dormant backingstore is reactivated, the backingstore active in the meantime would just use the back buffer anyway and leave the dormant one with dangling pointers that would just not be shown. Now that we have a counted list of back buffers, we need to be explicit about this thing upfront. The patch below fixes a crash that would occur after switching ownership of the backingstore to a different WebPage.
Attachments
Patch (2.70 KB, patch)
2012-12-03 21:10 PST, Jakob Petsovits
no flags
Patch (5.82 KB, patch)
2012-12-05 13:23 PST, Jakob Petsovits
no flags
Jakob Petsovits
Comment 1 2012-12-03 21:10:40 PST
WebKit Review Bot
Comment 2 2012-12-04 00:09:11 PST
Comment on attachment 177410 [details] Patch Clearing flags on attachment: 177410 Committed r136483: <http://trac.webkit.org/changeset/136483>
WebKit Review Bot
Comment 3 2012-12-04 00:09:15 PST
All reviewed patches have been landed. Closing bug.
Jakob Petsovits
Comment 4 2012-12-05 13:15:27 PST
The above patch didn't cover all the cases; in particular, it did not take into account that resetTiles() would sometimes return early without having swapped the tiles and thus reclaiming them. This would cause a crash when switching back from a tab that had already been made invisible. The follow-up patch below removes the early returns, because it's safe to swap in an empty geometry at any time and we should always take the chance when we get it. Also the code that calls resetTiles() on an owner switch should be put right into setCurrentBackingStoreOwner(), so that it will also release the buffers when the BackingStore is destroyed (the function is then called with 0).
Jakob Petsovits
Comment 5 2012-12-05 13:23:44 PST
Adam Treat
Comment 6 2012-12-05 13:25:17 PST
Comment on attachment 177817 [details] Patch Good stuff!
WebKit Review Bot
Comment 7 2012-12-05 14:13:51 PST
Comment on attachment 177817 [details] Patch Clearing flags on attachment: 177817 Committed r136761: <http://trac.webkit.org/changeset/136761>
WebKit Review Bot
Comment 8 2012-12-05 14:13:54 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.