using CefSharp.OutOfProcess.Model;
using System;
using System.Threading.Tasks;
namespace CefSharp.OutOfProcess
{
///
/// Send messages to the Remote Host (Browser process)
///
public interface IOutOfProcessClientRpc
{
///
/// Close Browser
///
/// browser Id
/// Task
Task CloseBrowser(int browserId);
///
/// Send DevTools message
///
/// browser Id
///
/// Task
Task SendDevToolsMessage(int browserId, string message);
///
/// Close the Browser Process (host)
///
/// Task
Task CloseHost();
///
/// Create a new browser within the Browser Process
///
/// parent Hwnd
/// start url
/// browser id
/// Task
Task CreateBrowser(IntPtr parentHwnd, string url, int browserId);
///
/// Notify the browser that the window hosting it is about to be moved or resized.
/// This will dismiss any existing popups (dropdowns).
///
/// browser Id
void NotifyMoveOrResizeStarted(int browserId);
///
/// Set whether the browser is focused.
///
/// browser id
/// set focus
void SetFocus(int browserId, bool focus);
///
/// Set the value associated with preference name. If value is null the
/// preference will be restored to its default value. If setting the preference
/// fails then will be populated
/// with a detailed description of the problem.
/// Preferences set via the command-line usually cannot be modified.
///
/// The browser id.
/// The preference name
/// The preference value
Task SetRequestContextPreferenceAsync(int browserId, string name, object value);
}
}