具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
现有在浏览器显示界面中加载的浏览器插件图标,单独占用浏览器显示界面工具栏中的一行,使得浏览器页面中的内容可显示的高度减少,从而影响浏览器页面中内容的显示效果;进一步地,用户安装的浏览器插件一般不会超过五个,而占用的一行工具栏,在安装的浏览器插件数量有限的情况下,该行工具栏空间未得到有效利用,降低了浏览器页面的空间利用率。
目前,浏览器显示界面中,通常加载操作系统默认的所有界面组件,包括浏览器插件以及非浏览器插件。其中,非浏览器插件对应的界面组件包括:浏览器地址栏、浏览器搜索栏、Tab页、起始页、状态栏、工具栏等,浏览器插件对应的界面组件包括浏览器插件栏。其中,
浏览器地址栏用于输入网址信息,例如,统一资源定位符(URL,Uniform ResourceLocator)信息以访问网站,在浏览器显示界面中占据有固定的长度,且浏览器地址栏长度较长,一般为200字符长度。
本发明实施例中,考虑到浏览器地址栏的长度较长,在输入网址信息,例如,统一资源定位符信息后,还具有较长的可用空间没有被有效利用,因而,可以利用该可用空间设置浏览器插件图标。这样,无需另行设置浏览器插件图标单独占用工具栏中的一行,可以增加浏览器页面中的内容可显示的高度,从而提升浏览器页面中内容的显示效果。
图1为本发明实施例加载浏览器插件图标的方法流程示意图。参见图1,该流程包括:
步骤101,预先在各网页页面对应的浏览器地址栏中的可用空间内设置用于显示浏览器插件图标的插件容器,构建网页页面与插件容器长度的映射关系集;
本步骤中,基于同一浏览器,在不同的网页页面中,由于不同网页页面对应的网址信息长度不同,而浏览器地址栏的长度在各网页页面中是相同的,因而,不同的网页页面对应的浏览器地址栏中的可用空间可能相同,也可能不同。映射关系集中,包括每一网页页面与相应插件容器长度的映射关系。这样,作为可选实施例,构建网页页面与插件容器(BrowserActionsContainer)长度的映射关系集包括:
A11,获取网页页面对应的网址信息占用的字符长度;
本步骤中,每一网页页面对应有一网址信息。例如,对于360导航页面,对应的网址信息为:http://hao.360.cn/?1004,对于最全招聘信息页面,对应的网址信息为:http://www.liepin.com/event/landingpage/sojob2.shtml?mscid=t_dx_013&utm_source=360cainixihuan&utm_medium=cpc&utm_campaign=信息类-工作&utm_content=通用词&utm_term=最全招聘信息。
本发明实施例中,网址信息长度以字符长度进行标识。对于每一确定的网页页面,对应的网址信息的字符长度也可以确定。
A12,根据浏览器地址栏的字符长度以及所述网页页面对应的网址信息占用的字符长度,计算所述网页页面对应的插件容器的字符长度。
本步骤中,由于网址信息长度的不同,因而,每一网址信息所在的浏览器地址栏中可用的空间也不同。也就是说,不同网页页面对应(映射)的插件容器的字符长度也会不同。
本发明实施例中,由于可确定网页页面对应的网址信息长度,因而,可以为每一网页页面计算相应插件容器的字符长度,即构建网页页面与插件容器长度的映射关系。其中,插件容器长度可通过如下公式进行计算:
Li=L-Lurli
式中,
Li为第i网页页面对应的插件容器长度,其中,i为自然数;
L为浏览器地址栏长度;
Lurli为第i网页页面对应的网址信息长度。
实际应用中,在浏览器升级过程中,常通过内置功能的方式实现升级,而内置功能也就是浏览器中内置的程序,为了便于用户的浏览及操作习惯,本发明实施例中,可以将浏览器内置的程序也在浏览器地址栏中进行展示,因而,作为另一可选实施例,该方法可以进一步包括:
在浏览器地址栏中的可用空间内设置用于显示浏览器内置功能程序图标的浏览器内置功能容器。
本步骤中,由于浏览器内置功能程序图标具有确定的数目,因而,浏览器内置功能程序图标占据的长度可为一常值。
作为可选实施例,所述浏览器内置功能容器设置在浏览器地址栏中的末端并朝前延伸预定设置的长度,其中,浏览器地址栏中的始端用于输入网址信息,即浏览器地址栏的左侧,预定设置的长度为浏览器内置功能容器中一个或多个浏览器内置功能程序图标的总长度。
这样,插件容器长度可通过如下公式进行计算:
Li=L-Lurli-Ln
式中,
Ln为浏览器内置功能容器长度。本发明实施例中,为了进一步提升浏览器页面中内容的显示效果,还可以对浏览器显示界面中的其它相关图标进行聚合处理,即对浏览器显示界面中的图标进行模块化管理。该方法进一步包括:
在与浏览器地址栏同行的可用空间位置,设置工具栏按钮以及搜索栏。
本步骤中,由于浏览器地址栏长度一般为200,因而,没有覆盖浏览器显示界面的屏幕宽度,即在浏览器地址栏的左右两侧,存留有一定的可用空间,从而可以在可用空间内设置相应的工具栏按钮以及搜索栏,用以对各图标进行聚合处理。通过将浏览器显示界面中的其它相关图标聚合至工具栏或搜索栏中。这样,可以有效提升浏览器显示界面的可用空间,使得浏览器页面中内容的显示空间更大、显示效果更佳。关于将浏览器显示界面中的其它相关图标聚合至工具栏或搜索栏,为公知技术,在此略去详述。
作为可选实施例,设置的工具栏位于浏览器地址栏左侧作为始端的左侧,搜索栏位于浏览器地址栏右侧作为末端的右侧。也就是说,工具栏右侧与浏览器地址栏左侧相邻,搜索栏左侧与浏览器地址栏右侧相邻。
本发明实施例中,浏览器插件包括但不限于:聊天软件客户端插件、虚拟机桌面插件、邮件提醒插件、其他具有消息提醒功能的插件、Flash插件、RealPlayer插件、MMS插件、广告拦截插件以及ActiveX插件等。
图2为本发明实施例浏览器显示界面的第一结构示意图。参见图2,该浏览器显示界面设置有三个相互独立的部分,分别为:工具栏按钮、(浏览器)地址栏以及搜索栏。其中,在地址栏中,在预留网址信息的可用空间后,还设置有插件容器以及浏览器内置功能。
插件容器的位置可以设置于浏览器内置功能的左侧,如果用户取消显示(隐藏)浏览器内置功能,则插件容器可以直接从浏览器地址栏末端(右侧)开始排列,如果设置有浏览器内置功能,则插件容器从浏览器内置功能的左侧开始排列。
在逻辑结构上,插件容器(BrowserActionsContainer)属于浏览器地址栏的子元素,因而,插件容器的布局受浏览器地址栏位置及大小的控制。具体来说,本发明实施例中,插件容器最大可用空间长度为:浏览器地址栏总长度减去浏览器内置功能长度,再减去网址信息(URL)长度。其中,浏览器地址栏总长度一般为200,如果插件容器的可用空间不足以容纳全部插件的显示,则可以压缩网址信息长度,只要能够优先保障URL显示为原则即可,并隐藏插件容器中一些浏览器插件图标的显示。
工具栏按钮包括:主页按钮、前进按钮、后退按钮、刷新按钮、恢复关闭按钮、收藏夹按钮以及功能大全按钮。作为可选实施例,工具栏按钮设置于浏览器工具栏的左侧,并显示“工具栏按钮”字样。
本发明的实施例中,浏览器可以是火狐浏览器(Firefox)、谷歌浏览器(GoogleChrome)、360安全浏览器等,当然可以理解的是,在本发明的实施例中并不限定浏览器的具体类型。
所应说明的是,步骤101只需要执行一次,而无需在每次加载浏览器插件图标时都执行。
步骤102,在监测到浏览器加载网页页面后,查询预先存储的网页页面与插件容器长度的映射关系集,获取加载的网页页面映射的插件容器长度,按照获取的插件容器长度在所述插件容器中加载浏览器插件图标。
本步骤中,作为可选实施例,可以在浏览器中设置用于对浏览器插件图标进行统一管理的管理页面,管理页面中设置有用户需要显示的浏览器插件图标信息,即待加载浏览器插件图标集,在待加载浏览器插件图标集中,存储有用户设置的需要显示以及不需要显示的各浏览器插件图标。这样,在每次启动浏览器后,对于各不同的网页页面,待加载浏览器插件图标集都相同,不同的是,基于不同网页页面对应的插件容器长度,从而使得在插件容器中能够加载的浏览器插件数量也不同。
作为可选实施例,按照获取的插件容器长度在所述插件容器中加载浏览器插件图标包括:
计算待加载浏览器插件图标集中所有浏览器插件图标的总长度;
判断计算的总长度是否大于所述获取的插件容器长度,如果是,从所述待加载浏览器插件图标集中,选取符合预先设置的加载策略的浏览器插件图标,并加载到所述插件容器中;否则,将所述待加载浏览器插件图标集中的所有浏览器插件图标加载到所述插件容器中。
本步骤中,作为可选实施例,选取符合预先设置的加载策略的浏览器插件图标包括:
按照浏览器插件图标的优先级,对待加载浏览器插件图标集中设置为显示的浏览器插件图标进行排序;
本步骤中,用户可以在待加载浏览器插件图标集中为浏览器插件图标设置优先级。这样,在插件容器中空间有限的情况下,优先加载优先级高的浏览器插件图标。当然,浏览器插件图标优先级也可以由浏览器根据插件的功能、插件被下载的次数等信息进行设置。
计算排序前N位的浏览器插件图标的聚合长度,使得计算的聚合长度不大于所述获取的插件容器长度,并将所述排序前N位的浏览器插件图标作为所述符合预先设置的加载策略的浏览器插件图标,其中,N为自然数。
当然,实际应用中,作为另一可选实施例,选取符合预先设置的加载策略的浏览器插件图标包括:
按照浏览器插件图标的加载计数值,对待加载浏览器插件图标集中的浏览器插件图标进行排序;
本步骤中,在每次启动浏览器后,对加载的浏览器插件图标进行计数,根据计数值对设置为显示的浏览器图标进行排序,可以反映用户对浏览器插件的需要程度。
计算排序前N位的浏览器插件图标的聚合长度,使得计算的聚合长度不大于所述获取的插件容器长度,并将所述排序前N位的浏览器插件图标作为所述符合预先设置的加载策略的浏览器插件图标。
较佳地,在显示的浏览器插件图标中,用户可以根据实际需要,对显示的浏览器插件图标执行隐藏处理。因而,作为可选实施例,该方法进一步包括:
步骤103,接收所述插件容器中浏览器插件图标输出的隐藏指令,隐藏输出隐藏指令的浏览器插件图标,并调整所述插件容器中的浏览器插件图标位置。
本步骤中,用户如果需要隐藏浏览器地址栏中的一个或多个浏览器插件图标,则可以在选取需要隐藏的浏览器插件图标后,触发弹出下拉菜单,或者,通过点击右键弹出下拉菜单,并从弹出的下拉菜单中选取隐藏,则可以将该浏览器插件图标从当前位置隐藏。
具体来说,用户在显示的插件容器菜单栏下的扩展子菜单上点击右键,可以选择隐藏控件(按钮),从而触发将该动态添加的子元素,即待隐藏的浏览器插件图标BrowserActionView类的属性从可见(visible)变更为false,然后,通知插件类的父View,即浏览器地址栏进行浏览器插件图标的重新布局。也就是说,接收所述插件容器中浏览器插件图标输出的隐藏指令,隐藏输出隐藏指令的浏览器插件图标包括:
监测到用户点击隐藏按钮,浏览器由JS向HANDLER发送extensionSettingsEnable消息传递List参数;
本步骤中,List参数是ListValue*args,是一个字符串列表,包含两项内容,第一项内容是浏览器插件图标的ID,第二项内容是该ID对应的状态,状态以字符串进行表示,其中,字符串为"true",表示启用浏览器插件,即决定启用(EnableExtension),字符串为"false",表示为禁用或隐藏浏览器插件,即决定禁用或隐藏(DisableExtension)。
本发明实施例中,List参数中的字符串为"false"。
浏览器中的ExtensionSerivce类接收List参数,发出通知给插件容器(BrowserActionsContainer),通知中包含接收的List参数;
插件容器的BrowserActionRemoved函数或BrowserActionAdded函数根据接收的List参数中的"false"字符串隐藏对应的浏览器插件图标。
本步骤中,BrowserActionRemoved函数或BrowserActionAdded函数用于动态地对选定的浏览器插件进行添加或隐藏(启用或禁用)操作。最后调用地址栏的重新布局,以重新排布地址栏及其子元素(插件容器、浏览器内置功能)的相对位置。
作为可选实施例,调整所述插件容器中的浏览器插件图标位置包括:
将位于所述隐藏的浏览器插件图标左侧的浏览器插件图标依序右移。这样,在浏览器显示界面中对应的浏览器插件图标位置为空区域后,能够实现浏览器插件图标的动态调整。具体来说,本发明实施例中,插件容器的布局遍历子元素,对于停用的,隐藏的扩展不会安排布局。例如,从当前显示的插件中隐藏一插件时,剩余插件的布局如下:
插件容器最大可用空间=地址栏总长度-浏览器内置功能长度-std::max(地址栏的URL长度,200)。插件容器的起始点X值就是浏览器第一个内置功能X值-插件容器总长度。
作为另一可选实施例,在隐藏浏览器插件图标并将位于所述隐藏的浏览器插件图标左侧的浏览器插件图标依序右移后,该方法可以进一步包括:
读取浏览器插件图标集中排序在所述隐藏的浏览器插件图标后的浏览器插件图标,加载到插件容器中最左侧的位置。
本发明实施例中,作为可选实施例,为了便于用户对浏览器插件图标进行统一管理和设置,每一浏览器插件图标具有相同的尺寸。当然,实际应用中,也可以设置不同的浏览器插件图标具有不同的尺寸。
进一步地,对于浏览器插件包含有更新信息的情形,本发明实施例中,还可以在浏览器地址栏中显示该浏览器插件的更新信息,以满足用户个性化的业务需求和体验。例如,对于广告拦截插件,由于其在启动后,其拦截的广告随着时间而增加,因而,可以在显示的该广告拦截插件图标上,动态显示该广告拦截插件拦截到的广告数。该方法进一步包括:
浏览器获取显示的浏览器插件图标对应的浏览器插件的动态更新信息,并将获取的动态更新信息加载到相应的浏览器插件图标上。
本步骤中,以广告拦截插件为例,动态更新信息可以是该广告拦截插件拦截到的广告数,也可以是该广告拦截插件的版本升级信息等。
作为另一可选实施例,该方法还可以进一步包括:
读取浏览器地址栏插件容器中显示的浏览器插件图标对应的更新信息;
根据读取的更新信息更新管理页面待加载浏览器插件图标集中对应的浏览器插件图标。
本步骤中,管理页面通过待加载浏览器插件图标集,对所有网页页面对应的浏览器插件图标进行统一管理,例如,在待加载浏览器插件图标集中,将浏览器地址栏插件容器中显示的浏览器插件图标设置为显示,而将其它浏览器插件图标设置为隐藏,并对浏览器插件图标中的数字进行实时更新。这样,用户通过管理页面,可以选择需要显示的浏览器插件图标以满足用户个性化的业务需求。实际应用中,也可以从浏览器侧保存的配置文件获取扩展插件的信息,并实时或定时更新对应的扩展插件的信息。
作为可选实施例,浏览器插件图标还包含有浏览器插件名称。
作为可选实施例,浏览器通过创建Chrome内置域名(chrome://myextensions/)来生成(WEB)管理页面。
图3为本发明实施例浏览器显示界面的第二结构示意图。参见图3,该浏览器显示界面为优酷(www.youku.com)网页页面,其中,在优酷网页页面对应的(浏览器)地址栏中,显示有星图标、雷电图标、二维码图标、内置广告过滤数字图标以及插件应用程序(App)数字图标,其中,
星图标、雷电图标、二维码图标、内置广告过滤数字图标为浏览器内置功能中的图标,插件应用程序图标为插件容器中的图标。也就是说,以浏览器地址栏窗口作为父窗口,将星图标、雷电图标、二维码图标、内置广告过滤数字图标以及插件应用程序数字图标对应的窗口作为子窗口,绘制在作为父窗口的浏览器地址栏中。星图标为收藏夹图标,雷电图标为模式切换按钮图标,二维码图标为移动设备二维码地址识别图标,内置广告过滤数字图标为浏览器内置广告过滤,数字2表示浏览器内置的程序过滤的广告数为2,插件应用程序图标可以设置为红底APP,以与浏览器内置功能相区别,数字10表示过滤的广告数为10。其中,内置广告过滤数字图标以及插件应用程序图标中的数字可根据过滤的广告数进行实时更新。
图4为本发明实施例选取插件应用程序图标并点击右键后弹出的操作功能菜单示意图。参见图4,插件应用程序图标对应的广告过滤插件设置的右键操作功能菜单包括:Adblock Plus控件、选项控件、停用控件、删除控件、隐藏按钮控件、管理控件以及审查弹出内容控件。例如,用户点击停用控件,可以中止该广告过滤插件的运行以节约内存资源,再例如,用户点击隐藏按钮控件,则可以将该当前显示的广告过滤插件进行隐藏处理,并触发动态调整插件容器中当前显示的浏览器插件图标。
本发明实施例中,由于不同的网页页面映射的插件容器长度不同,因而,在进行网页页面切换时,可以动态调整浏览器显示界面的浏览器地址栏中显示的浏览器插件图标,该方法进一步包括:
步骤104,监测到网页页面切换,根据切换的网页页面映射的插件容器长度,在所述切换的网页页面对应的插件容器中加载浏览器插件图标。
本发明实施例中,需要在每一网页页面独立展现浏览器插件自身数据状态,例如,浏览器插件的特殊ICON(如天气预报的天气),相关文字或者数据(如广告拦截的数目)。
作为可选实施例,该步骤具体包括:
为待加载浏览器插件图标集中的每一网页页面创建相应的数据结构,并在创建的数据结构中,存储浏览器插件更新信息;
本步骤中,在相应网页页面即WebContents创建对应的数据结构。作为可选实施例,在网页页面打开时,同时创建对应网页页面的数据结构。创建数据结构可以通过创建网页页面的类对应的数据结构语句,例如,为实现功能编写的C++类代码,并继承content::WebContentsUserData模板类即可实现。最后,将创建的数据结构语句(如AdfilterTabHelper::CreateForWebContents(w eb_contents);)添加到BrowserTabContents::AttachTabHelpers浏览器页面初始化静态过程中。这样,每创建一个浏览器页面,插件管理类(如AdfilterTab Helper)即自动创建。
作为可选实施例,在与Tab相关的类中,保存浏览器插件自身数据状态,即更新信息。
浏览器监测到调用系统TabStripModel::ActivateTabAt函数,向浏览器地址栏发出ActiveTabChanged的消息通知;
本步骤中,浏览器标签(网页页面)切换时,会发生调用系统TabStripModel::ActivateTabAt函数,接而发出ActiveTabChanged的消息通知。
浏览器地址栏接收ActiveTabChanged的消息通知,调用插件容器的Update函数,遍历待加载浏览器插件图标集中的每一网页页面对应的数据结构;
本步骤中,由于插件容器属于浏览器地址栏view的子元素,因此,浏览器地址栏收到ActiveTabChanged的消息通知后,调用插件容器的Update函数,遍历各个子元素进行更新,即可完成随标签切换,实现浏览器插件图标更新。
获取切换的网页页面对应的数据结构,读取存储的浏览器插件更新信息,根据读取的所述浏览器插件更新信息,生成浏览器插件图标并加载至插件容器中。
本步骤中,获取个性化浏览器插件图标相关数据。即在获取了需要更新的通知(Update函数的调用)后,可以通过当前页面(切换的网页页面)提取到对应的数据结构(如AdfilterTabHelper类)。相关代码为:
AdfilterTabHelper*ad_filter=AdfilterTabHelper::FromWebContents(web_contents);
通过提取到的页面对应的数据结构,即可取出相关数据(浏览器插件更新信息)。例如,如果浏览器插件更新信息为N条拦截信息,则可以在内存中生成的浏览器插件图标中,显示数字N。
从页面对应数据结构中取出相关数据的具体流程如下:由于数据保存在与TAB相关类中,该相关类为AdfilterTabHelper,通过获取该相关类的指针,即通过AdfilterTabHelper*ad_filter=AdfilterTabHelper::FromWebContents(w eb_contents)获取类指针,利用类指针访问类成员,从而获取相关的数据。
作为可选实施例,生成浏览器插件图标包括:
创建与背景图大小相同的空白图(gfx::Canvas),并将背景图画在创建的空白图Canvas上;
将数字背景(按要显示数字的位数大小来取绘制红色背景的宽度)绘制在空白图Canvas的右下角上,以实现叠加覆盖;
利用数字背景的位置来计算数字开始绘制的XY坐标值,将数字图片继续叠加到空白图Canvas上。
这样,经过上述三部流程,可以得到经过上述三层绘制后得到的最终用于显示的浏览器插件图标ICON。将该ICON重新设置为插件按钮的ICON图片,从而完成整个的实时更新操作。由于这一切操作都在内存的Canvas上操作,因此处理速度方面非常快,用户不会感觉出有任何卡顿。
作为可选实施例,用户通过浏览器安装浏览器插件后,可以在浏览器地址栏中实时显示安装完成的浏览器插件图标。该方法进一步包括:
在监听到浏览器插件安装完成后,获取浏览器插件图标,并将获取的浏览器插件图标置于所述插件容器中。
本步骤中,将获取的浏览器插件图标置于所述插件容器中包括:
判断浏览器地址栏中的插件容器内的可用长度是否能够匹配所述浏览器插件图标,如果是,将所述浏览器插件图标置于所述插件容器中,否则,删除所述插件容器中的浏览器插件图标,以使所述插件容器内的可用长度能够匹配所述获取的浏览器插件图标,并将所述获取的浏览器插件图标置于所述插件容器中。
具体来说,BrowserActionsContainer通过监听用于加载浏览器插件的扩展模块的事件消息,例如,安装事件消息(BrowserActionAdded)或卸载事件消息(BrowserActionRemoved),从而动态添加、删除浏览器地址栏中的子元素(BrowserActionView),即浏览器插件图标。
由上述可见,本发明实施例加载浏览器插件图标的方法,通过对浏览器插件(扩展程序)进行统一管理(显示、隐藏、禁用、卸载),提供了便利的维护管理,减少了用户操作浏览器插件的时间成本;同时,有效地利用了浏览器地址栏的剩余空间布局,不会创建多余的一片区域来挤压工具栏空间,使得浏览器页面中的内容可显示的高度增加,从而提升浏览器页面中内容的显示效果,从视觉角度上来看更加合理,更加简约;进一步地,可通过右击对应浏览器插件图标选择隐藏来简化工具栏的界面,并通过配合统一管理页面快捷维护浏览器插件图标的显示、启用状态,从而实现浏览器插件图标的动态调整;而且,浏览器插件可针对每个TAB页面(网页页面)维护对应的一套数据结构,以使得切换TAB标签可保存本页面相关插件的数据状态,使得浏览器插件的状态可随当前显示页面的不同,而显示不同的状态,页面切换时自动变化,能够实时反映浏览器插件的更新信息,满足了用户的个性化需求,提升了用户的业务体验,尤其可用于广告拦截数目显示。
图5为本发明实施例浏览器结构示意图。参见图5,该浏览器包括:映射关系集构建模块以及浏览器插件图标加载模块,其中,
映射关系集构建模块,用于在各网页页面对应的浏览器地址栏中的可用空间内设置用于显示浏览器插件图标的插件容器,构建网页页面与插件容器长度的映射关系集;
本发明实施例中,映射关系集构建模块包括:插件容器设置单元、长度获取单元以及映射关系集构建单元(图中未示出),其中,
插件容器设置单元,用于在各网页页面对应的浏览器地址栏中的可用空间内设置用于显示浏览器插件图标的插件容器;
长度获取单元,用于获取网页页面对应的网址信息占用的字符长度;
映射关系集构建单元,用于根据浏览器地址栏的字符长度以及所述网页页面对应的网址信息占用的字符长度,计算所述网页页面对应的插件容器的字符长度,并构建对应的映射关系,依据多个映射关系生成映射关系集。
作为可选实施例,映射关系集构建模块进一步包括:
内置单元,用于在浏览器地址栏中的可用空间内设置用于显示浏览器内置功能程序图标的浏览器内置功能容器。
浏览器插件图标加载模块,用于在监测到浏览器加载网页页面后,查询预先存储的网页页面与插件容器长度的映射关系集,获取加载的网页页面映射的插件容器长度,按照获取的插件容器长度在所述插件容器中加载浏览器插件图标。
本发明实施例中,浏览器插件图标加载模块包括:查询单元、计算单元以及加载处理单元(图中未示出),其中,
查询单元,用于在监测到浏览器加载网页页面后,查询预先存储的网页页面与插件容器长度的映射关系集,获取加载的网页页面映射的插件容器长度;
计算单元,用于计算待加载浏览器插件图标集中所有浏览器插件图标的总长度;
加载处理单元,用于判断计算的总长度是否大于所述获取的插件容器长度,如果是,从所述待加载浏览器插件图标集中,选取符合预先设置的加载策略的浏览器插件图标,并加载到所述插件容器中;否则,将所述待加载浏览器插件图标集中的所有浏览器插件图标加载到所述插件容器中。
本发明实施例中,作为可选实施例,选取符合预先设置的加载策略的浏览器插件图标包括:
按照浏览器插件图标的优先级,对待加载浏览器插件图标集中设置为显示的浏览器插件图标进行排序;
计算排序前N位的浏览器插件图标的聚合长度,使得计算的聚合长度不大于所述获取的插件容器长度,并将所述排序前N位的浏览器插件图标作为所述符合预先设置的加载策略的浏览器插件图标。
作为另一可选实施例,选取符合预先设置的加载策略的浏览器插件图标包括:
按照浏览器插件图标的加载计数值,对待加载浏览器插件图标集中的浏览器插件图标进行排序;
计算排序前N位的浏览器插件图标的聚合长度,使得计算的聚合长度不大于所述获取的插件容器长度,并将所述排序前N位的浏览器插件图标作为所述符合预先设置的加载策略的浏览器插件图标。
作为可选实施例,该浏览器进一步包括:
浏览器插件图标隐藏处理模块,用于接收插件容器中浏览器插件图标输出的隐藏指令,隐藏输出隐藏指令的浏览器插件图标,并调整所述插件容器中的浏览器插件图标位置。
本发明实施例中,浏览器插件图标隐藏处理模块包括:监测单元、通知单元、隐藏单元以及调整单元(图中未示出),其中,
监测单元,用于在监测到用户点击隐藏按钮后,浏览器由JS向HANDLER发送extensionSettingsEnable消息传递List参数;
通知单元,用于接收List参数,发出通知给插件容器(BrowserActionsContainer),通知中包含接收的List参数;
隐藏单元,用于根据接收的List参数中的"false"字符串隐藏对应的浏览器插件图标;
调整单元,用于将位于所述隐藏的浏览器插件图标左侧的浏览器插件图标依序右移。
作为可选实施例,浏览器插件图标隐藏处理模块进一步包括:
再加载单元,用于读取浏览器插件图标集中排序在所述隐藏的浏览器插件图标后的浏览器插件图标,加载到插件容器中最左侧的位置。
作为另一可选实施例,该浏览器进一步包括:
页面切换处理模块,用于在监测到网页页面切换后,根据切换的网页页面映射的插件容器长度,在所述切换的网页页面对应的插件容器中加载浏览器插件图标。
本发明实施例中,页面切换处理模块包括:创建单元、监测单元、遍历单元以及页面切换处理单元(图中未示出),其中,
创建单元,用于为待加载浏览器插件图标集中的每一网页页面创建相应的数据结构,并在创建的数据结构中,存储插件长度信息以及浏览器插件更新信息;
监测单元,用于在监测到调用系统TabStripModel::ActivateTabAt函数后,向浏览器地址栏发出ActiveTabChanged的消息通知;
遍历单元,用于接收ActiveTabChanged的消息通知,调用插件容器的Update函数,遍历待加载浏览器插件图标集中的每一网页页面对应的数据结构;
页面切换处理单元,用于获取切换的网页页面对应的数据结构,读取存储的浏览器插件更新信息,根据读取的所述浏览器插件更新信息以及插件长度信息,生成浏览器插件图标并加载至插件容器中。
本发明实施例中,从页面对应数据结构中取出相关数据的具体流程如下:由于数据保存在与TAB相关类中,该相关类为AdfilterTabHelper,通过获取该相关类的指针,即通过AdfilterTabHelper*ad_filter=AdfilterTabHelper::FromWebContents(web_contents)获取类指针,利用类指针访问类成员,从而获取相关的数据。
作为可选实施例,该浏览器还可以进一步包括:
管理页面模块,用于读取浏览器地址栏插件容器中显示的浏览器插件图标对应的更新信息;根据读取的更新信息更新管理页面待加载浏览器插件图标集中对应的浏览器插件图标。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的浏览器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站服务器上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1.一种加载浏览器插件图标的方法,包括:
预先在各网页页面对应的浏览器地址栏中的可用空间内设置用于显示浏览器插件图标的插件容器,构建网页页面与插件容器长度的映射关系集;
在监测到浏览器加载网页页面后,查询预先存储的网页页面与插件容器长度的映射关系集,获取加载的网页页面映射的插件容器长度,按照获取的插件容器长度在所述插件容器中加载浏览器插件图标。
A2.根据A1所述的方法,所述构建网页页面与插件容器长度的映射关系集包括:
获取网页页面对应的网址信息占用的字符长度;
根据浏览器地址栏的字符长度以及所述网页页面对应的网址信息占用的字符长度,计算所述网页页面对应的插件容器的字符长度。
A3.根据A1所述的方法,所述方法进一步包括:
在浏览器地址栏中的可用空间内设置用于显示浏览器内置功能程序图标的浏览器内置功能容器。
A4.根据A1所述的方法,所述方法进一步包括:
在与浏览器地址栏同行的可用空间位置,设置工具栏按钮以及搜索栏。
A5.根据A1所述的方法,所述按照获取的插件容器长度在所述插件容器中加载浏览器插件图标包括:
计算待加载浏览器插件图标集中所有浏览器插件图标的总长度;
判断计算的总长度是否大于所述获取的插件容器长度,如果是,从所述待加载浏览器插件图标集中,选取符合预先设置的加载策略的浏览器插件图标,并加载到所述插件容器中;否则,将所述待加载浏览器插件图标集中的所有浏览器插件图标加载到所述插件容器中。
A6.根据A5所述的方法,所述选取符合预先设置的加载策略的浏览器插件图标包括:
按照浏览器插件图标的优先级,对待加载浏览器插件图标集中设置为显示的浏览器插件图标进行排序;
计算排序前N位的浏览器插件图标的聚合长度,使得计算的聚合长度不大于所述获取的插件容器长度,并将所述排序前N位的浏览器插件图标作为所述符合预先设置的加载策略的浏览器插件图标。
A7.根据A5所述的方法,所述选取符合预先设置的加载策略的浏览器插件图标包括:
按照浏览器插件图标的加载计数值,对待加载浏览器插件图标集中的浏览器插件图标进行排序;
计算排序前N位的浏览器插件图标的聚合长度,使得计算的聚合长度不大于所述获取的插件容器长度,并将所述排序前N位的浏览器插件图标作为所述符合预先设置的加载策略的浏览器插件图标。
A8.根据A1至7任一项所述的方法,所述方法进一步包括:
接收所述插件容器中浏览器插件图标输出的隐藏指令,隐藏输出隐藏指令的浏览器插件图标,并调整所述插件容器中的浏览器插件图标位置。
A9.根据A8所述的方法,所述接收所述插件容器中浏览器插件图标输出的隐藏指令,隐藏输出隐藏指令的浏览器插件图标包括:
监测到用户点击隐藏按钮,浏览器由JS向HANDLER发送extensionSettingsEnable消息传递List参数;
浏览器中的ExtensionSerivce类接收List参数,发出通知给插件容器,通知中包含接收的List参数;
插件容器的BrowserActionRemoved函数或BrowserActionAdded函数根据接收的List参数中的"false"字符串隐藏对应的浏览器插件图标。
A10.根据A9所述的方法,所述方法进一步包括:
读取浏览器插件图标集中排序在所述隐藏的浏览器插件图标后的浏览器插件图标,加载到插件容器中最左侧的位置。
A11.根据A8所述的方法,所述调整所述插件容器中的浏览器插件图标位置包括:
将位于所述隐藏的浏览器插件图标左侧的浏览器插件图标依序右移。
A12.根据A1至A7任一项所述的方法,所述方法进一步包括:
浏览器获取显示的浏览器插件图标对应的浏览器插件的动态更新信息,并将获取的动态更新信息加载到相应的浏览器插件图标上。
A13.根据A1至A7任一项所述的方法,所述方法进一步包括:
读取浏览器地址栏插件容器中显示的浏览器插件图标对应的更新信息;
根据读取的更新信息更新管理页面待加载浏览器插件图标集中对应的浏览器插件图标。
A14.根据A13所述的方法,所述方法进一步包括:
浏览器通过创建Chrome内置域名生成所述管理页面。
A15.根据A1至A7任一项所述的方法,所述方法进一步包括:
监测到网页页面切换,根据切换的网页页面映射的插件容器长度,在所述切换的网页页面对应的插件容器中加载浏览器插件图标。
A16.根据A15所述的方法,所述监测到网页页面切换,根据切换的网页页面映射的插件容器长度,在所述切换的网页页面对应的插件容器中加载浏览器插件图标包括:
为待加载浏览器插件图标集中的每一网页页面创建相应的数据结构,并在创建的数据结构中,存储浏览器插件更新信息;
浏览器监测到调用系统TabStripModel::ActivateTabAt函数,向浏览器地址栏发出ActiveTabChanged的消息通知;
浏览器地址栏接收ActiveTabChanged的消息通知,调用插件容器的Update函数,遍历待加载浏览器插件图标集中的每一网页页面对应的数据结构;
获取切换的网页页面对应的数据结构,读取存储的浏览器插件更新信息,根据读取的所述浏览器插件更新信息,生成浏览器插件图标并加载至插件容器中。
A17.根据A16所述的方法,所述生成浏览器插件图标包括:
创建与背景图大小相同的空白图,并将背景图画在创建的空白图上;
将数字背景绘制在空白图的右下角上,以实现叠加覆盖;
利用数字背景的位置来计算数字开始绘制的XY坐标值,将数字图片继续叠加到空白图上。
A18.根据A1至A7任一项所述的方法,所述方法进一步包括:
在监听到浏览器插件安装完成后,获取浏览器插件图标,并将获取的浏览器插件图标置于所述插件容器中。
A19.根据A18所述的方法,所述将获取的浏览器插件图标置于所述插件容器中包括:
判断浏览器地址栏中的插件容器内的可用长度是否能够匹配所述浏览器插件图标,如果是,将所述浏览器插件图标置于所述插件容器中,否则,删除所述插件容器中的浏览器插件图标,以使所述插件容器内的可用长度能够匹配所述获取的浏览器插件图标,并将所述获取的浏览器插件图标置于所述插件容器中。
B20.一种浏览器,该浏览器包括:映射关系集构建模块以及浏览器插件图标加载模块,其中,
映射关系集构建模块,用于在各网页页面对应的浏览器地址栏中的可用空间内设置用于显示浏览器插件图标的插件容器,构建网页页面与插件容器长度的映射关系集;
浏览器插件图标加载模块,用于在监测到浏览器加载网页页面后,查询预先存储的网页页面与插件容器长度的映射关系集,获取加载的网页页面映射的插件容器长度,按照获取的插件容器长度在所述插件容器中加载浏览器插件图标。
B21.根据B20所述的浏览器,所述映射关系集构建模块包括:插件容器设置单元、长度获取单元以及映射关系集构建单元,其中,
插件容器设置单元,用于在各网页页面对应的浏览器地址栏中的可用空间内设置用于显示浏览器插件图标的插件容器;
长度获取单元,用于获取网页页面对应的网址信息占用的字符长度;
映射关系集构建单元,用于根据浏览器地址栏的字符长度以及所述网页页面对应的网址信息占用的字符长度,计算所述网页页面对应的插件容器的字符长度,并构建对应的映射关系,依据多个映射关系生成映射关系集。
B22.根据B21所述的浏览器,所述映射关系集构建模块进一步包括:
内置单元,用于在浏览器地址栏中的可用空间内设置用于显示浏览器内置功能程序图标的浏览器内置功能容器。
B23.根据B20所述的浏览器,所述浏览器插件图标加载模块包括:查询单元、计算单元以及加载处理单元,其中,
查询单元,用于在监测到浏览器加载网页页面后,查询预先存储的网页页面与插件容器长度的映射关系集,获取加载的网页页面映射的插件容器长度;
计算单元,用于计算待加载浏览器插件图标集中所有浏览器插件图标的总长度;
加载处理单元,用于判断计算的总长度是否大于所述获取的插件容器长度,如果是,从所述待加载浏览器插件图标集中,选取符合预先设置的加载策略的浏览器插件图标,并加载到所述插件容器中;否则,将所述待加载浏览器插件图标集中的所有浏览器插件图标加载到所述插件容器中。
B24.根据B20至B23任一项所述的浏览器,所述浏览器进一步包括:
浏览器插件图标隐藏处理模块,用于接收插件容器中浏览器插件图标输出的隐藏指令,隐藏输出隐藏指令的浏览器插件图标,并调整所述插件容器中的浏览器插件图标位置。
B25.根据B24所述的浏览器,所述浏览器插件图标隐藏处理模块包括:监测单元、通知单元、隐藏单元以及调整单元,其中,
监测单元,用于在监测到用户点击隐藏按钮后,浏览器由JS向HANDLER发送extensionSettingsEnable消息传递List参数;
通知单元,用于接收List参数,发出通知给插件容器,通知中包含接收的List参数;
隐藏单元,用于根据接收的List参数中的"false"字符串隐藏对应的浏览器插件图标;
调整单元,用于将位于所述隐藏的浏览器插件图标左侧的浏览器插件图标依序右移。
B26.根据B25所述的浏览器,所述浏览器插件图标隐藏处理模块进一步包括:
再加载单元,用于读取浏览器插件图标集中排序在所述隐藏的浏览器插件图标后的浏览器插件图标,加载到插件容器中最左侧的位置。
B27.根据B20至B23任一项所述的浏览器,所述浏览器进一步包括:
页面切换处理模块,用于在监测到网页页面切换后,根据切换的网页页面映射的插件容器长度,在所述切换的网页页面对应的插件容器中加载浏览器插件图标。
B28.根据B27所述的浏览器,所述页面切换处理模块包括:创建单元、监测单元、遍历单元以及页面切换处理单元,其中,
创建单元,用于为待加载浏览器插件图标集中的每一网页页面创建相应的数据结构,并在创建的数据结构中,存储插件长度信息以及浏览器插件更新信息;
监测单元,用于在监测到调用系统TabStripModel::ActivateTabAt函数后,向浏览器地址栏发出ActiveTabChanged的消息通知;
遍历单元,用于接收ActiveTabChanged的消息通知,调用插件容器的Update函数,遍历待加载浏览器插件图标集中的每一网页页面对应的数据结构;
页面切换处理单元,用于获取切换的网页页面对应的数据结构,读取存储的浏览器插件更新信息,根据读取的所述浏览器插件更新信息以及插件长度信息,生成浏览器插件图标并加载至插件容器中。
B29.根据B20至B23任一项所述的浏览器,所述浏览器进一步包括:
管理页面模块,用于读取浏览器地址栏插件容器中显示的浏览器插件图标对应的更新信息;根据读取的更新信息更新管理页面待加载浏览器插件图标集中对应的浏览器插件图标。