MainForm - CreateBrowser/AutoGetFeaturesCefSharpBrowserDesktopPC GitHub Wiki
using CefSharp;
using CefSharp.Enums;
using CefSharp.Event;
using CefSharp.Handler;
using CefSharp.Internals;
using CefSharp.ModelBinding;
using CefSharp.SchemeHandler;
using CefSharp.Structs;
using CefSharp.WinForms;
using CefSharp.WinForms.Internals;
using CefSharp.RenderProcess;
using ChromiumApplication;
using ChromiumApplication.Properties;
using ChromiumApplication.Main;
using ChromiumApplication.Main.Helper;
using ChromiumApplication.Main.Handler.Extension;
using ChromiumApplication.Main.Callback;
using ChromiumApplication.Main.Handlers;
using ChromiumApplication.Main.Handler;
using ChromiumApplication.Main.Proxy;
using ChromiumApplication.Main.Ultimate;
using ChromiumApplication.ExampleMain.Example.Request;
using MaterialSkin;
using MaterialSkin.Controls;
using MetroSet_UI.Forms;
using MetroFramework.Forms;
using Microsoft.VisualBasic;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Management;
using System.Media;
using System.Net;
using System.Net.Cache;
using System.Resources;
using System.Runtime;
using System.Security;
using System.Security.Policy;
using System.Security.Principal;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Windows.Forms;
using System.Xml;
using Xilium.CefGlue;
using Xilium.CefGlue.Wrapper;
/// using System.Runtime.InteropServices;
/// /// ///
namespace CefSharp {
public partial class Form1 : Form {
// c# Cefsharp Winforms cookie | How to cookie https://github.com/cefsharp/CefSharp/issues/826
// c# Cefsharp Winforms StatusBar
/// <summary>
/// public partial class Form1 : MetroSetForm
/// </summary>
/// <summary>
/// public partial class Form1 : MaterialForm
/// </summary>
/// <summary>
/// public partial class Form1 : MetroForm
/// </summary>
/// <summary>
/// public partial class Form1 : Form
/// </summary>
public ChromiumWebBrowser ChromiumWebBrowser;
public ChromiumWebBrowser ChromiumBrowser;
public ChromiumWebBrowser ChromeBrowser;
public ChromiumWebBrowser Chromium;
public ChromiumWebBrowser browser;
public WebBrowser webNO;
public CefValue NewGO;
private Action<string, int?> openNewTab;
private const string DefaultUrlForAddedTabs = "https://www.google.com";
// Default to a small increment:
private const double ZoomIncrement = 0.10;
private bool multiThreadedMessageLoopEnabled;
public const string BaseUrl = "https://www.";
public const string DefaultUrl = BaseUrl + "google.com.eg/";
//public const string DefaultUrl = BaseUrl + "/other_tests.html";
// public const string PluginsTestUrl = BaseUrl + "/plugins.html";
public const string TestResourceUrl = "http://test/resource/load";
// Use when debugging the actual SubProcess, to make breakpoints etc. inside that project work.
/// private static readonly bool DebuggingSubProcess = Debugger.IsAttached;
private static string PluginInformation = "";
///
///
public const string WcfEnabledArgument = "--wcf-enabled";
public const string HostProcessIdArgument = "--host-process-id";
public const string CustomSchemeArgument = "--custom-scheme";
public const string FocusedNodeChangedEnabledArgument = "--focused-node-enabled";
public const string SubProcessTypeArgument = "--type";
public const string ExitIfParentProcessClosed = "--cefsharpexitsub";
///
///
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { Cef.Shutdown(); }
private void Form1_Load(object sender, EventArgs e)
{
// AddTab(Form1.DefaultUrl);
//AddTab(BrowserTabUserControl.("https://github.com/mohamedosama914");
/// AddTab(Form1.DefaultUrl);
/// AddTab(CefExample.DefaultUrl);
}
// (bool multiThreadedMessageLoopEnabled)
public Form1() { InitializeComponent();
WinForms.CefSettings settings = new WinForms.CefSettings();
///
/// Start Browser
///
// Set Google API keys, used for Geolocation requests sans GPS. See http://www.chromium.org/developers/how-tos/api-keys
Environment.SetEnvironmentVariable("GOOGLE_API_KEY", "AIzaSyBS-qjz0jmK4jvZy06Rq4DLs0_AITqo7lw");
Environment.SetEnvironmentVariable("GOOGLE_DEFAULT_CLIENT_ID", "888034971568-kmdju8hjiem3mqqi3kgjmals6p0l0te4.apps.googleusercontent.com");
Environment.SetEnvironmentVariable("GOOGLE_DEFAULT_CLIENT_SECRET", "6fa_ZYlY8KxDd_KDOz1SdENV");
CefSharpSettings.LegacyJavascriptBindingEnabled = true; //true
CefSharpSettings.ConcurrentTaskExecution = true; //true
CefSharpSettings.FocusedNodeChangedEnabled = true;
CefSharpSettings.WcfEnabled = true; //true
// AcceptLanguageList
settings.AcceptLanguageList = "en-US,ru,ar,zh-CN,zh-TW,ko,ja,en-GB";
// Locales
/// settings.LocalesDirPath = "locales";
/// settings.Locale = @"en-US";
// Debug log File
/// settings.LogFile = "@LogFileOutputDebug.log";
///
///
///
///
/// Locales
/// settings.Locale = @"en-US";
/// settings.LocalesDirPath = "locales";
/// Global Auto Example Locale
/// settings.Locale = System.Globalization.CultureInfo.CurrentCulture.Parent.ToString(); /// Path Locale Example
/// Debug log File
/// settings.LogFile = "@LogFileOutputDebug.log";
/// settings.LogFile = "@Debug.log";
/// WidevineCdm
/// chrome://components/
Cef.RegisterWidevineCdmAsync(@"Resources\WidevineCdm\");
Cef.RegisterWidevineCdm(@"Resources\WidevineCdm\");
settings.CefCommandLineArgs.Add("enable-widevine", "1");
settings.CefCommandLineArgs.Add("enable-widevine-cdm", "1");
// User Data Cache Path
settings.CachePath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\.AppPathProfileUserDataCefSharp";
settings.UserDataPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\.AppPathProfileUserDataCefSharp";
///
/// settings.UserDataPath = "AppPathProfileUserDataCefSharp";
/// settings.CachePath = "AppPathProfileUserDataCefSharp";
///
// settings Arguments
settings.ResourcesDirPath = System.IO.Path.GetDirectoryName(new Uri(System.Reflection.Assembly.GetEntryAssembly().CodeBase).LocalPath);
settings.RemoteDebuggingPort = 8080;
settings.LogSeverity = LogSeverity.Verbose;
settings.JavascriptFlags = JavascriptFlags;
settings.ResourcesDirPath = ResourcesDirPath;
settings.PersistSessionCookies = true; //true and false // settings.PersistSessionCookies = false;
settings.PersistUserPreferences = true; //true and false
settings.IgnoreCertificateErrors = true; //true
settings.MultiThreadedMessageLoop = true; //true
settings.WindowlessRenderingEnabled = true; //true
settings.EnableNetSecurityExpiration = true; //true
settings.BrowserSubprocessPath = @"CefSharp.BrowserSubprocess.exe";
// Enable Unknown
settings.CefCommandLineArgs.Add("load-extension", @"Resources\Extensions\");
//settings.CefCommandLineArgs.Add("load-extension", @".\Resources\Extensions\");
// settings.CefCommandLineArgs.Add("load -extension", "1");
// settings.CefCommandLineArgs.Add("load-extension", @".\Resources\Extensions\set_page_color");
// settings.CefCommandLineArgs.Add("pack-extension", "1");
// Disable Unknown
/* Style layouts Auto New Ux ViewPort */
///
// settings.CefCommandLineArgs.Add("enable-viewport", "1");
///
/* Style layouts Auto New ux ViewPort */
/* Command - line options */
/* Disable Custom Command - line options */
// settings.CefCommandLineArgs.Add("disable-extensions", "1");
settings.CefCommandLineArgs.Add("disable-web-security", "1");
settings.CefCommandLineArgs.Add("disable-gpu-compositing", "1");
settings.CefCommandLineArgs.Add("disable-gpu", "1"); // enable-gpu
/* Disable Custom Command - line options */
///
/// settings.CommandLineArgsDisabled = true; //false
///
/* Enable Custom Command - line options */
settings.CefCommandLineArgs.Add("enable-extensions", "1"); //disable-extensions
settings.CefCommandLineArgs.Add("enabled-new-style-notification", "1");
settings.CefCommandLineArgs.Add("enable-push-api-background-mode", "1");
settings.CefCommandLineArgs.Add("enable-web-notification-custom-layouts", "1");
settings.CefCommandLineArgs.Add("enable-webgl", "1");
settings.CefCommandLineArgs.Add("enable-npapi", "1");
settings.CefCommandLineArgs.Add("enable-system", "1");
settings.CefCommandLineArgs.Add("enable-media-stream", "1");
settings.CefCommandLineArgs.Add("enable-pdf-extension", "1");
settings.CefCommandLineArgs.Add("enable-translate", "1");
settings.CefCommandLineArgs.Add("enable-translate-new-ux", "1");
/// Enable Features
settings.CefCommandLineArgs.Add("flag-switches-begin", "1");
settings.CefCommandLineArgs.Add("enable-features", "MediaSessionService,NativeNotifications,NewStyleNotifications,NewTabLoadingAnimation,SystemWebApps,TabHoverCards,TranslateUI,google-password-manager,try-chrome-again,system-developer-mode,install-chrome-app,force-overlay-fullscreen-video,enable-extensions,enable-plugins");
settings.CefCommandLineArgs.Add("flag-switches-end", "1");
/// Enable Features
settings.CefCommandLineArgs.Add("high-dpi-support", "1");
settings.CefCommandLineArgs.Add("enable-site-settings", "1");
settings.CefCommandLineArgs.Add("enable-profile-shortcut-manager", "1");
settings.CefCommandLineArgs.Add("enable-main-frame-before-activation", "1");
settings.CefCommandLineArgs.Add("enable-speech-input", "1");
settings.CefCommandLineArgs.Add("enable-video-player-chromecast-support", "1");
settings.CefCommandLineArgs.Add("enable-experimental-web-platform-features", "1");
settings.CefCommandLineArgs.Add("enable-precise-memory-info", "1");
settings.CefCommandLineArgs.Add("enable-experimental-fullscreen-exit-ui", "1");
settings.CefCommandLineArgs.Add("enable-fullscreen-app-list", "1");
settings.CefCommandLineArgs.Add("enable-fullscreen", "1");
settings.CefCommandLineArgs.Add("enable-trace-app-source", "1");
settings.CefCommandLineArgs.Add("enable-webrtc-event-logging-from-extension", "1");
settings.CefCommandLineArgs.Add("enable-wifi-credential-sync", "1");
settings.CefCommandLineArgs.Add("enable-zip-archiver-on-file-manager", "1");
settings.CefCommandLineArgs.Add("enable-win7-webrtc-hw-h264-decoding", "1");
settings.CefCommandLineArgs.Add("enable-usermedia-screen-capture", "1");
settings.CefCommandLineArgs.Add("enable-webgl-image-chromium", "1");
settings.CefCommandLineArgs.Add("enable-media-suspend", "1");
settings.CefCommandLineArgs.Add("enable-drive-search-in-app-launcher", "1");
settings.CefCommandLineArgs.Add("enable-google-branded-context-menu", "1");
settings.CefCommandLineArgs.Add("enable-use-zoom-for-dsf", "1");
settings.CefCommandLineArgs.Add("enable-browser-task-scheduler", "1");
settings.CefCommandLineArgs.Add("enable-embedded-extension-options", "1");
settings.CefCommandLineArgs.Add("enable-crx-hash-check", "1");
/* Enable Custom Command - line options */
/* CEF init with custom settings */
settings.CefCommandLineArgs.Add("material", "1");
settings.CefCommandLineArgs.Add("force-overlay-fullscreen-video", "1");
settings.CefCommandLineArgs.Add("crash-server-url", "1");
settings.CefCommandLineArgs.Add("use-fake-ui-for-media-stream", "1");
settings.CefCommandLineArgs.Add("allow-running-insecure-content", "1");
settings.CefCommandLineArgs.Add("apps-keep-chrome-alive-in-tests", "1");
settings.CefCommandLineArgs.Add("create-browser-on-startup-for-tests", "1");
settings.CefCommandLineArgs.Add("create-default-gl-context", "1");
settings.CefCommandLineArgs.Add("fullscreen-enabled", "1");
settings.CefCommandLineArgs.Add("allow-nacl-crxfs-api", "1");
settings.CefCommandLineArgs.Add("allow-legacy-extension-manifests", "1");
settings.CefCommandLineArgs.Add("native-crx-bindings", "1");
settings.CefCommandLineArgs.Add("auto-select-desktop-capture-source", "1");
settings.CefCommandLineArgs.Add("webview-enable-safebrowsing-support", "1");
settings.CefCommandLineArgs.Add("embedded-extension-options", "1");
settings.CefCommandLineArgs.Add("show-component-extension-options", "1");
settings.CefCommandLineArgs.Add("task-manager-show-extra-renderers", "1");
settings.CefCommandLineArgs.Add("custom-launcher-page", "1");
settings.CefCommandLineArgs.Add("app-id", "1");
settings.CefCommandLineArgs.Add("extensions-install-verification", "1");
settings.CefCommandLineArgs.Add("extension-content-verification", "1");
settings.CefCommandLineArgs.Add("extension-process", "1");
settings.CefCommandLineArgs.Add("extensions-multi-account", "1");
settings.CefCommandLineArgs.Add("app-auto-launched", "1");
settings.CefCommandLineArgs.Add("allow-outdated-plugins", "1");
settings.CefCommandLineArgs.Add("apps-gallery-url", "1");
settings.CefCommandLineArgs.Add("apps-gallery-update-url", "1");
settings.CefCommandLineArgs.Add("apps-gallery-download-url", "1");
settings.CefCommandLineArgs.Add("chrome-home-swipe-logic", "1");
settings.CefCommandLineArgs.Add("auth-ext-path", "1");
settings.CefCommandLineArgs.Add("bootstrap", "1");
settings.CefCommandLineArgs.Add("bwsi", "1");
settings.CefCommandLineArgs.Add("d3d9", "1");
settings.CefCommandLineArgs.Add("d3d10", "1");
settings.CefCommandLineArgs.Add("d3d11", "1");
settings.CefCommandLineArgs.Add("d3d12", "1");
settings.CefCommandLineArgs.Add("d3d-support", "1");
/* Command Line Arguments settings */ // https://peter.sh/experiments/chromium-command-line-switches/
//settings.CefCommandLineArgs.Add("--single-process --load-extension=set_page_color", "1");
settings.CefCommandLineArgs.Add("--single-process --load-extension=set_page_color", "1");
settings.CefCommandLineArgs.Add("disable-application-cache", "1");
settings.CefCommandLineArgs.Add("disable-session-storage", "1");
settings.CefCommandLineArgs.Add("enable-automatic-password-saving", "enable-automatic-password-saving");
settings.CefCommandLineArgs.Add("enable-password-save-in-page-navigation", "enable-password-save-in-page-navigation");
settings.CefCommandLineArgs.Add("enable-begin-frame-scheduling", "1");
settings.CefCommandLineArgs.Add("renderer-process-limit", "1");
settings.CefCommandLineArgs.Add("persist_session_cookies", "1");
settings.CefCommandLineArgs.Add("debug-plugin-loading", "1"); //Dumps extra logging about plugin loading to the log file.
settings.CefCommandLineArgs.Add("disable-plugins-discovery", "1"); //Disable discovering third-party plugins. Effectively loading only ones shipped with the browser plus third-party ones as specified by --extra-plugin-dir and --load-plugin switches
/// Enable
///
///
/// GET
///
///
settings.CefCommandLineArgs.Add("app", "1");
settings.CefCommandLineArgs.Add("new-window", "1");
settings.CefCommandLineArgs.Add("playback-mode", "1");
settings.CefCommandLineArgs.Add("enable-show-modal-dialog", "1");
settings.CefCommandLineArgs.Add("easy-unlock-app-path", "1");
settings.CefCommandLineArgs.Add("enable-apps-file-associations", "1");
settings.CefCommandLineArgs.Add("enable-app-list", "1");
settings.CefCommandLineArgs.Add("enable-settings-window", "1");
settings.CefCommandLineArgs.Add("permission-request-api-scope", "1");
settings.CefCommandLineArgs.Add("permission-request-api-url", "1");
settings.CefCommandLineArgs.Add("apps-checkout-url", "1");
settings.CefCommandLineArgs.Add("app-list-start-page-url", "1");
settings.CefCommandLineArgs.Add("auto-launch-at-startup", "1");
settings.CefCommandLineArgs.Add("app-mode-auth-code", "1");
settings.CefCommandLineArgs.Add("app-mode-oauth-token", "1");
settings.CefCommandLineArgs.Add("enable-website-settings-manager", "1");
settings.CefCommandLineArgs.Add("sync-url", "1");
settings.CefCommandLineArgs.Add("sync-enable-get-update-avoidance", "1");
settings.CefCommandLineArgs.Add("unlimited-storage", "1");
settings.CefCommandLineArgs.Add("enable-accessibility-tab-switcher", "1");
settings.CefCommandLineArgs.Add("enable-app-install-alerts", "1");
settings.CefCommandLineArgs.Add("enable-spelling-auto-correct", "1");
settings.CefCommandLineArgs.Add("spelling-service-feedback-interval-seconds", "1");
settings.CefCommandLineArgs.Add("filemgr-ext-path", "1");
settings.CefCommandLineArgs.Add("viewer-launch-via-appid", "1");
settings.CefCommandLineArgs.Add("windows8-search", "1");
///
///
/// GET
///
///
Cef.Initialize(settings);
/// CefState.Default
/// CefState.Disabled
/// CefState.Enabled
///
///
/// URL ( http://seriesmoviesultimate.webege.com/ )
/// URL ( chrome://version )
/// CefState.Default
Text = "CefSharp Chromium Web Browser";
/// AddTab(Form1.DefaultUrl);
toolStripTextBoxAddress.Text = "chrome://version";
ChromiumWebBrowser ChromiumWebBrowser = new ChromiumWebBrowser(toolStripTextBoxAddress.Text) { BrowserSettings =
{ DefaultEncoding = "UTF-8", Databases = CefState.Disabled, JavascriptDomPaste = CefState.Disabled, Javascript = CefState.Enabled, ApplicationCache = CefState.Disabled, FileAccessFromFileUrls = CefState.Enabled, TabToLinks = CefState.Default, UniversalAccessFromFileUrls = CefState.Default, WebSecurity = CefState.Enabled, LocalStorage = CefState.Disabled, ImageLoading = CefState.Default, TextAreaResize = CefState.Default, JavascriptAccessClipboard = CefState.Enabled, ImageShrinkStandaloneToFit = CefState.Default, Plugins = CefState.Enabled, WebGl = CefState.Disabled } };
ChromiumWebBrowser.Dock = DockStyle.Fill;
/// ChromiumWebBrowser.IsBrowserInitializedChanged += OnIsBrowserInitializedChanged;
/// ChromiumWebBrowser.LoadingStateChanged += OnLoadingStateChanged;
ChromiumWebBrowser.TitleChanged += OnBrowserTitleChanged;
ChromiumWebBrowser.AddressChanged += OnBrowserAddressChanged;
ChromiumWebBrowser.LoadError += BrowserLoadError;
ChromiumWebBrowser.StatusMessage += OnStatusMessageChanged;
// ChromiumWebBrowser.StatusMessage += OnBrowserStatusMessage;
// ChromiumWebBrowser.LoadingStateChanged += BrowserLoadingStateChanged;
TabPage tpage = new TabPage(); tpage.Text = " Ultimate Browser Version "; tpage.Show(); browserTabControl.Controls.Add(tpage); ChromiumWebBrowser.Parent = tpage;
ChromiumWebBrowser.FocusHandler = null;
/* Customize Handler */
ChromiumWebBrowser.DownloadHandler = new ChromiumApplication.Main.Handler.DownloadHandler();
ChromiumWebBrowser.DisplayHandler = new ChromiumApplication.Main.Handler.DisplayHandler();
ChromiumWebBrowser.MenuHandler = new ChromiumApplication.Main.Handler.Example.MenuHandler();
ChromiumWebBrowser.RequestHandler = new RequestHandler();
ChromiumWebBrowser.RequestHandler = new WinFormsRequestHandler(openNewTab);
/* Customize Handler */
ChromiumWebBrowser.LifeSpanHandler = new ChromiumApplication.Main.Handler.LifeSpanHandler();
ChromiumWebBrowser.RenderProcessMessageHandler = new RenderProcessMessageHandler();
/// ChromiumWebBrowser.KeyboardHandler = new KeyboardHandler();
/// ChromiumWebBrowser.MenuHandler = new CustomMenuHandler();
/// ChromiumWebBrowser.JsDialogHandler = new ChromiumApplication.Main.Handlers.JsDialogHandler();
RequestContextSettings requestContextSettings = new RequestContextSettings();
requestContextSettings.AcceptLanguageList = "en-US,ru,ar,zh-CN,zh-TW,ko,ja,en-GB";
requestContextSettings.CachePath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\.AppPathProfileUserDataCefSharp";
requestContextSettings.PersistSessionCookies = true;
requestContextSettings.PersistUserPreferences = true;
requestContextSettings.IgnoreCertificateErrors = true;
requestContextSettings.EnableNetSecurityExpiration = true;
ChromiumWebBrowser.RequestContext = new RequestContext(requestContextSettings);
ChromiumWebBrowser.JavascriptObjectRepository.Register("bound", new BoundObject(), isAsync: false, options: BindingOptions.DefaultBinder);
ChromiumWebBrowser.JavascriptObjectRepository.Register("boundAsync", new BoundObject.AsyncBoundObject(), isAsync: true, options: BindingOptions.DefaultBinder);
//If you call CefSharp.BindObjectAsync in javascript and pass in the name of an object which is not yet
//bound, then ResolveObject will be called, you can then register it
ChromiumWebBrowser.JavascriptObjectRepository.ResolveObject += (sender, e) =>
{
var repo = e.ObjectRepository;
if (e.ObjectName == "boundAsync2")
{
repo.Register("boundAsync2", new BoundObject.AsyncBoundObject(), isAsync: true, options: BindingOptions.DefaultBinder);
}
};
/// ChromiumWebBrowser.CreateControl();
settings.RegisterExtension(new V8Extension("showModalDialog", Resources.showModalDialog)); ///CefExtension
// settings.RegisterExtension(new CefExtension("showModalDialog", Resources.showModalDialog)); ///CefExtension
GETExample.RegisterTestResources(ChromiumWebBrowser);
// ChromiumWebBrowser.RegisterJsObject("bound", new BoundObject());
// BindingOptions options = null;
// ChromiumWebBrowser.JavascriptObjectRepository.Register("boundAsync", new BoundObject(), true, options);
// ChromiumWebBrowser.JsDialogHandler = new ChromiumApplication.Main.Handlers.JsDialogHandler();
// ChromiumWebBrowser.KeyboardHandler = new KeyboardHandler();
// ChromiumWebBrowser.DisplayHandler = new ChromiumApplication.Main.Handler.DisplayHandler();
// Load += Form1_Load;
//Only perform layout when control has completly finished resizing
/// ResizeBegin += (s, e) => SuspendLayout();
/// ResizeEnd += (s, e) => ResumeLayout(true);
this.multiThreadedMessageLoopEnabled = multiThreadedMessageLoopEnabled;
// ChromiumWebBrowser.NewTabClicked += control_NewTabClicked;
// uiBrowserTabControl.SelectedIndexChange += uiBrowserTabControl_SelectedIndexChange;
// uiBrowserTabControl.Closed += UiBrowserTabControl_Closed;
//// CefExample.RegisterTestResources(ChromiumWebBrowser);
var bitness = Environment.Is64BitProcess ? "x64" : "x86";
var version = String.Format("Chromium: {0}, CEF: {1}, CefSharp: {2}, Environment: {3}", Cef.ChromiumVersion, Cef.CefVersion, Cef.CefSharpVersion, bitness);
}
private void Chrome_Web_Store_Extensions(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://chrome.google.com/webstore?hl=en");
}
private void Notify_MouseDoubleClick(object sender, MouseEventArgs e)
{
this.ShowInTaskbar = !this.ShowInTaskbar;
}
private void ActivateTool(object sender, EventArgs e)
{
/// AddTab(DefaultUrl);
AddTab(Form1.DefaultUrl);
/// AddTabGet(DefaultUrl);
}
private void GetGoodBar(object sender, EventArgs e)
{
/// AddTab(DefaultCustom);
}
public void NewTabBar(object sender, EventArgs e)
{
TabPage tpage = new TabPage();
tpage.Text = "New Tab Default Custom";
browserTabControl.Controls.Add(tpage);
toolStripTextBoxAddress.Text = "chrome://version";
ChromiumWebBrowser ChromiumWebBrowser = new ChromiumWebBrowser(toolStripTextBoxAddress.Text);
ChromiumWebBrowser.Parent = tpage;
ChromiumWebBrowser.Dock = DockStyle.Fill;
ChromiumWebBrowser.AddressChanged += OnBrowserAddressChanged;
ChromiumWebBrowser.TitleChanged += OnBrowserTitleChanged;
ChromiumWebBrowser.StatusMessage += OnStatusMessageChanged;
/* Customize Handler */
ChromiumWebBrowser.DownloadHandler = new ChromiumApplication.Main.Handler.DownloadHandler();
ChromiumWebBrowser.MenuHandler = new ChromiumApplication.Main.Handler.Example.MenuHandler();
ChromiumWebBrowser.LifeSpanHandler = new ChromiumApplication.Main.Handler.LifeSpanHandler();
ChromiumWebBrowser.RequestHandler = new RequestHandler();
ChromiumWebBrowser.DisplayHandler = new DisplayHandler();
ChromiumWebBrowser.RequestHandler = new WinFormsRequestHandler(openNewTab);
ChromiumWebBrowser.KeyboardHandler = new KeyboardHandler();
RequestContextSettings requestContextSettings = new RequestContextSettings();
requestContextSettings.AcceptLanguageList = "en-US,ru,ar,zh-CN,zh-TW,ko,ja,en-GB";
requestContextSettings.CachePath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\.AppPathProfileUserDataCefSharp";
requestContextSettings.PersistSessionCookies = true;
requestContextSettings.PersistUserPreferences = true;
requestContextSettings.IgnoreCertificateErrors = true;
requestContextSettings.EnableNetSecurityExpiration = true;
ChromiumWebBrowser.RequestContext = new RequestContext(requestContextSettings);
}
private void newTabAction(object sender, EventArgs e)
{
NewTab("https://www.google.com");
}
private void NewTab(string startUrl)
{
var page = new TabPage("New Tab Customize");
page.Padding = new Padding(0, 0, 0, 0);
/// page.Text = "New Tab Customize";
///
toolStripTextBoxAddress.Text = "chrome://version";
ChromiumWebBrowser ChromiumWebBrowser = new ChromiumWebBrowser(toolStripTextBoxAddress.Text);
ChromiumWebBrowser.Dock = DockStyle.Fill;
page.Controls.Add(ChromiumWebBrowser);
browserTabControl.TabPages.Add(page);
browserTabControl.SelectedTab = page;
ChromiumWebBrowser.AddressChanged += OnBrowserAddressChanged;
ChromiumWebBrowser.TitleChanged += OnBrowserTitleChanged;
ChromiumWebBrowser.StatusMessage += OnStatusMessageChanged;
/* Customize Handler */
ChromiumWebBrowser.DownloadHandler = new ChromiumApplication.Main.Handler.DownloadHandler();
ChromiumWebBrowser.DisplayHandler = new DisplayHandler();
ChromiumWebBrowser.MenuHandler = new ChromiumApplication.Main.Handler.CustomMenuHandler();
ChromiumWebBrowser.LifeSpanHandler = new ChromiumApplication.Main.Handler.LifeSpanHandler();
/// ChromiumWebBrowser.KeyboardHandler = new KeyboardHandler();
/* Customize Handler */
ChromiumWebBrowser.RequestHandler = new RequestHandler();
ChromiumWebBrowser.RequestHandler = new WinFormsRequestHandler(openNewTab);
}
public void addNewTab()
{
// ChromiumWebBrowser ChromiumWebBrowser = tabControl1.SelectedTab.Controls[0] as ChromiumWebBrowser;
// ChromiumWebBrowser.TabIndex = 2;
// browserTabControl.SelectTab(browserTabControl.TabCount - 1);
// string title = "New Tab " + (browserTabControl.TabCount + 1).ToString();
TabPage tpage = new TabPage();
tpage.Text = "New Tab";
browserTabControl.Controls.Add(tpage);
toolStripTextBoxAddress.Text = "about:blank";
ChromiumWebBrowser ChromiumWebBrowser = new ChromiumWebBrowser(toolStripTextBoxAddress.Text);
ChromiumWebBrowser.Parent = tpage;
ChromiumWebBrowser.Dock = DockStyle.Fill;
ChromiumWebBrowser.AddressChanged += OnBrowserAddressChanged;
ChromiumWebBrowser.TitleChanged += OnBrowserTitleChanged;
ChromiumWebBrowser.StatusMessage += OnStatusMessageChanged;
/* Customize Handler */
ChromiumWebBrowser.DownloadHandler = new ChromiumApplication.Main.Handler.DownloadHandler();
ChromiumWebBrowser.DisplayHandler = new DisplayHandler();
ChromiumWebBrowser.MenuHandler = new ChromiumApplication.Main.Share.CustomMenuHandler();
ChromiumWebBrowser.LifeSpanHandler = new ChromiumApplication.Main.Handler.LifeSpanHandler();
ChromiumWebBrowser.RequestHandler = new RequestHandler();
ChromiumWebBrowser.RequestHandler = new WinFormsRequestHandler(openNewTab);
ChromiumWebBrowser.KeyboardHandler = new KeyboardHandler();
}
private void NewTabPage(object sender, EventArgs e)
{// New TabPage The Tabs:
ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
TabPage tpage = new TabPage(); tpage.Text = " Ultimate Browser "; tpage.Show();
browserTabControl.Controls.Add(tpage); ChromiumWebBrowser.Parent = tpage;
// browserTabControl.TabIndex = 0;
// ChromiumWebBrowser.AddressChanged += Chrome_AddressChanged;
// ChromiumWebBrowser.TitleChanged += Chrome_TitleChanged;
/*
toolStripTextBoxAddress.Text = "about:blank";
ChromiumWebBrowser ChromiumWebBrowser = new ChromiumWebBrowser(toolStripTextBoxAddress.Text);
* ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
string title = "New Tab " + (browserTabControl.TabCount - 0).ToString();
TabPage myTabPage = new TabPage(title); browserTabControl.TabPages.Add(myTabPage);
*/
}
private void OnIsBrowserInitializedChanged(object sender, IsBrowserInitializedChangedEventArgs e)
{
if (e.IsBrowserInitialized)
{
var b = ((ChromiumWebBrowser)sender);
this.InvokeOnUiThreadIfRequired(() => b.Focus());
}
}
private void OnBrowserTitleChanged(object sender, TitleChangedEventArgs args)
{
this.InvokeOnUiThreadIfRequired(() => browserTabControl.SelectedTab.Text = args.Title);
// this.InvokeOnUiThreadIfRequired(() => Text = args.Title);
}
private void OnLoadingStateChanged(object sender, LoadingStateChangedEventArgs args)
{
}
private void OnBrowserAddressChanged(object sender, AddressChangedEventArgs args)
{
this.InvokeOnUiThreadIfRequired(() => toolStripTextBoxAddress.Text = args.Address);
// this.InvokeOnUiThreadIfRequired(() => urlTextBox.Text = args.Address);
}
private void OnStatusMessageChanged(object sender, StatusMessageEventArgs args)
{
this.InvokeOnUiThreadIfRequired(() => statusLabel.Text = args.Value);
}
/*
/// private void OnBrowserStatusMessage(object sender, StatusMessageEventArgs args) { this.InvokeOnUiThreadIfRequired(() => statusLabel.Text = args.Value); }
SetCanGoBack(args.CanGoBack);
SetCanGoForward(args.CanGoForward);
this.InvokeOnUiThreadIfRequired(() => SetIsLoading(!args.CanReload));
private void SetCanGoBack(bool canGoBack)
{
//this.InvokeOnUiThreadIfRequired(() => CEFNowBack.Enabled = canGoBack);
}
private void SetCanGoForward(bool canGoForward)
{
// this.InvokeOnUiThreadIfRequired(() => CEFNowForward.Enabled = canGoForward);
}
private void SetIsLoading(bool isLoading)
{
}
*/
private static void BrowserLoadError(object sender, LoadErrorEventArgs e)
{
Console.WriteLine("This is not called");
}
/*
private static void BrowserLoadingStateChanged(object sender, LoadingStateChangedEventArgs e)
{
// this.InvokeOnUiThreadIfRequired(() => SetIsLoading(args.IsLoading));
if (!e.IsLoading)
{
Console.WriteLine("This is called 3 times, why?");
}
}
*/
// private void Chrome_AddressChanged(object sender, AddressChangedEventArgs e) { this.Invoke(new MethodInvoker(() => { toolStripTextBoxAddress.Text = e.Address; })); }
// private void Chrome_TitleChanged(object sender, TitleChangedEventArgs e) { this.Invoke(new MethodInvoker(() => { browserTabControl.SelectedTab.Text = e.Title; })); }
/// <summary>
/// Ultimate
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void LoadExtensionsToolStripMenuItemClick(object sender, EventArgs e)
{
var control = GetCurrentTabControl();
if (control != null)
{
//The sample extension only works for http(s) schemes
if (control.Browser.Address.StartsWith("http"))
{
var requestContext = control.Browser.GetBrowserHost().RequestContext;
// var dir = System.IO.Path.Combine(AppContext.BaseDirectory, @"..\..\..\..\CefSharp.Example\Extensions");
var dir = System.IO.Path.Combine(AppContext.BaseDirectory, @"Resources\Extensions");
dir = System.IO.Path.GetFullPath(dir);
if (!Directory.Exists(dir))
{
throw new DirectoryNotFoundException("Unable to locate example extensions folder - " + dir);
}
var extensionHandler = new ExtensionHandler
{
LoadExtensionPopup = (url) =>
{
BeginInvoke(new Action(() =>
{
var extensionForm = new Form(); //Form
var extensionBrowser = new ChromiumWebBrowser(url);
extensionBrowser.IsBrowserInitializedChanged += (s, args) =>
{
//extensionBrowser.ShowDevTools();
};
extensionForm.Controls.Add(extensionBrowser);
extensionForm.Show(this);
}));
},
GetActiveBrowser = (extension, isIncognito) =>
{
//Return the active browser for which the extension will act upon
return control.Browser.GetBrowser();
}
};
requestContext.LoadExtensionsFromDirectory(dir, extensionHandler);
}
else
{
MessageBox.Show("The sample extension only works with http(s) schemes, please load a different website and try again", "Unable to load Extension");
}
}
}
private void Find(object sender, EventArgs e)
{
// ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
//Find a = new Find(); a.Show();
}
private void githubgo(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://github.com/mohamedosama914");
}
private void facebook(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://www.facebook.com/MohamedOsama914");
}
private void twitter(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://twitter.com/mohamedosama914?lang=en-US");
}
private void instagram(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://www.instagram.com/mohamed.osama914/");
}
private void WebSite(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://cylindersmyprograms.wordpress.com/");
}
private void BrowserAddressViewSource(object sender, EventArgs e)
{ // browserTabControl.TabIndex = 0;
}
private void NotifyRT(object sender, EventArgs e)
{
Cef.Shutdown();
Close();
}
//settings.CachePath
/// <summary>
// private string appPath = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + @"\";
/// </summary>
//settings.CachePath
public static Form1 Instance;
public static string Branding = "Auto";
/*
public static string DownloadsURL = "sharpbrowser://Main/Example/AppExample/storage/downloads.html";
public static string FileNotFoundURL = "sharpbrowser://Main/Example/AppExample/storage/errors/notFound.html";
public static string CannotConnectURL = "sharpbrowser://Main/Example/AppExample/storage/errors/cannotConnect.html";
*/
private static string GetAppDir(string name)
{
string winXPDir = @"C:\Documents and Settings\All Users\Application Data\";
if (Directory.Exists(winXPDir))
{
return winXPDir + Branding + @"\" + name + @"\";
}
return @"C:\ProgramData\" + Branding + @"\" + name + @"\";
}
// { var iconURL = "http://" + BaseUrl.Host + "/favicon.ico"; WebRequest request = System.Net.HttpWebRequest.Create(iconURL); System.Net.WebResponse response = request.GetResponse(); System.IO.Stream stream = response.GetResponseStream(); dynamic favicon = Image.FromStream(stream); this.browserTabControl.SelectedTab.ImageIndex = favicon; // this.browserTabControl.SelectedTab.ImageIndex = null; // Image | ImageIndex }
private void GetAbout(object sender, EventArgs e)
{
About a = new About();
a.Show();
}
private void ExtAppScreensnapshot(object sender, EventArgs e)
{
System.Diagnostics.Process.Start(@"ExtApp\SnapImg\screensnapshot.exe");
//modify the start path for wherever your copy is located at
}
private void ApplicationExit(object sender, EventArgs e)
{
Application.Exit();
}
private void ApplicationRestart(object sender, EventArgs e)
{
Application.Restart();
}
private void CEFNowBack(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Back();
}
private void CEFNowForward(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Forward();
}
private void CEFNowExit(object sender, EventArgs e)
{
Cef.Shutdown();
Close();
}
private void CEFNewUndo(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Undo();
}
private void CEFOldRedo(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Redo();
}
private void CEFNowCut(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Cut();
}
private void CEFNowCopy(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Copy();
}
private void CEFNowPaste(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Paste();
}
private void CEFNowDelete(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Delete();
}
private void CEFNowSelect(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Select();
}
private void CEFNowSelectAll(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.SelectAll();
}
private void CEFNowStop(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Stop();
}
private void CEFNowReload(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Reload();
}
private void CEFNowRefresh(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Refresh();
}
private void CEFNowShowDevTools(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.ShowDevTools();
}
private void CEFNowCloseDevTools(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.CloseDevTools();
}
private void TMDb(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://www.themoviedb.org");
}
private void CEFNowGithub(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://github.com");
}
private void CEFNowGoogle(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://www.google.com");
}
private void CEFNowYouTube(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://www.youtube.com");
}
private void CEFNowYahooMail(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://mail.yahoo.com/neo/b/launch?.src=neo&reason=ymv_mismatch");
}
private void YahooMailNew(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://mail.yahoo.com");
}
private void CEFNowFacebookPC(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://www.facebook.com");
}
private void CEFNowFacebookMobile(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://m.facebook.com");
}
private void CEFNowCefSharpVersion(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("chrome://chrome-urls/");
}
private void CefGPU(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("chrome://gpu/");
}
private void CEFNowGoogleTranslate(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://translate.google.com");
}
private void CEFNowGoogleTranslateToolkit(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://translate.google.com/toolkit");
}
private void vikiNew(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("https://www.viki.com/sign_in");
}
private void SupportedChromeExtensions(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("chrome://extensions-support/");
// https://bitbucket.org/chromiumembedded/cef/issues/1947/add-support-for-chrome-extensions
}
private void BrowserUndo(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
if (toolStripTextBoxAddress.CanUndo) ChromiumWebBrowser.Undo();
}
private void BrowserRedo(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Redo();
}
private void BrowserCut(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Cut();
}
private void BrowserCopy(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Copy();
}
private void BrowserPaste(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Paste();
}
private void BrowserDelete(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Delete();
}
private void BrowserSelect(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
if (ChromiumWebBrowser.CanSelect)
ChromiumWebBrowser.Select();
}
private void BrowserSelectAll(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.SelectAll();
}
// public static class GetExtensions { }
private void DefaultCustomHome(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("http://seriesmoviesultimate.webege.com/");
/*
// chromeBrowser.Load("file:///Resources/Home.html");
// chromeBrowser.Load("http://test");
// ChromiumWebBrowser.Load("file:///Resources/other_tests.html");
// ChromiumWebBrowser.Load("file:///Resources/other_tests.html");
// ChromiumWebBrowser.Load("localfolder://cefsharp/");
// ChromiumWebBrowser.Load("localfolder://cefsharp/Resources/other_tests.html");
// ChromiumWebBrowser.Load("custom://cefsharp");
// ChromiumWebBrowser.Load("http://localhost//test//");
// ChromiumWebBrowser.Load("custom://cefsharp/home.html");
// ChromiumWebBrowser.Load("custom://cefsharp/Resources/home.html");
// chromeBrowser.Load("file:///Resources/Home.html");
// ChromiumWebBrowser.Load("http://test/Resources/Home.html");
// chromeBrowser.Load("http://test/resource/");
// chromeBrowser.LoadHtml(File.ReadAllText(@"file:///Resources/Home.html"), @"file:///Resources/Home.html"); */
}
private void LocalDiskC(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("C:/");
}
private void LocalDiskD(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("D:/");
}
private void LocalDiskE(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("E:/");
}
private void LocalDiskF(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("F:/");
}
private void CEFNowDownloads(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("file:///Main/Example/AppExample/storage/downloads.html");
}
private void WindowsMediaPlayer(object sender, EventArgs e)
{
WindowsMediaPlayer a = new WindowsMediaPlayer();
a.Show();
}
private void Favicon(object sender, EventArgs e)
{
}
private void GetBookmarks(object sender, EventArgs e)
{
ABookmarksForm a = new ABookmarksForm(); a.Show();
}
private void localhost(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
// ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[2] as ChromiumWebBrowser;
ChromiumWebBrowser.Load("http://localhost/");
// ChromiumWebBrowser.Load("http://127.0.0.1");
}
private void btnBack_Click(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
if (ChromiumWebBrowser.CanGoBack)
ChromiumWebBrowser.Back();
}
private void btnForward_Click(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
if (ChromiumWebBrowser.CanGoForward)
ChromiumWebBrowser.Forward();
}
private void btnGo_Click(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
if (ChromiumWebBrowser != null)
ChromiumWebBrowser.Load(toolStripTextBoxAddress.Text);
}
private void CefApplication(object sender, EventArgs e)
{
addNewTab();
ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
}
/*
private void NewTabPage(object sender, EventArgs e)
{// New TabPage The Tabs:
ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
// string title = "New Tab " + (tabControl1.TabCount + 1).ToString(); TabPage myTabPage = new TabPage(title); tabControl1.TabPages.Add(myTabPage);
}
private void TabPage(object sender, EventArgs e)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
// ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[3] as ChromiumWebBrowser;
TabPage tpage = new TabPage();
tpage.Text = "New Tab Page";
browserTabControl.Controls.Add(tpage);
ChromiumWebBrowser.Dock = DockStyle.Fill;
ChromiumWebBrowser.AddressChanged += Chrome_AddressChanged;
ChromiumWebBrowser.TitleChanged += Chrome_TitleChanged;
}
*/
private void RemovesAllTabPages(object sender, EventArgs e)
{// Removes all the tabs: // ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
browserTabControl.TabPages.Clear();
}
private void RemoveTabPage(object sender, EventArgs e)
{// Removes the selected tab:
ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
browserTabControl.TabPages.Remove(browserTabControl.SelectedTab);
}
// cefsharp Bookmarks tab
// https://stackoverflow.com/questions/45731714/how-to-implement-new-tab-in-cefsharp-with-correct-address-and-title-change
// new tab function
/*
private void toolStripTextBoxAddress_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)13)
{
ChromiumWebBrowser ChromiumWebBrowser = browserTabControl.SelectedTab.Controls[0] as ChromiumWebBrowser;
if (ChromiumWebBrowser != null)
{
this.ChromiumWebBrowser.Load(toolStripTextBoxAddress.Text);
}
}
}
*/
/*
const string html = "<html><head><title>Test</title></head> <body><h1> New </h1></body></html>";
var base64EncodedHtml = Convert.ToBase64String(Encoding.UTF8.GetBytes(html));
ChromiumWebBrowser.Load("data:text/html;base64," + base64EncodedHtml);
*/
private void toolStripTextBoxAddress_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (!string.IsNullOrEmpty(toolStripTextBoxAddress.Text))
{
if (!toolStripTextBoxAddress.Text.Contains("."))
{
// ChromiumWebBrowser.Load("https://www.google.com.hk/search?q=" + toolStripTextBoxAddress.Text);
getCurrentBrowser().Load("https://www.google.com.hk/search?q=" + toolStripTextBoxAddress.Text);
}
else
{
// ChromiumWebBrowser.Load(toolStripTextBoxAddress.Text);
getCurrentBrowser().Load(toolStripTextBoxAddress.Text);
} } } }
// get current browser
private ChromiumWebBrowser getCurrentBrowser() { return (ChromiumWebBrowser)browserTabControl.SelectedTab.Controls[0]; }
private void FaviconTab(object sender, EventArgs e)
{
// ChromiumWebBrowser = tabControl1.SelectedTab.Controls[ - 0] as ChromiumWebBrowser;
ChromiumWebBrowser currentBrowser = getCurrentBrowser(); toolStripTextBoxAddress.Text = currentBrowser.Address;
}
private void Customize(object sender, EventArgs e) { /* ChromiumApplication.Main.Customize a = new ChromiumApplication.Main.Customize(); a.Show();*/ }
// public static void SetAsPopup(this IWebBrowser browser) { }
// IDownloadHandler DownloadHandler { get; set; }
// public static class WebBrowserExtensions
public string SetPreference { get; private set; }
public string cachePath { get; private set; }
public object context { get; private set; }
public static bool IsInitialized { get; }
public static bool CrashReportingEnabled { get; }
public static string ChromiumVersion { get; }
public static string CefCommitHash { get; }
public static BindingOptions DefaultBinder { get; }
public IBinder Binder { get; set; }
public IBrowser Browser { get; }
public static TaskFactory FileThreadTaskFactory { get; set; }
public static TaskFactory IOThreadTaskFactory { get; set; }
public static TaskFactory UIThreadTaskFactory { get; set; }
public virtual CefState Plugins { get; set; }
public virtual CefState WebGl { get; set; }
public virtual CefState Databases { get; set; }
public virtual string AcceptLanguageList { get; set; }
public virtual CefState ApplicationCache { get; set; }
public bool CamelCaseJavascriptNames { get; set; }
public string FilePath { get; }
public string MimeType { get; set; }
public string Address { get; }
public virtual IDictionary<string, string> CefCommandLineArgs { get; }
public IEnumerable<CefCustomScheme> CefCustomSchemes { get; }
public virtual IEnumerable<CefExtension> Extensions { get; }
public string Locale { get; set; }
public string LocalesDirPath { get; set; }
public string ResourcesDirPath { get; set; }
public string JavascriptFlags { get; set; }
public string AcceptLanguage { get; private set; }
public object CommandLine { get; private set; }
public object cefSettings { get; private set; }
// public string BaseUrl { get; private set; }
// public CefSharpSchemeHandlerFactory SchemeHandlerFactory { get; private set; }
public EventHandler<FrameLoadStartEventArgs> chromeBrowser_FrameLoadStart { get; private set; }
// public bool DebuggingSubProcess { get; private set; }
public IBrowserProcessHandler browserProcessHandler { get; private set; }
public object AddressChanged { get; private set; }
public object LoadingStateChanged { get; private set; }
public object StatusMessage { get; private set; }
public object BrowserInitialized { get; private set; }
public object ConsoleMessage { get; private set; }
public object FrameLoadEnd { get; private set; }
public object FrameLoadStart { get; private set; }
public object LoadError { get; private set; }
public object CachePath { get; private set; }
public object Tools { get; private set; }
public object newtab { get; private set; }
/// public EventHandler<TitleChangedEventArgs> OnBrowserTitleChanged { get; private set; }
/// void OnFullscreenModeChange(IWebBrowser browserTabControl, IBrowser ChromiumWebBrowser, bool fullscreen) { }
// void OnFaviconUrlChange(IWebBrowser browserTabControl, IBrowser ChromiumWebBrowser, IList<string> urls) { }
public object response { get; private set; }
public object Account { get; private set; }
public RequestContextSettings requestContextSettings { get; private set; }
public BrowserSettings browserSettings { get; private set; }
public DrawItemEventHandler DisableTab_DrawItem { get; private set; }
public ChromiumWebBrowser currentBrowser { get; private set; }
public int UncaughtExceptionStackSize { get; private set; }
public int OnFullscreenChanged { get; private set; }
public int Chrome_FullscreenChanged { get; private set; }
/*
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="args"></param>
public class RenderProcessMessageHandler : IRenderProcessMessageHandler
{
public void OnContextReleased(IWebBrowser browserControl, IBrowser browser, IFrame frame)
{
throw new NotImplementedException();
}
public void OnFocusedNodeChanged(IWebBrowser browserControl, IBrowser browser, IFrame frame, IDomNode node)
{
throw new NotImplementedException();
}
public void OnUncaughtException(IWebBrowser browserControl, IBrowser browser, IFrame frame, JavascriptException exception)
{
throw new NotImplementedException();
}
// Wait for the underlying `Javascript Context` to be created, this is only called for the main frame.
// If the page has no javascript, no context will be created.
void IRenderProcessMessageHandler.OnContextCreated(IWebBrowser browserControl, IBrowser browser, IFrame frame)
{
const string script = "document.addEventListener('DOMContentLoaded', function(){ alert('DomLoaded'); });";
frame.ExecuteJavaScriptAsync(script);
}
}
*/
/*
private ToolStripComboBox addressBar;
private ToolStripMenuItem menuItem;
public event EventHandler UpdateNavigation;
private ExtendedBrowser CurrentBrowser => CurrentTab?.Browser;
private bool firstLoad = true;
public DotNetChromeTabs.ChromeTabControl.TabPage.TabPageCollection TabPages { get { return browserTabControl?.TabPages; } }
public BrowserTab CurrentTab
{
get
{
int selectedIndex = (int)browserTabControl?.TabPages?.SelectedIndex;
return browserTabControl?.TabPages?[selectedIndex] as BrowserTab;
}
}
public void SetAddressBar(ToolStripComboBox addressBar)
{
// this.addressBar = addressBar;
}
private void uiBrowserTabControl_SelectedIndexChange(object sender, EventArgs e)
{
//TODO: had a play in ChromeTabControl.
//Not had time to fully inspect ramifications of this event.
//It's not quite 100%, so needs work.
//Problems arise when drag-moving tab.
addressBar.Text = CurrentTab?.Browser.Address;
//UpdateForwardAndBackButtons?.Invoke(this, EventArgs.Empty);
UpdateNavigation?.Invoke(this, new NavigationalEventArgs(CurrentTab.CanGoForward, CurrentTab.CanGoBack));
}
private void uiBrowserPanel_TabIndexChanged(object sender, EventArgs e)
{
if (CurrentTab.Browser != null)
addressBar.Text = CurrentTab.CurrentUrl;
}
void control_NewTabClicked(object sender, EventArgs e)
{
CreateTab();
}
public void CreateTab(string url)
{
//if ((RuntimeSettings.EnableWebDownloadMode && firstLoad) || !RuntimeSettings.EnableWebDownloadMode)
//{
BrowserTab tab = new BrowserTab(url, addressBar);
browserTabControl.TabPages.Add(tab);
AddBrowserEvents();
tab.OpenInNewtab += Tab_OpenInNewtab;
//}
//else
//{
// CurrentTab.Browser.Load(url);
//}
}
private void Tab_OpenInNewtab(object sender, EventArgs e)
{
this.InvokeIfRequired(() => CreateTab(((NewTabEventArgs)e).Url));
}
private void CreateTab()
{
string url = "";
//duckduckgo
url = RuntimeSettings.IsUsingTor ? "http://3g2upl4pq6kufc4m.onion" : UserSettings.Load().Homepage;
CreateTab(url);
}
private void AddBrowserEvents()
{
CurrentBrowser.ScreenshotCompleted += Screenshot_Completed;
CurrentBrowser.DownloadingProgress += currentBrowser_DownloadingProgress;
CurrentBrowser.DownloadComplete += CurrentBrowser_DownloadComplete;
CurrentBrowser.YouTubeDownloadProgress += CurrentBrowser_YouTubeDownloadProgress;
CurrentBrowser.YouTubeDownloadComplete += CurrentBrowser_YouTubeDownloadComplete;
CurrentBrowser.StatusMessage += CurrentBrowser_StatusMessage;
CurrentBrowser.OpenNewTabContextMenu += CurrentBrowser_OpenNewTabContextMenu;
CurrentBrowser.LoadingStateChanged += CurrentBrowser_LoadingStateChanged;
CurrentBrowser.OpenTinEye += CurrentBrowser_OpenTinEye;
CurrentBrowser.DownloadStatusChanged += CurrentBrowser_DownloadStatusChanged;
CurrentBrowser.DownloadCompleted += CurrentBrowser_DownloadCompleted;
CurrentBrowser.SearchText += CurrentBrowser_SearchText;
CurrentBrowser.AddBookmark += CurrentBrowser_AddBookmark;
}
private void CurrentBrowser_SearchText(object sender, EventArgs e)
{
string text = ((TextEventArgs)e).Result;
this.InvokeIfRequired(() => CreateTab("https://www.google.co.uk/search?q=" + text));
}
private void CurrentBrowser_OpenNewTabContextMenu(object sender, EventArgs e)
{
this.InvokeIfRequired(() => CreateTab(((NewTabEventArgs)e).Url));
}
private void ShowImagePreviewer(Actions action, string imagePath)
{
Invoke((MethodInvoker)delegate
{
ScreenshotDetails details = new ScreenshotDetails(CurrentBrowser.URL);
DialogResult dialogRes;
string fileName;
string dateAndtime;
using (Previewer previewForm = new ImagePreviewer(action, CurrentBrowser.URL, imagePath))
{
dialogRes = previewForm.ShowDialog();
fileName = previewForm.FileName + previewForm.FileExtension;
dateAndtime = previewForm.DateAndTime;
}
ImageDiskCache.RemoveItemsInCache();
if (dialogRes != DialogResult.OK)
return;
DisplaySavedLabel(fileName, dateAndtime);
});
}
public void FullPageScreenshot()
{
CurrentBrowser.GenerateFullpageScreenshot();
}
public void CurrentViewScreenshot()
{
CurrentBrowser.GetCurrentViewportScreenshot();
}
public void TimedScreenshot(int seconds)
{
var future = DateTime.Now.AddSeconds(seconds);
do
{
uiActionLoggedToolStripStatusLabel.Text = string.Format("Screenshotting in: {0}", (future - DateTime.Now).ToString("ss"));
Application.DoEvents();
} while (future > DateTime.Now);
uiActionLoggedToolStripStatusLabel.Text = "";
CurrentBrowser.GetCurrentViewportScreenshot();
}
*/
/// <summary>
/// Used to add a Popup browser as a Tab
/// </summary>
/// <param name="browserHostControl"></param>
public void AddTab(Control browserHostControl, string url)
{
browserTabControl.SuspendLayout();
var tabPage = new TabPage(url)
{
Dock = DockStyle.Fill
};
tabPage.Controls.Add(browserHostControl);
browserTabControl.TabPages.Add(tabPage);
//Make newly created tab active
browserTabControl.SelectedTab = tabPage;
browserTabControl.ResumeLayout(true);
}
private void AddTab(string url, int? insertIndex = null)
{
browserTabControl.SuspendLayout();
var browser = new BrowserTabUserControl(AddTab, url, multiThreadedMessageLoopEnabled)
{
Dock = DockStyle.Fill,
};
var tabPage = new TabPage(url)
{
Dock = DockStyle.Fill
};
//This call isn't required for the sample to work.
//It's sole purpose is to demonstrate that #553 has been resolved.
browser.CreateControl();
tabPage.Controls.Add(browser);
if (insertIndex == null)
{
browserTabControl.TabPages.Add(tabPage);
}
else
{
browserTabControl.TabPages.Insert(insertIndex.Value, tabPage);
}
//Make newly created tab active
browserTabControl.SelectedTab = tabPage;
browserTabControl.ResumeLayout(true);
}
private BrowserTabUserControl GetCurrentTabControl()
{
if (browserTabControl.SelectedIndex == -1)
{
return null;
}
var tabPage = browserTabControl.Controls[browserTabControl.SelectedIndex];
var control = tabPage.Controls[0] as BrowserTabUserControl;
return control;
}
private void NewTabToolStripMenuItemClick(object sender, EventArgs e)
{
AddTab(DefaultUrlForAddedTabs);
}
/*
private void LoadExtensionsToolStripMenuItemClick(object sender, EventArgs e)
{
var control = GetCurrentTabControl();
if (control != null)
{
//The sample extension only works for http(s) schemes
if (control.Browser.Address.StartsWith("http"))
{
var requestContext = control.Browser.GetBrowserHost().RequestContext;
var dir = System.IO.Path.Combine(AppContext.BaseDirectory, @"..\Main\Extensions");
dir = System.IO.Path.GetFullPath(dir);
if (!Directory.Exists(dir))
{
throw new DirectoryNotFoundException("Unable to locate example extensions folder - " + dir);
}
Cef.UIThreadTaskFactory.StartNew(() =>
{
var extensionHandler = new ExtensionHandler
{
LoadExtensionPopup = (url) =>
{
BeginInvoke(new Action(() =>
{
var extensionForm = new Form();
var extensionBrowser = new ChromiumWebBrowser(url);
//extensionBrowser.IsBrowserInitializedChanged += (s, args) =>
//{
// extensionBrowser.ShowDevTools();
//};
extensionForm.Controls.Add(extensionBrowser);
extensionForm.Show(this);
}));
},
GetActiveBrowser = (extension, isIncognito) =>
{
//Return the active browser for which the extension will act upon
return control.Browser.GetBrowser();
}
};
//requestContext.LoadExtensionFromDirectory(Path.Combine(dir, "set_page_color"), new ExtensionHandler());
requestContext.LoadExtensionsFromDirectory(dir, extensionHandler);
});
}
else
{
MessageBox.Show("The sample extension only works with http(s) schemes, please load a different website and try again", "Unable to load Extension");
}
}
}
*/
}
}
/*
Handler
// ChromiumWebBrowser.DownloadHandler = new DownloadHandler();
// ChromiumWebBrowser.DownloadHandler = new ChromiumApplication.Main.DownloadHandler();
// ChromiumWebBrowser.MenuHandler = new ChromiumApplication.Main.Handler.CustomMenuHandler();
Handler
*/
/* SaveAsDownloadimage
how to Add c# Cefsharp winforms TabControl & Save As Downloading image https://stackoverflow.com/questions/49817310/how-to-add-c-sharp-cefsharp-winforms-tabcontrol-save-as-downloading-image
Please Now
c# Cefsharp Winforms TabControl - how to get popup - Popup Windows New c# Cefsharp Winforms TabControl - how to get favicon of visited site - favicon.ico c# Cefsharp winforms TabControl - how to get Add New Tab Button (+) &|& Add Cancel Tab Button (X) c# Cefsharp winforms TabControl - how to get Loading of visited site c# Cefsharp winforms TabControl - how to get BookmarksForm + Add link Bookmark c# Cefsharp winforms - how to get Cookie + CachePath Custom System Menu | MyCustomChromeDevToolsSystemMenu c# Cefsharp winforms - how to get SystemMenu + ChromeDevToolsSystemMenu
Custom Menu Handler | MyCustomMenuHandler c# Cefsharp Winforms TabControl - how to get Save Download image + Save As Downloading image */
/*
- System.Diagnostics.Process.Start(@"ExtApp\SnapImg\screensnapshot.exe"); // modify the start path for wherever your copy is located at
////
public bool WebSecurity = true;
public bool CrossDomainSecurity = true;
public bool WebGL = true;
*/
/*
public void InitializeChromium() { CefSettings settings = new CefSettings(); Cef.Initialize(settings); toolStripTextBoxAddress.Text = "Chrome://Chrome"; // http://seriesmoviesultimate.webege.com/ ChromiumWebBrowser ChromiumWebBrowser = new ChromiumWebBrowser(toolStripTextBoxAddress.Text)
{ BrowserSettings = { DefaultEncoding = "UTF-8", Databases = CefState.Disabled, JavascriptDomPaste = CefState.Disabled, Javascript = CefState.Disabled, ApplicationCache = CefState.Disabled, FileAccessFromFileUrls = CefState.Enabled, TabToLinks = CefState.Default, UniversalAccessFromFileUrls = CefState.Default, WebSecurity = CefState.Enabled, LocalStorage = CefState.Disabled, ImageLoading = CefState.Default, Plugins = CefState.Default, WebGl = CefState.Disabled } };
var root = System.IO.Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.Windows));
string downloadPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
string downloadFileName = downloadPath + "\\XMLFILE.XML".ToString();
System.Data.SqlClient.SqlConnection con = null;
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("sp_RetrieveHardwareXML", con); DataSet ds = new DataSet();
ApplicationCache = CefState.Enabled,
FileAccessFromFileUrls = CefState.Default
Javascript = CefState.Default,
// { BrowserSettings = { DefaultEncoding = "UTF-8", FileAccessFromFileUrls = CefState.Default, TabToLinks = CefState.Default, UniversalAccessFromFileUrls = CefState.Default, Javascript = CefState.Default, Databases = CefState.Default, WebSecurity = CefState.Enabled, LocalStorage = CefState.Default, ImageLoading = CefState.Default, ApplicationCache = CefSharp.CefState.Enabled, Plugins = CefState.Default, WebGl = CefState.Disabled } };
ChromiumWebBrowser.Dock = DockStyle.Fill; ChromiumWebBrowser.AddressChanged += Chrome_AddressChanged; ChromiumWebBrowser.TitleChanged += Chrome_TitleChanged;
// Download Handler
ChromiumWebBrowser.DownloadHandler = new DownloadHandler();
// Context Menu Handler
// ChromiumWebBrowser.ContextMenuHandler = new ContextMenuHandler();
// Register your Custom Menu Handler as default
// ChromiumWebBrowser.MenuHandler = new ChromiumApplication.AMyCustomMenuHandler();
ChromiumWebBrowser.MenuHandler = new ChromiumApplication.ExampleMain.Example.Request.AMyCustomMenuHandler();
// CefSharp ChromeDevToolsSystemMenu does not exist in the current context
// ChromiumWebBrowser.ASystemMenu = new CreateSysMenu();
ChromiumApplication.ExampleMain.Example.Request.ASystemMenu.CreateSysMenu(this);
TabPage tpage = new TabPage(); tpage.Text = " Ultimate Browser "; tpage.Show();
browserTabControl.Controls.Add(tpage); ChromiumWebBrowser.Parent = tpage;
settings.CachePath = "GPUCache";
settings.UserDataPath = "UserData";
settings.AcceptLanguageList = "en-us,ar"; settings.LocalesDirPath = Application.StartupPath + "locales"; settings.Locale = "en-us";
settings.PersistSessionCookies = false; //true and false // settings.PersistSessionCookies = false;
settings.PersistUserPreferences = false; //true and false
settings.IgnoreCertificateErrors = true; //true
settings.MultiThreadedMessageLoop = true; //true
settings.FocusedNodeChangedEnabled = true; //true
settings.WindowlessRenderingEnabled = true; //true
settings.CommandLineArgsDisabled = false; //false // settings.CommandLineArgsDisabled = false;
settings.LogSeverity = LogSeverity.Verbose;
settings = new CefSettings { RemoteDebuggingPort = 8088 };
settings.ResourcesDirPath = System.IO.Path.GetDirectoryName(new Uri(System.Reflection.Assembly.GetEntryAssembly().CodeBase).LocalPath);
CefSharpSettings.LegacyJavascriptBindingEnabled = true; //true
CefSharpSettings.ConcurrentTaskExecution = true; //true
CefSharpSettings.WcfEnabled = true; //true
settings.RegisterScheme(new CefCustomScheme { SchemeName = "sharpbrowser", SchemeHandlerFactory = new SchemeHandlerFactory() });
settings.CachePath = GetAppDir("GPUCache");
// ChromiumApplication.ExampleMain.Example.Request.LifeSpanHandler life = new ChromiumApplication.ExampleMain.Example.Request.LifeSpanHandler();
// Command Line Arguments
settings.CefCommandLineArgs.Add("enable-begin-frame-scheduling", "1");
settings.CefCommandLineArgs.Add("renderer-process-limit", "1");
settings.CefCommandLineArgs.Add("persist_session_cookies", "1");
// Enable
settings.CefCommandLineArgs.Add("enable-npapi", "1");
settings.CefCommandLineArgs.Add("enable-system", "1");
settings.CefCommandLineArgs.Add("enable-extensions", "1");
// Enable WebRTC
settings.CefCommandLineArgs.Add("enable-media-stream", "1");
//Extension support can be disabled
//The PDF extension specifically can be disabled
settings.CefCommandLineArgs.Add("disable-pdf-extension", "1");
// Disables the DirectWrite font rendering system on windows.
// Possibly useful when experiencing blury fonts.
// settings.CefCommandLineArgs.Add("disable-web-security", "disable-web-security");
settings.CefCommandLineArgs.Add("disable-web-security", "1");
//Disable GPU Acceleration
settings.CefCommandLineArgs.Add("disable-gpu-vsync", "1");
settings.CefCommandLineArgs.Add("disable-gpu", "1");
// Proxy Stuff More Refinement is needed for reaching local IP's
// Don't use a proxy server, always make direct connections. Overrides any other proxy server flags that are passed.
// Slightly improves Cef initialize time as it won't attempt to resolve a proxy
settings.CefCommandLineArgs.Add("no-proxy-server", "1");
settings.CefCommandLineArgs.Add("proxy-auto-detect", "1");
settings.CefCommandLineArgs.Add("winhttp-proxy-resolver", "1");
// settings.CefCommandLineArgs.Add("enable-browser-side-navigation", "1");
// settings.CefCommandLineArgs.Add("enable-system-media", "1");
// settings.CefCommandLineArgs.Add("enable-system-plugin", "1");
// settings.CefCommandLineArgs.Add("enable-system-flash", "1");
// settings.CefCommandLineArgs.Add("disable-browser-side-navigation", "1");
ChromiumWebBrowser.# = new #();
ChromiumWebBrowser.GetChanged += Chrome_GetChanged;
ChromiumWebBrowser.OnFaviconUrlChanged += Chrome_OnFaviconUrlChanged;
ChromiumWebBrowser.OnFullscreenModeChanged += Chrome_OnFullscreenModeChanged;
ChromiumWebBrowser.FrameLoadStart += OnFrameLoadStart;
ChromiumWebBrowser.FrameLoadEnd += OnFrameLoadEnd;
ChromiumWebBrowser.LoadingStateChanged += OnLoadingStateChanged;
ChromiumWebBrowser.ConsoleMessage += OnBrowserConsoleMessage;
// https://ourcodeworld.com/search?q=Cefsharp+Winforms+Mp4
// https://ourcodeworld.com/search?q=Cefsharp+Winforms+popup
//One set this cannot be changed at runtime. If you need to change the proxy at runtime (dynamically) then
//see https://github.com/cefsharp/CefSharp/wiki/General-Usage#proxy-resolution
// Proxy
//Legacy Binding Behaviour doesn't work for cross-site navigation (navigating to a different domain)
//See issue https://github.com/cefsharp/CefSharp/issues/1203 for details
// toolStripTextBoxAddress.Text = "file:///Resources/other_tests.html";
// String page = string.Format(@"{0}\Resources\window.html", Application.StartupPath); if (!File.Exists(page)) { MessageBox.Show("Error The html file doesn't exists : " + page); }
// ChromiumWebBrowser = new ChromiumWebBrowser(toolStripTextBoxAddress.Text)
// ChromiumWebBrowser.RegisterJsObject("bound", new BoundObject());
// ChromiumWebBrowser.RequestHandler = new MyRequestHandler("actual_userName", "actual_password");
// Cef.Initialize(new CefSettings() // { CachePath = "Cache" + account.id });
// settings = new CefSettings() { PackLoadingDisabled = true }; Cef.Initialize(settings);
///
var contextSettings = new RequestContextSettings();
browserSettings = new BrowserSettings();
requestContextSettings = new RequestContextSettings { CachePath = @"GPUCache" + ChromiumApplication.account.id };
ChromiumWebBrowser.RequestContext = new RequestContext(new RequestContextSettings()
{
CachePath = System.IO.Directory.GetCurrentDirectory() + @"GPUCache" + DateTime.Now.ToLongTimeString()
});
contextSettings.CachePath = "GPUCache"; settings.CachePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\GPUCache"; settings.CachePath = "GPUCache" + ChromiumApplication.account.id;
///
// CefSharpSchemeHandlerFactory
// settings.RegisterScheme(new CefCustomScheme { SchemeName = "custom", SchemeHandlerFactory = new CefSharpSchemeHandlerFactory() });
// settings.RegisterScheme(new CefCustomScheme { SchemeName = CefSharpSchemeHandlerFactory.SchemeNameTest, SchemeHandlerFactory = new CefSharpSchemeHandlerFactory(), IsSecure = true });
// settings.RegisterScheme(new CefCustomScheme { SchemeName = "https", SchemeHandlerFactory = new CefSharpSchemeHandlerFactory(), DomainName = "cefsharp.com", IsSecure = true });
// ChromiumWebBrowser.RequestContext = new RequestContext(); requestContextSettings = new RequestContextSettings { CachePath = cachePath }; ChromiumWebBrowser.RequestContext = new RequestContext(new CustomRequestContextHandler());
// settings.LogFile = "GO.log";
// var
// settings.BrowserSubprocessPath = "CefSharp.BrowserSubprocess.exe";
// settings.MultiThreadedMessageLoop = CefRuntime.Platform == CefRuntimePlatform.Windows;
// settings.ReleaseDCheckEnabled = true;
//NOTE: Set this before any calls to Cef.Initialize to specify a proxy with username and password
// CefSharpSettings.Proxy = new ProxyOptions(ip: "localhost", port: "80", username: "CefSharp", password: "CefSharp");
// Cef.AddCrossOriginWhitelistEntry(BaseUrl, "https", "cefsharp.com", true); //false
// CefSharp.BrowserSettings browser_setting = new CefSharp.BrowserSettings();
// browser_setting.FileAccessFromFileUrlsAllowed = true; browser_setting.UniversalAccessFromFileUrlsAllowed = true;browser_setting.WebSecurityDisabled = true;
// ChromiumWebBrowser.BrowserSettings = browser_setting;
// Allow the use of local resources in the browser
// BrowserSettings browserSettings = new BrowserSettings(); browserSettings.FileAccessFromFileUrls = CefState.Enabled; browserSettings.UniversalAccessFromFileUrls = CefState.Enabled;
// ChromiumWebBrowser.BrowserSettings = browserSettings;
// ChromiumWebBrowser.Parent = tabControl1.SelectedTab;
// this.metroSetTabControl1.Controls.Add(chromeBrowser);
// this.materialTabSelector1.Controls.Add(chromeBrowser);
// this.materialTabSelector1.Controls.Add(chromeBrowser);
// ChromiumWebBrowser.SetAsPopup();
// Get Settings
// settings.LocalesDirPath = "locales"; settings.Locale = "ar";
// settings.LocalesDirPath = Application.StartupPath + "\\locales";
// settings.LocalesDirPath = Application.StartupPath + "locales"; settings.Locale = "jp";
// Initialize cef with the provided settings
// Create a browser component
// CefSettings settingsBrowser = new CefSettings(); settingsBrowser.Locale = "ar"; Cef.Initialize(settingsBrowser);
// chromeBrowser.ExecuteScriptAsync("Local Settings/User Data/CefSharpBrowserGPU/Cache");
// By default CEF uses an in memory cache, to save cached data e.g. passwords you need to specify a cache path
// NOTE: The executing user must have sufficent privileges to write to this folder.
// settings.CachePath = "cache";
// settings.CachePath = "Local/Settings/UserData/CefSharpBrowserGPU/Cache";
// txtUrl.Text = "file:///Resources/Home.html"; chromeBrowser = new ChromiumWebBrowser(txtUrl.Text);
// chromeBrowser = new ChromiumWebBrowser("chrome://version");
// chromeBrowser = new ChromiumWebBrowser("chrome://version"){ BrowserSettings = { DefaultEncoding = "UTF-8", WebGl = CefState.Disabled }};
// Add it to the form and fill it to the form window.
// this.Controls.Add(chromeBrowser);
// this.materialTabControl1.Controls.Add(chromeBrowser);
//this.#.Controls.Add(Browser);
// materialTabControl1.Controls.Add(chromeBrowser);
// toolStripContainer1.ContentPanel.Controls.Add(chromeBrowser);
// materialTabControl1
// this.pContainer.Controls.Add();
// chromeBrowser.Dock = DockStyle.Fill;
// chrome.AddressChanged += Chrome_AddressChanged;
// Set Google API keys, used for Geolocation requests sans GPS. See http://www.chromium.org/developers/how-tos/api-keys
// Environment.SetEnvironmentVariable("GOOGLE_API_KEY", "AIzaSyBS-qjz0jmK4jvZy06Rq4DLs0_AITqo7lw");
// Environment.SetEnvironmentVariable("GOOGLE_DEFAULT_CLIENT_ID", "888034971568-kmdju8hjiem3mqqi3kgjmals6p0l0te4.apps.googleusercontent.com");
// Environment.SetEnvironmentVariable("GOOGLE_DEFAULT_CLIENT_SECRET", "6fa_ZYlY8KxDd_KDOz1SdENV");
// Disable Flash | settings.CefCommandLineArgs.Add("disable-system-flash", "1"); settings.CefCommandLineArgs.Add("ppapi-flash-version", "20.0.0.306"); settings.CefCommandLineArgs.Add("ppapi-flash-path", "/Resources/PepperFlash/pepflashplayer.dll");
//// Perform <Unhandled Exception>
// Perform <Unhandled Exception>
// CefRuntime.AddWebPluginPath(@"C:\Program Files (x86)\VideoLAN\VLC\npvlc.dll");
// CefRuntime.AddWebPluginDirectory(@"C:\Program Files (x86)\VideoLAN\VLC");
// CefRuntime.AddWebPluginPath(@"E:\Program Files\Player\VideoLAN\32-bit\4.0.0\npvlc.dll");
// CefRuntime.AddWebPluginDirectory(@"E:\Program Files\Player\VideoLAN\32-bit\4.0.0");
// CefRuntime.AddWebPluginDirectory(@"C:\Program Files\Microsoft Silverlight\5.1.20513.0\");
// CefRuntime.AddWebPluginDirectory(@"C:\Program Files\Adobe\Reader 9.0\Reader\Browser");
// CefRuntime.AddWebPluginDirectory(@"C:\Windows\system32\Macromed\Flash"); CefRuntime.RefreshWebPlugins();
// Perform <Unhandled Exception>
}
internal IWebBrowser addNewTab(string targetUrl) { // LifeSpanHandler.cs throw new NotImplementedException();
}
internal ChromiumWebBrowser AddNewBrowserTab(string linkUrl, bool v, string url) { throw new NotImplementedException(); }
*/
/* private void browserTabControl_MouseDown(object sender, MouseEventArgs e) { // var lastIndex = this.browserTabControl.TabCount - 1; if (this.browserTabControl.GetTabRect(lastIndex).Contains(e.Location)) { this.browserTabControl.TabPages.Insert(lastIndex, "tab"); this.browserTabControl.SelectedIndex = lastIndex;}
}
// [System.Runtime.InteropServices.DllImport("user32.dll")] private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp); private const int TCM_SETMINTABWIDTH = 0x1300 + 49; private void browserTabControl_HandleCreated(object sender, EventArgs e){ SendMessage(this.browserTabControl.Handle, TCM_SETMINTABWIDTH, IntPtr.Zero, (IntPtr)16);}
private void browserTabControl_Selecting(object sender, TabControlCancelEventArgs e) { // if (e.TabPageIndex == browserTabControl.TabPages.Count - 1) browserTabControl.TabPages.Insert(browserTabControl.TabPages.Count - 1, "tab" + e.TabPageIndex); // if (e.TabPageIndex == this.browserTabControl.TabCount - 1) e.Cancel = true; } */
/* public class DownloadHandler : IDownloadHandler { public event EventHandler OnBeforeDownloadFired;
public event EventHandler<DownloadItem> OnDownloadUpdatedFired;
public void OnBeforeDownload(IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
{
var handler = OnBeforeDownloadFired;
if (handler != null)
{
handler(this, downloadItem);
}
if (!callback.IsDisposed)
{
using (callback)
{
callback.Continue(downloadItem.SuggestedFileName, showDialog: true);
}
}
}
public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
{
// if (downloadItem.IsComplete || downloadItem.IsCancelled) { do stuff }
var handler = OnDownloadUpdatedFired;
if (handler != null)
{
handler(this, downloadItem);
}
}
}
*/
/* public static void Init(bool osr, bool multiThreadedMessageLoop, IBrowserProcessHandler browserProcessHandler) { // Set Google API keys, used for Geolocation requests sans GPS. See http://www.chromium.org/developers/how-tos/api-keys // Environment.SetEnvironmentVariable("GOOGLE_API_KEY", ""); // Environment.SetEnvironmentVariable("GOOGLE_DEFAULT_CLIENT_ID", ""); // Environment.SetEnvironmentVariable("GOOGLE_DEFAULT_CLIENT_SECRET", "");
// Widevine CDM registration - pass in directory where Widevine CDM binaries and manifest.json are located.
// For more information on support for DRM content with Widevine see: https://github.com/cefsharp/CefSharp/issues/1934
//Cef.RegisterWidevineCdm(@".\WidevineCdm");
//Chromium Command Line args
//http://peter.sh/experiments/chromium-command-line-switches/
//NOTE: Not all relevant in relation to `CefSharp`, use for reference purposes only.
//The location where cache data will be stored on disk. If empty an in-memory cache will be used for some features and a temporary disk cache for others.
//HTML5 databases such as localStorage will only persist across sessions if a cache path is specified.
// var settings = new CefSettings();
// settings.CachePath = "cache";
//settings.UserAgent = "CefSharp Browser" + Cef.CefSharpVersion; // Example User Agent
// settings.CefCommandLineArgs.Add("renderer-process-limit", "1");
//settings.CefCommandLineArgs.Add("renderer-startup-dialog", "1");
// settings.CefCommandLineArgs.Add("enable-media-stream", "1"); //Enable WebRTC
//settings.CefCommandLineArgs.Add("no-proxy-server", "1"); //Don't use a proxy server, always make direct connections. Overrides any other proxy server flags that are passed.
//settings.CefCommandLineArgs.Add("debug-plugin-loading", "1"); //Dumps extra logging about plugin loading to the log file.
//settings.CefCommandLineArgs.Add("disable-plugins-discovery", "1"); //Disable discovering third-party plugins. Effectively loading only ones shipped with the browser plus third-party ones as specified by --extra-plugin-dir and --load-plugin switches
//settings.CefCommandLineArgs.Add("enable-system-flash", "1"); //Automatically discovered and load a system-wide installation of Pepper Flash.
//settings.CefCommandLineArgs.Add("allow-running-insecure-content", "1"); //By default, an https page cannot run JavaScript, CSS or plugins from http URLs. This provides an override to get the old insecure behavior. Only available in 47 and above.
// settings.CefCommandLineArgs.Add("enable-logging", "1"); //Enable Logging for the Renderer process (will open with a cmd prompt and output debug messages - use in conjunction with setting LogSeverity = LogSeverity.Verbose;)
//settings.LogSeverity = LogSeverity.Verbose; // Needed for enable-logging to output messages
//settings.CefCommandLineArgs.Add("disable-extensions", "1"); //Extension support can be disabled
//settings.CefCommandLineArgs.Add("disable-pdf-extension", "1"); //The PDF extension specifically can be disabled
//Load the pepper flash player that comes with Google Chrome - may be possible to load these values from the registry and query the dll for it's version info (Step 2 not strictly required it seems)
//settings.CefCommandLineArgs.Add("ppapi-flash-path", @"C:\Program Files (x86)\Google\Chrome\Application\47.0.2526.106\PepperFlash\pepflashplayer.dll"); //Load a specific pepper flash version (Step 1 of 2)
//settings.CefCommandLineArgs.Add("ppapi-flash-version", "20.0.0.228"); //Load a specific pepper flash version (Step 2 of 2)
//NOTE: For OSR best performance you should run with GPU disabled:
// `--disable-gpu --disable-gpu-compositing --enable-begin-frame-scheduling`
// (you'll loose WebGL support but gain increased FPS and reduced CPU usage).
// http://magpcss.org/ceforum/viewtopic.php?f=6&t=13271#p27075
// https://bitbucket.org/chromiumembedded/cef/commits/e3c1d8632eb43c1c2793d71639f3f5695696a5e8
//NOTE: The following function will set all three params
// settings.SetOffScreenRenderingBestPerformanceArgs();
// settings.CefCommandLineArgs.Add("disable-gpu", "1");
// settings.CefCommandLineArgs.Add("disable-gpu-compositing", "1");
// settings.CefCommandLineArgs.Add("enable-begin-frame-scheduling", "1");
// settings.CefCommandLineArgs.Add("disable-gpu-vsync", "1"); //Disable Vsync
// Disables the DirectWrite font rendering system on windows.
// Possibly useful when experiencing blury fonts.
// settings.CefCommandLineArgs.Add("disable-direct-write", "1");
}
*/
///// // TabPage tpage = new TabPage(); // tpage.Text = "New Tab"; // tabControl1.Controls.Add(tpage); // toolStripTextBoxAddress.Text = "about:blank"; // ChromiumWebBrowser ChromiumWebBrowser = new ChromiumWebBrowser(toolStripTextBoxAddress.Text); // ChromiumWebBrowser.Parent = tpage; // ChromiumWebBrowser.Dock = DockStyle.Fill; // ChromiumWebBrowser.AddressChanged += Chrome_AddressChanged; // ChromiumWebBrowser.TitleChanged += Chrome_TitleChanged; //// ChromiumWebBrowser.PopupRequestChanged += life_PopupRequestChanged; // private void life_PopupChanged(object sender, PopupChangedEventArgs e) { this.Invoke(new MethodInvoker(() => { tabControl1.SelectedTab.Text = e.Title; })); } //
/////
// usage: