public TridentViewDispatcher(IWebBrowserFactory browserFactory, ISubscriptionProvider subscriptionProvider, IDictionary<Tuple<TargetAddressType, BrowserTab.TabType>, BrowserTabState> states)
            : base(browserFactory, subscriptionProvider)
        {
            ArgumentUtility.CheckNotNull ("states", states);

              _states = states;
        }
Exemplo n.º 2
0
        protected ViewDispatcherBase(IWebBrowserFactory browserFactory, ISubscriptionProvider subscriptionProvider)
        {
            ArgumentUtility.CheckNotNull ("browserFactory", browserFactory);
              ArgumentUtility.CheckNotNull ("subscriptionProvider", subscriptionProvider);

              _browserFactory = browserFactory;
              _subscriptionProvider = subscriptionProvider;
        }
Exemplo n.º 3
0
        public WebBrowserBase(IWebBrowserFactory factory)
        {
            Factory = factory;

            lock (uniqueBroserIndexLocker)
            {
                UniqueName = factory + "-" + (uniqueBrowserIndex++);
            }
        }
Exemplo n.º 4
0
 public static int GetInt32Option(this IWebBrowserFactory factory, string optionName, int defaultValue = 0)
 {
     if (factory.Options.TryGetValue(optionName, out var value))
     {
         return(Convert.ToInt32(value));
     }
     else
     {
         return(defaultValue);
     }
 }
Exemplo n.º 5
0
 public static string GetStringOption(this IWebBrowserFactory factory, string optionName, string defaultValue = "")
 {
     if (factory.Options.TryGetValue(optionName, out var value))
     {
         return(value);
     }
     else
     {
         return(defaultValue);
     }
 }
Exemplo n.º 6
0
 public static bool GetBooleanOption(this IWebBrowserFactory factory, string optionName, bool defaultValue = false)
 {
     if (factory.Options.TryGetValue(optionName, out var value))
     {
         return(Convert.ToBoolean(value));
     }
     else
     {
         return(defaultValue);
     }
 }
Exemplo n.º 7
0
        public async Task <IWebBrowser> GetOrCreateBrowser(IWebBrowserFactory factory)
        {
            IWebBrowser instance = null;

            while (true)
            {
                // try to find the browser in the pool
                runner.LogVerbose($"(#{Thread.CurrentThread.ManagedThreadId}) Looking for the browser in the browser {factory.Name} pool cache.");
                lock (locker)
                {
                    instance = pool.FirstOrDefault(b => b.Factory == factory);

                    if (instance != null)
                    {
                        pool.Remove(instance);
                    }
                }

                // if the browser is not in the cache, acquire a new one
                if (instance == null)
                {
                    runner.LogVerbose($"(#{Thread.CurrentThread.ManagedThreadId}) No browser {factory.Name} found in the cache, requesting a new one.");
                    instance = await factory.AcquireBrowser();
                }

                if (instance != null)
                {
                    runner.LogVerbose($"(#{Thread.CurrentThread.ManagedThreadId}) Browser instance {instance.UniqueName} acquired successfully.");
                    break;
                }

                // TODO: implement queue using TaskCompletionSource
                runner.LogVerbose($"(#{Thread.CurrentThread.ManagedThreadId}) No instances of {factory.Name} browser available, retrying in 5 seconds...");
                await Task.Delay(5000);
            }

            return(instance);
        }
Exemplo n.º 8
0
 public EdgeFastWebBrowserTmp(IWebBrowserFactory factory) : base(factory)
 {
 }
Exemplo n.º 9
0
 public static void LogError(this IWebBrowserFactory factory, Exception ex)
 {
     factory.TestSuiteRunner.LogError(ex);
 }
Exemplo n.º 10
0
 public static void LogInfo(this IWebBrowserFactory factory, string message)
 {
     factory.TestSuiteRunner.LogInfo(message);
 }
Exemplo n.º 11
0
 public EdgeDevWebBrowser(IWebBrowserFactory factory) : base(factory)
 {
 }
Exemplo n.º 12
0
 public DevWebBrowserBase(IWebBrowserFactory factory) : base(factory)
 {
 }
Exemplo n.º 13
0
 public FastWebBrowserBase(IWebBrowserFactory factory) : base(factory)
 {
 }
Exemplo n.º 14
0
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            var args = Args.Parse<DesktopGapCommandLineArguments> (e.Args);

              //try
              //{

              var configurator = new DesktopGapConfigurator();

              configurator.LoadFrom (args.ManifestUri);
              configurator.SetInternetExplorerFeatures (TridentWebBrowserMode.ForcedIE10, true, true, true, true);

              var startupUri = args.StartupUri;

              if (configurator.EnableResourceFilter)
              {
            var filter = new ProtocolWrapperManager();
            filter.RegisterProtocol (new FilteredHttpProtocolFactory (configurator.ResourceFilter));
            filter.RegisterProtocol (new FilteredHttpsProtocolFactory (configurator.ResourceFilter));
              }

              var htmlDocumentHandleRegistry = configurator.CreateDocumentRegistry (".");

              var subscriptionHandler = (ISubscriptionProvider) htmlDocumentHandleRegistry;
              _browserFactory = new TridentWebBrowserFactory (
              htmlDocumentHandleRegistry,
              subscriptionHandler,
              configurator.NonApplicationUrlFilter,
              configurator.StartUpFilter,
              configurator.AddInAllowedFilter);

              var converter = new BrushConverter();

              var applicationTabBrush = (Brush) converter.ConvertFrom (configurator.ApplicationTabColorCode);
              var nonApplicationTabBrush = (Brush) converter.ConvertFrom (configurator.NonApplicationTabColorCode);
              var homeTabBrush = (Brush) converter.ConvertFrom (configurator.HomeTabColorCode);

              var states = new Dictionary<Tuple<TargetAddressType, BrowserTab.TabType>, BrowserTabState>
                   {
                       {
                           Tuple.Create (TargetAddressType.Application, BrowserTab.TabType.CommonTab),
                           new BrowserTabState
                           {
                               HeaderColor = applicationTabBrush,
                               IsClosable = true,
                               ShowAddressBar = configurator.Application.AlwaysShowUrl
                           }
                       },
                       {
                           Tuple.Create (TargetAddressType.NonApplication, BrowserTab.TabType.CommonTab),
                           new BrowserTabState
                           {
                               HeaderColor = nonApplicationTabBrush,
                               IsClosable = true,
                               ShowAddressBar = true
                           }
                       },
                       {
                           Tuple.Create (TargetAddressType.Application, BrowserTab.TabType.HomeTab),
                           new BrowserTabState
                           {
                               HeaderColor = homeTabBrush,
                               IsClosable = false,
                               ShowAddressBar = configurator.Application.AlwaysShowUrl
                           }
                       },
                       {
                           Tuple.Create (TargetAddressType.NonApplication, BrowserTab.TabType.HomeTab),
                           new BrowserTabState
                           {
                               HeaderColor = nonApplicationTabBrush,
                               IsClosable = false,
                               ShowAddressBar = true
                           }
                       },
                   };

              var viewDispatcher = new TridentViewDispatcher (_browserFactory, subscriptionHandler, states);

              htmlDocumentHandleRegistry.DocumentRegistered += viewDispatcher.OnDocumentRegistered;
              htmlDocumentHandleRegistry.BeforeDocumentUnregister += viewDispatcher.OnBeforeDocumentUnregister;

              var homeUri = configurator.Application.BaseUri;

              if (configurator.Application.HomeUri != null)
            homeUri = configurator.Application.HomeUri;

              var mainWindow = new MainWindow (
              configurator.Application.Name,
              configurator.Application.IconUri != null
              ? new BitmapImage (configurator.Application.IconUri)
              : (BitmapImage) Current.Resources[c_defaultAppIcon],
              homeUri,
              viewDispatcher);
              if (configurator.Application.AlwaysOpenHomeUrl)
            mainWindow.NewStickyTab (homeUri, BrowserWindowStartMode.Active);

              if (startupUri != null && (configurator.StartUpFilter.IsAllowed (startupUri) || configurator.NonApplicationUrlFilter.IsAllowed (startupUri)))
            mainWindow.NewTab (startupUri, BrowserWindowStartMode.Active);

              mainWindow.Show();
              //}
              //catch (Exception ex)
              //{
              //  MessageBox.Show (ex.ToString(), "Error", MessageBoxButton.OK, MessageBoxImage.Error);
              //  Shutdown();
              //}
        }