Commit 3717028f authored by Olivier Yiptong's avatar Olivier Yiptong Committed by Commit Bot

FontAccess: More concise cache task callbacks

Minor refactor that shortens and clarifies the callback queuing mechanism.

Change-Id: Ibebb44009ad7a4091d7df2c25fdcba2f174d0489
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2506362
Commit-Queue: Olivier Yiptong <oyiptong@chromium.org>
Reviewed-by: default avatarJoshua Bell <jsbell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#822756}
parent cd737819
...@@ -26,7 +26,7 @@ FontEnumerationCache* FontEnumerationCache::GetInstance() { ...@@ -26,7 +26,7 @@ FontEnumerationCache* FontEnumerationCache::GetInstance() {
void FontEnumerationCache::QueueShareMemoryRegionWhenReady( void FontEnumerationCache::QueueShareMemoryRegionWhenReady(
scoped_refptr<base::TaskRunner> task_runner, scoped_refptr<base::TaskRunner> task_runner,
blink::mojom::FontAccessManager::EnumerateLocalFontsCallback callback) { CacheTaskCallback callback) {
DCHECK(base::FeatureList::IsEnabled(blink::features::kFontAccess)); DCHECK(base::FeatureList::IsEnabled(blink::features::kFontAccess));
callbacks_task_runner_->PostTask( callbacks_task_runner_->PostTask(
...@@ -56,7 +56,7 @@ void FontEnumerationCache::ResetStateForTesting() { ...@@ -56,7 +56,7 @@ void FontEnumerationCache::ResetStateForTesting() {
enumeration_cache_memory_ = base::MappedReadOnlyRegion(); enumeration_cache_memory_ = base::MappedReadOnlyRegion();
enumeration_cache_built_.UnsafeResetForTesting(); enumeration_cache_built_.UnsafeResetForTesting();
enumeration_cache_build_started_.UnsafeResetForTesting(); enumeration_cache_build_started_.UnsafeResetForTesting();
status_ = FontEnumerationStatus::kOk; status_ = blink::mojom::FontEnumerationStatus::kOk;
} }
base::ReadOnlySharedMemoryRegion FontEnumerationCache::DuplicateMemoryRegion() { base::ReadOnlySharedMemoryRegion FontEnumerationCache::DuplicateMemoryRegion() {
...@@ -66,8 +66,8 @@ base::ReadOnlySharedMemoryRegion FontEnumerationCache::DuplicateMemoryRegion() { ...@@ -66,8 +66,8 @@ base::ReadOnlySharedMemoryRegion FontEnumerationCache::DuplicateMemoryRegion() {
FontEnumerationCache::CallbackOnTaskRunner::CallbackOnTaskRunner( FontEnumerationCache::CallbackOnTaskRunner::CallbackOnTaskRunner(
scoped_refptr<base::TaskRunner> runner, scoped_refptr<base::TaskRunner> runner,
blink::mojom::FontAccessManager::EnumerateLocalFontsCallback callback) CacheTaskCallback callback)
: task_runner(std::move(runner)), mojo_callback(std::move(callback)) {} : task_runner(std::move(runner)), callback(std::move(callback)) {}
FontEnumerationCache::CallbackOnTaskRunner::CallbackOnTaskRunner( FontEnumerationCache::CallbackOnTaskRunner::CallbackOnTaskRunner(
CallbackOnTaskRunner&& other) = default; CallbackOnTaskRunner&& other) = default;
...@@ -79,8 +79,8 @@ void FontEnumerationCache::RunPendingCallback( ...@@ -79,8 +79,8 @@ void FontEnumerationCache::RunPendingCallback(
DCHECK(callbacks_task_runner_->RunsTasksInCurrentSequence()); DCHECK(callbacks_task_runner_->RunsTasksInCurrentSequence());
pending_callback.task_runner->PostTask( pending_callback.task_runner->PostTask(
FROM_HERE, base::BindOnce(std::move(pending_callback.mojo_callback), FROM_HERE, base::BindOnce(std::move(pending_callback.callback), status_,
status_, DuplicateMemoryRegion())); DuplicateMemoryRegion()));
} }
void FontEnumerationCache::StartCallbacksTaskQueue() { void FontEnumerationCache::StartCallbacksTaskQueue() {
......
...@@ -21,8 +21,6 @@ ...@@ -21,8 +21,6 @@
#define PLATFORM_HAS_LOCAL_FONT_ENUMERATION_IMPL 1 #define PLATFORM_HAS_LOCAL_FONT_ENUMERATION_IMPL 1
#endif #endif
using blink::mojom::FontEnumerationStatus;
namespace content { namespace content {
// A class that encapsulates building a font enumeration cache once, // A class that encapsulates building a font enumeration cache once,
...@@ -36,13 +34,17 @@ class CONTENT_EXPORT FontEnumerationCache { ...@@ -36,13 +34,17 @@ class CONTENT_EXPORT FontEnumerationCache {
FontEnumerationCache(); FontEnumerationCache();
~FontEnumerationCache(); ~FontEnumerationCache();
using CacheTaskCallback =
base::OnceCallback<void(blink::mojom::FontEnumerationStatus,
base::ReadOnlySharedMemoryRegion)>;
static FontEnumerationCache* GetInstance(); static FontEnumerationCache* GetInstance();
// Enqueue a request to get notified about the availability of the shared // Enqueue a request to get notified about the availability of the shared
// memory region holding the font enumeration cache. // memory region holding the font enumeration cache.
void QueueShareMemoryRegionWhenReady( void QueueShareMemoryRegionWhenReady(
scoped_refptr<base::TaskRunner> task_runner, scoped_refptr<base::TaskRunner> task_runner,
blink::mojom::FontAccessManager::EnumerateLocalFontsCallback callback); CacheTaskCallback callback);
// Returns whether the cache population has completed and the shared memory // Returns whether the cache population has completed and the shared memory
// region is ready. // region is ready.
...@@ -61,19 +63,17 @@ class CONTENT_EXPORT FontEnumerationCache { ...@@ -61,19 +63,17 @@ class CONTENT_EXPORT FontEnumerationCache {
// Retrieve the prepared memory region if it is available. // Retrieve the prepared memory region if it is available.
base::ReadOnlySharedMemoryRegion DuplicateMemoryRegion(); base::ReadOnlySharedMemoryRegion DuplicateMemoryRegion();
// Used to bind an EnumerateLocalFontsCallback to a provided TaskRunner. // Used to bind a CacheTaskCallback to a provided TaskRunner.
struct CallbackOnTaskRunner { struct CallbackOnTaskRunner {
CallbackOnTaskRunner( CallbackOnTaskRunner(scoped_refptr<base::TaskRunner>, CacheTaskCallback);
scoped_refptr<base::TaskRunner>,
blink::mojom::FontAccessManager::EnumerateLocalFontsCallback);
CallbackOnTaskRunner(CallbackOnTaskRunner&&); CallbackOnTaskRunner(CallbackOnTaskRunner&&);
~CallbackOnTaskRunner(); ~CallbackOnTaskRunner();
scoped_refptr<base::TaskRunner> task_runner; scoped_refptr<base::TaskRunner> task_runner;
blink::mojom::FontAccessManager::EnumerateLocalFontsCallback mojo_callback; CacheTaskCallback callback;
}; };
// Method to bind to callbacks_task_runner_ for execution when the font cache // Method to bind to callbacks_task_runner_ for execution when the font cache
// build is complete. It will run EnumerateLocalFontsCallback on its bound // build is complete. It will run CacheTaskCallback on its bound
// TaskRunner through CallbackOnTaskRunner. // TaskRunner through CallbackOnTaskRunner.
void RunPendingCallback(CallbackOnTaskRunner pending_callback); void RunPendingCallback(CallbackOnTaskRunner pending_callback);
void StartCallbacksTaskQueue(); void StartCallbacksTaskQueue();
...@@ -94,7 +94,8 @@ class CONTENT_EXPORT FontEnumerationCache { ...@@ -94,7 +94,8 @@ class CONTENT_EXPORT FontEnumerationCache {
scoped_refptr<base::DeferredSequencedTaskRunner> callbacks_task_runner_ = scoped_refptr<base::DeferredSequencedTaskRunner> callbacks_task_runner_ =
base::MakeRefCounted<base::DeferredSequencedTaskRunner>(); base::MakeRefCounted<base::DeferredSequencedTaskRunner>();
FontEnumerationStatus status_ = FontEnumerationStatus::kOk; blink::mojom::FontEnumerationStatus status_ =
blink::mojom::FontEnumerationStatus::kOk;
base::Optional<std::string> locale_override_; base::Optional<std::string> locale_override_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment