public PenBrowser(Action <string, int, BroserSetting, string> openNewTab, string url, BroserSetting setting = null) { InitializeComponent(); this.Setting = setting == null ? new BroserSetting() : setting; GlobalSettings.Init(); var browser = new ChromiumWebBrowser(url) { Dock = DockStyle.Fill }; browser.LifeSpanHandler = new PenLifeSpanHandler(openNewTab, this.Setting); browser.RequestHandler = new PenRequestHandler(openNewTab, this.Setting); browser.MenuHandler = new PenMenuHandler(); browser.RenderProcessMessageHandler = new PenRenderProcessMessageHandler(OnContextCreated); browser.LoadingStateChanged += this.LoadingStateChanged; browser.FrameLoadStart += this.FrameLoadStart; browser.FrameLoadEnd += this.FrameLoadEnd; CefSharpSettings.LegacyJavascriptBindingEnabled = true; browser.JavascriptObjectRepository.ObjectBoundInJavascript += ObjectBoundInJavascript; browser.JavascriptObjectRepository.Register("pen", new BoundObject(this.Setting.VisitorJsEvent == null ? this.DefaultVisitorJs : this.Setting.VisitorJsEvent), true); if (this.Setting.CookiesSetting != null && this.Setting.CookiesSetting.Cookies != null) { this.SetCookie(this.Setting.CookiesSetting.Cookies); } this.Browser = browser; this.browserPanel.Controls.Add(browser); }
public void AddTab(string url, int insertIndex = -1, BroserSetting setting = null, string title = "") { browserTabControl.SuspendLayout(); var browser = new PenBrowser(AddTab, url, setting) { Dock = DockStyle.Fill }; if (string.IsNullOrEmpty(title)) { title = url; } if (title.Length > 15) { title = title.Substring(0, 15) + "..."; } var tabPage = new TabPage(title + " "); tabPage.Controls.Add(browser); if (insertIndex == -1) { browserTabControl.TabPages.Add(tabPage); } else { browserTabControl.TabPages.Insert(insertIndex, tabPage); } browserTabControl.SelectedTab = tabPage; browserTabControl.ResumeLayout(true); tabPage.Dock = DockStyle.Fill; }
public PenLifeSpanHandler(Action <string, int, BroserSetting, string> openNewTab, BroserSetting broserSetting) { this.openNewTab = openNewTab; this.broserSetting = broserSetting; }