// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module blink.mojom;

import "ui/gfx/geometry/mojom/geometry.mojom";

// Implemented in Browser, this interface defines methods that will be invoked
// from the render process for the reply to TextInputClientMac.
//
// Note that due to implementation details of TextInputClient on Mac this has
// stricter threading requirements. Also read the comment at the implementation
// (i.e. TextInputHostImpl).
interface TextInputHost {
  // Reply for GetCharacterIndexAtPoint from LocalFrame.
  // When GetCharacterIndexAtPoint is called in Browser, BrowserThread::UI is
  // blocked at TextInputClientMac to support the reply synchronously with
  // a timeout on Mac. So, it needs a separate message,
  // GotCharacterIndexAtPoint, that runs on BrowserThread::IO and unblocks
  // BrowserThread::UI.
  // [EnableIf=is_mac]
  GotCharacterIndexAtPoint(uint32 index);

  // Reply for GetFirstRectForRange from LocalFrame. It works in the same
  // manner as GetCharacterIndexAtPoint.
  // [EnableIf=is_mac]
  GotFirstRectForRange(gfx.mojom.Rect rect);
};
