protected override bool ProcessRequest(CefRequest request, CefCallback callback)
        {
            var requestNo = Interlocked.Increment(ref _requestNo);

            var response = new StringBuilder();

            response.AppendFormat("<pre>\n");
            response.AppendFormat("Requests processed by DemoAppResourceHandler: {0}\n", requestNo);

            response.AppendFormat("Method: {0}\n", request.Method);
            response.AppendFormat("URL: {0}\n", request.Url);

            response.AppendLine();
            response.AppendLine("Headers:");
            var headers = request.GetHeaderMap();
            foreach (string key in headers)
            {
                foreach (var value in headers.GetValues(key))
                {
                    response.AppendFormat("{0}: {1}\n", key, value);
                }
            }
            response.AppendLine();

            response.AppendFormat("</pre>\n");

            responseData = Encoding.UTF8.GetBytes(response.ToString());

            callback.Continue();
            return true;
        }
 public CefNavigatingEventArgs(CefFrame frame, CefRequest request, CefHandlerNavType navType, bool isRedirect)
 {
     this.frame = frame;
     this.request = request;
     this.navType = navType;
     this.isRedirect = isRedirect;
 }
        protected override bool OnBeforeBrowse(CefBrowser browser, CefFrame frame, CefRequest request, CefHandlerNavType navType, bool isRedirect)
        {
            #if DIAGNOSTICS
            Cef.Logger.Trace(LogTarget.CefRequestHandler, "OnBeforeBrowse: Method=[{0}] Url=[{1}] NavType=[{2}] IsRedirect=[{3}]", request.GetMethod(), request.GetURL(), navType, isRedirect);
            #endif

            var cancel = this.context.OnNavigating(frame, request, navType, isRedirect);
            if (cancel) return true;

            if (frame.IsMain)
            {
                // browser navigating to a new page
                this.context.ClearFrames();
                this.context.AttachMainFrame(frame);

                this.context.ClearReadyState();
                this.context.SetFrameReadyState(null, FrameReadyState.Navigating);
            }
            else if ((this.context.ReadyOptions & CefReadyOptions.Frames) != 0)
            {
                this.context.SetFrameReadyState(frame.GetName(), FrameReadyState.Navigating);
            }

            return false;
        }
        // TODO: use OnBeforeResourceLoad to OnResourceResponse to detect resource loading, and waiting when all resources will be loaded
        protected override bool OnBeforeResourceLoad(CefBrowser browser, CefRequest request, out string redirectUrl, out CefStreamReader resourceStream, CefResponse response, int loadFlags)
        {
            var prevColor = Console.ForegroundColor;
            Console.ForegroundColor = ConsoleColor.DarkMagenta;
            Console.WriteLine("OnBeforeResourceLoad: {0}", request.GetURL());
            Console.ForegroundColor = prevColor;

            redirectUrl = null;
            resourceStream = null;
            return false;
        }
Esempio n. 5
0
 protected override CefResourceHandler GetResourceHandler(CefBrowser browser, CefFrame frame, CefRequest request)
 {
     if (Guid.TryParse(request.GetHeaderByName("CefNet-Source"), out Guid sourceKey) &&
         _customSources.Remove(sourceKey, out CefResourceHandler resourceHandler))
     {
         return(resourceHandler);
     }
     return(base.GetResourceHandler(browser, frame, request));
 }
Esempio n. 6
0
 protected override bool OnBeforeBrowse(CefBrowser browser, CefFrame frame, CefRequest request, bool userGesture, bool isRedirect)
 {
     return(Logic.OnBeforeBrowse(request, userGesture));
 }
Esempio n. 7
0
 /// <summary>
 /// The OnBeforeBrowse.
 /// </summary>
 /// <param name="browser">The browser<see cref="CefBrowser"/>.</param>
 /// <param name="frame">The frame<see cref="CefFrame"/>.</param>
 /// <param name="request">The request<see cref="CefRequest"/>.</param>
 /// <param name="userGesture">The userGesture<see cref="bool"/>.</param>
 /// <param name="isRedirect">The isRedirect<see cref="bool"/>.</param>
 /// <returns>The <see cref="bool"/>.</returns>
 protected override bool OnBeforeBrowse(CefBrowser browser, CefFrame frame, CefRequest request, bool userGesture, bool isRedirect)
 {
     //DemoApp.BrowserMessageRouter.OnBeforeBrowse(browser, frame);
     return(base.OnBeforeBrowse(browser, frame, request, userGesture, isRedirect));
 }
Esempio n. 8
0
 protected override CefResourceHandler Create(CefBrowser browser, CefFrame frame, string schemeName, CefRequest request)
 {
     return(new CefGlueHttpSchemeHandler(_config, _requestTaskRunner));
 }
Esempio n. 9
0
 protected override bool ProcessRequest(CefRequest request, CefCallback callback)
 {
     callback.Continue();
     return(true);
 }
        protected override bool OnBeforeNavigation(CefBrowser browser, CefFrame frame, CefRequest request, CefNavigationType navigation_type,
                                                   bool isRedirect)
        {
            if (browsers.TryGetValue(browser.Identifier, out var browserController))
            {
                browserController.OnBeforeNavigate(frame, request, navigation_type, isRedirect);
            }

            return(false);
        }
Esempio n. 11
0
 protected override CefResourceHandler Create(CefBrowser browser, CefFrame frame, string schemeName, CefRequest request)
 {
     return new DumpRequestResourceHandler();
 }
 protected override bool Open(CefRequest request, out bool handleRequest, CefCallback callback)
 {
     handleRequest = false;
     return(false);
 }
 /// <inheritdoc/>
 protected override bool PrepareRequest(CefRequest request)
 {
     _httpRequest = BuildHttpRequest(request);
     return(true);
 }
Esempio n. 14
0
        /// <summary>
        /// Called on the IO thread before a resource is loaded. To allow the resource
        /// to load normally return NULL. To specify a handler for the resource return
        /// a CefResourceHandler object. The |request| object should not be modified in
        /// this callback.
        /// </summary>
        /// <param name="browser"></param>
        /// <param name="frame"></param>
        /// <param name="request"></param>
        /// <returns></returns>
        protected override CefResourceHandler GetResourceHandler(CefBrowser browser, CefFrame frame, CefRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException("request");
            }

            if (Application.Current.IsContentUrl(request.Url))
            {
                return(new ContentResourceHandler());
            }

            if (Application.Current.IsNativeRequestUrl(request.Url))
            {
                return(new NativeRequestResourceHandler());
            }

            Logger.Debug(string.Format("External request: {0}", request.Url));

            return(null);
        }
Esempio n. 15
0
 protected override bool OnBeforeBrowse(CefBrowser browser, CefFrame frame, CefRequest request, bool isRedirect)
 {
     DemoApp.BrowserMessageRouter.OnBeforeBrowse(browser, frame);
     return base.OnBeforeBrowse(browser, frame, request, isRedirect);
 }
Esempio n. 16
0
 protected override ResourceHandlerBase GetResourceHandler(CefBrowser browser, CefFrame frame, CefRequest request) => new ResourceHandler(this);
        protected override bool ProcessRequest(CefRequest request, CefCallback callback)
        {
            Task task = new Task(() =>
            {
                try
                {
                    if (configuration != null && configuration.Profiles != null && !string.IsNullOrEmpty(this.profileName))
                    {
                        Profile profile = configuration.Profiles.FirstOrDefault(ss => !string.IsNullOrEmpty(ss.Key) && ss.Key.ToLower().Equals(this.profileName.ToLower()));
                        if (profile != null && !string.IsNullOrEmpty(profile.Engine) && profile.Value != null)
                        {
                            var echo = JsonMapper.ToJson(new StatusHelper("Check databse profile"));

                            var dir = Environment.CurrentDirectory + "\\Web\\" + configuration.Application + "\\reports";
                            if (!Directory.Exists(dir))
                            {
                                Directory.CreateDirectory(dir);
                            }

                            var dt   = DateTime.Now.ToString("yyyyMMddHmmssfff");
                            var file = this.profileName.Replace(" ", "_") + "_" + dt + ".zip";
                            var path = dir + "\\" + file;

                            var SQLpath = @"db.sql";
                            var dbValue = "database";
                            if (profile.Engine.Trim().ToUpper().Equals("SQL") || profile.Engine.Trim().ToUpper().Equals("MYSQL"))
                            {
                                dbValue = "database";
                            }
                            else if (profile.Engine.Trim().ToUpper().Equals("SQLITE"))
                            {
                                dbValue = "data source";
                            }

                            var parts = profile.Value.ToString().Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).Select(s => s.Trim());
                            foreach (var part in parts)
                            {
                                var sections = part.Split(new char[] { '=' }, StringSplitOptions.RemoveEmptyEntries).Select(s => s.Trim()).ToList();
                                if (sections.Count == 2)
                                {
                                    var key   = sections[0];
                                    var value = sections[1];
                                    if (key.ToLower() == dbValue)
                                    {
                                        SQLpath = SQLpath + @".sql";
                                        break;
                                    }
                                }
                            }

                            if (profile.Engine.Trim().ToUpper().Equals("SQL"))
                            {
                                var connectionString = profile.Value.ToString();
                            }
                            else if (profile.Engine.Trim().ToUpper().Equals("MYSQL"))
                            {
                                var connectionString = profile.Value.ToString();

                                if (this.query.ToLower() == "database/backup")
                                {
                                    /*using (MemoryStream ms = new MemoryStream())
                                     * {
                                     *  using (MySqlConnection conn = new MySqlConnection(connectionString))
                                     *  {
                                     *      using (MySqlCommand cmd = new MySqlCommand())
                                     *      {
                                     *          using (MySqlBackup mb = new MySqlBackup(cmd))
                                     *          {
                                     *              cmd.Connection = conn;
                                     *              conn.Open();
                                     *              //mb.ExportInfo.AddDropDatabase = true;
                                     *              mb.ExportInfo.AddCreateDatabase = true;
                                     *              mb.ExportInfo.ExportTableStructure = true;
                                     *              mb.ExportInfo.ExportRows = true;
                                     *              mb.ExportToMemoryStream(ms);
                                     *
                                     *              using (ZipFile zip = new ZipFile())
                                     *              {
                                     *                  zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
                                     *                  //zip.Password = zipPassword;
                                     *                  zip.Encryption = EncryptionAlgorithm.PkzipWeak; // the default: you might need to select the proper value here
                                     *                  zip.StatusMessageTextWriter = Console.Out;
                                     *                  zip.AddEntry(SQLpath, ms.ToArray());
                                     *                  zip.Save(path);
                                     *
                                     *                  echo = serializer.Serialize(new FileHelper("OK", "reports/" + file, file, 1));
                                     *              }
                                     *          }
                                     *      }
                                     *  }
                                     * }*/
                                }
                                else if (this.query.ToLower() == "database/restore")
                                {
                                    //var path = Environment.CurrentDirectory + @"\Reports\";
                                    //var SQLpath = path + @"kagacotz_messaging_db - " + DateTime.Now.ToString("ddMMMyyyy H.mm.ss.fff") + ".sql";

                                    //using (var zip = ZipFile.Read(file))
                                    //{
                                    //    //zip.Password = zipPassword;
                                    //    zip.Encryption = EncryptionAlgorithm.PkzipWeak;
                                    //    zip.StatusMessageTextWriter = Console.Out;
                                    //    var entry = zip[SQLpath];
                                    //    if (entry != null)
                                    //    {
                                    //        using (var stream = new MemoryStream())
                                    //        {
                                    //            entry.Extract(stream);
                                    //            stream.Seek(0, SeekOrigin.Begin);
                                    //
                                    //            using (MySqlConnection conn = new MySqlConnection(connectionString))
                                    //            {
                                    //                using (MySqlCommand cmd = new MySqlCommand())
                                    //                {
                                    //                    using (MySqlBackup mb = new MySqlBackup(cmd))
                                    //                    {
                                    //                        cmd.Connection = conn;
                                    //                        conn.Open();
                                    //                        mb.ImportInfo.TargetDatabase = Path.GetFileNameWithoutExtension(SQLpath);
                                    //                        mb.ImportInfo.DatabaseDefaultCharSet = "utf8";
                                    //                        mb.ImportInfo.DropDatabase = true;
                                    //                        mb.ImportFromMemoryStream(stream);
                                    //                    }
                                    //                }
                                    //            }
                                    //            echo = serializer.Serialize(new StatusHelper("OK", SQLpath));
                                    //            //System.IO.File.Delete(SQLpath);
                                    //        }
                                    //    }
                                    //}
                                }
                            }
                            else if (profile.Engine.Trim().ToUpper().Equals("SQLITE"))
                            {
                                var connectionString = profile.Value.ToString();
                            }

                            Data = Encoding.UTF8.GetBytes(echo);
                        }
                        else
                        {
                            var echo = JsonMapper.ToJson(new ErrorHelper("Check database profile", ""));

                            Data = Encoding.UTF8.GetBytes(echo);
                        }
                    }
                    else
                    {
                        var echo = JsonMapper.ToJson(new ErrorHelper("Databse Profile does not exist", ""));

                        Data = Encoding.UTF8.GetBytes(echo);
                    }
                }
                catch (Exception ex)
                {
                    Log.Trace(ex.Message, ex.StackTrace);
                    var echo = JsonMapper.ToJson(new ErrorHelper(ex.Message, ex.StackTrace));

                    Data = Encoding.UTF8.GetBytes(echo);
                }

                callback.Continue();
            });

            task.Start();

            callback.Continue();
            return(true);
        }
Esempio n. 18
0
 protected override CefCookieAccessFilter?GetCookieAccessFilter(CefBrowser browser, CefFrame frame, CefRequest request)
 {
     return(null);
 }
Esempio n. 19
0
 internal bool OnNavigating(CefFrame frame, CefRequest request, CefHandlerNavType navType, bool isRedirect)
 {
     var handler = this.Navigating;
     if (handler != null)
     {
         var e = new CefNavigatingEventArgs(frame, request, navType, isRedirect);
         handler(this.owner, e);
         return e.Cancel;
     }
     return false;
 }
        protected override bool ProcessRequest(CefRequest request, CefCallback callback)
        {
            var u    = new Uri(request.Url);
            var file = u.Authority + u.AbsolutePath;

            _totalBytesRead = 0;
            _fileBytes      = null;
            _completed      = false;

            var fileInfo = new FileInfo(file);

            // Check if file exists
            if (!fileInfo.Exists)
            {
                var status = ResourceFileStatus.FileNotFound.GetStatus();
                _status     = status.Item1;
                _statusText = status.Item2;
                _fileBytes  = _statusText.GetMemoryStream();

                Logger.Instance.Log.LogWarning($"File: {file}: {_statusText}");

                callback.Continue();
            }
            // Check if file exists but empty
            else if (fileInfo.Length == 0)
            {
                var status = ResourceFileStatus.ZeroFileSize.GetStatus();
                _status     = status.Item1;
                _statusText = status.Item2;
                _fileBytes  = _statusText.GetMemoryStream();

                Logger.Instance.Log.LogWarning($"File: {file}: {_statusText}");

                callback.Continue();
            }
            else
            {
                Task.Run(() =>
                {
                    using (callback)
                    {
                        try
                        {
                            _fileBytes = File.ReadAllBytes(file);

                            string extension = Path.GetExtension(file);
                            _mime            = MimeMapper.GetMimeType(extension);
                            var status       = ResourceFileStatus.FileFound.GetStatus();
                            _status          = status.Item1;
                            _statusText      = status.Item2;
                        }
                        catch (Exception exception)
                        {
                            var status  = ResourceFileStatus.FileProcessingError.GetStatus();
                            _status     = status.Item1;
                            _statusText = status.Item2;
                            _fileBytes  = _statusText.GetMemoryStream();

                            Logger.Instance.Log.LogError(exception, exception.Message);
                        }
                        finally
                        {
                            callback.Continue();
                        }
                    }
                });

                return(true);
            }

            callback.Dispose();
            return(false);
        }
Esempio n. 21
0
 protected override CefReturnValue OnBeforeResourceLoad(CefBrowser browser, CefFrame frame, CefRequest request, CefCallback callback)
 {
     return(logic.OnBeforeResourceLoad(request, callback) ? CefReturnValue.Continue : CefReturnValue.Cancel);
 }
Esempio n. 22
0
 protected override bool OnBeforeNavigation(CefBrowser browser, CefFrame frame, CefRequest request, CefNavigationType navigation_type, bool isRedirect)
 {
     return(base.OnBeforeNavigation(browser, frame, request, navigation_type, isRedirect));
 }
Esempio n. 23
0
        protected override CefResourceHandler?GetResourceHandler(CefBrowser browser, CefFrame frame, CefRequest request)
        {
            if (request.ResourceType == CefResourceType.MainFrame)
            {
                return(new DisableCspResourceHandler(frame));
            }

            if (SchemeHandlerFactory.TryGetHandler(request) is {} schemeHandler)
            {
                return(schemeHandler);
            }

            if (bridgeObjectRegistry.TryGetHandler(request) is {} bridgeHandler)
            {
                return(bridgeHandler);
            }

            return(logic.GetResourceHandler(request));
        }
Esempio n. 24
0
 protected internal unsafe override bool CanSaveCookie(CefBrowser browser, CefFrame frame, CefRequest request, CefResponse response, CefCookie cookie)
 {
     return(_implementation.CanSaveCookie(browser, frame, request, response, cookie));
 }
Esempio n. 25
0
        protected override ResponseFilter?GetResourceResponseFilter(CefBrowser browser, CefFrame frame, CefRequest request, CefResponse response)
        {
            var filter = logic.GetResourceResponseFilter(request, response);

            return(filter == null ? null : new ResponseFilter(filter));
        }
Esempio n. 26
0
 protected override CefResourceHandler GetResourceHandler(CefBrowser browser, CefFrame frame, CefRequest request)
 {
     if (frame.IsMain &&
         request.Method == "GET" &&
         request.ResourceType == CefResourceType.MainFrame &&
         (request.TransitionType == CefTransitionType.Explicit || request.TransitionType == CefTransitionType.Reload))
     {
         var html = FRenderer.CurrentHTML;
         if (html != null)
         {
             return(new HtmlStringResourceHandler(html));
         }
     }
     return(base.GetResourceHandler(browser, frame, request));
 }
Esempio n. 27
0
 protected override void OnResourceLoadComplete(CefBrowser browser, CefFrame frame, CefRequest request, CefResponse response, CefUrlRequestStatus status, long receivedContentLength)
 {
     logic.OnResourceLoadComplete(request);
 }
 /// <summary>
 /// The create.
 /// </summary>
 /// <param name="browser">
 /// The browser.
 /// </param>
 /// <param name="frame">
 /// The frame.
 /// </param>
 /// <param name="schemeName">
 /// The scheme name.
 /// </param>
 /// <param name="request">
 /// The request.
 /// </param>
 /// <returns>
 /// The <see cref="CefResourceHandler"/>.
 /// </returns>
 protected override CefResourceHandler Create(CefBrowser browser, CefFrame frame, string schemeName, CefRequest request)
 {
     return(new CefGlueResourceSchemeHandler());
 }
Esempio n. 29
0
 protected override Boolean OnBeforeNavigation(CefBrowser browser, CefFrame frame, CefRequest request, CefNavigationType navigationType, Boolean isRedirect)
 {
     Log.Trace("RenderProcessHandler.OnBeforeNavigation( browser: {0}, frame: {1}, request: {2}, navigationType: {3}, isRedirect: {4} )",
               browser.Identifier,
               frame.Identifier,
               request.Method,
               Enum.GetName(typeof(CefNavigationType), navigationType),
               isRedirect);
     return(base.OnBeforeNavigation(browser, frame, request, navigationType, isRedirect));
 }
Esempio n. 30
0
 protected internal sealed override bool Open(CefRequest request, ref int handleRequest, CefCallback callback)
 {
     handleRequest = 1;
     _offset       = 0;
     return(true);
 }
Esempio n. 31
0
        /// <summary>
        /// Returns the model.
        /// </summary>
        /// <param name="id">Infographic Id.</param>
        /// <param name="cef">CEF request.</param>
        /// <param name="vo">Voice-over request.</param>
        /// <returns>Model.</returns>
        private Models.PresentationDisplayModel GetModel(int id, CefRequest cef, VoiceOverRequest vo)
        {
            Presentation p = null;

            Models.PresentationDisplayModel ret = null;

            if (id == DemoPresentationId)
            {
                ret = new Models.PresentationDisplayModel()
                {
                    Presentation = new Presentation()
                    {
                        Id    = DemoPresentationId,
                        Title = "Demo"
                    }
                };
            }
            else
            {
                if (id > 0)
                {
                    p = Resolver.Resolve <IPresentationService>().Read(id);

                    if (p != null)
                    {
                        p = Layout.ThemeMetadata.TryRemapThemeBackgroundImage(p);

                        ret = new Models.PresentationDisplayModel()
                        {
                            Presentation       = p,
                            PresentationId     = p.Id,
                            PresentationTitle  = p.Title,
                            PresentationUserId = p.UserId,
                            PresentationIntegrationSettings = p.IntegrationSettings,
                            PresentationUrl      = Ifly.PublishConfiguration.GetAbsoluteUri(Request.Url, id),
                            PresentationUrlQuery = Request.Url.Query.Trim('?', '&'),
                            RequiresPassword     = p.PublishSettings != null && !string.IsNullOrEmpty(p.PublishSettings.PasswordHash),
                            LoopPlayback         = new Models.PresentationDisplayLoopPlaybackSettings()
                            {
                                Enable = string.Compare(Request.QueryString["loop"], "1") == 0 || string.Compare(Request.QueryString["loop"], "true") == 0
                            }
                        };

                        if (cef == null)
                        {
                            if (vo != null && vo.IsEnabled)
                            {
                                ret.Presentation.PublishSettings = new PublishConfiguration()
                                {
                                    PresentationId = ret.Presentation.Id,
                                    ProgressBar    = true,
                                    Controls       = false,
                                    AutoPlay       = false
                                };
                            }
                            else
                            {
                                if (ret.RequiresPassword)
                                {
                                    ret.Presentation = null;
                                }
                                else
                                {
                                    // Default to "on", not available via UI.
                                    if (ret.Presentation.PublishSettings != null)
                                    {
                                        ret.Presentation.PublishSettings.ProgressBar = true;
                                    }
                                }
                            }
                        }
                        else
                        {
                            ret.IsCefConnected = true;

                            ret.Presentation.PublishSettings = new PublishConfiguration()
                            {
                                PresentationId = ret.Presentation.Id,
                                ProgressBar    = cef.ProgressBar,
                                Slide          = cef.Slide,
                                Controls       = false,
                                AutoPlay       = true
                            };
                        }
                    }
                }
            }

            return(ret);
        }
Esempio n. 32
0
 protected override CefResourceRequestHandler GetResourceRequestHandler(CefBrowser browser, CefFrame frame, CefRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling)
 {
     return(resourceRequestHandlerFactory.GetResourceRequestHandler(request, ref disableDefaultHandling));
 }
Esempio n. 33
0
 public override void OnHttpRequest(CefServer server, int connectionId, string clientAddress, CefRequest request)
 {
     _implementation.OnHttpRequest(server, connectionId, clientAddress, request);
 }
 protected internal unsafe override CefResourceRequestHandler GetResourceRequestHandler(CefBrowser browser, CefFrame frame, CefRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref int disableDefaultHandling)
 {
     return(_implementation.GetResourceRequestHandler(browser, frame, request, isNavigation, isDownload, requestInitiator, ref disableDefaultHandling));
 }
Esempio n. 35
0
 public override void OnWebSocketRequest(CefServer server, int connectionId, string clientAddress, CefRequest request, CefCallback callback)
 {
     _implementation.OnWebSocketRequest(server, connectionId, clientAddress, request, callback);
 }
Esempio n. 36
0
 /// <summary>
 /// The on http request.
 /// </summary>
 /// <param name="server">
 /// The server.
 /// </param>
 /// <param name="connectionId">
 /// The connection id.
 /// </param>
 /// <param name="clientAddress">
 /// The client address.
 /// </param>
 /// <param name="request">
 /// The request.
 /// </param>
 protected override void OnHttpRequest(CefServer server, int connectionId, string clientAddress, CefRequest request)
 {
 }
Esempio n. 37
0
 public override CefResourceHandler Create(CefBrowser browser, CefFrame frame, string schemeName, CefRequest request)
 {
     return(_implementation.Create(browser, frame, schemeName, request));
 }