public virtual void Configure(IChromelyContainer container) { EnsureContainerValid(container); container.RegisterByTypeSingleton(typeof(IChromelyRequestTaskRunner), typeof(DefaultRequestTaskRunner)); container.RegisterByTypeSingleton(typeof(IChromelyCommandTaskRunner), typeof(DefaultCommandTaskRunner)); }
public CefGlueApp(IChromelyContainer container, IChromelyConfiguration config) { _container = container; _config = config; _renderProcessHandler = RenderProcessHandler; _browserProcessHandler = BrowserProcessHandler; }
public override void RegisterEvents(IChromelyContainer container) { EnsureContainerValid(container); RegisterEventHandler(container, CefEventKey.FrameLoadEnd, new ChromelyEventHandler <FrameLoadEndEventArgs>(CefEventKey.FrameLoadEnd, Program.OnFrameLoaded)); RegisterEventHandler(container, CefEventKey.BeforeClose, new ChromelyEventHandler <BeforeCloseEventArgs>(CefEventKey.BeforeClose, Program.OnBeforeClose)); }
protected void EnsureContainerValid(IChromelyContainer container) { if (container == null) { throw new Exception("Container cannot be null. Initialize method must be called first."); } }
protected HostBase(IChromelyContainer container, IChromelyConfiguration config, IChromelyRequestTaskRunner requestTaskRunner, IChromelyCommandTaskRunner commandTaskRunner) { _container = container; _config = config; _requestTaskRunner = requestTaskRunner; _commandTaskRunner = commandTaskRunner; }
/// <summary> /// The create methods. /// </summary> /// <param name="container"> /// The container of <see cref="IChromelyContainer"/> object. /// </param> /// <returns> /// The <see cref="ChromelyConfiguration"/> object. /// </returns> public static ChromelyConfiguration Create(IChromelyContainer container = null) { if (container != null) { IoC.Container = container; } switch (ChromelyRuntime.Platform) { case ChromelyPlatform.MacOSX: //TODO: check and define requirements for Mac OS - for now use linux settings case ChromelyPlatform.Linux: return(Instance .WithCustomSetting(CefSettingKeys.MultiThreadedMessageLoop, false) .WithCustomSetting(CefSettingKeys.SingleProcess, true) .WithCustomSetting(CefSettingKeys.NoSandbox, true) .WithCommandLineArg("disable-extensions", "1") .WithCommandLineArg("disable-gpu", "1") .WithCommandLineArg("disable-gpu-compositing", "1") .WithCommandLineArg("disable-smooth-scrolling", "1") .WithCommandLineArg("no-sandbox", "1") .WithCommandLineArg("no-zygote", "1")); case ChromelyPlatform.Windows: return(Instance); default: throw new PlatformNotSupportedException(); } }
private void RegisterControllers(IChromelyContainer container) { container.RegisterSingleton(typeof(ChromelyController), nameof(WindowController), typeof(WindowController)); container.RegisterSingleton(typeof(ChromelyController), Guid.NewGuid().ToString(), typeof(DemoController)); container.RegisterSingleton(typeof(ChromelyController), Guid.NewGuid().ToString(), typeof(ExecuteJavaScriptDemoController)); container.RegisterSingleton(typeof(ChromelyController), Guid.NewGuid().ToString(), typeof(TmdbMoviesController)); container.RegisterSingleton(typeof(ChromelyController), Guid.NewGuid().ToString(), typeof(TodoListController)); }
public override void Configure(IChromelyContainer container) { base.Configure(container); container.RegisterSingleton(typeof(ChromelyController), Guid.NewGuid().ToString(), typeof(DemoController)); container.RegisterSingleton(typeof(ChromelyController), Guid.NewGuid().ToString(), typeof(ExecuteJavaScriptDemoController)); container.RegisterSingleton(typeof(ChromelyController), Guid.NewGuid().ToString(), typeof(TmdbMoviesController)); container.RegisterSingleton(typeof(ChromelyController), Guid.NewGuid().ToString(), typeof(TodoListController)); }
public override void Configure(IChromelyContainer container) { base.Configure(container); // Register controllers container.RegisterSingleton <ChromelyController, MbedController>(Guid.NewGuid().ToString()); container.RegisterSingleton <ChromelyController, AnalysisController>(Guid.NewGuid().ToString()); container.RegisterSingleton <ChromelyController, CalibrationController>(Guid.NewGuid().ToString()); }
public override void Configure(IChromelyContainer container) { base.Configure(container); base.Configuration.StartUrl = $"localhost:{WebApplication.Program.Port}"; #if DEBUG #else base.Configuration.CefDownloadOptions.DownloadSilently = true; #endif }
public static ChromelyConfiguration Create(IChromelyContainer container = null) { if (container != null) { IoC.Container = container; } return(new ChromelyConfiguration()); }
private void RegisterEventHandler <TEventArgs>( IChromelyContainer container, CefEventKey key, Action <object, TEventArgs, IChromelyContainer> handler) { var service = CefEventHandlerTypes.GetHandlerType(key); var eventHandler = new ChromelyEventHandler <TEventArgs>(key, (s, e) => handler(s, e, container)); container.RegisterInstance(service, eventHandler.Key, eventHandler); }
public static void RegisterCommnandRoutes(IChromelyContainer container, Dictionary <string, CommandRoute> newCommandDictionary) { if (newCommandDictionary != null && newCommandDictionary.Any()) { foreach (var item in newCommandDictionary) { container.RegisterInstance(typeof(CommandRoute), item.Key, item.Value); } } }
public AppBuilder UseContainer <T>(IChromelyContainer container = null) where T : IChromelyContainer { _container = container; if (_container == null) { _container = (T)Activator.CreateInstance(typeof(T)); } return(this); }
public override void RegisterEvents(IChromelyContainer container) { EnsureContainerValid(container); RegisterEventHandler(container, CefEventKey.FrameLoadStart, new ChromelyEventHandler <FrameLoadStartEventArgs>(CefEventKey.FrameLoadEnd, OnFrameLoadStart)); RegisterEventHandler(container, CefEventKey.FrameLoadEnd, new ChromelyEventHandler <FrameLoadEndEventArgs>(CefEventKey.FrameLoadEnd, OnFrameLoadEnd)); RegisterEventHandler(container, CefEventKey.ConsoleMessage, new ChromelyEventHandler <ConsoleMessageEventArgs>(CefEventKey.ConsoleMessage, OnConsoleMessage)); RegisterEventHandler(container, CefEventKey.StatusMessage, new ChromelyEventHandler <StatusMessageEventArgs>(CefEventKey.FrameLoadEnd, OnStatusMessage)); RegisterEventHandler(container, CefEventKey.BeforeClose, new ChromelyEventHandler <BeforeCloseEventArgs>(CefEventKey.FrameLoadEnd, OnBeforeClose)); }
/// <summary> /// Creates the CefGlue browser. /// </summary> /// <param name="owner"></param> /// <param name="container"></param> /// <param name="config"></param> /// <param name="commandTaskRunner"></param> /// <param name="browserMessageRouter"></param> /// <param name="settings"></param> public CefGlueBrowser(object owner, IChromelyContainer container, IChromelyConfiguration config, IChromelyCommandTaskRunner commandTaskRunner, CefMessageRouterBrowserSide browserMessageRouter, CefBrowserSettings settings) { Owner = owner; _container = container; _config = config; _commandTaskRunner = commandTaskRunner; _browserMessageRouter = browserMessageRouter; _settings = settings; StartUrl = config.StartUrl; }
public override void Configure(IChromelyContainer container) { base.Configure(container); container.RegisterInstance(typeof(IEventFactory), nameof(IEventFactory), new EventFactory()); container.RegisterSingleton( typeof(ChromelyController), nameof(ConfigurationController), typeof(ConfigurationController)); }
public static ActionRoute GetActionRoute(IChromelyContainer container, RoutePath routePath) { object routeObj = container.GetInstance(typeof(ActionRoute), routePath.Key); if ((routeObj == null) || !(routeObj is ActionRoute)) { throw new Exception($"No route found for method:{routePath.Method} route path:{routePath.Path}."); } return (ActionRoute)routeObj; }
public override void Configure(IChromelyContainer container) { base.Configure(container); container.RegisterSingleton(typeof(ChromelyController), Guid.NewGuid().ToString(), typeof(MovieController)); container.RegisterSingleton(typeof(ChromelyController), Guid.NewGuid().ToString(), typeof(ProductController)); container.RegisterSingleton(typeof(ChromelyController), Guid.NewGuid().ToString(), typeof(ScreenTimeController)); container.RegisterSingleton(typeof(ChromelyController), Guid.NewGuid().ToString(), typeof(OrderController)); container.RegisterSingleton(typeof(ChromelyController), Guid.NewGuid().ToString(), typeof(SecurityController)); container.RegisterSingleton(typeof(ChromelyController), Guid.NewGuid().ToString(), typeof(KijkwijzerController)); }
public static ActionRoute GetActionRoute(IChromelyContainer container, RoutePath routePath) { var route = container.GetInstance(typeof(ActionRoute), routePath.Key) as ActionRoute; if (route == null) { throw new Exception($"No route found for method:{routePath.Method} route path:{routePath.Path}."); } return(route); }
public static bool IsActionRouteAsync(IChromelyContainer container, RoutePath routePath) { try { var route = container.GetInstance(typeof(ActionRoute), routePath.Key) as ActionRoute; return(route == null ? false : route.IsAsync); } catch {} return(false); }
public static CommandRoute GetCommandRoute(IChromelyContainer container, string commandPath) { var key = CommandRoute.GetKeyFromPath(commandPath); object commandObj = container.GetInstance(typeof(CommandRoute), key); if ((commandObj == null) || !(commandObj is CommandRoute)) { throw new Exception($"No route found for command with key:{key}."); } return (CommandRoute)commandObj; }
public static CommandRoute GetCommandRoute(IChromelyContainer container, string commandPath) { var key = CommandRoute.GetKeyFromPath(commandPath); var command = container.GetInstance(typeof(CommandRoute), key) as CommandRoute; if (command == null) { throw new Exception($"No route found for command with key:{key}."); } return(command); }
public Window(IChromelyNativeHost nativeHost, IChromelyContainer container, IChromelyConfiguration config, IChromelyCommandTaskRunner commandTaskRunner, CefMessageRouterBrowserSide browserMessageRouter) : base(nativeHost, config) { _container = container; _config = config; _commandTaskRunner = commandTaskRunner; _browserMessageRouter = browserMessageRouter; Browser = new CefGlueBrowser(this, _container, config, _commandTaskRunner, _browserMessageRouter, new CefBrowserSettings()); Browser.Created += OnBrowserCreated; // Set event handler Browser.SetEventHandlers(_container); ShowWindow(); }
/// <summary> /// The create methods. /// </summary> /// <param name="container"> /// The container of <see cref="IChromelyContainer"/> object. /// </param> /// <returns> /// The <see cref="ChromelyConfiguration"/> object. /// </returns> public static ChromelyConfiguration Create(IChromelyContainer container = null) { if (container != null) { IoC.Container = container; } EnsureExpectedWorkingDirectory(); switch (ChromelyRuntime.Platform) { case ChromelyPlatform.MacOSX: Instance.Platform = ChromelyPlatform.MacOSX; return(Instance .WithCustomSetting(CefSettingKeys.MultiThreadedMessageLoop, false) .WithCustomSetting(CefSettingKeys.NoSandbox, true) .WithCommandLineArg("disable-extensions", "1") .WithCommandLineArg("disable-gpu", "1") .WithCommandLineArg("disable-gpu-compositing", "1") .WithCommandLineArg("disable-smooth-scrolling", "1") .WithCommandLineArg("no-sandbox", "1") .WithCommandLineArg("no-zygote", "1")); case ChromelyPlatform.Linux: Instance.Platform = ChromelyPlatform.Linux; return(Instance .WithCustomSetting(CefSettingKeys.MultiThreadedMessageLoop, false) .WithCustomSetting(CefSettingKeys.NoSandbox, true) .WithCommandLineArg("disable-extensions", "1") .WithCommandLineArg("disable-gpu", "1") .WithCommandLineArg("disable-gpu-compositing", "1") .WithCommandLineArg("disable-smooth-scrolling", "1") .WithCommandLineArg("no-sandbox", "1") .WithCommandLineArg("no-zygote", "1")); case ChromelyPlatform.Windows: Instance.Platform = ChromelyPlatform.Windows; // Temporary throw new Exception("Windows migration to .NET Core 3 is pending.\nCurrently only Linux and MacOS suppored.\n Please check back soon."); // return Instance; default: throw new PlatformNotSupportedException(); } }
public Window(IChromelyNativeHost nativeHost, IChromelyContainer container, IChromelyConfiguration config, IChromelyCommandTaskRunner commandTaskRunner, CefMessageRouterBrowserSide browserMessageRouter) : base(nativeHost, config) { _container = container; _config = config; _commandTaskRunner = commandTaskRunner; _browserMessageRouter = browserMessageRouter; Browser = CreateBrowser(new CefBrowserSettings()); // Set event handler Browser.SetEventHandlers(_container); Browser.Created += OnBrowserCreated; // 'Created' event sometimes tries to attach interceptors too early, while all windows is not created yet, // so it's better to use 'FrameLoadStart'. Browser.FrameLoadStart += OnFrameLoadStart; ShowWindow(); }
public AppBuilder Build() { if (_stepCompleted != 2) { throw new Exception("Invalid order: step 2: UseApp must be completed before step 3."); } if (_chromelyApp == null) { throw new Exception($"ChromelyApp {nameof(_chromelyApp)} cannot be null."); } _chromelyApp.Initialize(_container, _appSettings, _config, _logger); _container = _chromelyApp.Container; _config = _chromelyApp.Configuration; _chromelyApp.Configure(_container); _chromelyApp.RegisterEvents(_container); _stepCompleted = 3; return(this); }
public virtual void Initialize(IChromelyContainer container, IChromelyConfiguration config, IChromelyLogger chromelyLogger) { EnsureExpectedWorkingDirectory(); if (config == null) { var configurator = new ConfigurationHandler(); config = configurator.Parse <DefaultConfiguration>(); } if (config == null) { config = new DefaultConfiguration(); } InitConfiguration(config); if (chromelyLogger == null) { chromelyLogger = new SimpleLogger(); } var defaultLogger = new DefaultLogger(); defaultLogger.Log = chromelyLogger; Logger.Instance = defaultLogger; config.Platform = ChromelyRuntime.Platform; _container = container; if (_container == null) { _container = new SimpleContainer(); } // Register all primary objects _container.RegisterInstance(typeof(IChromelyContainer), typeof(IChromelyContainer).Name, _container); _container.RegisterInstance(typeof(IChromelyConfiguration), typeof(IChromelyConfiguration).Name, config); _container.RegisterInstance(typeof(IChromelyLogger), typeof(IChromelyLogger).Name, chromelyLogger); }
/// <summary> /// The create methods. /// </summary> /// <param name="container"> /// The container of <see cref="IChromelyContainer"/> object. /// </param> /// <returns> /// The <see cref="ChromelyConfiguration"/> object. /// </returns> public static ChromelyConfiguration Create(IChromelyContainer container = null) { if (container != null) { IoC.Container = container; } //TODO: Use CefRuntime.Platform if available x-platform with a single reference switch (Environment.OSVersion.Platform) { case PlatformID.MacOSX: //TODO: check requirements for Mac OS - for now use linux settings case PlatformID.Unix: case (PlatformID)128: // Framework (1.0 and 1.1) didn't include any PlatformID value for Unix, so Mono used the value 128. return(Instance .WithCustomSetting(CefSettingKeys.MultiThreadedMessageLoop, false) .WithCustomSetting(CefSettingKeys.SingleProcess, true) .WithCustomSetting(CefSettingKeys.NoSandbox, true) .WithCommandLineArg("disable-extensions", "1") .WithCommandLineArg("disable-gpu", "1") .WithCommandLineArg("disable-gpu-compositing", "1") .WithCommandLineArg("disable-smooth-scrolling", "1") .WithCommandLineArg("no-sandbox", "1") .WithCommandLineArg("no-zygote", "1")); case PlatformID.Win32NT: case PlatformID.Win32S: case PlatformID.Win32Windows: case PlatformID.WinCE: case PlatformID.Xbox: return(Instance); default: throw new PlatformNotSupportedException(); } }
public DefaultCommandTaskRunner(IChromelyContainer container) { _container = container; }