-
Notifications
You must be signed in to change notification settings - Fork 7
MainForm
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:
public CefReturnValue OnBeforeResourceLoad(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback)
{
var headers = request.Headers;
headers["Custom-Header"] = "My Custom Header";
request.Headers = headers;
return CefReturnValue.Continue;
}
Anyone got an answer for my question above re loading a page into the control when the WPF TabItem it is on it doesn't have focus?
@nzmike99 The default WPF TabControl
isn't really suitable for hosting a browser, see
When I add the ChromiumWebBrowserWithScreenshotSupport.cs file to the CefSharp.Wpf.Example project it needs the "using GalaSoft.MvvmLight.Command; " dependency which destroys the project with errors
@jeremiahjordani_twitter You could use any Delegate/RelayCommand implementation you like. Pretty common for WPF apps to have one.
If you don't have one then just change the access modifier for the paramaterless TakeScreenshot so it's usable in your instance. The command is entirely optional.
private void /*Btn*/Sceenshot_Click(object sender, RoutedEventArgs e)
{
/*
//CefSharp - Quick and Dirty Screenshot with no class dependency
MessageBox.Show("Take screenshot");
double dWidth = (webCefSharpChromiumWebBrowser.ActualWidth);
double dHeight = (webCefSharpChromiumWebBrowser.ActualHeight);
int actualWidth = 0;
int actualHeight = 0;
actualWidth = Convert.ToInt32(dWidth);
actualHeight = Convert.ToInt32(dHeight);
RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap(actualWidth, actualHeight, 90, 90, PixelFormats.Pbgra32);
renderTargetBitmap.Render(webCefSharpChromiumWebBrowser);
PngBitmapEncoder pngImage = new PngBitmapEncoder();
pngImage.Frames.Add(BitmapFrame.Create(renderTargetBitmap));
using (Stream fileStream = File.Create(@"C:\SaveFolderName\apollo.png")) //uses System.IO for fileStream
{
pngImage.Save(fileStream);
}
*/
}
[C#
] TakeScreenshot [WPF
]
/*Here is an example that reuses the image that's already rendered to the screen.*/
var template = Browser.Template;
var image = (System.Windows.Controls.Image)template.FindName("PART_image", Browser);
var pngImage = new PngBitmapEncoder();
pngImage.Frames.Add(BitmapFrame.Create((System.Windows.Media.Imaging.BitmapSource)image.Source));
var screenshotPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "CefSharp screenshot" + DateTime.Now.Ticks + ".png");
using (var fileStream = File.Create(screenshotPath))
{
pngImage.Save(fileStream);
}