Ejemplo n.º 1
0
        public IpcSession(IIpcPlatformAdapter adapter, Uri url, ElectroliteOptions options)
        {
            _adapter       = adapter;
            Url            = url;
            StartupOptions = options;
            var processId = Process.GetCurrentProcess().Id;

            _duplex = new IpcPipeDuplex <IBrowserHost, IBrowserWindow>(new IpcDuplexParameters <IBrowserHost>
            {
                ClientPipe     = ElectroliteCommon.ElectroliteBrowser(processId),
                ServerEndpoint = ElectroliteCommon.ElectroliteHostEndpoint(processId),
                ServerPipe     = ElectroliteCommon.ElectroliteHost(processId),
                ServerFactory  = provider => new BrowserHost(this)
            });
            _source      = new CancellationTokenSource();
            _startWaiter = new TaskCompletionSource <bool>();
        }
Ejemplo n.º 2
0
        public MainForm(IpcPipeDuplex <IBrowserWindow, IBrowserHost> duplex, SplashForm splash)
        {
            _duplex  = duplex;
            _splash  = splash;
            Visible  = false;
            _painter = new SettingsApplier(this);
            var startup = _duplex.Client.Order(x => x.GetStartupOptions());

            ApplySettings(startup.Options);
            var browser = new WebView
            {
                Url = new Uri(startup.Url.AbsoluteUri)
            };

            browser.DocumentLoaded += Browser_LoadingStateChanged;
            Content = browser;
            Closed += MainForm_FormClosed;
            _duplex.RunBackground();
        }
Ejemplo n.º 3
0
 public MainForm(IpcPipeDuplex <IBrowserWindow, IBrowserHost> duplex, Form splash)
 {
     _duplex        = duplex;
     _splash        = splash;
     _transparenter = new Transparenter(this);
     _painter       = new SettingsApplier(this);
     _startup       = _duplex.Client.Order(x => x.GetStartupOptions());
     ApplySetttings(_startup.Options);
     _painter.CenterForm();
     _browser = new ChromiumWebBrowser(_startup.Url.AbsoluteUri)
     {
         Dock = DockStyle.Fill,
     };
     _browser.LoadingStateChanged += Browser_LoadingStateChanged;
     Controls.Add(_browser);
     ResizeBegin += (s, e) => SuspendLayout();
     ResizeEnd   += (s, e) => ResumeLayout(true);
     FormClosed  += MainForm_FormClosed;
     _transparenter.MakeTransparent();
     _duplex.RunBackground();
 }