コード例 #1
0
 public ConsoleMessageEventArgs(CefBrowser browser, string message, string source, int line)
 {
     this.CefBrowser = browser;
     this.Message = message;
     this.Source = source;
     this.Line = line;
 }
コード例 #2
0
        protected override bool OnBeforeBrowse(CefBrowser browser, CefFrame frame, CefRequest request, CefHandlerNavType navType, bool isRedirect)
        {
            #if DIAGNOSTICS
            Cef.Logger.Trace(LogTarget.CefRequestHandler, "OnBeforeBrowse: Method=[{0}] Url=[{1}] NavType=[{2}] IsRedirect=[{3}]", request.GetMethod(), request.GetURL(), navType, isRedirect);
            #endif

            var cancel = this.context.OnNavigating(frame, request, navType, isRedirect);
            if (cancel) return true;

            if (frame.IsMain)
            {
                // browser navigating to a new page
                this.context.ClearFrames();
                this.context.AttachMainFrame(frame);

                this.context.ClearReadyState();
                this.context.SetFrameReadyState(null, FrameReadyState.Navigating);
            }
            else if ((this.context.ReadyOptions & CefReadyOptions.Frames) != 0)
            {
                this.context.SetFrameReadyState(frame.GetName(), FrameReadyState.Navigating);
            }

            return false;
        }
コード例 #3
0
 protected unsafe override void OnContextReleased(CefBrowser browser, CefFrame frame, CefV8Context context)
 {
     if (_context.MainFrame != null)
     {
         _context.MainFrame.UnbindV8Context();
     }
 }
コード例 #4
0
		protected override void OnBeforeClose(CefBrowser browser)
		{
			if (_core.InvokeRequired)
				_core.BeginInvoke((Action)_core.OnBeforeClose);
			else
				_core.OnBeforeClose();
		}
コード例 #5
0
 protected override void OnAddressChange(CefBrowser browser, CefFrame frame, string url)
 {
     if (frame.IsMain)
     {
         _core.OnAddressChanged(url);
     }
 }
コード例 #6
0
 protected override bool OnJSPrompt(CefBrowser browser, CefFrame frame, string message, string defaultValue, out bool retval, out string result)
 {
     // TODO: CefWebJSDialogHandler.OnJSPrompt
     retval = false;
     result = null;
     return false;
 }
コード例 #7
0
ファイル: CefWebDisplayHandler.cs プロジェクト: rajsite/lvcef
 protected override void OnAddressChange(CefBrowser browser, CefFrame frame, string url)
 {
     if (frame.IsMain)
     {
        _core.InvokeIfRequired(() => _core.OnAddressChanged(new AddressChangedEventArgs(frame, url)));
     }
 }
コード例 #8
0
 protected override void OnNavStateChange(CefBrowser browser, bool canGoBack, bool canGoForward)
 {
     #if DIAGNOSTICS
     Cef.Logger.Trace(LogTarget.CefDisplayHandler, "OnNavStateChange: CanGoBack=[{0}] CanGoForward=[{1}]", canGoBack, canGoForward);
     #endif
     this.context.OnNavStateChanged(canGoBack, canGoForward);
 }
コード例 #9
0
ファイル: CefWebDisplayHandler.cs プロジェクト: rajsite/lvcef
		protected override bool OnConsoleMessage(CefBrowser browser, string message, string source, int line)
		{
			var e = new ConsoleMessageEventArgs(message, source, line);
			_core.InvokeIfRequired(() => _core.OnConsoleMessage(e));

			return e.Handled;
		}
コード例 #10
0
        protected override void OnAfterCreated(CefBrowser browser)
        {
            #if DIAGNOSTICS
            Cef.Logger.Trace(LogTarget.CefLifeSpanHandler, "OnAfterCreated");
            #endif

            this.context.OnAfterCreated(browser);

            // TODO: check context state, it can be already closed
            this.context.Attach(browser);

            /*
            if (!browser.IsPopup)
            {
                if (this.context.IsDisposed)
                {
                    browser.Close();
                    return;
                }

                this.context.browser = browser;
                this.context.browserWindowHandle = browser.WindowHandle;

                this.context.SetStyle(ControlStyles.Opaque, true);

                this.context.ResizeBrowserWindow();

                // FIXME: this is invalid - can't be accessed from another thread
                //if (this.control.Focused)
                //{
                //    this.control.browser.SetFocus(true);
                //}
            }
            */
        }
コード例 #11
0
 public CefUncaughtExceptionEventArgs(CefBrowser browser, CefFrame frame, CefV8Context context, CefV8Exception exception, CefV8StackTrace stackTrace)
 {
     this.browser = browser;
     this.frame = frame;
     this.context = context;
     this.exception = exception;
     this.stackTrace = stackTrace;
 }
コード例 #12
0
        protected override void OnTitleChange(CefBrowser browser, string title)
        {
            #if DIAGNOSTICS
            Cef.Logger.Trace(LogTarget.CefDisplayHandler, "OnTitleChange: Title=[{0}]", title);
            #endif

            this.context.OnTitleChanged(title);
        }
コード例 #13
0
 protected override void OnCursorChange(CefBrowser browser, IntPtr cursorHandle)
 {
     _uiHelper.PerformInUiThread(() =>
         {
             Cursor cursor = CursorInteropHelper.Create(new SafeFileHandle(cursorHandle, false));
             _owner.Cursor = cursor;
         });
 }
コード例 #14
0
ファイル: WebBrowser.cs プロジェクト: sim0629/CefGlue
 internal void Close()
 {
     if (_browser != null)
     {
         _browser.Dispose();
         _browser = null;
     }
 }
コード例 #15
0
        protected override bool DoClose(CefBrowser browser)
        {
            #if DIAGNOSTICS
            Cef.Logger.Trace(LogTarget.CefLifeSpanHandler, "DoClose");
            #endif

            return false;
        }
コード例 #16
0
 public CefBeforePopupEventArgs(CefBrowser parentBrowser, CefPopupFeatures popupFeatures, CefWindowInfo windowInfo, string url, ref CefClient client, CefBrowserSettings settings)
 {
     this.parentBrowser = parentBrowser;
     this.popupFeatures = popupFeatures;
     this.windowInfo = windowInfo;
     this.url = url;
     this.client = client;
     this.settings = settings;
 }
コード例 #17
0
        protected override bool OnKeyEvent(CefBrowser browser, CefHandlerKeyEventType type, int code, CefHandlerKeyEventModifiers modifiers, bool isSystemKey, bool isAfterJavaScript)
        {
            #if DIAGNOSTICS
            Cef.Logger.Trace(LogTarget.CefKeyboardHandler, "OnKeyEvent: type=[{0}] code=[{1}] modifiers=[{2}] isSystemKey=[{3}] isAfterJavaScript=[{4}]", type, code, modifiers, isSystemKey, isAfterJavaScript);
            #endif

            // TODO: CefWebKeyboardHandler.OnKeyEvent: return this.context.PostKeyEvent(type, code, modifiers, isSystemKey);
            return false;
        }
コード例 #18
0
 protected override void OnAddressChange(CefBrowser browser, CefFrame frame, string url)
 {
     #if DIAGNOSTICS
     Cef.Logger.Trace(LogTarget.CefDisplayHandler, "OnAddressChange: URL=[{0}] Frame.IsMain=[{1}]", url, frame.IsMain);
     #endif
     if (frame.IsMain)
     {
         this.context.OnAddressChanged(url);
     }
 }
コード例 #19
0
ファイル: WebBrowser.cs プロジェクト: rajsite/lvcef
 public void Close()
 {
     if (_browser != null)
     {
         var host = _browser.GetHost();
         host.CloseBrowser(true);
         host.Dispose();
         _browser.Dispose();
         _browser = null;
     }
 }
コード例 #20
0
        protected override bool OnConsoleMessage(CefBrowser browser, string message, string source, int line)
        {
            #if DIAGNOSTICS
            Cef.Logger.Trace(LogTarget.CefDisplayHandler, "OnConsoleMessage: Message=[{0}] Source=[{1}] Line=[{2}]", message, source, line);
            #endif
            // FIXME: check context state? if (this.context.IsDisposed) return false;

            this.context.OnConsoleMessage(new ConsoleMessageEventArgs(message, source, line));

            return true;
        }
コード例 #21
0
        // TODO: use OnBeforeResourceLoad to OnResourceResponse to detect resource loading, and waiting when all resources will be loaded
        protected override bool OnBeforeResourceLoad(CefBrowser browser, CefRequest request, out string redirectUrl, out CefStreamReader resourceStream, CefResponse response, int loadFlags)
        {
            var prevColor = Console.ForegroundColor;
            Console.ForegroundColor = ConsoleColor.DarkMagenta;
            Console.WriteLine("OnBeforeResourceLoad: {0}", request.GetURL());
            Console.ForegroundColor = prevColor;

            redirectUrl = null;
            resourceStream = null;
            return false;
        }
コード例 #22
0
        protected override void OnResourceResponse(CefBrowser browser, string url, CefResponse response, out CefContentFilter filter)
        {
            var prevColor = Console.ForegroundColor;
            Console.ForegroundColor = ConsoleColor.Magenta;
            Console.WriteLine("OnResourceResponse: {0} ({1})", url, response.GetHeader("Content-Length"));
            Console.ForegroundColor = prevColor;

            response.GetHeaderMap().Append("Access-Control-Allow-Origin", "*");

            filter = null;
            // filter = new CefWebProgressContentFilter();
        }
コード例 #23
0
		protected override bool OnBeforePopup(CefBrowser browser, CefFrame frame, string targetUrl, string targetFrameName, CefPopupFeatures popupFeatures, CefWindowInfo windowInfo, ref CefClient client, CefBrowserSettings settings, ref bool noJavascriptAccess)
		{
			var e = new BeforePopupEventArgs(frame, targetUrl, targetFrameName, popupFeatures, windowInfo, client, settings,
								 noJavascriptAccess);

			_core.InvokeIfRequired(() => _core.OnBeforePopup(e));

			client = e.Client;
			noJavascriptAccess = e.NoJavascriptAccess;

			return e.Handled;
		}
コード例 #24
0
        protected unsafe override void OnContextCreated(CefBrowser browser, CefFrame frame, CefV8Context context)
        {
            if (frame.IsMain)
            {
                _context.MainFrame.BindContext(context);
            }

            var obj = context.GetGlobal();
            Cef.JSBindingContext.BindObjects(obj);
            _context.JSBindingContext.BindObjects(obj);
            obj.Dispose();
        }
コード例 #25
0
ファイル: WebBrowser.cs プロジェクト: rajsite/lvcef
        internal void OnCreated(CefBrowser browser)
        {
            //if (_created) throw new InvalidOperationException("Browser already created.");
            _created = true;
            _browser = browser;

            var handler = Created;
            if (handler != null)
            {
                handler(this, EventArgs.Empty);
            }
        }
コード例 #26
0
        protected override void OnPaint(CefBrowser browser, CefPaintElementType type, CefRectangle[] dirtyRects, IntPtr buffer, int width, int height)
        {
            _logger.Debug("Type: {0} Buffer: {1:X8} Width: {2} Height: {3}", type, buffer, width, height);
            foreach (var rect in dirtyRects)
            {
                _logger.Debug("   DirtyRect: X={0} Y={1} W={2} H={3}", rect.X, rect.Y, rect.Width, rect.Height);
            }

            if (type == CefPaintElementType.View)
            {
                _owner.HandleViewPaint(browser, type, dirtyRects, buffer, width, height);
            }
            // 			else if (type == CefPaintElementType.Popup)
            // 				this.browser.HandleWidgetPaint(browser, type, dirtyRects, buffer, width, height);
        }
コード例 #27
0
        protected override void Dispose(bool disposing)
        {
            if (_browser != null)
            {
                var host = _browser.GetHost();
                host.CloseBrowser();
                host.ParentWindowWillClose();
                host.Dispose();
                _browser.Dispose();
                _browser = null;
                _browserWindowHandle = IntPtr.Zero;
            }

            base.Dispose(disposing);
        }
コード例 #28
0
        /// <summary>
        /// Returns the number of queries currently pending for the specified |browser|
        /// and/or |context|. Either or both values may be empty.
        /// </summary>
        public int GetPendingCount(CefBrowser browser = null, CefV8Context context = null)
        {
            Helpers.RequireRendererThread();

            if (_browserRequestInfoMap.IsEmpty) return 0;

            if (context != null)
            {
                var contextId = GetIDForContext(context, false);
                if (contextId == CefMessageRouter.ReservedId)
                    return 0;  // Nothing associated with the specified context.

                int count = 0;
                BrowserRequestInfoMap.Visitor visitor = (int browserId, KeyValuePair<int, int> infoId, RequestInfo info, ref bool remove) =>
                {
                    if (infoId.Key == contextId) count++;
                    return true;
                };

                if (browser != null)
                {
                    // Count requests associated with the specified browser.
                    _browserRequestInfoMap.FindAll(browser.Identifier, visitor);
                }
                else
                {
                    // Count all requests for all browsers.
                    _browserRequestInfoMap.FindAll(visitor);
                }

                return count;
            }
            else if (browser != null)
            {
                return _browserRequestInfoMap.Count(browser.Identifier);
            }
            else
            {
                return _browserRequestInfoMap.Count();
            }

            return 0;
        }
コード例 #29
0
        protected override void OnBeforeClose(CefBrowser browser)
        {
            #if DIAGNOSTICS
            Cef.Logger.Trace(LogTarget.CefLifeSpanHandler, "OnBeforeClose");
            #endif

            // TODO: raise Closing event ?
            this.context.Detach();
            browser.Dispose();

            /*
            if (!browser.IsPopup)
            {
                browser.Dispose();

                if (this.context.browser != null)
                {
                    this.context.browser.Dispose();
                    this.context.browser = null;
                    this.context.browserWindowHandle = IntPtr.Zero;
                }

                if (!this.context.IsDisposed)
                {
                    if (this.context.InvokeRequired)
                    {
                        this.context.BeginInvoke(new Action(this.context.DestroyHandle));
                    }
                    else
                    {
                        this.context.DestroyHandle();
                    }
                }
            }
            else
            {
                browser.Dispose();
            }
            */
        }
コード例 #30
0
        protected override void OnStatusMessage(CefBrowser browser, string value, CefHandlerStatusType type)
        {
            #if DIAGNOSTICS
            Cef.Logger.Trace(LogTarget.CefDisplayHandler, "OnStatusMessage: Type=[{0}] Value=[{1}]", type, value);
            #endif

            /*
            // TODO: popups support...

            if (value.Length == 0)
            {
                this.statusMessages.Remove(type);
                GetMostImportantStatusMessage(this.statusMessages, out type, out value);
            }
            else
            {
                this.statusMessages[type] = value;
            }

            this.context.PostStatusMessage(new StatusMessageEventArgs(type, value ?? ""));
            */
        }
コード例 #31
0
 protected override void OnPopupShow(CefBrowser browser, bool show)
 {
     _owner.OnPopupShow(show);
 }
 /// <inheritdoc/>
 protected override CefResourceHandler Create(CefBrowser browser, CefFrame frame, string schemeName, CefRequest request)
 {
     return(new DefaultExternalRequestSchemeHandler(_sharedClient));
 }
コード例 #33
0
ファイル: Browser.cs プロジェクト: rpc-bindings/core
 protected override void OnResetDialogState(CefBrowser browser)
 {
 }
コード例 #34
0
 protected internal unsafe override bool GetAudioParameters(CefBrowser browser, ref CefAudioParameters @params)
 {
     return(_implementation.GetAudioParameters(browser, ref @params));
 }
コード例 #35
0
ファイル: Browser.cs プロジェクト: rpc-bindings/core
 protected override void OnPopupSize(CefBrowser browser, CefRectangle rect)
 {
 }
コード例 #36
0
ファイル: Browser.cs プロジェクト: rpc-bindings/core
 protected override void OnScrollOffsetChanged(CefBrowser browser, double x, double y)
 {
 }
コード例 #37
0
 protected internal unsafe override void OnAudioStreamPacket(CefBrowser browser, IntPtr data, int frames, long pts)
 {
     _implementation.OnAudioStreamPacket(browser, data, frames, pts);
 }
コード例 #38
0
 protected override bool DoClose(CefBrowser browser)
 {
     // TODO: ... dispose core
     return(false);
 }
コード例 #39
0
        protected override void OnAfterCreated(CefBrowser browser)
        {
            base.OnAfterCreated(browser);

            _core.InvokeIfRequired(() => _core.OnBrowserAfterCreated(browser));
        }
コード例 #40
0
 protected override bool OnDragEnter(CefBrowser browser, CefDragData dragData, CefDragOperationsMask mask)
 {
     //throw new NotImplementedException();
     return(true);
 }
コード例 #41
0
        private void UpdateTexture(CefBrowser browser, EX9.Texture texture)
        {
            var sysmemTexture = texture.Tag as EX9.Texture;

            texture.Device.UpdateTexture(sysmemTexture, texture);
        }
コード例 #42
0
ファイル: Browser.cs プロジェクト: rpc-bindings/core
 protected override void OnPaint(CefBrowser browser, CefPaintElementType type, CefRectangle[] dirtyRects, IntPtr buffer, int width,
                                 int height)
 {
 }
コード例 #43
0
 protected override void OnDraggableRegionsChanged(CefBrowser browser, CefDraggableRegion[] regions)
 {
     //throw new NotImplementedException();
 }
コード例 #44
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CefGlueFrameHandler"/> class.
 /// </summary>
 /// <param name="browser">
 /// The browser.
 /// </param>
 public CefGlueFrameHandler(CefBrowser browser)
 {
     mBrowser = browser;
 }
コード例 #45
0
 public override void OnFindResult(CefBrowser browser, int identifier, int count, CefRect selectionRect, int activeMatchOrdinal, bool finalUpdate)
 {
     _implementation.OnFindResult(browser, identifier, count, selectionRect, activeMatchOrdinal, finalUpdate);
 }
コード例 #46
0
 protected internal unsafe override void OnAudioStreamError(CefBrowser browser, string message)
 {
     _implementation.OnAudioStreamError(browser, message);
 }
コード例 #47
0
 protected override bool OnProcessMessageReceived(CefBrowser browser, CefProcessId sourceProcess, CefProcessMessage message)
 {
     return(base.OnProcessMessageReceived(browser, sourceProcess, message));
 }
コード例 #48
0
 public CefShowPopupEventArgs(CefBrowser parentBrowser, bool show)
 {
     this.parentBrowser = parentBrowser;
     this.show          = show;
 }
コード例 #49
0
 protected override bool GetScreenPoint(CefBrowser browser, int viewX, int viewY, ref int screenX, ref int screenY)
 {
     _owner.GetScreenPoint(viewX, viewY, ref screenX, ref screenY);
     return(true);
 }
コード例 #50
0
ファイル: Browser.cs プロジェクト: rpc-bindings/core
            protected override bool GetViewRect(CefBrowser browser, ref CefRectangle rect)
            {
                rect = new CefRectangle(0, 0, 300, 300);

                return(true);
            }
コード例 #51
0
 protected override bool GetViewRect(CefBrowser browser, ref CefRectangle rect)
 {
     return(_owner.GetViewRect(ref rect));
 }
コード例 #52
0
ファイル: CefBrowserClient.cs プロジェクト: maintell/Chromely
 protected override bool OnProcessMessageReceived(CefBrowser browser, CefFrame frame, CefProcessId sourceProcess, CefProcessMessage message)
 {
     return(_browserMessageRouter?.OnProcessMessageReceived(browser, frame, sourceProcess, message) ?? false);
 }
コード例 #53
0
 protected internal unsafe override void OnAudioStreamStopped(CefBrowser browser)
 {
     _implementation.OnAudioStreamStopped(browser);
 }
コード例 #54
0
ファイル: Browser.cs プロジェクト: rpc-bindings/core
 protected override void OnAfterCreated(CefBrowser browser)
 {
     base.OnAfterCreated(browser);
     taskCompletionSource.TrySetResult(browser);
 }
コード例 #55
0
 protected internal unsafe override void OnAudioStreamStarted(CefBrowser browser, CefAudioParameters @params, int channels)
 {
     _implementation.OnAudioStreamStarted(browser, @params, channels);
 }
コード例 #56
0
ファイル: Browser.cs プロジェクト: rpc-bindings/core
 protected override void OnDialogClosed(CefBrowser browser)
 {
 }
コード例 #57
0
 protected override void OnFindResult(CefBrowser browser, int identifier, int count, CefRectangle selectionRect, int activeMatchOrdinal, bool finalUpdate)
 {
 }
コード例 #58
0
ファイル: Browser.cs プロジェクト: rpc-bindings/core
 protected override bool GetScreenInfo(CefBrowser browser, CefScreenInfo screenInfo)
 {
     return(false);
 }
コード例 #59
0
ファイル: Browser.cs プロジェクト: rpc-bindings/core
 protected override void OnCursorChange(CefBrowser browser, IntPtr cursorHandle, CefCursorType type, CefCursorInfo customCursorInfo)
 {
 }
コード例 #60
0
 protected override void OnImeCompositionRangeChanged(CefBrowser browser, CefRange selectedRange, CefRectangle[] characterBounds)
 {
 }