Пример #1
0
        /// <summary>
        /// Sets the Cache Path
        /// </summary>
        /// <param name="cachePath">
        /// The location where cache data for this request context will be stored on
        /// disk. If this value is non-empty then it must be an absolute path that is
        /// either equal to or a child directory of CefSettings.RootCachePath.
        /// If the value is empty then browsers will be created in "incognito mode"
        /// where in-memory caches are used for storage and no data is persisted to disk.
        /// HTML5 databases such as localStorage will only persist across sessions if a
        /// cache path is specified. To share the global browser cache and related
        /// configuration set this value to match the CefSettings.CachePath value.
        /// </param>
        /// <returns>Returns RequestContextBuilder instance</returns>
        public RequestContextBuilder WithCachePath(string cachePath)
        {
            ThrowExceptionIfContextAlreadySet();

            if (_settings == null)
            {
                _settings = new RequestContextSettings();
            }

            _settings.CachePath = cachePath;

            return(this);
        }
Пример #2
0
        /// <summary>
        /// Invoke this method tp persist user preferences as a JSON file in the cache path directory.
        /// Can be set globally using the CefSettings.PersistUserPreferences value.
        /// This value will be ignored if CachePath is empty or if it matches the CefSettings.CachePath value.
        /// </summary>
        /// <returns>Returns RequestContextBuilder instance</returns>
        public RequestContextBuilder PersistUserPreferences()
        {
            ThrowExceptionIfContextAlreadySet();

            if (_settings == null)
            {
                _settings = new RequestContextSettings();
            }

            _settings.PersistUserPreferences = true;

            return(this);
        }
 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";
            
            Cef.Initialize(settings);

           ///
           ///
           ///

            Text = "CefSharp Chromium Web Browser";
            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);
Пример #4
0
 /// <inheritdoc/>
 public RequestContext(RequestContextSettings settings, IRequestContextHandler requestContextHandler)
 {
     requestContext = new CefSharp.Core.RequestContext(settings.settings, requestContextHandler);
 }
Пример #5
0
 /// <inheritdoc/>
 public RequestContext(RequestContextSettings settings)
 {
     requestContext = new CefSharp.Core.RequestContext(settings.settings);
 }