using CefSharp;
using TweetDuck.Resources;
using TweetLib.Core.Features.Plugins;

namespace TweetDuck.Plugins {
	sealed class PluginSchemeFactory : ISchemeHandlerFactory {
		public const string Name = PluginSchemeHandler<IResourceHandler>.Name;

		private readonly PluginSchemeHandler<IResourceHandler> handler;

		public PluginSchemeFactory(ResourceProvider resourceProvider) {
			handler = new PluginSchemeHandler<IResourceHandler>(resourceProvider);
		}

		internal void Setup(PluginManager plugins) {
			handler.Setup(plugins);
		}

		public IResourceHandler Create(IBrowser browser, IFrame frame, string schemeName, IRequest request) {
			return handler.Process(request.Url);
		}
	}
}