chromium/extensions/renderer/api/messaging/message_target.h

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

#ifndef EXTENSIONS_RENDERER_API_MESSAGING_MESSAGE_TARGET_H_
#define EXTENSIONS_RENDERER_API_MESSAGING_MESSAGE_TARGET_H_

#include <optional>
#include <string>

#include "extensions/common/extension_id.h"

namespace extensions {

// Represents a target of an extension message. This could be:
// 1. An Extension. Either an extension page is messaging another extension
//    page (e.g., popup messaging background page), a content script is
//    messaging an extension page, or a separate extension or web page is
//    messaging an extension page. Any calls to chrome.runtime.connect() or
//    chrome.runtime.sendMessage() target extensions.
// 2. A tab (i.e., a content script running in a web page). Any calls to
//    chrome.tabs.connect() or chrome.tabs.sendMessage() target tabs.
// 3. A native application. An extension is using native messaging to
//    communicate with a third-party application. Any calls to
//    chrome.runtime.connectNative() or chrome.runtime.sendNativeMessage()
//    target native applications.
struct MessageTarget {};

}  // namespace extensions

#endif  // EXTENSIONS_RENDERER_API_MESSAGING_MESSAGE_TARGET_H_