WebKit tries to make layers volatile when unparented, but sometimes isn't given a chance to do so before the process gets suspended, so we end up with lots of non-volatile surfaces that should really be volatile.
Created attachment 233271 [details]
Comment on attachment 233271 [details]
View in context: https://bugs.webkit.org/attachment.cgi?id=233271&action=review
> + bool markBackingStoreVolatileImmediately(RemoteLayerBackingStore&, unsigned volatilityMarkingFlags = 0);
enum for the set of flag mask please, not unsigned.
> + for (const auto& backingStore : m_unparentedBackingStore)
Blank line above please.
> + // If the process is currently waiting for the WebProcess to become suspendable but would become runnable,
> + // let it know that it can cancel the suspension cleanup.
Hard to grok
(In reply to comment #2)
> (From update of attachment 233271 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=233271&action=review
> > Source/WebKit2/Shared/mac/RemoteLayerBackingStoreCollection.h:65
> > + bool markBackingStoreVolatileImmediately(RemoteLayerBackingStore&, unsigned volatilityMarkingFlags = 0);
> enum for the set of flag mask please, not unsigned.
To clarify, .smfr says to use a typedef of unsigned for the flag argument type.
Created attachment 233277 [details]
with simon's changes
This patch will now sit here for a bit while I work on the final remaining piece in another bug.
Attachment 233277 [details] did not pass style-queue:
ERROR: Source/WebKit2/Shared/mac/RemoteLayerBackingStoreCollection.h:66: The parameter name "volatilityMarkingFlags" adds no information, so it should be removed. [readability/parameter_name] 
Total errors found: 1 in 15 files
If any of these errors are false positives, please file a bug against check-webkit-style.