tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

tabnotes.ts (1787B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 type MozTabbrowserTab = EventTarget & { canonicalUrl: string };
      6 
      7 type CanonicalURLSource = "link" | "opengraph" | "jsonLd" | "fallback";
      8 type CanonicalURLSourceResults = {
      9  [source in CanonicalURLSource]: string | null;
     10 };
     11 
     12 interface CanonicalURLIdentifiedEvent {
     13  type: "CanonicalURL:Identified";
     14  target: MozBrowser;
     15  detail: {
     16    canonicalUrl: string;
     17    canonicalUrlSources: CanonicalURLSource[];
     18  };
     19 }
     20 
     21 interface TabNoteRecord {
     22  id: number;
     23  canonicalUrl: string;
     24  created: Temporal.Instant;
     25  text: string;
     26 }
     27 
     28 interface TabNoteCreatedEvent extends CustomEvent {
     29  type: "TabNote:Created";
     30  target: MozTabbrowserTab;
     31  detail: {
     32    note: TabNoteRecord;
     33    telemetrySource?: TabNoteTelemetrySource;
     34  };
     35 }
     36 
     37 interface TabNoteEditedEvent extends CustomEvent {
     38  type: "TabNote:Edited";
     39  target: MozTabbrowserTab;
     40  detail: {
     41    note: TabNoteRecord;
     42    telemetrySource?: TabNoteTelemetrySource;
     43  };
     44 }
     45 
     46 interface TabNoteRemovedEvent extends CustomEvent {
     47  type: "TabNote:Removed";
     48  target: MozTabbrowserTab;
     49  detail: {
     50    note: TabNoteRecord;
     51    telemetrySource?: TabNoteTelemetrySource;
     52  };
     53 }
     54 
     55 type TabbrowserWebProgressListener<
     56  ListenerName extends keyof nsIWebProgressListener,
     57  F = nsIWebProgressListener[ListenerName],
     58 > = F extends (...args: any) => any
     59  ? (aBrowser: MozBrowser, ...rest: Parameters<F>) => ReturnType<F>
     60  : never;
     61 
     62 /**
     63 * Constant values used to record the UI surface when a user interacted
     64 * with tab notes.
     65 */
     66 type TabNoteTelemetrySource =
     67  | "context_menu" // tab context menu
     68  | "hover_menu"; // tab hover preview panel