12
12
using CefSharp . Example ;
13
13
using CefSharp . Example . Callback ;
14
14
using CefSharp . Example . Handlers ;
15
+ using CefSharp . WinForms . Host ;
15
16
16
17
namespace CefSharp . WinForms . Example
17
18
{
@@ -63,16 +64,22 @@ private void BrowserFormLoad(object sender, EventArgs e)
63
64
/// Used to add a Popup browser as a Tab
64
65
/// </summary>
65
66
/// <param name="browserHostControl"></param>
66
- public void AddTab ( Control browserHostControl , string url )
67
+ public void AddTab ( ChromiumHostControl browserHostControl , string url )
67
68
{
68
69
browserTabControl . SuspendLayout ( ) ;
69
70
71
+ var browser = new BrowserTabUserControl ( browserHostControl )
72
+ {
73
+ Dock = DockStyle . Fill ,
74
+ Bounds = browserTabControl . Bounds
75
+ } ;
76
+
70
77
var tabPage = new TabPage ( url )
71
78
{
72
79
Dock = DockStyle . Fill
73
80
} ;
74
81
75
- tabPage . Controls . Add ( browserHostControl ) ;
82
+ tabPage . Controls . Add ( browser ) ;
76
83
77
84
browserTabControl . TabPages . Add ( tabPage ) ;
78
85
@@ -222,7 +229,7 @@ private void UndoMenuItemClick(object sender, EventArgs e)
222
229
var control = GetCurrentTabControl ( ) ;
223
230
if ( control != null )
224
231
{
225
- control . Browser . Undo ( ) ;
232
+ control . BrowserControl . Undo ( ) ;
226
233
}
227
234
}
228
235
@@ -231,7 +238,7 @@ private void RedoMenuItemClick(object sender, EventArgs e)
231
238
var control = GetCurrentTabControl ( ) ;
232
239
if ( control != null )
233
240
{
234
- control . Browser . Redo ( ) ;
241
+ control . BrowserControl . Redo ( ) ;
235
242
}
236
243
}
237
244
@@ -240,7 +247,7 @@ private void CutMenuItemClick(object sender, EventArgs e)
240
247
var control = GetCurrentTabControl ( ) ;
241
248
if ( control != null )
242
249
{
243
- control . Browser . Cut ( ) ;
250
+ control . BrowserControl . Cut ( ) ;
244
251
}
245
252
}
246
253
@@ -249,7 +256,7 @@ private void CopyMenuItemClick(object sender, EventArgs e)
249
256
var control = GetCurrentTabControl ( ) ;
250
257
if ( control != null )
251
258
{
252
- control . Browser . Copy ( ) ;
259
+ control . BrowserControl . Copy ( ) ;
253
260
}
254
261
}
255
262
@@ -258,7 +265,7 @@ private void PasteMenuItemClick(object sender, EventArgs e)
258
265
var control = GetCurrentTabControl ( ) ;
259
266
if ( control != null )
260
267
{
261
- control . Browser . Paste ( ) ;
268
+ control . BrowserControl . Paste ( ) ;
262
269
}
263
270
}
264
271
@@ -267,7 +274,7 @@ private void DeleteMenuItemClick(object sender, EventArgs e)
267
274
var control = GetCurrentTabControl ( ) ;
268
275
if ( control != null )
269
276
{
270
- control . Browser . Delete ( ) ;
277
+ control . BrowserControl . Delete ( ) ;
271
278
}
272
279
}
273
280
@@ -276,7 +283,7 @@ private void SelectAllMenuItemClick(object sender, EventArgs e)
276
283
var control = GetCurrentTabControl ( ) ;
277
284
if ( control != null )
278
285
{
279
- control . Browser . SelectAll ( ) ;
286
+ control . BrowserControl . SelectAll ( ) ;
280
287
}
281
288
}
282
289
@@ -285,7 +292,7 @@ private void PrintToolStripMenuItemClick(object sender, EventArgs e)
285
292
var control = GetCurrentTabControl ( ) ;
286
293
if ( control != null )
287
294
{
288
- control . Browser . Print ( ) ;
295
+ control . BrowserControl . Print ( ) ;
289
296
}
290
297
}
291
298
@@ -297,7 +304,7 @@ private async void ShowDevToolsMenuItemClick(object sender, EventArgs e)
297
304
var isDevToolsOpen = await control . CheckIfDevToolsIsOpenAsync ( ) ;
298
305
if ( ! isDevToolsOpen )
299
306
{
300
- control . Browser . ShowDevTools ( ) ;
307
+ control . BrowserControl . ShowDevTools ( ) ;
301
308
}
302
309
}
303
310
}
@@ -310,7 +317,8 @@ private async void ShowDevToolsDockedMenuItemClick(object sender, EventArgs e)
310
317
var isDevToolsOpen = await control . CheckIfDevToolsIsOpenAsync ( ) ;
311
318
if ( ! isDevToolsOpen )
312
319
{
313
- if ( control . Browser . LifeSpanHandler != null )
320
+ var chromiumWebBrowser = control . BrowserControl as ChromiumWebBrowser ;
321
+ if ( chromiumWebBrowser != null && chromiumWebBrowser . LifeSpanHandler != null )
314
322
{
315
323
control . ShowDevToolsDocked ( ) ;
316
324
}
@@ -329,7 +337,7 @@ private async void CloseDevToolsMenuItemClick(object sender, EventArgs e)
329
337
var isDevToolsOpen = await control . CheckIfDevToolsIsOpenAsync ( ) ;
330
338
if ( isDevToolsOpen )
331
339
{
332
- control . Browser . CloseDevTools ( ) ;
340
+ control . BrowserControl . CloseDevTools ( ) ;
333
341
}
334
342
}
335
343
}
@@ -339,14 +347,14 @@ private void ZoomInToolStripMenuItemClick(object sender, EventArgs e)
339
347
var control = GetCurrentTabControl ( ) ;
340
348
if ( control != null )
341
349
{
342
- var task = control . Browser . GetZoomLevelAsync ( ) ;
350
+ var task = control . BrowserControl . GetZoomLevelAsync ( ) ;
343
351
344
352
task . ContinueWith ( previous =>
345
353
{
346
354
if ( previous . Status == TaskStatus . RanToCompletion )
347
355
{
348
356
var currentLevel = previous . Result ;
349
- control . Browser . SetZoomLevel ( currentLevel + ZoomIncrement ) ;
357
+ control . BrowserControl . SetZoomLevel ( currentLevel + ZoomIncrement ) ;
350
358
}
351
359
else
352
360
{
@@ -361,13 +369,13 @@ private void ZoomOutToolStripMenuItemClick(object sender, EventArgs e)
361
369
var control = GetCurrentTabControl ( ) ;
362
370
if ( control != null )
363
371
{
364
- var task = control . Browser . GetZoomLevelAsync ( ) ;
372
+ var task = control . BrowserControl . GetZoomLevelAsync ( ) ;
365
373
task . ContinueWith ( previous =>
366
374
{
367
375
if ( previous . Status == TaskStatus . RanToCompletion )
368
376
{
369
377
var currentLevel = previous . Result ;
370
- control . Browser . SetZoomLevel ( currentLevel - ZoomIncrement ) ;
378
+ control . BrowserControl . SetZoomLevel ( currentLevel - ZoomIncrement ) ;
371
379
}
372
380
else
373
381
{
@@ -382,7 +390,7 @@ private void CurrentZoomLevelToolStripMenuItemClick(object sender, EventArgs e)
382
390
var control = GetCurrentTabControl ( ) ;
383
391
if ( control != null )
384
392
{
385
- var task = control . Browser . GetZoomLevelAsync ( ) ;
393
+ var task = control . BrowserControl . GetZoomLevelAsync ( ) ;
386
394
task . ContinueWith ( previous =>
387
395
{
388
396
if ( previous . Status == TaskStatus . RanToCompletion )
@@ -403,7 +411,7 @@ private void DoesActiveElementAcceptTextInputToolStripMenuItemClick(object sende
403
411
var control = GetCurrentTabControl ( ) ;
404
412
if ( control != null )
405
413
{
406
- var frame = control . Browser . GetFocusedFrame ( ) ;
414
+ var frame = control . BrowserControl . GetFocusedFrame ( ) ;
407
415
408
416
//Execute extension method
409
417
frame . ActiveElementAcceptsTextInput ( ) . ContinueWith ( task =>
@@ -442,7 +450,7 @@ private void DoesElementWithIdExistToolStripMenuItemClick(object sender, EventAr
442
450
var control = GetCurrentTabControl ( ) ;
443
451
if ( control != null )
444
452
{
445
- var frame = control . Browser . GetFocusedFrame ( ) ;
453
+ var frame = control . BrowserControl . GetFocusedFrame ( ) ;
446
454
447
455
//Execute extension method
448
456
frame . ElementWithIdExists ( dialog . Value ) . ContinueWith ( task =>
@@ -478,7 +486,7 @@ private void GoToDemoPageToolStripMenuItemClick(object sender, EventArgs e)
478
486
var control = GetCurrentTabControl ( ) ;
479
487
if ( control != null )
480
488
{
481
- control . Browser . Load ( "custom://cefsharp/ScriptedMethodsTest.html" ) ;
489
+ control . BrowserControl . LoadUrl ( "custom://cefsharp/ScriptedMethodsTest.html" ) ;
482
490
}
483
491
}
484
492
@@ -487,7 +495,7 @@ private void InjectJavascriptCodeToolStripMenuItemClick(object sender, EventArgs
487
495
var control = GetCurrentTabControl ( ) ;
488
496
if ( control != null )
489
497
{
490
- var frame = control . Browser . GetFocusedFrame ( ) ;
498
+ var frame = control . BrowserControl . GetFocusedFrame ( ) ;
491
499
492
500
//Execute extension method
493
501
frame . ListenForEvent ( "test-button" , "click" ) ;
@@ -507,7 +515,7 @@ private async void PrintToPdfToolStripMenuItemClick(object sender, EventArgs e)
507
515
508
516
if ( dialog . ShowDialog ( ) == DialogResult . OK )
509
517
{
510
- var success = await control . Browser . PrintToPdfAsync ( dialog . FileName , new PdfPrintSettings
518
+ var success = await control . BrowserControl . PrintToPdfAsync ( dialog . FileName , new PdfPrintSettings
511
519
{
512
520
MarginType = CefPdfPrintMarginType . Custom ,
513
521
MarginBottom = 10 ,
@@ -536,7 +544,7 @@ private void OpenDataUrlToolStripMenuItemClick(object sender, EventArgs e)
536
544
if ( control != null )
537
545
{
538
546
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 ) ;
540
548
}
541
549
}
542
550
@@ -545,7 +553,7 @@ private void OpenHttpBinOrgToolStripMenuItemClick(object sender, EventArgs e)
545
553
var control = GetCurrentTabControl ( ) ;
546
554
if ( control != null )
547
555
{
548
- control . Browser . Load ( "https://httpbin.org/" ) ;
556
+ control . BrowserControl . LoadUrl ( "https://httpbin.org/" ) ;
549
557
}
550
558
}
551
559
@@ -554,7 +562,7 @@ private void RunFileDialogToolStripMenuItemClick(object sender, EventArgs e)
554
562
var control = GetCurrentTabControl ( ) ;
555
563
if ( control != null )
556
564
{
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 ( ) ) ;
558
566
}
559
567
}
560
568
@@ -564,9 +572,9 @@ private void LoadExtensionsToolStripMenuItemClick(object sender, EventArgs e)
564
572
if ( control != null )
565
573
{
566
574
//The sample extension only works for http(s) schemes
567
- if ( control . Browser . Address . StartsWith ( "http" ) )
575
+ if ( control . BrowserControl . GetMainFrame ( ) . Url . StartsWith ( "http" ) )
568
576
{
569
- var requestContext = control . Browser . GetBrowserHost ( ) . RequestContext ;
577
+ var requestContext = control . BrowserControl . GetBrowserHost ( ) . RequestContext ;
570
578
571
579
const string cefSharpExampleResourcesFolder =
572
580
#if ! NETCOREAPP
@@ -604,7 +612,7 @@ private void LoadExtensionsToolStripMenuItemClick(object sender, EventArgs e)
604
612
GetActiveBrowser = ( extension , isIncognito ) =>
605
613
{
606
614
//Return the active browser for which the extension will act upon
607
- return control . Browser . GetBrowser ( ) ;
615
+ return control . BrowserControl . BrowserCore ;
608
616
}
609
617
} ;
610
618
@@ -622,16 +630,16 @@ private void JavascriptBindingStressTestToolStripMenuItemClick(object sender, Ev
622
630
var control = GetCurrentTabControl ( ) ;
623
631
if ( control != null )
624
632
{
625
- control . Browser . Load ( CefExample . BindingTestUrl ) ;
626
- control . Browser . LoadingStateChanged += ( o , args ) =>
633
+ control . BrowserControl . LoadUrl ( CefExample . BindingTestUrl ) ;
634
+ control . BrowserControl . LoadingStateChanged += ( o , args ) =>
627
635
{
628
636
if ( args . IsLoading == false )
629
637
{
630
638
Task . Delay ( 10000 ) . ContinueWith ( t =>
631
639
{
632
- if ( control . Browser != null )
640
+ if ( control . BrowserControl != null )
633
641
{
634
- control . Browser . Reload ( ) ;
642
+ control . BrowserControl . Reload ( ) ;
635
643
}
636
644
} ) ;
637
645
}
0 commit comments