每一个网页都有一个favicon,在历史记录的保存中须要用到。在content文件夹下,这个没有实现。

以下说一下我的实现过程:

web_contents_impl.cc文件里有方法:WebContentsImpl::OnUpdateFaviconURL

这种方法是内核解析到favicon之后,给chromium 的browser process反馈之后,browser process的响应方法。

该方法的实现例如以下:

FOR_EACH_OBSERVER(WebContentsObserver, observers_,

                    DidUpdateFaviconURL(page_id, candidates));

这里的observer,就是shell.cc

我在shell.cc加入�方法例如以下:

void Shell::DidUpdateFaviconURL(int32 page_id,

                                   const std::vector<FaviconURL>& candidates) {

  UpdateFaviconURL(page_id, candidates);

}

然后,在shell_android.cc文件里加入�方法例如以下:

void Shell::UpdateFaviconURL(int32 page_id,

                                   const std::vector<FaviconURL>& candidates) {

  JNIEnv* env = AttachCurrentThread();

  GURL favicon_url = candidates.back().icon_url;

  ScopedJavaLocalRef<jstring> j_favicon_url = base::android::ConvertUTF8ToJavaString(env, favicon_url.spec());

  return Java_Shell_UpdateShellFaviconUrl(env, java_object_.obj(),j_favicon_url.obj());

}

这样,Shell.java 就能够得到faviicon了

@CalledByNative

    private void UpdateShellFaviconUrl(String faviconUrl) {

        mShellFaviconUrl = faviconUrl;

    }

chromium对网页获取favicon的更多相关文章

  1. 微信公众平台网页获取用户OpenID方法

    下面我们一起来看看关于微信公众平台网页获取用户OpenID方法,有需要了解的朋友可以一起来看看吧.用户点击微信自定义菜单view类型按钮后,微信客户端将会打开开发者在按钮中填写的url值 (即网页链接 ...

  2. 小白学react之网页获取微信用户信息

    通过上一篇<小白学react之EJS模版实战>我们学习了怎样通过EJS模版生成我们高定制化的index.html文件. 本篇我们将会继续延续我们的alt-tutorial项目的实战计划.去 ...

  3. web学习---html,js,php,mysql一个动态网页获取流程

    使用bootstrap的cms模版系统搭建了一个信息管理系统.通过这个系统学习动态网页获取的工作流程. 抓包分析一个页面的数据请求流程如下图所示: 同样,对于需要向数据库插入数据,可以使用ajax接口 ...

  4. PHP代码 如何网页获取用户的openid

    public function getOpenid($appid, $appsecret) { $SERVER_NAME = $_SERVER['SERVER_NAME']; $REQUEST_URI ...

  5. IOS遍历网页获取网页中<img>标签中的图片url

    前言: 项目中遇见一个需求遍历网页中所有的<img>标签并且去处图片的url 第一步:编写获取<img >标签的正则表达式,代码如下: -(NSArray*)getImgTag ...

  6. 微信快速开发框架(八)-- V2.3--增加语音识别及网页获取用户信息,代码已更新至Github

    不知不觉,版本以每周更新一次的脚步进行着,接下来应该是重构我的代码及框架的结构,有朋友反应代码有点乱,确实如此,当时写的时候只是按照订阅号来写的,后来才慢慢增加到支持API接口.目前还在开发第三方微信 ...

  7. html网页获取php网页数据等知识记录

    所有跟php有关的网页都必须在Apache服务器下打开.需要配置好confg.ini的文件路径. AJAX: 通过事件不断的向服务器发送请求,然后服务器会时时返回最新的数据,这就是AJAX的功能 PS ...

  8. java的IO流包装不当导致从网页获取的数据出现乱码

    从网页上获取数据时必须要注意字符集的问题.处理不慎确实苦不堪言. 例如通过URL连接时,将字节流InputStream包装成字符流(以便直接存为String)时,一定要注意加上charsetName这 ...

  9. DSAPI 网页获取本地程序登陆用户

    这是一个非常简单的示例,在网页或其他平台获取程序中已经登陆的用户,当然也可以是其他信息. 源码 Imports DSAPI.网络.HTTP监听_DSWebAPI Public Class Form1 ...

随机推荐

  1. mongodb导入导出

    导出 mongoexport -d 数据库 -c 表名 -o 输出文件名 例:mongoexport -d Mongodb_DataManager -c Kujiale_Users -o Kujial ...

  2. 【LOJ】#2031. 「SDOI2016」数字配对

    题解 这个图是个二分图,因为如果有一个奇环的话,我们会发现一个数变成另一个数要乘上个数不同的质数,显然不可能 然后我们发现这个不是求最大流,而是问一定价值的情况下最大流是多少,二分一个流量,加上一条边 ...

  3. jenkins发邮件问题

    1.发送邮件不成功 Sending e-mails to: *******@**.cn    Finished: FAILURE 解决办法     jenkins-->configure glo ...

  4. CI框架中site_url()和base_url()的区别

    背景:在使用CI框架的使用经常碰到跳转和路径方面的问题,site_url()和base_url()很容易混淆,下面来说说他们的区别! 假如你config文件里面的base_url和index_page ...

  5. 机器学习:KNN-近邻算法

    一.理论知识 1.K近邻(k-Nearest Neighbor,简称KNN)学习是一种常用的监督学习. 工作机制:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个的信 ...

  6. [leetcode tree]101. Symmetric Tree

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...

  7. 1013 Battle Over Cities (25)(25 point(s))

    problem It is vitally important to have all the cities connected by highways in a war. If a city is ...

  8. 使用multiprocessing中的常见问题

    在python的解释器中,CPython是应用范围最广的一种,其具有丰富的扩展包,方便了开发者的使用.当然CPython也不是完美的,由于全局解释锁(GIL)的存在,python的多线程可以近似看作单 ...

  9. python opencv3 向图像里写字

    git:https://github.com/linyi0604/Computer-Vision # coding:utf-8 import cv2 img = cv2.imread(".. ...

  10. 更好的浏览器动画实现 requestAnimationFrame

    requestAnimationFrame 是专门为实现高性能的帧动画而设计的一个API: js一般是借助setTimeout或setInterval这两个函数实现动画,性能不佳. css3动画,性能 ...