CefSharp WPF не загружает содержимое после обновления - PullRequest
0 голосов
/ 14 мая 2019

Недавно я обновил cefsharp wpf с 69.0.0 до 71.0.0, и создание браузера с использованием управляемогоcefbrowseradapter изменилось, и при использовании IWindowInfo в качестве параметра браузер не отображается.Раньше при простом прохождении окна ручка работала правильно.Есть ли какие-либо критические изменения, которые я должен адаптировать?

Рабочий - 69.0.0

_managedCefBrowserAdapter.CreateBrowser (BrowserSettings, RequestContext, _window.Handle, address);

нерабочая - 71.0.0

IWindowInfo window = new WindowInfo ();window.WindowHandle = _window.Handle;_managedCefBrowserAdapter.CreateBrowser (window, BrowserSettings, RequestContext, address);

Отредактировано для добавления дополнительных сведений.

Браузер CEF размещен в элементе управления WPF, который унаследован от System.Windows.Controls.В проекте используется cefsharp.wfp. Дескриптор элемента управления WPF хранится в свойстве ControlHandle.Cef инициализируется с использованием CefSettings из пространства имен cesharp.wpf.

 CefSettings settings = new CefSettings
                {
                    CachePath="xxxxx",
                    PersistSessionCookies = true,
                    LogSeverity = LogSeverity.Default,
                    LogFile = Path.Combine(logsFolder, "xxxxx.log"),
                    Locale = "en-US",
                    ResourcesDirPath = "xxxxxx"
                }
             Cef.Initialize(settings);

У нас есть собственный класс CefBrowser, который реализует cefsharp.internals.IWebBrowserInternal и использует ManagedCefBrowserAdapter для создания cefBrowser.

1017* Будет создано собственное окно, которое будет установлено как дескриптор окна.ManagedCefBrowserAdapter createbrowser будет создан с дескриптором окна.
 _managedCefBrowserAdapter.CreateBrowser(infowindow , BrowserSettings, RequestContext, address);

Когда создается один браузер, в методе OnAfterBrowserCreated вызывается API SetParent для установки родительского элемента хоста браузера cefsharp в элемент управления WPF.

void IWebBrowserInternal.OnAfterBrowserCreated(IBrowser browser)
        {
            _browser = browser;
                        SetParent(browser.GetHost().GetWindowHandle(), ControlHandle);          

            ResizeBrowser(Size); //WPF control size 

            OnBrowserCreated(new EventArgs());
        }

        #endregion

        #region Private Members

        private void OnBrowserCreated(EventArgs args)
        {
            EventHandler<EventArgs> handler = BrowserCreated;
            if (handler != null)
            {
                handler(this, args);
            }
        }

Это работало до версии 69.0.0 с вызовом _managedCefBrowserAdapter.CreateBrowser (BrowserSettings, RequestContext, window.Handle, address).В 71.0.0 он прерывается вызовом с использованием IWindowInfo, и страницы не отображаются.

...