private void DevToolsForm_Load(object sender, EventArgs e) { CefWindowInfo devwin_info = new CefWindowInfo(); CefBrowserSettings browser_settings = new CefBrowserSettings(); _owner.InitClientCommon(client); client.LifeSpanHandler.AfterCreated += (a, b) => { hostWindowHandle = b.GetHost().GetWindowHandle(); }; var rect = this.ClientRectangle; cef_window_info_t *pdevwin = devwin_info.FixedPtr; pdevwin->parent_window = this.Handle; pdevwin->x = rect.Left; pdevwin->y = rect.Top; pdevwin->width = rect.Width; pdevwin->height = rect.Height; var func = Marshal.GetDelegateForFunctionPointer <delegate_show_dev_tools>(_owner.BrowserHost.FixedPtr->show_dev_tools); func(_owner.BrowserHost.FixedPtr, devwin_info.Ptr, client, browser_settings, IntPtr.Zero); }
public unsafe void InitAsChild(IntPtr handle, System.Drawing.Rectangle rect) { cef_window_info_t *pinfo = WindowInfo.FixedPtr; pinfo->parent_window = handle; pinfo->x = rect.Left; pinfo->y = rect.Top; pinfo->width = rect.Width; pinfo->height = rect.Height; CefWin.WriteDebugLine("Creating browser " + CefWin.ApplicationElapsed); Browser = CefBrowser.CreateBrowserSync(WindowInfo, Client, Url, Settings); MainFrame = Browser.GetMainFrame(); BrowserHost = Browser.GetHost(); hostWindowHandle = BrowserHost.GetWindowHandle(); CefWin.WriteDebugLine("Creating browser OK doc:" + Browser.HasDocument + " id:" + Browser.Identifier + ":" + MainFrame.Identifier + " " + CefWin.ApplicationElapsed); CefWin.WriteDebugLine("send msgfrombrowser"); MainFrame.SendProcessMessage(cef_process_id_t.PID_RENDERER, "msgfrombrowser"); //do not call here, document is not ready! //MainFrame.ExecuteJavaScript("console.log('hello CefLite')"); //ShowDevTools(); }
/// <summary> /// Initializes a new instance of the <see cref="CefWindowInfo"/>. /// </summary> public CefWindowInfo() { int size; if (PlatformInfo.IsWindows) { size = sizeof(cef_window_info_windows_t); } else if (PlatformInfo.IsLinux) { size = sizeof(cef_window_info_linux_t); } else if (PlatformInfo.IsMacOS) { size = sizeof(cef_window_info_mac_t); } else { throw new PlatformNotSupportedException(); } IntPtr mem = Marshal.AllocHGlobal(size); mem.InitBlock(0, size); _instance = (cef_window_info_t *)mem; }
static public CefWindowInfo FromInArg(cef_window_info_t *ptr) { if (ptr == null) { return(null); } return(new CefWindowInfo((IntPtr)ptr)); }
public static CefWindowInfo Wrap(cef_window_info_t *instance) { if (instance == null) { return(null); } return(new CefWindowInfo(instance)); }
public void Dispose() { if (_instance != null) { WindowName = null; Marshal.FreeHGlobal(new IntPtr(_instance)); _instance = null; GC.SuppressFinalize(this); } }
public CefWindowInfoMacImpl(cef_window_info_t *ptr) : base(false) { if (CefRuntime.Platform != CefRuntimePlatform.MacOS) { throw new InvalidOperationException(); } _self = (cef_window_info_t_mac *)ptr; }
public CefWindowInfoLinuxImpl(cef_window_info_t *ptr) : base(false) { if (CefRuntime.Platform != CefRuntimePlatform.Linux) { throw new InvalidOperationException(); } _self = (cef_window_info_t_linux *)ptr; }
public CefWindowInfo() : base(RecyclePtr) { cef_window_info_t *info = (cef_window_info_t *)Ptr; info->style = (uint)(WindowStyle.WS_TABSTOP | WindowStyle.WS_CLIPCHILDREN | WindowStyle.WS_CLIPSIBLINGS | WindowStyle.WS_VISIBLE | WindowStyle.WS_CHILD); }
private void Dispose(bool disposing) { if (_ptr != null) { if (_owner) { cef_window_info_t.Free(_ptr); } _ptr = null; } }
internal static CefWindowInfo FromNative(cef_window_info_t *ptr) { switch (CefRuntime.Platform) { case CefRuntimePlatform.Windows: return(new CefWindowInfoWindowsImpl(ptr)); case CefRuntimePlatform.Linux: return(new CefWindowInfoLinuxImpl(ptr)); case CefRuntimePlatform.MacOSX: return(new CefWindowInfoMacImpl(ptr)); default: throw new NotSupportedException(); } }
public static void show_dev_tools(cef_browser_host_t *self, cef_window_info_t *windowInfo, cef_client_t *client, cef_browser_settings_t *settings) { show_dev_tools_delegate d; var p = self->_show_dev_tools; if (p == _p12) { d = _d12; } else { d = (show_dev_tools_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(show_dev_tools_delegate)); if (_p12 == IntPtr.Zero) { _d12 = d; _p12 = p; } } d(self, windowInfo, client, settings); }
public CefWindowInfo() { _ptr = cef_window_info_t.Alloc(); _owner = true; }
public static void Clear(cef_window_info_t *self) { #if WINDOWS cef_string_t.Clear(&self->m_windowName); #endif }
public static extern cef_browser_t *create_browser_sync(cef_window_info_t *windowInfo, cef_client_t *client, cef_string_t *url, cef_browser_settings_t *settings, cef_request_context_t *request_context);
/// <summary> /// Create a new browser window using the window parameters specified by /// |windowInfo|. If |request_context| is empty the global request context /// will be used. This method can only be called on the browser process UI /// thread. /// </summary> public static cef_browser_t *CreateBrowserSync(cef_window_info_t *windowInfo, cef_client_t *client, cef_string_t *url, cef_browser_settings_t *settings, cef_request_context_t *request_context) { throw new NotImplementedException(); // TODO: CefBrowserHost.CreateBrowserSync }
public unsafe extern void ShowDevTools([Immutable] cef_window_info_t *windowInfo, cef_client_t *client, [Immutable] cef_browser_settings_t *settings, [Immutable] cef_point_t *inspect_element_at);
private int on_before_browser(cef_extension_handler_t *self, cef_extension_t *extension, cef_browser_t *browser, cef_browser_t *active_browser, int index, cef_string_t *url, int active, cef_window_info_t *windowInfo, cef_client_t **client, cef_browser_settings_t *settings) { CheckSelf(self); var m_extension = CefExtension.FromNative(extension); var m_browser = CefBrowser.FromNativeOrNull(browser); var m_activeBrowser = CefBrowser.FromNativeOrNull(active_browser); var m_url = cef_string_t.ToString(url); var m_active = active != 0; var m_windowInfo = CefWindowInfo.FromNative(windowInfo); var m_client = CefClient.FromNative(*client); var m_settings = new CefBrowserSettings(settings); var o_client = m_client; var cancel = OnBeforeBrowser(m_extension, m_browser, m_activeBrowser, index, m_url, m_active, m_windowInfo, ref m_client, m_settings); if (!cancel && ((object)o_client != m_client && m_client != null)) { *client = m_client.ToNative(); } m_windowInfo.Dispose(); m_settings.Dispose(); return(cancel ? 1 : 0); }
public static extern int create_browser(cef_window_info_t *windowInfo, cef_client_t *client, cef_string_t *url, cef_browser_settings_t *settings);
public unsafe extern int OnBeforeBrowser(cef_extension_t *extension, cef_browser_t *browser, cef_browser_t *active_browser, int index, [Immutable] cef_string_t *url, int active, cef_window_info_t *windowInfo, cef_client_t **client, cef_browser_settings_t *settings);
public unsafe extern int OnBeforePopup(cef_browser_t *browser, cef_frame_t *frame, [Immutable] cef_string_t *target_url, [Immutable] cef_string_t *target_frame_name, CefWindowOpenDisposition target_disposition, int user_gesture, [Immutable] cef_popup_features_t *popupFeatures, cef_window_info_t *windowInfo, cef_client_t **client, cef_browser_settings_t *settings, cef_dictionary_value_t **extra_info, int *no_javascript_access);
private int on_before_popup(cef_life_span_handler_t *self, cef_browser_t *browser, cef_frame_t *frame, cef_string_t *target_url, cef_string_t *target_frame_name, CefWindowOpenDisposition target_disposition, int user_gesture, cef_popup_features_t *popupFeatures, cef_window_info_t *windowInfo, cef_client_t **client, cef_browser_settings_t *settings, int *no_javascript_access) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefLifeSpanHandler.OnBeforePopup }
/// <summary> /// Open developer tools in its own window. If |inspect_element_at| is non- /// empty the element at the specified (x,y) location will be inspected. /// </summary> public void ShowDevTools(cef_window_info_t *windowInfo, cef_client_t *client, cef_browser_settings_t *settings, cef_point_t *inspect_element_at) { throw new NotImplementedException(); // TODO: CefBrowserHost.ShowDevTools }
internal static CefWindowInfo From(cef_window_info_t *pointer) { return(new CefWindowInfo(pointer)); }
private CefWindowInfo(cef_window_info_t* pointer) { _ptr = pointer; _owner = false; }
/// <summary> /// Called before a new popup window is created. /// The |parentBrowser| parameter will point to the parent browser window. /// The |popupFeatures| parameter will contain information about the style of popup window requested. /// Return false to have the framework create the new popup window based on the parameters in |windowInfo|. /// Return true to cancel creation of the popup window. /// By default, a newly created popup window will have the same client and settings as the parent window. /// To change the client for the new window modify the object that |client| points to. /// To change the settings for the new window modify the |settings| structure. /// </summary> private int on_before_popup(cef_life_span_handler_t *self, cef_browser_t *parentBrowser, /*const*/ cef_popup_features_t *popupFeatures, cef_window_info_t *windowInfo, /*const*/ cef_string_t *url, cef_client_t **client, cef_browser_settings_t *settings) { ThrowIfObjectDisposed(); var m_client = CefClient.From(*client); var m_parentBrowser = CefBrowser.From(parentBrowser); var m_popupFeatures = CefPopupFeatures.From(popupFeatures); var m_windowInfo = CefWindowInfo.From(windowInfo); var m_url = cef_string_t.ToString(url); var m_settings = CefBrowserSettings.From(settings); var o_client = m_client; var handled = this.OnBeforePopup(m_parentBrowser, m_popupFeatures, m_windowInfo, m_url, ref m_client, m_settings); if (!handled && m_client != o_client && m_client != null) { *client = m_client.GetNativePointerAndAddRef(); } m_popupFeatures.Dispose(); m_windowInfo.Dispose(); m_settings.Dispose(); return(handled ? 1 : 0); }
private CefWindowInfo(cef_window_info_t *instance) { _instance = instance; GC.SuppressFinalize(this); }
public unsafe int OnBeforePopup(cef_browser_t *browser, cef_frame_t *frame, [Immutable] cef_string_t *target_url, [Immutable] cef_string_t *target_frame_name, CefWindowOpenDisposition target_disposition, int user_gesture, [Immutable] cef_popup_features_t *popupFeatures, cef_window_info_t *windowInfo, cef_client_t **client, cef_browser_settings_t *settings, cef_dictionary_value_t **extra_info, int *no_javascript_access) { fixed(cef_life_span_handler_t *self = &this) { return(((delegate * unmanaged[Stdcall] < cef_life_span_handler_t *, cef_browser_t *, cef_frame_t *, cef_string_t *, cef_string_t *, CefWindowOpenDisposition, int, cef_popup_features_t *, cef_window_info_t *, cef_client_t **, cef_browser_settings_t *, cef_dictionary_value_t **, int *, int >)on_before_popup)(self, browser, frame, target_url, target_frame_name, target_disposition, user_gesture, popupFeatures, windowInfo, client, settings, extra_info, no_javascript_access)); } }
private CefWindowInfo(cef_window_info_t *pointer) { _ptr = pointer; _owner = false; }
private int on_before_popup(cef_life_span_handler_t *self, cef_browser_t *browser, cef_frame_t *frame, cef_string_t *target_url, cef_string_t *target_frame_name, CefWindowOpenDisposition target_disposition, int user_gesture, cef_popup_features_t *popupFeatures, cef_window_info_t *windowInfo, cef_client_t **client, cef_browser_settings_t *settings, int *no_javascript_access) { CheckSelf(self); var m_browser = CefBrowser.FromNative(browser); var m_frame = CefFrame.FromNative(frame); var m_targetUrl = cef_string_t.ToString(target_url); var m_targetFrameName = cef_string_t.ToString(target_frame_name); var m_userGesture = user_gesture != 0; var m_popupFeatures = new CefPopupFeatures(popupFeatures); var m_windowInfo = CefWindowInfo.FromNative(windowInfo); var m_client = CefClient.FromNative(*client); var m_settings = new CefBrowserSettings(settings); var m_noJavascriptAccess = (*no_javascript_access) != 0; var o_client = m_client; var result = OnBeforePopup(m_browser, m_frame, m_targetUrl, m_targetFrameName, target_disposition, m_userGesture, m_popupFeatures, m_windowInfo, ref m_client, m_settings, ref m_noJavascriptAccess); if ((object)o_client != m_client && m_client != null) { *client = m_client.ToNative(); } *no_javascript_access = m_noJavascriptAccess ? 1 : 0; m_popupFeatures.Dispose(); m_windowInfo.Dispose(); m_settings.Dispose(); return(result ? 1 : 0); }
public unsafe int OnBeforeBrowser(cef_extension_t *extension, cef_browser_t *browser, cef_browser_t *active_browser, int index, [Immutable] cef_string_t *url, int active, cef_window_info_t *windowInfo, cef_client_t **client, cef_browser_settings_t *settings) { fixed(cef_extension_handler_t *self = &this) { return(((delegate * unmanaged[Stdcall] < cef_extension_handler_t *, cef_extension_t *, cef_browser_t *, cef_browser_t *, int, cef_string_t *, int, cef_window_info_t *, cef_client_t **, cef_browser_settings_t *, int >)on_before_browser)(self, extension, browser, active_browser, index, url, active, windowInfo, client, settings)); } }