Skia appears to use DiscardableSharedMemory on all platforms.
https://cs.chromium.org/chromium/src/skia/ext/SkDiscardableMemory_chrome.cc?type=cs&q=AllocateLockedDiscardableMemory&sq=package:chromium&l=40
"""
SkDiscardableMemory* SkDiscardableMemory::Create(size_t bytes) {
return new SkDiscardableMemoryChrome(
base::DiscardableMemoryAllocator::GetInstance()
->AllocateLockedDiscardableMemory(bytes));
}
"""
But DiscardableSharedMemory is only implemented on Android.
"""
// Returns SUCCESS on platforms which do not support discardable pages.
DiscardableSharedMemory::LockResult LockPages(const SharedMemory& memory,
size_t offset,
size_t length) {
#if defined(OS_ANDROID)
SharedMemoryHandle handle = memory.handle();
if (handle.IsValid()) {
int pin_result = ashmem_pin_region(handle.GetHandle(), offset, length);
if (pin_result == ASHMEM_WAS_PURGED)
return DiscardableSharedMemory::PURGED;
if (pin_result < 0)
return DiscardableSharedMemory::FAILED;
}
#endif
return DiscardableSharedMemory::SUCCESS;
}
"""
Comment 1 by erikc...@chromium.org
, Feb 8 2018