gecko-dev/widget/TextRecognition.h
Emilio Cobos Álvarez d8e66dd689 Bug 1759204 - Add an HTMLImageElement.recognizeCurrentImageText ChromeOnly API to test text recognition and create the shadow root. r=aosmond
We could expose the text recognition values to JS if need be, but
there's no reason to do that for now. We expose them via the UA
widget DOM for now.

We can trivially do that if we want to build the Shadow DOM in JS
or what not. I decided to still return a promise so that we can
expose errors though.

Differential Revision: https://phabricator.services.mozilla.com/D141113
2022-03-15 18:14:08 +00:00

51 lines
1.3 KiB
C++

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef mozilla_widget_nsTextRecognition__
#define mozilla_widget_nsTextRecognition__
#include "mozilla/MozPromise.h"
#include "mozilla/gfx/Point.h"
#include "nsTArray.h"
class imgIContainer;
namespace mozilla {
namespace dom {
class ShadowRoot;
class TextRecognitionResultOrError;
class TextRecognitionResult;
} // namespace dom
namespace gfx {
class SourceSurface;
class DataSourceSurface;
} // namespace gfx
namespace widget {
class TextRecognition final {
public:
using NativePromise = MozPromise<dom::TextRecognitionResult, nsCString,
/* IsExclusive = */ true>;
TextRecognition() = default;
static void FillShadow(dom::ShadowRoot&, const dom::TextRecognitionResult&);
static RefPtr<NativePromise> FindText(imgIContainer&);
static RefPtr<NativePromise> FindText(gfx::DataSourceSurface&);
protected:
// This should be implemented in the OS specific file.
static RefPtr<NativePromise> DoFindText(gfx::DataSourceSurface&);
~TextRecognition() = default;
};
} // namespace widget
} // namespace mozilla
#endif