QCefView源码优化

2023-11-17

    QCefView项目源码的构建部分这里就不赘述了,有问题的朋友可以回到《QCefView(1)—— CMAKE项目、库文件生成和项目测试》查看相关介绍。本次优化主要包括以下几个部分:

(1)设置部分,关闭代理服务器,关闭同源策略,使用系统flash等。

(2)增加F5按键刷新页面和F12调用控制台调试工具。更多按键快捷操作可以参考代码增加部分。

上代码:

1、打开:QCefView\CefViewBrowserApp\QCefViewBrowserApp.cpp

修改如下函数:

void
QCefViewBrowserApp::OnBeforeCommandLineProcessing(const CefString& process_type, CefRefPtr<CefCommandLine> command_line)
{
  command_line->AppendSwitch("disable-spell-checking");
  //command_line->AppendSwitch("disable-extensions");
  command_line->AppendSwitch("disable-pdf-extension");
  command_line->AppendSwitch("enable-direct-write");
  command_line->AppendSwitch("allow-file-access-from-files");
  command_line->AppendSwitch("no-proxy-server");   // 关闭代理
  command_line->AppendSwitch("in-process-gpu");
  command_line->AppendSwitch("disable-direct-composition");
  command_line->AppendSwitchWithValue("disable-features", "NetworkService");
  command_line->AppendSwitchWithValue("renderer-process-limit", "1");
  command_line->AppendSwitch("--disable-web-security"); //关闭同源策略
  command_line->AppendSwitch("--enable-system-flash");  //使用系统flash
}

2、打开QCefView\CefViewBrowserApp\QCefViewBrowserHandler.cpp

// 增加下函数,调用控制台 ==》头文件QCefViewBrowserHandler类中添加函数声明
void QCefViewBrowserHandler::ShowDevTools(CefRefPtr<CefBrowser> browser, const CefPoint& inspect_element_at)
{
  CefWindowInfo windowInfo;
  CefBrowserSettings settings;
  browser->GetHost()->ShowDevTools(windowInfo, this, settings, CefPoint());
}


bool QCefViewBrowserHandler::OnPreKeyEvent(CefRefPtr<CefBrowser> browser,
                                      const CefKeyEvent& event,
                                      CefEventHandle os_event,
                                      bool* is_keyboard_shortcut)
{
  // 屏蔽以下两行代码
  // CEF_REQUIRE_UI_THREAD();
  // return false;
  
  // 增加按键事件,处理F5刷新和F12调用调试工具
  bool bRet(false);
  if (event.type == KEYEVENT_RAWKEYDOWN) {
    if (event.windows_key_code == VK_F5) { // 刷新
      browser->Reload();
      bRet = true;
    } else if (event.windows_key_code == VK_F12) { // 调试控制台
      ShowDevTools(browser, CefPoint());
    }
  }
  return bRet;
}

效果如下:

 需要修改后的源码的,可以留言或私我。暂时没时间整理和发布共享。 


看到还有朋友们在留言需要源码的,整理下附上:

文件组织结构:

├─dep
├─out
│  ├─QCefView
│  │  ├─bin
│  │  │  ├─Debug
│  │  │  │  ├─resources
│  │  │  │  │  └─locales
│  │  │  │  └─swiftshader
│  │  │  └─Release
│  │  │      ├─resources
│  │  │      │  └─locales
│  │  │      ├─swiftshader
│  │  │      └─update-dpi-1
│  │  ├─include
│  │  └─lib
│  │      ├─Debug
│  │      └─Release
│  └─QCefViewTest
│      ├─Debug
│      │  ├─GPUCache
│      │  ├─resources
│      │  │  └─locales
│      │  └─swiftshader
│      └─Release
│          ├─cache
│          │  ├─blob_storage
│          │  │  └─9eaea8ec-714e-4082-b8c3-83a179b43db5
│          │  ├─Cache
│          │  ├─Code Cache
│          │  │  └─js
│          │  │      └─index-dir
│          │  └─GPUCache
│          ├─GPUCache
│          ├─platforms
│          ├─resources
│          │  └─locales
│          ├─software
│          │  ├─plugins
│          │  │  ├─audio
│          │  │  ├─bearer
│          │  │  ├─canbus
│          │  │  ├─designer
│          │  │  ├─gamepads
│          │  │  ├─generic
│          │  │  ├─geometryloaders
│          │  │  ├─geoservices
│          │  │  ├─iconengines
│          │  │  ├─imageformats
│          │  │  ├─mediaservice
│          │  │  ├─platforms
│          │  │  ├─platformthemes
│          │  │  ├─playlistformats
│          │  │  ├─position
│          │  │  ├─printsupport
│          │  │  ├─qmltooling
│          │  │  ├─renderplugins
│          │  │  ├─scenegraph
│          │  │  ├─sceneparsers
│          │  │  ├─sensorgestures
│          │  │  ├─sensors
│          │  │  ├─sqldrivers
│          │  │  ├─styles
│          │  │  ├─texttospeech
│          │  │  └─webview
│          │  └─theme
│          │      └─TitleImage
│          └─swiftshader
├─src
│  ├─QCefProto
│  ├─QCefView
│  │  ├─CefViewBrowserApp
│  │  │  ├─BrowserDelegates
│  │  │  └─SchemeHandlers
│  │  └─Include
│  └─QCefWing
│      └─CefViewRenderApp
│          └─RenderDelegates
└─test
    ├─build-QCefViewTest-Desktop_Qt_5_13_0_MSVC2017_32bit-Minimum-Size-Release
    │  ├─CMakeFiles
    │  │  ├─3.10.0
    │  │  │  ├─CompilerIdC
    │  │  │  │  └─tmp
    │  │  │  └─CompilerIdCXX
    │  │  │      └─tmp
    │  │  ├─CMakeTmp
    │  │  ├─QCefViewTest.dir
    │  │  │  └─QCefViewTest_autogen
    │  │  ├─QCefViewTest_autogen.dir
    │  │  └─ShowIncludes
    │  └─QCefViewTest_autogen
    │      ├─EWIEGA46WW
    │      └─include
    └─QCefViewTest
        ├─images
        └─out
            └─QCefViewTest

链接:https://pan.baidu.com/s/1Wvtih0Uyevjmws1ef35eh​​​​​​​g 
提取码:lpnt

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QCefView源码优化 的相关文章

  • cef中js与C++交互

    cefquery方式交互 前端使用 window span class token punctuation span span class token function cefQuery span span class token punc
  • CEF方面的研究(五) CEF中C++与JS交互

    C 43 43 与JS的交互 xff0c 相信不用多说 xff0c 必是精髓 在写这篇博客之前 xff0c 我不得不说之前遇到的一个问题 xff1a 不管怎么搞 xff0c 都不能回调到C 43 43 函数中 原因是什么呢 xff1f 我没
  • CEF:C++和JS交互

    C 43 43 和JS交互V8原理 xff1a https github com fanfeilong cefutil blob master doc content register v8 extension md CEF一个页面的框架如
  • Go 在 Windows 上用户图形界面 GUI 解决方案 Go-WinGUI 国产(使用cef 内核)

    Go 在 Windows 上用户图形界面 GUI 解决方案 Go WinGUI 国产 xff08 使用cef 内核 xff09 参考文章 xff1a xff08 1 xff09 Go 在 Windows 上用户图形界面 GUI 解决方案 G
  • CEF中JavaScript与C++交互

    在CEF里 xff0c JS和Native xff08 C C 43 43 xff09 代码可以很方便的交互 xff0c 这里https bitbucket org chromiumembedded cef wiki JavaScriptI
  • 一步步CEF(2)之编译ceflicent

    一步步CEF xff08 1 xff09 之编译libcef dll wrapper lib已经提供了c 43 43 的静态库 xff0c 这次要将cefclient编译出来 这里要说明一下 xff0c 如果仅仅将cefclient编译的话
  • CEF(Chromium Embedded Framework)使用说明书

    CEF使用说明书 目录 1 前言 1 1 CEF的作用 1 2 CEF的下载和编译 1 3 CEF结构 1 3 1 CEF进程和窗口之间的结构关系 1 3 2 Renderer进程的实现结构 1 3 3 browser进程的实现结构 1 4
  • cef相关

    一 应用 在Windows下进行浏览器相关的开发 1 使用IE相关的接口 IE控件等进行开发 Windows提供了丰富的接口用起来也是非常方便的 缺点 例如XP还有很多人使用 它的IE版本可能比较旧 对一些新的网页特性可能支持的不好 2 使
  • cef浏览器加载过程实测ILoadHandler和IRequestHandler

    针对方法GetResourceRequestHandler 获取资源请求过程中 会多次发生请求 不知道何时加载完的问题 IRequestHandler 没有了OnResourceLoadComplete 和OnBeforeResourceL
  • 01-Chrome架构:仅仅打开了1个页面,为什么有4个进程

    在开始之前 我们一起看下 Chrome打开一个页面需要启动多少进程 你可以点击Chrome浏览器右上角的 选项 菜单 选择 更多工具 子菜单 点击 任务管理器 这将打开Chrome的任务管理器的窗口 如下图 和Windows任务管理器一样
  • Cef经典N大问题

    1 cef启动 退出的时候怎么崩溃了 答 如果是启动时崩溃 请看资源目录是否文件都齐全 退出的话见https github com fanfeilong cefutil blob master doc CEF Close md 如果是cen
  • QCefView + QWebChannel + Vue 项目开发

    看到标题 你大概能猜到这篇我想讲述的是什么了 对的 将要同大家分享的是一种目前PC软件常见的开发方案 前言 1 桌面应用为什么要使用Vue等框架开发 而不再是Qt UI开发 界面开发我们使用java语言 通过Vue框架快速开发 好处不言而喻
  • QCefView(1)—— CMAKE项目、库文件生成和项目测试

    目录 下载资源 说明文档 Quick Start with Qt Cef https tishion github io QCefView CMAKE生成 sln项目文件 库文件编译和测试项目编译运行 测试QCefView自带的项目QCef
  • 自编译已集成视频播放功能CEF3.3239版本库 (官方版本编译类似)详解介绍步骤(含编译错误解决)

    工具及编译环境 VS2015 Cmake cmake官网 https cmake org CEF工程官网 https cef builds spotifycdn com index html 1 下载CEF源码 下面的源码是已经集成了播放视
  • Qt浏览器开发:关于CEF开发知识点以及QCef开发原理与使用

    开发环境 VS2015 Qt5 9 关于CEF CEF全称是Chromium Embedded Framework 它是Chromium的Content API的封装库 基于Google Chromium 的开源项目 而Google Chr
  • QCefView源码优化

    QCefView项目源码的构建部分这里就不赘述了 有问题的朋友可以回到 QCefView 1 CMAKE项目 库文件生成和项目测试 查看相关介绍 本次优化主要包括以下几个部分 1 设置部分 关闭代理服务器 关闭同源策略 使用系统flash等
  • qt集成cef QWidget

    编译libcef dll wrapper 假设你已经编译出了libcef dll wrapper lib Debug和Release版本 并且对应版本的程序集类型分别是 MDd和MD qt的运行时库是MDd类型的 因此cef3编译的时候也应
  • xe7 安装chrome组件(CEF4Delphi)

    缘起 大屏项目需要用到chrome组件 但为了实现firemonkey的矢量和强大的图形功能 所以只能重新在xe7中安装chrome组件 碰到了一些问题 都一 一化解了 将整个过程记录下来 以供大家采用 1 下载CEF4Delphi mas
  • cef编译

    按照大神的一遍过 具体过程非常详细 链接https kefong blog csdn net article details 119908780 spm 1001 2101 3001 6650 2 utm medium distribute
  • 禁用CEF跟随系统的DPI缩放

    方法1 为程序添加启动参数 high dpi support 1 force device scale factor 1 1 在桌面上右键Chrome图标 选择属性 2 在目标一栏中增加自定义参数 force device scale fa

随机推荐

  • django中配置xadmin时报错metaclass conflict: the metaclass of a derived class must be a (non-strict) subcla

    报错信息如下 原因 没有修改我们定义的ModelAdmin的继承对象为object或去掉继承 错误代码如下 xadmin sites register Comment class CommentAdmin admin ModelAdmin
  • 华为OD机试真题-字符串比较-2023年OD统一考试(B卷)

    题目描述 给定字符串A B和正整数V A的长度与B的长度相等 请计算A中满足如下条件的最大连续子串的长度 1 该连续子串在A和B中的位置和长度均相同 2 该连续子串 A i B i 之和小于等于V 其中 A i B i 表示两个字母ASCI
  • 【转】密封类

    10 3 1 密封类概述及声明 10 3 密封类与密封方法 如果所有的类都可以被继承 那么很容易导致继承的滥用 进而使类的层次结构体系变得十分复杂 这样使得开发人员对类的理解和使用变得十分困难 为了避免滥用继承 C 中提出了密封类的概念 本
  • XStream 实现 javabean 与 xml 互转

    XStream 是什么 XStream 是一个 java类库 实际上是一个转换器 XStream 作用 实现 java bean 与 xml 互转 XStream 如何使用 主要通过 xStream 实现 转换 具体测试示例代码如下 源码
  • 运维工具

    环境部署 部署软件 如Apache Nginx tomcat JDK PHP MySQL等等 还需要测试吧 那就还需要部署一套测试环境 有些时候 开发环境也是需要运维来部署的 排错和调优 运维的事 尽快定位问题 解决问题才是王道 定位问题
  • 谁说毕业即失业?爬虫就业月入13000+第一个不服!

    不知道是Python太火爆 还是年轻人太卷 最近一段时间 老有刚毕业的年轻人向我请教Python问题 问题还相对比较专业 其中不乏有 财务小年轻请教Python数据统计 新媒体的朋友问Python爬虫 当然更多的还是来咨询Python爬虫就
  • Java监听器(重点)

    监听器 Listener 是一个实现特定接口的 Java 程序 这个程序专门用于监听另一个 Java 对象的方法调用或属性改变 当被监听对象发生上述事件后 监听器某个方法将立即自动执行 监听器的相关概念 事件 方法调用 属性改变 状态改变等
  • windows 安装linux子系统详细步骤

    1 dism exe online enable feature featurename Microsoft Windows Subsystem Linux all norestart 2 dism exe online enable fe
  • 对课程学习的期待

    我希望通过学习这门课程之后 自己可以设计出一些简单的程序 有利于之后的学习 例如 网络爬虫和一些有关于数据 图像处理的程序 我希望在理论课上老师可以通过一些有趣的示例来讲解课程内容 我认为这样可以更好的抓住学生的注意力而且可以使我们更容易理
  • 【无需显卡】AI绘画入门教程

    前言 Hello 各位端午节快乐呀 不好意思拖更两个月 最近实在是太忙了 也想不到有什么好玩的 之前介绍过了几个好玩的ai网站 非常适合新手尝鲜 但很多都有额度限制 而且还开始收费了 所以有了这期教程 还没看过上期可以看一下 除了ChatG
  • socks协议详解

    0x01 socks协议简介 Socks Socket Secure 协议是一种网络协议 处于会话层 用于管理网络连接并提供安全性和隐私保护 通过使用Socks代理服务器 客户端可以隐藏其真实IP地址和其他身份信息 从而匿名地访问互联网上的
  • php命令行传递参数,PHP命令行传递参数

    在以非命令行模式运行PHP的时候 我们可以通过 GET POST REQUEST来接受get或是post参数 但是以命令行方式运行的话 怎么传递参数以接受参数呢 关于命令行的特点 可以直接看官方文档 http php net manual
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • python 读写pcd

    1 读点云的3种方式 第一种 pip3 install python pcl import pcl pcd ndarray pcl load args pcd path to array 3 不要intensity pcd ndarray
  • 浏览器打开就是360导航(浏览器被360劫持)

    浏览器打开就是360导航 这个问题之前只是看别人帖子见到过 不知道出了什么问题我的edge和Chrome浏览器突然打开也成了360的导航页面 这才感觉出这个问题的恶心之处 而且顺道说一下 我电脑中也没有装任何360系的应用 但突然就被改了
  • 黑客基础知识——SYN泛洪攻击原理及防御

    拒绝服务攻击时 攻击者想非法占用被攻击者的一些资源 比如如 带宽 CPU 内存等等 使得被攻击者无法响应正常用户的请求 讲泛洪攻击之前 我们先了解一下DoS攻击和DDoS攻击 这两个攻击大体相同 前者的意思是 拒绝服务攻击 后者的意思是 分
  • docker下mysql镜像初始化

    目录 1 介绍 2 部署及验证 2 1 场景复现 2 2 创建dockerfile 2 3 初始化脚本 2 4 构建镜像并查看 2 5 创建容器并验证 2 6 完成 1 介绍 原理 当Mysql容器首次启动时 会在 docker entry
  • QT 多线程中使用QCanBusDevice进行PCAN通讯时,无法正常发出数据

    QT 多线程中使用QCanBusDevice进行PCAN通讯时 无法正常发出数据 前言 我一开始的代码逻辑是 PCAN开启 关闭 发送 接收这些功能整合在一个工具类中 这个工具类的对象是在主线程创建的 然后我有一个要循环定时发送的功能是独立
  • ASP.NET Core错误:Unable to cast object of type ‘System.Data.ProviderBase.DbConnectionClosedConnecting‘

    项目场景 在使用 net core开发时 经常使用数据库出现的问题 问题描述 开发ASP NET Core时遇到在经常使用数据库连接时报错误提示 Unable to cast object of type System Data Provi
  • QCefView源码优化

    QCefView项目源码的构建部分这里就不赘述了 有问题的朋友可以回到 QCefView 1 CMAKE项目 库文件生成和项目测试 查看相关介绍 本次优化主要包括以下几个部分 1 设置部分 关闭代理服务器 关闭同源策略 使用系统flash等