Example #1
0
            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);
            }
Example #2
0
        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();
        }
Example #3
0
        /// <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;
        }
Example #4
0
 static public CefWindowInfo FromInArg(cef_window_info_t *ptr)
 {
     if (ptr == null)
     {
         return(null);
     }
     return(new CefWindowInfo((IntPtr)ptr));
 }
Example #5
0
 public static CefWindowInfo Wrap(cef_window_info_t *instance)
 {
     if (instance == null)
     {
         return(null);
     }
     return(new CefWindowInfo(instance));
 }
Example #6
0
 public void Dispose()
 {
     if (_instance != null)
     {
         WindowName = null;
         Marshal.FreeHGlobal(new IntPtr(_instance));
         _instance = null;
         GC.SuppressFinalize(this);
     }
 }
Example #7
0
        public CefWindowInfoMacImpl(cef_window_info_t *ptr)
            : base(false)
        {
            if (CefRuntime.Platform != CefRuntimePlatform.MacOS)
            {
                throw new InvalidOperationException();
            }

            _self = (cef_window_info_t_mac *)ptr;
        }
Example #8
0
        public CefWindowInfoLinuxImpl(cef_window_info_t *ptr)
            : base(false)
        {
            if (CefRuntime.Platform != CefRuntimePlatform.Linux)
            {
                throw new InvalidOperationException();
            }

            _self = (cef_window_info_t_linux *)ptr;
        }
Example #9
0
        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);
        }
Example #10
0
 private void Dispose(bool disposing)
 {
     if (_ptr != null)
     {
         if (_owner)
         {
             cef_window_info_t.Free(_ptr);
         }
         _ptr = null;
     }
 }
Example #11
0
 private void Dispose(bool disposing)
 {
     if (_ptr != null)
     {
         if (_owner)
         {
             cef_window_info_t.Free(_ptr);
         }
         _ptr = null;
     }
 }
Example #12
0
        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();
            }
        }
Example #13
0
        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);
        }
Example #14
0
 public CefWindowInfo()
 {
     _ptr = cef_window_info_t.Alloc();
     _owner = true;
 }
Example #15
0
        public static void Clear(cef_window_info_t *self)
        {
#if WINDOWS
            cef_string_t.Clear(&self->m_windowName);
#endif
        }
Example #16
0
 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
 }
Example #18
0
 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);
Example #19
0
        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);
Example #22
0
 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
 }
Example #25
0
 internal static CefWindowInfo From(cef_window_info_t *pointer)
 {
     return(new CefWindowInfo(pointer));
 }
Example #26
0
 private CefWindowInfo(cef_window_info_t* pointer)
 {
     _ptr = pointer;
     _owner = false;
 }
Example #27
0
        /// <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);
        }
Example #28
0
 public CefWindowInfo()
 {
     _ptr   = cef_window_info_t.Alloc();
     _owner = true;
 }
Example #29
0
 private CefWindowInfo(cef_window_info_t *instance)
 {
     _instance = instance;
     GC.SuppressFinalize(this);
 }
Example #30
0
 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));
     }
 }
Example #31
0
 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));
     }
 }