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() {
void FontEnumerationCache::QueueShareMemoryRegionWhenReady(
scoped_refptr<base::TaskRunner> task_runner,
blink::mojom::FontAccessManager::EnumerateLocalFontsCallback callback) {
CacheTaskCallback callback) {
DCHECK(base::FeatureList::IsEnabled(blink::features::kFontAccess));
callbacks_task_runner_->PostTask(
......@@ -56,7 +56,7 @@ void FontEnumerationCache::ResetStateForTesting() {
enumeration_cache_memory_ = base::MappedReadOnlyRegion();
enumeration_cache_built_.UnsafeResetForTesting();
enumeration_cache_build_started_.UnsafeResetForTesting();
status_ = FontEnumerationStatus::kOk;
status_ = blink::mojom::FontEnumerationStatus::kOk;
}
base::ReadOnlySharedMemoryRegion FontEnumerationCache::DuplicateMemoryRegion() {
......@@ -66,8 +66,8 @@ base::ReadOnlySharedMemoryRegion FontEnumerationCache::DuplicateMemoryRegion() {
FontEnumerationCache::CallbackOnTaskRunner::CallbackOnTaskRunner(
scoped_refptr<base::TaskRunner> runner,
blink::mojom::FontAccessManager::EnumerateLocalFontsCallback callback)
: task_runner(std::move(runner)), mojo_callback(std::move(callback)) {}
CacheTaskCallback callback)
: task_runner(std::move(runner)), callback(std::move(callback)) {}
FontEnumerationCache::CallbackOnTaskRunner::CallbackOnTaskRunner(
CallbackOnTaskRunner&& other) = default;
......@@ -79,8 +79,8 @@ void FontEnumerationCache::RunPendingCallback(
DCHECK(callbacks_task_runner_->RunsTasksInCurrentSequence());
pending_callback.task_runner->PostTask(
FROM_HERE, base::BindOnce(std::move(pending_callback.mojo_callback),
status_, DuplicateMemoryRegion()));
FROM_HERE, base::BindOnce(std::move(pending_callback.callback), status_,
DuplicateMemoryRegion()));
}
void FontEnumerationCache::StartCallbacksTaskQueue() {
......
......@@ -21,8 +21,6 @@
#define PLATFORM_HAS_LOCAL_FONT_ENUMERATION_IMPL 1
#endif
using blink::mojom::FontEnumerationStatus;
namespace content {
// A class that encapsulates building a font enumeration cache once,
......@@ -36,13 +34,17 @@ class CONTENT_EXPORT FontEnumerationCache {
FontEnumerationCache();
~FontEnumerationCache();
using CacheTaskCallback =
base::OnceCallback<void(blink::mojom::FontEnumerationStatus,
base::ReadOnlySharedMemoryRegion)>;
static FontEnumerationCache* GetInstance();
// Enqueue a request to get notified about the availability of the shared
// memory region holding the font enumeration cache.
void QueueShareMemoryRegionWhenReady(
scoped_refptr<base::TaskRunner> task_runner,
blink::mojom::FontAccessManager::EnumerateLocalFontsCallback callback);
CacheTaskCallback callback);
// Returns whether the cache population has completed and the shared memory
// region is ready.
......@@ -61,19 +63,17 @@ class CONTENT_EXPORT FontEnumerationCache {
// Retrieve the prepared memory region if it is available.
base::ReadOnlySharedMemoryRegion DuplicateMemoryRegion();
// Used to bind an EnumerateLocalFontsCallback to a provided TaskRunner.
// Used to bind a CacheTaskCallback to a provided TaskRunner.
struct CallbackOnTaskRunner {
CallbackOnTaskRunner(
scoped_refptr<base::TaskRunner>,
blink::mojom::FontAccessManager::EnumerateLocalFontsCallback);
CallbackOnTaskRunner(scoped_refptr<base::TaskRunner>, CacheTaskCallback);
CallbackOnTaskRunner(CallbackOnTaskRunner&&);
~CallbackOnTaskRunner();
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
// build is complete. It will run EnumerateLocalFontsCallback on its bound
// build is complete. It will run CacheTaskCallback on its bound
// TaskRunner through CallbackOnTaskRunner.
void RunPendingCallback(CallbackOnTaskRunner pending_callback);
void StartCallbacksTaskQueue();
......@@ -94,7 +94,8 @@ class CONTENT_EXPORT FontEnumerationCache {
scoped_refptr<base::DeferredSequencedTaskRunner> callbacks_task_runner_ =
base::MakeRefCounted<base::DeferredSequencedTaskRunner>();
FontEnumerationStatus status_ = FontEnumerationStatus::kOk;
blink::mojom::FontEnumerationStatus status_ =
blink::mojom::FontEnumerationStatus::kOk;
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