910e62b5创建于 1月15日历史提交
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

dictionary SizeChangedOptions {
  required long oldWidth;
  required long oldHeight;
  required long newWidth;
  required long newHeight;
};

dictionary PreferredSizeChangedOptions {
  required double width;
  required double height;
};

// Listener callback for the onClose event.
callback OnCloseListener = undefined ();

interface OnCloseEvent : ExtensionEvent {
  static undefined addListener(OnCloseListener listener);
  static undefined removeListener(OnCloseListener listener);
  static boolean hasListener(OnCloseListener listener);
};

// Listener callback for the onLoad event.
callback OnLoadListener = undefined ();

interface OnLoadEvent : ExtensionEvent {
  static undefined addListener(OnLoadListener listener);
  static undefined removeListener(OnLoadListener listener);
  static boolean hasListener(OnLoadListener listener);
};

// Listener callback for the onPreferredSizeChanged event.
callback OnPreferredSizeChangedListener = undefined (
    PreferredSizeChangedOptions options);

interface OnPreferredSizeChangedEvent : ExtensionEvent {
  static undefined addListener(OnPreferredSizeChangedListener listener);
  static undefined removeListener(OnPreferredSizeChangedListener listener);
  static boolean hasListener(OnPreferredSizeChangedListener listener);
};

// Internal API for the <extensiontoptions> tag
interface ExtensionOptionsInternal {
  static attribute OnCloseEvent onClose;
  static attribute OnLoadEvent onLoad;
  static attribute OnPreferredSizeChangedEvent onPreferredSizeChanged;
};

partial interface Browser {
  static attribute ExtensionOptionsInternal extensionOptionsInternal;
};