summaryrefslogtreecommitdiffstats
path: root/mobile/android/actors/GeckoViewClipboardPermissionParent.sys.mjs
blob: cbdbcb59e3f8c9f72484a64122dfad6b451028cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/* 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/. */

import { GeckoViewActorParent } from "resource://gre/modules/GeckoViewActorParent.sys.mjs";

export class GeckoViewClipboardPermissionParent extends GeckoViewActorParent {
  getLastOverWindowPointerLocation() {
    const mouseXInCSSPixels = {};
    const mouseYInCSSPixels = {};
    const windowUtils = this.window.windowUtils;
    windowUtils.getLastOverWindowPointerLocationInCSSPixels(
      mouseXInCSSPixels,
      mouseYInCSSPixels
    );
    const screenRect = windowUtils.toScreenRect(
      mouseXInCSSPixels.value,
      mouseYInCSSPixels.value,
      0,
      0
    );

    return {
      x: screenRect.x,
      y: screenRect.y,
    };
  }

  receiveMessage(aMessage) {
    debug`receiveMessage: ${aMessage.name}`;

    switch (aMessage.name) {
      case "ClipboardReadTextPaste:GetLastPointerLocation":
        return this.getLastOverWindowPointerLocation();

      default:
        return super.receiveMessage(aMessage);
    }
  }
}

const { debug, warn } = GeckoViewClipboardPermissionParent.initLogging(
  "GeckoViewClipboardPermissionParent"
);