/* 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/. */


#include "domstubs.idl"
#include "nsIDroppedLinkHandler.idl"

interface nsIContentFrameMessageManager;
interface nsIWebBrowserChrome3;

native CommandsArray(nsTArray<nsCString>);
[ref] native CommandsArrayRef(nsTArray<nsCString>);

[scriptable, uuid(1fb79c27-e760-4088-b19c-1ce3673ec24e)]
interface nsITabChild : nsISupports
{
  readonly attribute nsIContentFrameMessageManager messageManager;

  attribute nsIWebBrowserChrome3 webBrowserChrome;

  [notxpcom] void sendRequestFocus(in boolean canFocus);

  [notxpcom] void sendGetTabCount(out uint32_t tabCount);

  [noscript, notxpcom] void enableDisableCommands(in AString action,
                                                  in CommandsArrayRef enabledCommands,
                                                  in CommandsArrayRef disabledCommands);

  [noscript] void remoteSizeShellTo(in int32_t width, in int32_t height,
                                    in int32_t shellItemWidth, in int32_t shellItemHeight);

  [noscript] void remoteDropLinks(in unsigned long linksCount,
                                  [array, size_is(linksCount)] in nsIDroppedLinkItem links);

  readonly attribute uint64_t tabId;
};

