1212using CefSharp . Example ;
1313using CefSharp . Example . Callback ;
1414using CefSharp . Example . Handlers ;
15+ using CefSharp . WinForms . Host ;
1516
1617namespace CefSharp . WinForms . Example
1718{
@@ -63,16 +64,22 @@ private void BrowserFormLoad(object sender, EventArgs e)
6364 /// Used to add a Popup browser as a Tab
6465 /// </summary>
6566 /// <param name="browserHostControl"></param>
66- public void AddTab ( Control browserHostControl , string url )
67+ public void AddTab ( ChromiumHostControl browserHostControl , string url )
6768 {
6869 browserTabControl . SuspendLayout ( ) ;
6970
71+ var browser = new BrowserTabUserControl ( browserHostControl )
72+ {
73+ Dock = DockStyle . Fill ,
74+ Bounds = browserTabControl . Bounds
75+ } ;
76+
7077 var tabPage = new TabPage ( url )
7178 {
7279 Dock = DockStyle . Fill
7380 } ;
7481
75- tabPage . Controls . Add ( browserHostControl ) ;
82+ tabPage . Controls . Add ( browser ) ;
7683
7784 browserTabControl . TabPages . Add ( tabPage ) ;
7885
@@ -222,7 +229,7 @@ private void UndoMenuItemClick(object sender, EventArgs e)
222229 var control = GetCurrentTabControl ( ) ;
223230 if ( control != null )
224231 {
225- control . Browser . Undo ( ) ;
232+ control . BrowserControl . Undo ( ) ;
226233 }
227234 }
228235
@@ -231,7 +238,7 @@ private void RedoMenuItemClick(object sender, EventArgs e)
231238 var control = GetCurrentTabControl ( ) ;
232239 if ( control != null )
233240 {
234- control . Browser . Redo ( ) ;
241+ control . BrowserControl . Redo ( ) ;
235242 }
236243 }
237244
@@ -240,7 +247,7 @@ private void CutMenuItemClick(object sender, EventArgs e)
240247 var control = GetCurrentTabControl ( ) ;
241248 if ( control != null )
242249 {
243- control . Browser . Cut ( ) ;
250+ control . BrowserControl . Cut ( ) ;
244251 }
245252 }
246253
@@ -249,7 +256,7 @@ private void CopyMenuItemClick(object sender, EventArgs e)
249256 var control = GetCurrentTabControl ( ) ;
250257 if ( control != null )
251258 {
252- control . Browser . Copy ( ) ;
259+ control . BrowserControl . Copy ( ) ;
253260 }
254261 }
255262
@@ -258,7 +265,7 @@ private void PasteMenuItemClick(object sender, EventArgs e)
258265 var control = GetCurrentTabControl ( ) ;
259266 if ( control != null )
260267 {
261- control . Browser . Paste ( ) ;
268+ control . BrowserControl . Paste ( ) ;
262269 }
263270 }
264271
@@ -267,7 +274,7 @@ private void DeleteMenuItemClick(object sender, EventArgs e)
267274 var control = GetCurrentTabControl ( ) ;
268275 if ( control != null )
269276 {
270- control . Browser . Delete ( ) ;
277+ control . BrowserControl . Delete ( ) ;
271278 }
272279 }
273280
@@ -276,7 +283,7 @@ private void SelectAllMenuItemClick(object sender, EventArgs e)
276283 var control = GetCurrentTabControl ( ) ;
277284 if ( control != null )
278285 {
279- control . Browser . SelectAll ( ) ;
286+ control . BrowserControl . SelectAll ( ) ;
280287 }
281288 }
282289
@@ -285,7 +292,7 @@ private void PrintToolStripMenuItemClick(object sender, EventArgs e)
285292 var control = GetCurrentTabControl ( ) ;
286293 if ( control != null )
287294 {
288- control . Browser . Print ( ) ;
295+ control . BrowserControl . Print ( ) ;
289296 }
290297 }
291298
@@ -297,7 +304,7 @@ private async void ShowDevToolsMenuItemClick(object sender, EventArgs e)
297304 var isDevToolsOpen = await control . CheckIfDevToolsIsOpenAsync ( ) ;
298305 if ( ! isDevToolsOpen )
299306 {
300- control . Browser . ShowDevTools ( ) ;
307+ control . BrowserControl . ShowDevTools ( ) ;
301308 }
302309 }
303310 }
@@ -310,7 +317,8 @@ private async void ShowDevToolsDockedMenuItemClick(object sender, EventArgs e)
310317 var isDevToolsOpen = await control . CheckIfDevToolsIsOpenAsync ( ) ;
311318 if ( ! isDevToolsOpen )
312319 {
313- if ( control . Browser . LifeSpanHandler != null )
320+ var chromiumWebBrowser = control . BrowserControl as ChromiumWebBrowser ;
321+ if ( chromiumWebBrowser != null && chromiumWebBrowser . LifeSpanHandler != null )
314322 {
315323 control . ShowDevToolsDocked ( ) ;
316324 }
@@ -329,7 +337,7 @@ private async void CloseDevToolsMenuItemClick(object sender, EventArgs e)
329337 var isDevToolsOpen = await control . CheckIfDevToolsIsOpenAsync ( ) ;
330338 if ( isDevToolsOpen )
331339 {
332- control . Browser . CloseDevTools ( ) ;
340+ control . BrowserControl . CloseDevTools ( ) ;
333341 }
334342 }
335343 }
@@ -339,14 +347,14 @@ private void ZoomInToolStripMenuItemClick(object sender, EventArgs e)
339347 var control = GetCurrentTabControl ( ) ;
340348 if ( control != null )
341349 {
342- var task = control . Browser . GetZoomLevelAsync ( ) ;
350+ var task = control . BrowserControl . GetZoomLevelAsync ( ) ;
343351
344352 task . ContinueWith ( previous =>
345353 {
346354 if ( previous . Status == TaskStatus . RanToCompletion )
347355 {
348356 var currentLevel = previous . Result ;
349- control . Browser . SetZoomLevel ( currentLevel + ZoomIncrement ) ;
357+ control . BrowserControl . SetZoomLevel ( currentLevel + ZoomIncrement ) ;
350358 }
351359 else
352360 {
@@ -361,13 +369,13 @@ private void ZoomOutToolStripMenuItemClick(object sender, EventArgs e)
361369 var control = GetCurrentTabControl ( ) ;
362370 if ( control != null )
363371 {
364- var task = control . Browser . GetZoomLevelAsync ( ) ;
372+ var task = control . BrowserControl . GetZoomLevelAsync ( ) ;
365373 task . ContinueWith ( previous =>
366374 {
367375 if ( previous . Status == TaskStatus . RanToCompletion )
368376 {
369377 var currentLevel = previous . Result ;
370- control . Browser . SetZoomLevel ( currentLevel - ZoomIncrement ) ;
378+ control . BrowserControl . SetZoomLevel ( currentLevel - ZoomIncrement ) ;
371379 }
372380 else
373381 {
@@ -382,7 +390,7 @@ private void CurrentZoomLevelToolStripMenuItemClick(object sender, EventArgs e)
382390 var control = GetCurrentTabControl ( ) ;
383391 if ( control != null )
384392 {
385- var task = control . Browser . GetZoomLevelAsync ( ) ;
393+ var task = control . BrowserControl . GetZoomLevelAsync ( ) ;
386394 task . ContinueWith ( previous =>
387395 {
388396 if ( previous . Status == TaskStatus . RanToCompletion )
@@ -403,7 +411,7 @@ private void DoesActiveElementAcceptTextInputToolStripMenuItemClick(object sende
403411 var control = GetCurrentTabControl ( ) ;
404412 if ( control != null )
405413 {
406- var frame = control . Browser . GetFocusedFrame ( ) ;
414+ var frame = control . BrowserControl . GetFocusedFrame ( ) ;
407415
408416 //Execute extension method
409417 frame . ActiveElementAcceptsTextInput ( ) . ContinueWith ( task =>
@@ -442,7 +450,7 @@ private void DoesElementWithIdExistToolStripMenuItemClick(object sender, EventAr
442450 var control = GetCurrentTabControl ( ) ;
443451 if ( control != null )
444452 {
445- var frame = control . Browser . GetFocusedFrame ( ) ;
453+ var frame = control . BrowserControl . GetFocusedFrame ( ) ;
446454
447455 //Execute extension method
448456 frame . ElementWithIdExists ( dialog . Value ) . ContinueWith ( task =>
@@ -478,7 +486,7 @@ private void GoToDemoPageToolStripMenuItemClick(object sender, EventArgs e)
478486 var control = GetCurrentTabControl ( ) ;
479487 if ( control != null )
480488 {
481- control . Browser . Load ( "custom://cefsharp/ScriptedMethodsTest.html" ) ;
489+ control . BrowserControl . LoadUrl ( "custom://cefsharp/ScriptedMethodsTest.html" ) ;
482490 }
483491 }
484492
@@ -487,7 +495,7 @@ private void InjectJavascriptCodeToolStripMenuItemClick(object sender, EventArgs
487495 var control = GetCurrentTabControl ( ) ;
488496 if ( control != null )
489497 {
490- var frame = control . Browser . GetFocusedFrame ( ) ;
498+ var frame = control . BrowserControl . GetFocusedFrame ( ) ;
491499
492500 //Execute extension method
493501 frame . ListenForEvent ( "test-button" , "click" ) ;
@@ -507,7 +515,7 @@ private async void PrintToPdfToolStripMenuItemClick(object sender, EventArgs e)
507515
508516 if ( dialog . ShowDialog ( ) == DialogResult . OK )
509517 {
510- var success = await control . Browser . PrintToPdfAsync ( dialog . FileName , new PdfPrintSettings
518+ var success = await control . BrowserControl . PrintToPdfAsync ( dialog . FileName , new PdfPrintSettings
511519 {
512520 MarginType = CefPdfPrintMarginType . Custom ,
513521 MarginBottom = 10 ,
@@ -536,7 +544,7 @@ private void OpenDataUrlToolStripMenuItemClick(object sender, EventArgs e)
536544 if ( control != null )
537545 {
538546 const string html = "<html><head><title>Test</title></head><body><h1>Html Encoded in URL!</h1></body></html>" ;
539- control . Browser . LoadHtml ( html , false ) ;
547+ control . BrowserControl . LoadHtml ( html , false ) ;
540548 }
541549 }
542550
@@ -545,7 +553,7 @@ private void OpenHttpBinOrgToolStripMenuItemClick(object sender, EventArgs e)
545553 var control = GetCurrentTabControl ( ) ;
546554 if ( control != null )
547555 {
548- control . Browser . Load ( "https://httpbin.org/" ) ;
556+ control . BrowserControl . LoadUrl ( "https://httpbin.org/" ) ;
549557 }
550558 }
551559
@@ -554,7 +562,7 @@ private void RunFileDialogToolStripMenuItemClick(object sender, EventArgs e)
554562 var control = GetCurrentTabControl ( ) ;
555563 if ( control != null )
556564 {
557- control . Browser . GetBrowserHost ( ) . RunFileDialog ( CefFileDialogMode . Open , "Open" , null , new List < string > { "*.*" } , 0 , new RunFileDialogCallback ( ) ) ;
565+ control . BrowserControl . GetBrowserHost ( ) . RunFileDialog ( CefFileDialogMode . Open , "Open" , null , new List < string > { "*.*" } , 0 , new RunFileDialogCallback ( ) ) ;
558566 }
559567 }
560568
@@ -564,9 +572,9 @@ private void LoadExtensionsToolStripMenuItemClick(object sender, EventArgs e)
564572 if ( control != null )
565573 {
566574 //The sample extension only works for http(s) schemes
567- if ( control . Browser . Address . StartsWith ( "http" ) )
575+ if ( control . BrowserControl . GetMainFrame ( ) . Url . StartsWith ( "http" ) )
568576 {
569- var requestContext = control . Browser . GetBrowserHost ( ) . RequestContext ;
577+ var requestContext = control . BrowserControl . GetBrowserHost ( ) . RequestContext ;
570578
571579 const string cefSharpExampleResourcesFolder =
572580#if ! NETCOREAPP
@@ -604,7 +612,7 @@ private void LoadExtensionsToolStripMenuItemClick(object sender, EventArgs e)
604612 GetActiveBrowser = ( extension , isIncognito ) =>
605613 {
606614 //Return the active browser for which the extension will act upon
607- return control . Browser . GetBrowser ( ) ;
615+ return control . BrowserControl . BrowserCore ;
608616 }
609617 } ;
610618
@@ -622,16 +630,16 @@ private void JavascriptBindingStressTestToolStripMenuItemClick(object sender, Ev
622630 var control = GetCurrentTabControl ( ) ;
623631 if ( control != null )
624632 {
625- control . Browser . Load ( CefExample . BindingTestUrl ) ;
626- control . Browser . LoadingStateChanged += ( o , args ) =>
633+ control . BrowserControl . LoadUrl ( CefExample . BindingTestUrl ) ;
634+ control . BrowserControl . LoadingStateChanged += ( o , args ) =>
627635 {
628636 if ( args . IsLoading == false )
629637 {
630638 Task . Delay ( 10000 ) . ContinueWith ( t =>
631639 {
632- if ( control . Browser != null )
640+ if ( control . BrowserControl != null )
633641 {
634- control . Browser . Reload ( ) ;
642+ control . BrowserControl . Reload ( ) ;
635643 }
636644 } ) ;
637645 }
0 commit comments