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. <rdar://problem/17186342>
Created attachment 233271 [details] patch
Comment on attachment 233271 [details] patch 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. > Source/WebKit2/Shared/mac/RemoteLayerBackingStoreCollection.mm:160 > + for (const auto& backingStore : m_unparentedBackingStore) Blank line above please. > Source/WebKit2/UIProcess/ios/ProcessThrottler.mm:109 > + // 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] [5] Total errors found: 1 in 15 files If any of these errors are false positives, please file a bug against check-webkit-style.
LGTM
http://trac.webkit.org/changeset/170316