Пример #1
1
 public Main()
 {
     InitializeComponent();
     CefSharp.Settings settings = new Settings();
     //            settings.AutoDetectProxySettings = true;
     settings.CachePath = "cache";
     settings.LogFile = "f7chromium.log";
     settings.LogSeverity = LogSeverity.Warning;
     CEF.Initialize(settings);
     CefSharp.BrowserSettings bsettings = new BrowserSettings();
     bsettings.WebSecurityDisabled = true;
     bsettings.ApplicationCacheDisabled = false;
     bsettings.DatabasesDisabled = false;
     bsettings.LocalStorageDisabled = false;
     bsettings.PageCacheDisabled = false;
     bsettings.FileAccessFromFileUrlsAllowed = true;
     bsettings.XssAuditorEnabled = false;
     bsettings.DeveloperToolsDisabled = false;
     bsettings.UniversalAccessFromFileUrlsAllowed = true;
     bsettings.JavaScriptDisabled = false;
     bsettings.LocalStorageDisabled = false;
     view = new CefSharp.WinForms.WebView("file:///./client/start.html", bsettings);
     bt.init(this);
     view.RegisterJsObject("bt", bt);
     events.init(this);
     view.RegisterJsObject("events", events);
     view.Dock = DockStyle.Fill;
     webPanelParent.Controls.Add(view, 0, 1);
 }
Пример #2
1
        private static async void MainAsync(string cachePath, double zoomLevel)
        {
            var browserSettings = new BrowserSettings();
            var requestContextSettings = new RequestContextSettings { CachePath = cachePath };

            // RequestContext can be shared between browser instances and allows for custom settings
            // e.g. CachePath
            using(var requestContext = new RequestContext(requestContextSettings))
            using (var browser = new ChromiumWebBrowser(TestUrl, browserSettings, requestContext))
            {
                if (zoomLevel > 1)
                {
                    browser.FrameLoadStart += (s, argsi) =>
                    {
                        var b = (ChromiumWebBrowser)s;
                        if (argsi.Frame.IsMain)
                        {
                            b.SetZoomLevel(zoomLevel);
                        }
                    };
                }
                await LoadPageAsync(browser);

                // Wait for the screenshot to be taken.
                await browser.ScreenshotAsync().ContinueWith(DisplayBitmap);

                await LoadPageAsync(browser, "http://github.com");

                // Wait for the screenshot to be taken.
                await browser.ScreenshotAsync().ContinueWith(DisplayBitmap);
            }
        }
Пример #3
0
 private void STBHTML_Load(object sender, EventArgs e)
 {
     BrowserSettings settings = new BrowserSettings();
     web_view = new WebView(this.m_Url, settings);
     web_view.Dock = DockStyle.Fill;
     this.Controls.Add(web_view);
 }
Пример #4
0
        /// <summary>
        /// 公共设置
        /// </summary>
        private void publicSet()
        {
            webBrowser = new ChromiumWebBrowser("about:blank");

            #region 设置js与cefSharp互通
            //CefSharp.CefSharpSettings.LegacyJavascriptBindingEnabled = true;
            //webBrowser.RegisterJsObject("googleBrower", this, new CefSharp.BindingOptions() { CamelCaseJavascriptNames = false });
            webBrowser.RegisterJsObject("googleBrower", this, false);
            #endregion


            BrowserSettings bset = new BrowserSettings();
            bset.Plugins               = CefState.Enabled;  //启用插件
            bset.WebSecurity           = CefState.Disabled; //禁用跨域限制
            webBrowser.BrowserSettings = bset;

            webBrowser.DownloadHandler = new DownloadHandler();
            webBrowser.KeyboardHandler = new KeyBoardHandler();
            //MenuHandler.mainWindow = mainWindow;
            //webBrowser.MenuHandler = new MenuHandler();

            //webBrowser.Dock = DockStyle.Fill;
            //webBrowser.Margin = new Padding(0, 0, 0, 0);
            //mainWindow.Controls.Add(webBrowser);
        }
Пример #5
0
        protected virtual void Dispose(bool isdisposing)
        {
            // No longer reference event listeners:
            ConsoleMessage      = null;
            FrameLoadStart      = null;
            FrameLoadEnd        = null;
            LoadError           = null;
            LoadingStateChanged = null;
            Rendering           = null;

            // No longer reference handlers:
            this.SetHandlersToNull();

            if (isdisposing)
            {
                if (BrowserSettings != null)
                {
                    BrowserSettings.Dispose();
                    BrowserSettings = null;
                }

                PresentationSource.RemoveSourceChangedHandler(this, PresentationSourceChangedHandler);

                // Release internal event listeners:
                Loaded            -= OnLoaded;
                GotKeyboardFocus  -= OnGotKeyboardFocus;
                LostKeyboardFocus -= OnLostKeyboardFocus;

                // Release internal event listeners for Drag Drop events:
                DragEnter -= OnDragEnter;
                DragOver  -= OnDragOver;
                DragLeave -= OnDragLeave;
                Drop      -= OnDrop;

                IsVisibleChanged -= OnIsVisibleChanged;

                if (tooltipTimer != null)
                {
                    tooltipTimer.Tick -= OnTooltipTimerTick;
                }

                if (CleanupElement != null)
                {
                    CleanupElement.Unloaded -= OnCleanupElementUnloaded;
                }

                foreach (var disposable in disposables)
                {
                    disposable.Dispose();
                }
                disposables.Clear();
                UiThreadRunAsync(() => WebBrowser = null);
            }

            Cef.RemoveDisposable(this);

            RemoveSourceHook();

            managedCefBrowserAdapter = null;
        }
Пример #6
0
        private void InitializeChromium()
        {
            var settings = new CefSettings();

            Cef.Initialize(settings);

            var address = $@"{Application.StartupPath}\HtmlResources\html\index.html";

            _chromiumWebBrowser = new ChromiumWebBrowser(address);

            _chromiumWebBrowser.Dock = DockStyle.Fill;
            _chromiumWebBrowser.IsBrowserInitializedChanged += OnBrowserInitialized;
            _chromiumWebBrowser.FrameLoadEnd += OnFrameLoadEnd;

            _jsToSharp = new JsToSharp(_chromiumWebBrowser, this);
            _chromiumWebBrowser.JavascriptObjectRepository.Register("jsToSharp", _jsToSharp, true);

            var browserSettings = new BrowserSettings
            {
                FileAccessFromFileUrls      = CefState.Enabled,
                UniversalAccessFromFileUrls = CefState.Enabled
            };

            _chromiumWebBrowser.BrowserSettings = browserSettings;
        }
Пример #7
0
        public void InitializeChromium()
        {
            CefSettings settings = new CefSettings();

            // Note that if you get an error or a white screen, you may be doing something wrong !
            // Try to load a local file that you're sure that exists and give the complete path instead to test
            // for example, replace page with a direct path instead :
            // String page = @"C:\Users\SDkCarlos\Desktop\afolder\index.html";

            String page = string.Format(@"{0}\html-resources\html\index.html", Application.StartupPath);

            //String page = @"C:\Users\SDkCarlos\Desktop\artyom-HOMEPAGE\index.html";

            if (!File.Exists(page))
            {
                MessageBox.Show("Error The html file doesn't exists : " + page);
            }

            // Initialize cef with the provided settings
            Cef.Initialize(settings);
            // Create a browser component
            chromeBrowser = new ChromiumWebBrowser(page); //new ChromiumWebBrowser("http://ourcodeworld.com");
            // Add it to the form and fill it to the form window.
            this.Controls.Add(chromeBrowser);
            chromeBrowser.Dock = DockStyle.Fill;

            // Allow the use of local resources in the browser
            BrowserSettings browserSettings = new BrowserSettings();

            browserSettings.FileAccessFromFileUrls      = CefState.Enabled;
            browserSettings.UniversalAccessFromFileUrls = CefState.Enabled;
            chromeBrowser.BrowserSettings = browserSettings;
        }
Пример #8
0
        public void InitializeChromium()
        {
            Cef.EnableHighDPISupport();

            string assemblyLocation = Assembly.GetExecutingAssembly().Location;
            string assemblyPath     = Path.GetDirectoryName(assemblyLocation);
            string pathSubprocess   = Path.Combine(assemblyPath, "CefSharp.BrowserSubprocess.exe");

            CefSettings settings = new CefSettings();

            settings.LogSeverity           = LogSeverity.Verbose;
            settings.LogFile               = "ceflog.txt";
            settings.BrowserSubprocessPath = pathSubprocess;
            settings.CefCommandLineArgs.Add("disable-gpu", "1");


            // Initialize cef with the provided settings
            Cef.Initialize(settings);

            // Create a browser component.
            // Change the below to wherever your webpack ui server is running.
            //chromeBrowser = new ChromiumWebBrowser(@"http://10.211.55.2:9090/");
            //chromeBrowser = new ChromiumWebBrowser(@"http://*****:*****@"http://localhost:9090/");

            request.Timeout = 100;
            request.Method  = "HEAD";
            try
            {
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    // IF NORMAL PEOPLE
                    chromeBrowser = new ChromiumWebBrowser(@"http://*****:*****@"http://10.211.55.2:9090/");
            }

            //IF RELEASE
            // TODO

            this.Controls.Add(chromeBrowser);
            chromeBrowser.Dock = DockStyle.Fill;

            // Allow the use of local resources in the browser
            BrowserSettings browserSettings = new BrowserSettings();

            browserSettings.FileAccessFromFileUrls      = CefState.Enabled;
            browserSettings.UniversalAccessFromFileUrls = CefState.Enabled;

            Store = new Interop(chromeBrowser, this);

            chromeBrowser.RegisterAsyncJsObject("Interop", Store);
        }
Пример #9
0
        /// <summary>
        /// Initializing the browser used for displaying the UI.
        /// Using a CefSharp Chromium browser.
        /// </summary>
        public void InitializeBrowser()
        {
            // Enable LegacyJavascriptBindings to allow us access to custom objects.
            CefSharpSettings.LegacyJavascriptBindingEnabled = true;

            // Create an initialize CefSettings.
            CefSettings loginBrowserSettings = new CefSettings();

            Cef.Initialize(loginBrowserSettings);

            // Set the path to the correct html file.
            mainBrowser = new ChromiumWebBrowser(String.Format("file:///{0}/content/index.html", Environment.CurrentDirectory));

            // Dock the Chromium browser to the form, and fill it.
            this.Controls.Add(mainBrowser);
            mainBrowser.Dock = DockStyle.Fill;

            // Enable various settings to allow access to custom objects.
            BrowserSettings browserSettings = new BrowserSettings();

            browserSettings.FileAccessFromFileUrls      = CefState.Enabled;
            browserSettings.UniversalAccessFromFileUrls = CefState.Enabled;
            browserSettings.Javascript = CefState.Enabled;

            // Assign the settings to the correct browser.
            mainBrowser.BrowserSettings = browserSettings;

            // Update the browser.
            mainBrowser.Update();
        }
Пример #10
0
        public BrowserTab(string url, ToolStripComboBox addressBar)
        {
            this.addressBar = addressBar;

            Browser = new ExtendedBrowser {
                Dock = DockStyle.Fill
            };
            Browser.TitleChanged   += Browser_TitleChanged;
            Browser.AddressChanged += Browser_AddressChanged;

            var lifespanHandler = new LifespanHandler();

            Browser.LifeSpanHandler        = lifespanHandler;
            lifespanHandler.OpenInNewTab  += LifespanHandler_OpenInNewTab;
            Browser.HandleCreated         += Browser_HandleCreated;
            Browser.MouseMove             += Browser_MouseMove;
            Browser.OnLoadingStateChanged += Browser_OnLoadingStateChanged;

            BrowserSettings bs = new BrowserSettings();

            bs.Javascript           = RuntimeSettings.JsDisabled ? CefState.Disabled : CefState.Default;
            bs.ImageLoading         = RuntimeSettings.ImagesDisabled ? CefState.Disabled : CefState.Default;
            bs.Plugins              = RuntimeSettings.PluginsDisabled ? CefState.Disabled : CefState.Default;
            Browser.BrowserSettings = bs;

            Controls.Add(Browser);
            Browser.Load(url);
        }
Пример #11
0
        private void InitializeFieldsAndCefIfRequired()
        {
            if (!initialized)
            {
                if (!Cef.IsInitialized && !Cef.Initialize())
                {
                    throw new InvalidOperationException("Cef::Initialize() failed");
                }

                Cef.AddDisposable(this);

                if (ResourceHandlerFactory == null)
                {
                    ResourceHandlerFactory = new DefaultResourceHandlerFactory();
                }

                if (BrowserSettings == null)
                {
                    BrowserSettings = new BrowserSettings();
                }

                // To allow cross-origin request.
                // This prevents the error: no 'access-control-allow-origin' header is present on the requested resource for XHR requests.
                BrowserSettings.FileAccessFromFileUrls      = CefState.Enabled;
                BrowserSettings.UniversalAccessFromFileUrls = CefState.Enabled;
                BrowserSettings.WebSecurity = CefState.Enabled;

                managedCefBrowserAdapter = new ManagedCefBrowserAdapter(this, false);

                initialized = true;
            }
        }
Пример #12
0
 /// <summary>
 /// 初始化浏览器
 /// </summary>
 public void InitBrowser(string url, EventHandler <FrameLoadEndEventArgs> loadEnd)
 {
     if (browser == null)
     {
         CefSettings cfs = new CefSettings();
         Dictionary <string, string> formFields = new Dictionary <string, string>();
         formFields["token"] = MyUserInfo.LoginToken;
         //获取签名
         string signature = SignatureHelper.BuildSign(formFields, ApiConst.SecretKey);
         string param     = string.Format("hottecexe:token={0}&signature={1};", MyUserInfo.LoginToken, signature);
         cfs.UserAgent = param + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36";
         Cef.Initialize(cfs, true, true);
         BrowserSettings settings = new BrowserSettings()
         {
             LocalStorage = CefState.Enabled,
             Javascript   = CefState.Enabled,
             Plugins      = CefState.Enabled,
             ImageLoading = CefState.Enabled,
             ImageShrinkStandaloneToFit = CefState.Enabled,
             WebGl = CefState.Enabled
         };
         browser = new ChromiumWebBrowser(url);
         browser.BrowserSettings = settings;
         browser.RegisterJsObject("hotJs", new MyUserInfo(), false);
         browser.FrameLoadEnd   += (s, e) => { loadEnd(s, e); };
         browser.Dock            = DockStyle.Fill;
         browser.LifeSpanHandler = new LifeSpanHandler();
         browser.MenuHandler     = new MenuHandler();
     }
     else
     {
         browser.Load(url);
     }
 }
Пример #13
0
        public void SetUp()
        {
            Instance = this;
            waitCreated = new ManualResetEvent(false);

            Settings settings = new Settings();
            BrowserSettings browserSettings = new BrowserSettings();

            if(!CEF.Initialize(settings, browserSettings))
            {
                Assert.Fail("Couldn't initialise CEF.");
                return;
            }

            // CEF.RegisterScheme("test", new TestSchemeHandlerFactory());
            CEF.RegisterJsObject("bound", new BoundObject());

            // Application.EnableVisualStyles();
            // Application.SetCompatibleTextRenderingDefault(false);

            var uiThread = new Thread(UIThread);
            uiThread.SetApartmentState(ApartmentState.STA);
            uiThread.Start();
            waitCreated.WaitOne();
        }
        public BrowserForm()
        {
            InitializeComponent();

            Text = "CefSharp";
            WindowState = FormWindowState.Maximized;

            String page = string.Format(@"{0}\dist\index.html", Application.StartupPath);
            browser = new ChromiumWebBrowser(page)
            {
                Dock = DockStyle.Fill,
            };

            // Allow the use of local resources in the browser
            BrowserSettings browserSettings = new BrowserSettings();
            browserSettings.FileAccessFromFileUrls = CefState.Enabled;
            browserSettings.UniversalAccessFromFileUrls = CefState.Enabled;
            browser.BrowserSettings = browserSettings;

            toolStripContainer.ContentPanel.Controls.Add(browser);

            browser.TitleChanged += OnBrowserTitleChanged;

            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);
        }
        void CefWrapper_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            EmployeeId = (int)e.NewValue;

            if (_isCefInitialized)
            {
                var urlToNavigate = "http://*****:*****@"CEF is not initialized.
                        (This is ok in design-mode! If this happens at runtime, you need to call MapWrapper.InitializeChromiumEmbedded() before instantiating the MapWrapper-control.)"
                };
            }
        }
Пример #16
0
        private void Dispose(bool disposing)
        {
            ClearHandlers();
            ClearEventListeners();

            Cef.RemoveDisposable(this);

            if (!disposing)
            {
                return;
            }

            if (BrowserSettings != null)
            {
                BrowserSettings.Dispose();
                BrowserSettings = null;
            }

            if (managedCefBrowserAdapter != null)
            {
                if (!managedCefBrowserAdapter.IsDisposed)
                {
                    managedCefBrowserAdapter.Dispose();
                }
                managedCefBrowserAdapter = null;
            }
        }
Пример #17
0
        public void InitializeChromium()
        {
            // Note that if you get an error or a white screen, you may be doing something wrong !
            // Try to load a local file that you're sure that exists and give the complete path instead to test
            // for example, replace page with a direct path instead :
            // String page = @"C:\Users\SDkCarlos\Desktop\afolder\index.html";

            //String page = @"C:\Users\SDkCarlos\Desktop\artyom-HOMEPAGE\index.html";


            // Initialize cef with the provided settings
            CefSettings settings = new CefSettings();

            // Initialize cef with a command line argument
            // In this case the enable-media-stream flag that allows you to access the camera and the microphone
            settings.CefCommandLineArgs.Add("enable-media-stream", "1");
            settings.CefCommandLineArgs.Add("allow-running-insecure-content", "1");
            settings.CefCommandLineArgs.Add("use-fake-ui-for-media-stream", "1");
            settings.CefCommandLineArgs.Add("enable-usermedia-screen-capture", "1");
            Cef.Initialize(settings);
            // Create a browser component      q
            chromeBrowser = new ChromiumWebBrowser("https://www.google.com");

            // Add it to the form and fill it to the form window.
            this.Controls.Add(chromeBrowser);
            chromeBrowser.Dock = DockStyle.Fill;

            // Allow the use of local resources in the browser
            BrowserSettings browserSettings = new BrowserSettings();

            browserSettings.FileAccessFromFileUrls      = CefState.Enabled;
            browserSettings.UniversalAccessFromFileUrls = CefState.Enabled;
            chromeBrowser.BrowserSettings = browserSettings;
        }
Пример #18
0
        /// <summary>
        /// Create a new OffScreen Chromium Browser
        /// </summary>
        /// <param name="address">Initial address (url) to load</param>
        /// <param name="browserSettings">The browser settings to use. If null, the default settings are used.</param>
        /// <param name="requestContext">See <see cref="RequestContext" /> for more details. Defaults to null</param>
        /// <param name="automaticallyCreateBrowser">automatically create the underlying Browser</param>
        /// <param name="blendPopup">Should the popup be blended in the background in the rendering</param>
        /// <exception cref="System.InvalidOperationException">Cef::Initialize() failed</exception>
        public ChromiumWebBrowser(string address = "", BrowserSettings browserSettings = null,
            RequestContext requestContext = null, bool automaticallyCreateBrowser = true)
        {
            if (!Cef.IsInitialized && !Cef.Initialize())
            {
                throw new InvalidOperationException("Cef::Initialize() failed");
            }

            BitmapFactory = new BitmapFactory(BitmapLock);

            ResourceHandlerFactory = new DefaultResourceHandlerFactory();
            BrowserSettings = browserSettings ?? new BrowserSettings();
            RequestContext = requestContext;

            Cef.AddDisposable(this);
            Address = address;

            managedCefBrowserAdapter = new ManagedCefBrowserAdapter(this, true);

            if (automaticallyCreateBrowser)
            {
                CreateBrowser(IntPtr.Zero);
            }

            popupPosition = new Point();
            popupSize = new Size();
        }
Пример #19
0
        private void btnAddPlaylist_Click(object sender, EventArgs e)
        {
            string path = FormMain.defaultPath;
            string url  = textBoxUrl.Text;

            playlistService = new PlaylistService();
            chromeDriver    = new ChromeDriver(BrowserSettings.ChromeDriverService, BrowserSettings.ChromeOptions(null));
            Playlist playlist = new Playlist(path, url);

            playlist = playlistService.GetUpdatedPlaylist(chromeDriver, playlist);
            string result = "";

            string[] splited = playlist.PathFolder.Split(new[] { "\\" }, StringSplitOptions.None);
            splited[splited.Length - 1] = "Spotify-" + splited.LastOrDefault();
            result = string.Join("\\", splited);
            //foreach(var split in sp)

            DirectoryInfo di = Directory.CreateDirectory(result);

            using (StreamWriter sw = File.CreateText(result + "\\url.txt"))
            {
                sw.WriteLine(playlist.Url);
            }
            chromeDriver.Quit();
            this.Close();
        }
Пример #20
0
        private void FrmMain_Load(object sender, EventArgs e)
        {
            _chromiumWebBrowser?.Dispose();

            _cookies = new CookieManager(
                Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources", "Cef", "cookies"), true, null);

            var browserSettings = new BrowserSettings
            {
                WindowlessFrameRate = 60,
                Plugins             = CefState.Enabled,
                WebGl = CefState.Enabled,
            };

            _chromiumWebBrowser = new ChromiumWebBrowser("https://darkorbit.com", browserSettings, new RequestContext(new RequestContextHandler(_cookies)))
            {
                Size           = pbBrowser.Size,
                RequestHandler = new RequestHandler(),
                MenuHandler    = new ContextMenuHandler()
            };
            _renderHandler = new RenderHandler(_chromiumWebBrowser);
            _renderHandler.BrowserPaint += RenderHandlerOnBrowserPaint;

            _chromiumWebBrowser.RenderHandler = _renderHandler;

            _chromiumWebBrowser.AddressChanged += ChromiumWebBrowserOnAddressChanged;


            _pipeThread = new Thread(CreatePipeConnection);
            _pipeThread.Start();
        }
Пример #21
0
        private void InitializeFieldsAndCefIfRequired()
        {
            if (!initialized)
            {
                if (!Cef.IsInitialized && !Cef.Initialize(new CefSettings()))
                {
                    throw new InvalidOperationException("Cef::Initialize() failed");
                }

                Cef.AddDisposable(this);

                if (FocusHandler == null)
                {
                    FocusHandler = new DefaultFocusHandler();
                }

                if (ResourceHandlerFactory == null)
                {
                    ResourceHandlerFactory = new DefaultResourceHandlerFactory();
                }

                if (BrowserSettings == null)
                {
                    BrowserSettings = new BrowserSettings();
                }

                managedCefBrowserAdapter = new ManagedCefBrowserAdapter(this, false);

                initialized = true;
            }
        }
Пример #22
0
        public void StartOffscreenRender(string url)
        {
#if WITHCEF
            var settings = new CefSharp.OffScreen.CefSettings()
            {
                //By default CefSharp will use an in-memory cache, you need to specify a Cache Folder to persist data
                CachePath = Path.Combine(
                    Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "CefSharp\\Cache"),
            };

            // play with surfaces
            settings.SetOffScreenRenderingBestPerformanceArgs();

            //Perform dependency check to make sure all relevant resources are in our output directory.
            // Cef.Initialize(settings, performDependencyCheck: true, browserProcessHandler: null);

            var rqs = new RequestContextSettings();
            rqs.CachePath = Path.Combine(
                Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "CefSharp\\Cache");
            var rq = new RequestContext(rqs, null);

            var bs = new BrowserSettings();
            bs.BackgroundColor = 0xff000000;

            this.theOffscreenBrowser      = new CefSharp.OffScreen.ChromiumWebBrowser(url, bs, rq);
            this.theOffscreenBrowser.Size = new System.Drawing.Size(400, 800);
            this.theOffscreenBrowser.LoadingStateChanged += TheBrowser_LoadingStateChanged;
            this.theOffscreenBrowser.FrameLoadEnd        += TheOffscreenBrowser_FrameLoadEnd;
Пример #23
0
        private void CreateBrowser()
        {
            browserCreated = true;

            if (((IWebBrowserInternal)this).HasParent == false)
            {
                if (IsBrowserInitialized == false || browser == null)
                {
                    var windowInfo = new WindowInfo();
                    windowInfo.SetAsChild(Handle);

                    managedCefBrowserAdapter.CreateBrowser(windowInfo, browserSettings, (RequestContext)RequestContext, Address);

                    if (browserSettings != null)
                    {
                        browserSettings.Dispose();
                        browserSettings = null;
                    }
                }
                else
                {
                    //If the browser already exists we'll reparent it to the new Handle
                    var browserHandle = browser.GetHost().GetWindowHandle();
                    NativeMethodWrapper.SetWindowParent(browserHandle, Handle);
                }
            }
        }
Пример #24
0
        private void FrmMain_Load(object sender, EventArgs e)
        {
            _chromiumWebBrowser?.Dispose();

            _cookies = new CookieManager(
                Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources", "Cef", "cookies"), true, null);

            var browserSettings = new BrowserSettings
            {
                WindowlessFrameRate = 60,
                Plugins             = CefState.Enabled,
                WebGl = CefState.Enabled
            };


            _chromiumWebBrowser = new ChromiumWebBrowser("https://darkorbit.com")
            {
                BrowserSettings = browserSettings,
                RequestContext  = new RequestContext(new RequestContextHandler(_cookies)),
                RequestHandler  = new RequestHandler(),
                MenuHandler     = new ContextMenuHandler(),
                LifeSpanHandler = new LifeSpanHandler()
            };

            _chromiumWebBrowser.AddressChanged += ChromiumWebBrowserOnAddressChanged;
            _chromiumWebBrowser.IsBrowserInitializedChanged += ChromiumWebBrowserOnIsBrowserInitializedChanged;
            _chromiumWebBrowser.HandleCreated += ChromiumWebBrowserOnHandleCreated;
            Controls.Add(_chromiumWebBrowser);

            SetDoubleBuffering(_chromiumWebBrowser, true);

            _pipeThread = new Thread(CreateTcpServer);
            _pipeThread.Start();
        }
Пример #25
0
        public MainForm()
        {
            ClientSize = new Size(640, 480);
            ShowIcon = false;

            FilePath = "";
            fileType = FileType.XML;

            Menu = new MainMenu();
            CreateMenu();

            BrowserSettings browserSettings = new BrowserSettings() {
                HistoryDisabled = true,
                FixedFontFamily = FontFamily.GenericMonospace.Name,
                DefaultFontSize = 12,
                DefaultFixedFontSize = 8
            };

            webView = new WebView("http://internal/res/index.html", browserSettings) {
                Dock = DockStyle.Fill,
                RequestHandler = new ManifestResourceHandler() {
                    culture = Thread.CurrentThread.CurrentCulture
                },
                LifeSpanHandler = new ExternalLifeSpanHandler(),
                JsDialogHandler = new WebViewDialogHandler(this)
            };
            webView.PropertyChanged += WebViewTitleChanged;

            this.Controls.Add(webView);

            CEF.RegisterJsObject("win", ctrl = new FormControlObject(this));
            ctrl.OnDataArrive += OnDataArrive;
        }
Пример #26
0
        /// <summary>
        /// Create a new OffScreen Chromium Browser. If you use <see cref="CefSharpSettings.LegacyJavascriptBindingEnabled"/> = true then you must
        /// set <paramref name="automaticallyCreateBrowser"/> to false and call <see cref="CreateBrowser"/> after the objects are registered.
        /// </summary>
        /// <param name="address">Initial address (url) to load</param>
        /// <param name="browserSettings">The browser settings to use. If null, the default settings are used.</param>
        /// <param name="requestContext">See <see cref="RequestContext" /> for more details. Defaults to null</param>
        /// <param name="automaticallyCreateBrowser">automatically create the underlying Browser</param>
        /// <exception cref="System.InvalidOperationException">Cef::Initialize() failed</exception>
        public ChromiumWebBrowser(string address = "", BrowserSettings browserSettings = null,
                                  IRequestContext requestContext = null, bool automaticallyCreateBrowser = true)
        {
            if (!Cef.IsInitialized)
            {
                var settings = new CefSettings();

                if (!Cef.Initialize(settings))
                {
                    throw new InvalidOperationException("Cef::Initialize() failed");
                }
            }

            RequestContext = requestContext;

            Cef.AddDisposable(this);
            Address = address;

            managedCefBrowserAdapter = new ManagedCefBrowserAdapter(this, true);

            if (automaticallyCreateBrowser)
            {
                CreateBrowser(null, browserSettings);
            }

            RenderHandler = new DefaultRenderHandler(this);
        }
Пример #27
0
        public MainWindow()
        {
            InitializeComponent();
            this.DataContext                   = new MainViewModel(new FileDialogService(), Viewport, RotatorX, RotatorY, RotatorZ, ScaleXYZ, config);
            FracktoryWindow.Loaded            += new RoutedEventHandler(win_Loaded);
            FracktoryWindow.SourceInitialized += new EventHandler(win_SourceInitialized);

            CefSharp.Settings        settings        = new CefSharp.Settings();
            CefSharp.BrowserSettings browserSettings = new BrowserSettings();
            browserSettings.FileAccessFromFileUrlsAllowed      = true;
            browserSettings.UniversalAccessFromFileUrlsAllowed = true;
            browserSettings.TextAreaResizeDisabled             = true;

            settings.PackLoadingDisabled = true;
            if (CEF.Initialize(settings))
            {
                CefSharp.Wpf.WebView web_view = new CefSharp.Wpf.WebView(AssemblyDirectory + @"/gCodeViewer/index.html", browserSettings);
                grid1.Children.Add(web_view);

                //730 x 460

                // web_view.Address = "file:///E:/Fracktal/gCodeViewer-master2/index.html";
            }
            //Uri uri = new Uri(@"pack://application:,,,/gCodeViewer/index.html");
            //Stream source = Application.GetContentStream(uri).Stream;
            //wbMain.NavigateToStream(source);
        }
Пример #28
0
        private void InitializeChrome()
        {
            BrowserSettings set = new BrowserSettings();

            var         cefPath  = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Sdk\Cef");
            CefSettings settings = new CefSettings();

            settings.LocalesDirPath = System.IO.Path.Combine(cefPath, "locales");
            settings.Locale         = "ru";
            settings.UserAgent      = _mainSetting.UserAgent;
            settings.CefCommandLineArgs.Add("disable-gpu", "1");
            settings.CachePath   = System.IO.Path.Combine(cefPath, "cache");
            settings.LogFile     = System.IO.Path.Combine(cefPath, "Log.txt");
            settings.LogSeverity = CefSharp.LogSeverity.Error;

            if (_mainSetting.IsProxy)
            {
                settings.CefCommandLineArgs.Add("proxy-server", _mainSetting.Proxy);
            }

            if (!Cef.IsInitialized)
            {
                Cef.Initialize(settings);
            }
        }
Пример #29
0
        protected virtual void Dispose(bool isdisposing)
        {
            PresentationSource.RemoveSourceChangedHandler(this, PresentationSourceChangedHandler);

            BrowserSettings.Dispose();

            BrowserSettings = null;
            ResourceHandler = null;

            Loaded -= OnLoaded;

            GotKeyboardFocus  -= OnGotKeyboardFocus;
            LostKeyboardFocus -= OnLostKeyboardFocus;

            IsVisibleChanged -= OnIsVisibleChanged;

            Cef.RemoveDisposable(this);

            foreach (var disposable in disposables)
            {
                disposable.Dispose();
            }
            disposables.Clear();

            UiThreadRunAsync(() => WebBrowser = null);
            managedCefBrowserAdapter          = null;
            ConsoleMessage = null;
            FrameLoadStart = null;
            FrameLoadEnd   = null;
            LoadError      = null;
        }
Пример #30
0
        private void LoadApp()
        {
            string terrariaPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;

            var settings = new CefSettings
            {
                BrowserSubprocessPath      = Path.Combine(terrariaPath, Environment.Is64BitProcess ? "x64" : "x86", "CefSharp.BrowserSubprocess.exe"),
                RootCachePath              = Path.Combine(terrariaPath, "tChromiumCache"),
                CachePath                  = Path.Combine(terrariaPath, "tChromiumCache"),
                WindowlessRenderingEnabled = true
            };

            settings.EnableAudio();

            Cef.Initialize(settings, false, browserProcessHandler: null);

            var browserSettings = new BrowserSettings
            {
                BackgroundColor     = Cef.ColorSetARGB(255, 255, 255, 255),
                WindowlessFrameRate = 60
            };

            browser = new Browser(browserSettings)
            {
                LifeSpanHandler = new LifeSpanHandler()
            };

            browser.BrowserInitialized  += Browser_BrowserInitialized;
            browser.LoadingStateChanged += Browser_LoadingStateChanged;

            browser.Paint += Browser_Paint;
        }
 public BrowserContentControl(BrowserSettings settings, RibbonTabItem tabPage)
 {
     InitializeComponent();
     BrowserSettings = settings;
     TabPage         = tabPage;
     Dock            = DockStyle.Fill;
 }
Пример #32
0
        /// <summary>
        /// Create a new OffScreen Chromium Browser. If you use <see cref="CefSharpSettings.LegacyJavascriptBindingEnabled"/> = true then you must
        /// set <paramref name="automaticallyCreateBrowser"/> to false and call <see cref="CreateBrowser"/> after the objects are registered.
        /// </summary>
        /// <param name="address">Initial address (url) to load</param>
        /// <param name="browserSettings">The browser settings to use. If null, the default settings are used.</param>
        /// <param name="requestContext">See <see cref="RequestContext" /> for more details. Defaults to null</param>
        /// <param name="automaticallyCreateBrowser">automatically create the underlying Browser</param>
        /// <exception cref="System.InvalidOperationException">Cef::Initialize() failed</exception>
        public ChromiumWebBrowser(string address = "", BrowserSettings browserSettings = null,
                                  RequestContext requestContext = null, bool automaticallyCreateBrowser = true)
        {
            if (!Cef.IsInitialized)
            {
                var settings = new CefSettings();
                settings.WindowlessRenderingEnabled = true;

                if (!Cef.Initialize(settings))
                {
                    throw new InvalidOperationException("Cef::Initialize() failed");
                }
            }

            ResourceHandlerFactory = new DefaultResourceHandlerFactory();
            BrowserSettings        = browserSettings ?? new BrowserSettings();
            RequestContext         = requestContext;

            Cef.AddDisposable(this);
            Address = address;

            managedCefBrowserAdapter = new ManagedCefBrowserAdapter(this, true);

            if (automaticallyCreateBrowser)
            {
                CreateBrowser(IntPtr.Zero);
            }

            RenderHandler = new DefaultRenderHandler(this);
        }
Пример #33
0
        /// <summary>
        /// Create a new OffScreen Chromium Browser
        /// </summary>
        /// <param name="address">Initial address (url) to load</param>
        /// <param name="browserSettings">The browser settings to use. If null, the default settings are used.</param>
        /// <param name="requestContext">See <see cref="RequestContext" /> for more details. Defaults to null</param>
        /// <param name="automaticallyCreateBrowser">automatically create the underlying Browser</param>
        /// <exception cref="System.InvalidOperationException">Cef::Initialize() failed</exception>
        public ChromiumWebBrowser(string address = "", BrowserSettings browserSettings = null,
                                  RequestContext requestContext = null, bool automaticallyCreateBrowser = true)
        {
            if (!Cef.IsInitialized && !Cef.Initialize())
            {
                throw new InvalidOperationException("Cef::Initialize() failed");
            }

            BitmapFactory = new BitmapFactory(BitmapLock);

            ResourceHandlerFactory = new DefaultResourceHandlerFactory();
            BrowserSettings        = browserSettings ?? new BrowserSettings();
            RequestContext         = requestContext;

            Cef.AddDisposable(this);
            Address = address;

            managedCefBrowserAdapter = new ManagedCefBrowserAdapter(this, true);

            if (automaticallyCreateBrowser)
            {
                CreateBrowser(IntPtr.Zero);
            }

            popupPosition = new Point();
            popupSize     = new Size();
        }
Пример #34
0
        private void ClientContainer_Load(object sender, EventArgs e)
        {
            Cef.Initialize(new CefSettings()
            {
                Locale = "es-AR"
            });

            string start = string.Format("{0}\\App\\dist\\index.html", Application.StartupPath);

            if (!File.Exists(start))
            {
                MessageBox.Show("Error The html file doesn't exists : " + start);
            }

            browser = new ChromiumWebBrowser(start);
            helper  = new CefHelper(browser);

            browser.RegisterJsObject("CefHelper", helper);
            browser.RegisterJsObject("PrintHelper", new PrintHelper(Application.StartupPath + "\\PrintConfig.json", CreatePrintModes()));
            browser.RegisterJsObject("ClientConfig", new ClientConfig
            {
                Host = ConfigurationManager.AppSettings["ApiHost"]
            });
            this.Controls.Add(browser);

            browser.Dock = DockStyle.Fill;
            //browser.IsBrowserInitializedChanged += ShowDevTools;
            // Allow the use of local resources in the browser
            BrowserSettings browserSettings = new BrowserSettings();

            browserSettings.FileAccessFromFileUrls      = CefState.Enabled;
            browserSettings.UniversalAccessFromFileUrls = CefState.Enabled;
            browser.BrowserSettings = browserSettings;
            browser.Focus();
        }
Пример #35
0
        public CrBrowser(MainForm form, string address)
        {
            this.form = form;

            // 初始化浏览器
            browser = new ChromiumWebBrowser(address);

            // BrowserSettings 必须在 Controls.Add 之前
            BrowserSettings browserSettings = new BrowserSettings
            {
                // FileAccessFromFileUrls 必须 Enabled
                // 不然 AJAX 请求 file:// 会显示
                // Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
                FileAccessFromFileUrls      = CefState.Enabled,
                UniversalAccessFromFileUrls = CefState.Enabled,
                DefaultEncoding             = "UTF-8",
                BackgroundColor             = (uint)ColorTranslator.FromHtml("#21252b").ToArgb()
            };

            browserSettings.WebSecurity = CefState.Disabled;
            browser.BrowserSettings     = browserSettings;

            browser.MenuHandler     = new MenuHandler(this);
            browser.LifeSpanHandler = new LifeSpanHandler();
            browser.LoadHandler     = new LoadHandler();
            browser.DragHandler     = new DragDropHandler();
            ((DragDropHandler)browser.DragHandler).Enable = false;

            browser.FrameLoadEnd += new EventHandler <FrameLoadEndEventArgs>(Browser_onFrameLoadEnd);
            browser.IsBrowserInitializedChanged += new EventHandler <IsBrowserInitializedChangedEventArgs>(Browser_onIsBrowserInitializedChanged);
        }
Пример #36
0
        public TabView(MainWindow mw, string url)
        {
            InitializeComponent();

            //Assignments

            mainWindow              = mw;
            LastWebsite             = "";
            WebView.LifeSpanHandler = this;
            splitChar = (char)42;
            WebView.DownloadHandler = this;
            WebView.DisplayHandler  = this;
            BrowserSettings s1 = new BrowserSettings();

            s1.LocalStorage         = CefState.Enabled;
            s1.Databases            = CefState.Enabled;
            s1.ApplicationCache     = CefState.Enabled;
            s1.WindowlessFrameRate  = 60;
            WebView.BrowserSettings = s1;
            refreshing = false;
            allItems1  = new List <string>();

            //Events

            WebView.FrameLoadEnd += WebView_FrameLoadEnd;
            WebView.TitleChanged += WebView_TitleChanged;
            Loaded += TabView_Loaded;
            WebView.IsBrowserInitializedChanged += WebView_IsBrowserInitializedChanged;
            WebView.FrameLoadStart += WebView_FrameLoadStart;

            HideSuggestions();

            urlToLoad = url;
        }
Пример #37
0
        /// <summary>
        /// Create the underlying browser. The instance address, browser settings and request context will be used.
        /// </summary>
        /// <param name="windowInfo">Window information used when creating the browser</param>
        /// <param name="browserSettings">Browser initialization settings</param>
        /// <exception cref="System.Exception">An instance of the underlying offscreen browser has already been created, this method can only be called once.</exception>
        public void CreateBrowser(IWindowInfo windowInfo = null, BrowserSettings browserSettings = null)
        {
            if (browserCreated)
            {
                throw new Exception("An instance of the underlying offscreen browser has already been created, this method can only be called once.");
            }

            browserCreated = true;

            if (browserSettings == null)
            {
                browserSettings = new BrowserSettings(frameworkCreated: true);
            }

            if (windowInfo == null)
            {
                windowInfo = new WindowInfo();
                windowInfo.SetAsWindowless(IntPtr.Zero);
            }

            managedCefBrowserAdapter.CreateBrowser(windowInfo, browserSettings, (RequestContext)RequestContext, Address);

            //Dispose of BrowserSettings if we created it, if user created then they're responsible
            if (browserSettings.FrameworkCreated)
            {
                browserSettings.Dispose();
            }
            browserSettings = null;
        }
Пример #38
0
        /// <summary>
        /// Create the underlying browser. The instance address, browser settings and request context will be used.
        /// </summary>
        /// <param name="windowInfo">Window information used when creating the browser</param>
        /// <param name="browserSettings">Browser initialization settings</param>
        /// <exception cref="System.Exception">An instance of the underlying offscreen browser has already been created, this method can only be called once.</exception>
        public void CreateBrowser(IWindowInfo windowInfo = null, BrowserSettings browserSettings = null)
        {
            if (browserCreated)
            {
                throw new Exception("An instance of the underlying offscreen browser has already been created, this method can only be called once.");
            }

            browserCreated = true;

            if (browserSettings == null)
            {
                browserSettings = new BrowserSettings();
            }
            else if (browserSettings.IsDisposed)
            {
                throw new ObjectDisposedException("browserSettings", "The BrowserSettings reference you have passed has already been disposed. You cannot reuse the BrowserSettings class");
            }

            if (windowInfo == null)
            {
                windowInfo = new WindowInfo();
                windowInfo.SetAsWindowless(IntPtr.Zero);
            }

            //Dispose of browser settings after we've created the browser
            using (browserSettings)
            {
                managedCefBrowserAdapter.CreateBrowser(windowInfo, browserSettings, (RequestContext)RequestContext, Address);
            }
        }
Пример #39
0
 private void IPAD_Load(object sender, EventArgs e)
 {
     BrowserSettings settings = new BrowserSettings();
     web_view = new WebView(this.m_Url, settings);
     web_view.Dock = DockStyle.Fill;
     //web_view.ShowDevTools();
     this.Controls.Add(web_view);
     //this.geckoWebBrowser1.Navigate(this.m_Url);
     //this.geckoWebBrowser1.GetMarkupDocumentViewer().SetFullZoomAttribute(0.5f);
 }
 public static BrowserSettings GetStandardBrowserSettings()
 {
     var browserSettings = new BrowserSettings
     {
         FileAccessFromFileUrlsAllowed = true, // cross domain http://stackoverflow.com/a/18013586/121466
         UniversalAccessFromFileUrlsAllowed = true, // cross domain http://stackoverflow.com/a/18013586/121466
         WebSecurityDisabled = false, //false is default
         TextAreaResizeDisabled = true,
     };
     return browserSettings;
 }
Пример #41
0
        public Form1()
        {
            InitializeComponent();

            BrowserSettings bs = new BrowserSettings();
            bs.WebGlDisabled = true;
            bs.PluginsDisabled = true;
            web_view = new WebView("http://127.0.0.1:8934/blink_1/", bs);
            web_view.Dock = DockStyle.Fill;
            web_view.RequestHandler = this;
            this.Controls.Add(web_view);
        }
Пример #42
0
 private void Form1_Load(object sender, EventArgs e)
 {
     BrowserSettings now = new BrowserSettings();
     now.PageCacheDisabled = false;
     now.LocalStorageDisabled = false;
     now.DragDropDisabled = false;
     now.JavaScriptDisabled = false;
     webView = new WebView("http://127.0.0.1:5000", now);
     //webView.PropertyChanged += new PropertyChangedEventHandler(webView_PropertyChanged);
     webView.Dock = DockStyle.Fill;
     this.Controls.Add(webView);
 }
Пример #43
0
        private static async void MainAsync(string cachePath, double zoomLevel)
        {
            var browserSettings = new BrowserSettings();
            //Reduce rendering speed to one frame per second so it's easier to take screen shots
            browserSettings.WindowlessFrameRate = 1;
            var requestContextSettings = new RequestContextSettings { CachePath = cachePath };

            // RequestContext can be shared between browser instances and allows for custom settings
            // e.g. CachePath
            using(var requestContext = new RequestContext(requestContextSettings))
            using (var browser = new ChromiumWebBrowser(TestUrl, browserSettings, requestContext))
            {
                if (zoomLevel > 1)
                {
                    browser.FrameLoadStart += (s, argsi) =>
                    {
                        var b = (ChromiumWebBrowser)s;
                        if (argsi.Frame.IsMain)
                        {
                            b.SetZoomLevel(zoomLevel);
                        }
                    };
                }
                await LoadPageAsync(browser);

                var preferences = requestContext.GetAllPreferences(true);

                // For Google.com pre-pupulate the search text box
                await browser.EvaluateScriptAsync("document.getElementById('lst-ib').value = 'CefSharp Was Here!'");

                // Wait for the screenshot to be taken,
                // if one exists ignore it, wait for a new one to make sure we have the most up to date
                await browser.ScreenshotAsync(true).ContinueWith(DisplayBitmap);

                await LoadPageAsync(browser, "http://github.com");

                
                //Gets a wrapper around the underlying CefBrowser instance
                var cefBrowser = browser.GetBrowser();
                // Gets a warpper around the CefBrowserHost instance
                // You can perform a lot of low level browser operations using this interface
                var cefHost = cefBrowser.GetHost();

                //You can call Invalidate to redraw/refresh the image
                cefHost.Invalidate(PaintElementType.View);

                // Wait for the screenshot to be taken.
                await browser.ScreenshotAsync(true).ContinueWith(DisplayBitmap);
            }
        }
Пример #44
0
        private void InitializeChrome()
        {
            if ((Properties.Settings.Default.firstUse == true) || (Properties.Settings.Default.culture == "") || (Properties.Settings.Default.voicename == ""))
            {
                Chrome.Load(@"C:\Git Repos\Synthesizer.net\Synthesizer.net\resources\configurator.html");
            }

            this.Controls.Add(Chrome);
            this.WindowState = FormWindowState.Maximized;
            BrowserSettings browserSettings = new BrowserSettings();
            browserSettings.FileAccessFromFileUrlsAllowed = true;
            browserSettings.UniversalAccessFromFileUrlsAllowed = true;
            Chrome.BrowserSettings = browserSettings;
        }
Пример #45
0
        /// <summary>
        /// Create a new OffScreen Chromium Browser
        /// </summary>
        /// <param name="address">Initial address (url) to load</param>
        /// <param name="browserSettings">The browser settings to use. If null, the default settings are used.</param>
        public ChromiumWebBrowser(string address, BrowserSettings browserSettings = null)
        {
            if (!Cef.IsInitialized && !Cef.Initialize())
            {
                throw new InvalidOperationException("Cef::Initialize() failed");
            }

            ResourceHandler = new DefaultResourceHandler();

            Cef.AddDisposable(this);
            Address = address;

            managedCefBrowserAdapter = new ManagedCefBrowserAdapter(this, true);
            managedCefBrowserAdapter.CreateOffscreenBrowser(IntPtr.Zero, browserSettings ?? new BrowserSettings(), address);
        }
Пример #46
0
        bool mLoadFired;        // Form was shown once

        public Form1()
        {
            InitializeComponent();

            BrowserSettings bs = new BrowserSettings();
            bs.WebGlDisabled = true;
            bs.PluginsDisabled = true;
            web_view = new WebView("http://127.0.0.1:8934/blink_1/", bs);
            web_view.Dock = DockStyle.Fill;
            web_view.RequestHandler = this;
            this.Controls.Add(web_view);

            mAllowVisible = !Blink1Server.startMinimized;
            stripMenuStartMinimized.Checked = !mAllowVisible;
        }
Пример #47
0
        public Form1()
        {
            InitializeComponent();

            BrowserSettings bs = new BrowserSettings();
            Console.WriteLine("BrowserSettings: " + bs);
            bs.WebGlDisabled = true;
            bs.PluginsDisabled = true;
            //web_view = new WebView("http://stackoverflow.com", bs);
            web_view = new WebView("http://127.0.0.1:8934/blink_1/", bs);
            web_view.Dock = DockStyle.Fill;
            web_view.RequestHandler = this;
            this.Controls.Add(web_view);
            //containerControl1.Controls.Add(web_view);
        }
Пример #48
0
 private void CefStartup()
 {
     CefSettings _settings = new CefSettings
     {
         PackLoadingDisabled = true                
     };
     
     Cef.Initialize(_settings);
     BrowserSettings settings = new BrowserSettings
     {
         FileAccessFromFileUrlsAllowed = true,
         UniversalAccessFromFileUrlsAllowed = true,
         WebSecurityDisabled = true
     };
     b.BrowserSettings = settings;
 }
Пример #49
0
 public override void SetBrowserSettings(BrowserSettings settings)
 {
     if (!init)
         Init();
     var config = new FirefoxConfigReader();
     using (var file = new FirefoxConfigFile()) {
         file.SetConfigFileName(profileName);
         var reader = file.GetConfigFileReader();
         if (reader == null)
             return;
         config.LoadConfig(reader);
         reader.Dispose();
         config.SetHomePage(settings.HomePage);
         config.SetProxySettings(settings.Proxy);
         config.SaveConfig(file.GetConfigFileWriter());
     }
 }
Пример #50
0
        static void Main(string[] args)
        {
            Settings settings = new Settings();
            BrowserSettings browserSettings = new BrowserSettings();

            if(!CEF.Initialize(settings, browserSettings))
            {
                Console.WriteLine("Couldn't initialise CEF");
                return;
            }

            CEF.RegisterScheme("test", new TestSchemeHandlerFactory());
            CEF.RegisterJsObject("bound", new BoundObject());

            Browser browser = new Browser();
            Application.Run(browser);
        }
Пример #51
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ChromiumWebBrowser"/> class.
        /// </summary>
        /// <param name="address">The address.</param>
        /// <exception cref="System.InvalidOperationException">Cef::Initialize() failed</exception>
        public ChromiumWebBrowser(string address)
        {
            if (!Cef.IsInitialized && !Cef.Initialize())
            {
                throw new InvalidOperationException("Cef::Initialize() failed");
            }

            Cef.AddDisposable(this);
            Address = address;

            Dock = DockStyle.Fill;

            FocusHandler = new DefaultFocusHandler(this);
            ResourceHandlerFactory = new DefaultResourceHandlerFactory();
            BrowserSettings = new BrowserSettings();

            managedCefBrowserAdapter = new ManagedCefBrowserAdapter(this, false);
        }
Пример #52
0
        public AuthorizationView(IRequestHandler requestHandler)
        {
            using (var settings = new Settings{ PackLoadingDisabled = true})
                if (!CEF.Initialize(settings)) return;

            InitializeComponent();
            BrowserSettings bs = new BrowserSettings
            {
                DeveloperToolsDisabled = true,
                FullscreenEnabled = false,
                LocalStorageDisabled = true
            };

            webView = new WebView(Constants.AuthorizationURL, bs) { Dock = DockStyle.Fill };

            toolStripContainer1.ContentPanel.Controls.Add(webView);
            webView.RequestHandler = requestHandler;
        }
Пример #53
0
        public WebViewContentControl()
        {
            string data;
            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MetroWebbrowser.Resources.theme.css"))
            using (var reader = new StreamReader(stream))
            {
                data = reader.ReadToEnd();
            }
            data = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(data));

            var bs = new BrowserSettings
            {
                UserStyleSheetEnabled = true,
                UserStyleSheetLocation = @"data:text/css;charset=utf-8;base64," + data
            };
            internal_web_view = new WebView("http://www.google.com", bs);
            internal_web_view.PropertyChanged += WebViewPropertyChanged;
            Content = internal_web_view;
        }
        public MainWindow()
        {
            InitializeComponent();

            CEF.Initialize(new Settings { CachePath = @".\cachepath" });

            var browserSettings = new BrowserSettings
            {
                UniversalAccessFromFileUrlsAllowed = true
            };

            var urlToNavigate = AppDomain.CurrentDomain.BaseDirectory + @"client\index.html";

            webView = new WebView(urlToNavigate, browserSettings);
            webView.LoadCompleted += webView_LoadCompleted;
            webView.RegisterJsObject("cefCallback", new CefBridge());

            CefSharpContainer.Children.Add(webView);
        }
Пример #55
0
        private void Form1_Load(object sender, EventArgs e)
        {
            if (webView == null)
            {
                var setting = new BrowserSettings()
                {
                    HistoryDisabled = true,
                    MinimumFontSize = 12
                };

                webView = new WebView(strURL, setting);
                webView.Dock = DockStyle.Fill;
                this.Controls.Add(webView);

                txtURL.Text = strURL;
            }

            webView.RequestHandler = new RequestHandler(frmDownloadList);
        }
Пример #56
0
        /// <summary>
        /// Create a new OffScreen Chromium Browser
        /// </summary>
        /// <param name="address">Initial address (url) to load</param>
        /// <param name="browserSettings">The browser settings to use. If null, the default settings are used.</param>
        /// <param name="requestcontext">See <see cref="RequestContext"/> for more details. Defaults to null</param>
        public ChromiumWebBrowser(string address = "", BrowserSettings browserSettings = null, RequestContext requestcontext = null)
        {
            if (!Cef.IsInitialized && !Cef.Initialize())
            {
                throw new InvalidOperationException("Cef::Initialize() failed");
            }

            BitmapFactory = new BitmapFactory(BitmapLock);

            ResourceHandlerFactory = new DefaultResourceHandlerFactory();
            BrowserSettings = browserSettings ?? new BrowserSettings();
            RequestContext = requestcontext;

            Cef.AddDisposable(this);
            Address = address;

            managedCefBrowserAdapter = new ManagedCefBrowserAdapter(this, true);
            managedCefBrowserAdapter.CreateOffscreenBrowser(IntPtr.Zero, BrowserSettings, RequestContext, address);
        }
Пример #57
0
        public _CefBrowser(string start_url)
        {
            var cefSettings = new Settings();
                cefSettings.CachePath = (Global.AppDir + @"\cache");
            CEF.Initialize(cefSettings);
            CEF.SetCookiePath(Global.AppDir+@"\cookies");
            var bsettings = new BrowserSettings();
            bool debug = false;
            bool.TryParse(Config.get("system", "debug"), out debug);
            bsettings.DeveloperToolsDisabled = !debug;
            webview = new WebView(start_url, bsettings);

            webview.PropertyChanged += (sender, e) => {
                if (e.PropertyName == "Title")
                {
                    if(DocumentTitleChanged!=null)
                        DocumentTitleChanged(this, new EventArgs());
                    webview.ExecuteScript("document.addEventListener('DOMContentLoaded', function(){window.external.dom_ready()}, false); ");
                }
            };
        }
        public ChromiumHeadlessBrowserWithCefSharp(string url, int width, int height)
        {
            Cef.Initialize(new CefSettings());

            // Create the offscreen Chromium browser
            var settings = new BrowserSettings
                               {
                                   FileAccessFromFileUrlsAllowed = true,
                                   UniversalAccessFromFileUrlsAllowed = true,
                                   WebSecurityDisabled = true,
                               };

            this.browser = new ChromiumWebBrowser(url, settings);

            // Set the size of the browser
            this.browser.Size = new Size(width, height);

            // An event that is fired when the first page is finished loading.
            // This returns to us from another thread.
            this.browser.FrameLoadEnd += this.BrowserFrameLoadEnd;
            this.browser.ConsoleMessage += this.BrowserConsoleMessage;
        }
Пример #59
0
        public TabView(MainWindow mw, string url)
        {
            InitializeComponent();

            //Assignments

            mainWindow = mw;
            LastWebsite = "";
            target = "";

            WebView.LifeSpanHandler = this;
            splitChar = (char) 42;
            WebView.DownloadHandler = this;
            WebView.DisplayHandler = this;
            BrowserSettings s1 = new BrowserSettings();
            s1.LocalStorage = CefState.Enabled;
            s1.Databases = CefState.Enabled;
            s1.ApplicationCache = CefState.Enabled;
            WebView.BrowserSettings = s1;
            refreshing = false;
            SnackBar.Visibility = Visibility.Hidden;
            allItems1 = new List<string>();
            WebView.MenuHandler = this;

            //Events

            WebView.FrameLoadEnd += WebView_FrameLoadEnd;
            WebView.TitleChanged += WebView_TitleChanged;
            Loaded += TabView_Loaded;
            WebView.IsBrowserInitializedChanged += WebView_IsBrowserInitializedChanged;
            WebView.FrameLoadStart += WebView_FrameLoadStart;

            //Method calls

            HideSuggestions();
            mw.Pages.Add(this);

            urlToLoad = url;
        }
        public MainWindow()
        {
            InitializeComponent();

            Cef.Initialize(new CefSettings { CachePath = @".\cachepath" });

            var urlToNavigate = AppDomain.CurrentDomain.BaseDirectory + @"client\index.html";
            var browserSettings = new BrowserSettings
            {
                UniversalAccessFromFileUrlsAllowed = true,
                WebSecurityDisabled = true
            };

            webBrowser = new ChromiumWebBrowser();
            webBrowser.Address = urlToNavigate;
            webBrowser.BrowserSettings = browserSettings;

            webBrowser.RegisterJsObject("cefCallback", new CefBridge());

            CefSharpContainer.Children.Add(webBrowser);
        }