用于经由远程浏览器实例查看不兼容网页的系统和方法与流程

文档序号:33186553发布日期:2023-02-04 06:41阅读:52来源:国知局
用于经由远程浏览器实例查看不兼容网页的系统和方法与流程
用于经由远程浏览器实例查看不兼容网页的系统和方法


背景技术:

1.网络浏览器(或“浏览器”)是一种用于访问万维网(world wide web)上的信息的软件应用。网络浏览器安装在用户设备上,以使得那些设备的用户能够从网络服务器检索资源(例如,个体网页、图像、视频等)并且将其显示在用户设备中。网络浏览器也用于运行应用(例如,网络邮件、在线零售销售、在线拍卖),称为“网络应用”或“网络app”。网络应用是一种客户端服务器计算机程序,其中客户端(包括用户界面和客户端逻辑)在网络浏览器中运行。客户端根据需要与服务器通信,以在用户设备处实现网络应用的功能。
2.随着网络浏览器多年来的发展,企业已经开发出了利用先进网络浏览器的不断增强的功能以及新网络浏览器的功能的内容。在某些情况下,为特定网络浏览器类型和/或浏览器版本而开发的内容(诸如网络应用)尚未更新为与更现代的网络浏览器和/或浏览版本兼容。因此,这样的内容可能与较新的网络浏览器和/或浏览器版本不兼容,并且因此被迫以较不先进的浏览器类型和/或版本运行。


技术实现要素:

3.提供本“发明内容”是为了以简化的形式介绍一些概念,这些概念将在下面的“具体实施方式”中进一步描述。本“发明内容”不旨在确定所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。
4.本文中描述的方法、系统、装置和计算机可读存储介质使得网络浏览器能够显示与其不兼容的网页的内容。在各方面,当与第一网络浏览器不兼容的网页要被遍历时,被配置为执行与该页面兼容的第二网络浏览器的实例的虚拟机被实例化。虚拟机可以例如在基于云的平台中远程执行。第一网络浏览器和第二网络浏览器经由用于在它们之间共享信息的通信通道进行通信。例如,第一网络浏览器向第二网络浏览器提供网页的统一资源定位符(url),并且第二网络浏览器相应地遍历网页。与由第二网络浏览器所绘制(render)的网页相对应的图形信息被提供给第一网络浏览器。第一网络浏览器基于图形信息生成与网页相对应的图像,并且在第一网络浏览器的浏览器窗口(例如,标签(tab))中绘制图像。这为用户提供了视觉体验,其中当网页实际上由第二网络浏览器绘制时,该页面看起来是由第一浏览器绘制的。
5.以下参考附图详细描述实施例的其他特征和优点、以及各种实施例的结构和操作。注意,这些方法和系统不限于本文中描述的具体实施例。这样的实施例在本文中仅出于说明目的而呈现。基于本文中包含的教导,其他实施例对于相关领域的技术人员将是很清楚的。
附图说明
6.并入本文中并且构成说明书的一部分的附图说明了本技术的实施例,并且与说明书一起进一步用于解释实施例的原理,并且使得相关领域的技术人员能够制作和使用实施例。
7.图1示出了根据示例实施例的用于经由第二浏览器查看与第一浏览器不兼容的网页的系统的框图。
8.图2示出了根据示例实施例的用于经由在虚拟机上执行的远程第二浏览器来查看与第一浏览器不兼容的网页的系统的框图。
9.图3示出了根据示例实施例的用于在第一浏览器内查看与第一浏览器不兼容的网页的计算设备中的方法的流程图。
10.图4示出了根据示例实施例的用于生成与由第二浏览器所绘制的网页相对应的图像的方法的流程图。
11.图5描绘了根据示例实施例的被配置为生成与由第二浏览器所绘制的网页相对应的图像的第一浏览器的框图。
12.图6示出了根据示例实施例的用于在第一浏览器中查看来自多个不兼容网页的内容的方法的流程图。
13.图7描绘了根据示例实施例的用于在第一浏览器中查看来自多个不兼容网页的内容的系统的框图。
14.图8示出了根据示例实施例的用于管理远程浏览器的浏览器窗口的方法的流程图。
15.图9是可以在其中实现实施例的示例性用户设备的框图。
16.图10是可以用于实现各种实施例的示例性的基于处理器的计算机系统的框图。
17.本文中描述的实施例的特征和优点将从以下结合附图进行的详细描述中变得更加明显,其中相同的附图标记始终标识对应元素。在附图中,相同的附图标记通常表示相同的、功能相似的和/或结构相似的元素。元素首次出现的图由对应附图标记中最左边的数字表示。
具体实施方式
18.i.引言
19.以下详细描述公开了很多示例实施例。本专利申请的范围不限于所公开的实施例,还包括所公开的实施例的组合以及对所公开的实施例的修改。
20.说明书中对“一个实施例”、“实施例”和“示例实施例”等的引用表明,所描述的实施例可以包括特定的特征、结构或特性,但每个实施例不一定包括特定的特征、结构或特性。此外,这样的短语不一定是指相同实施例。此外,当结合实施例描述特定的特征、结构或特性时,认为结合其他实施例(无论是否明确描述)实现这样的特征、结构和特性在本领域技术人员的知识范围内。
21.在讨论中,除非另有说明,否则修饰本公开的实施例的一个或多个特征的条件或关系特性的诸如“基本上”和“大约”等形容词被理解为表示该条件或特性被定义为在其预期应用的实施例的操作可接受的公差范围内。
22.以下描述很多示例性实施例。注意,本文中提供的任何章节/小节标题并非旨在限制。本文档中描述了实施例,并且任何类型的实施例都可以被包括在任何章节/小节中。此外,任何章节/小节中公开的实施例可以以任何方式与相同章节/小节和/或不同章节/小节中描述的任何其他实施例相结合。
23.ii.示例实施例
24.如上所述,随着网络浏览器多年来的发展,企业已经开发出了利用先进网络浏览器的不断增强的功能以及新网络浏览器功能的内容。在某些情况下,为特定网络浏览器类型和/或浏览器版本而开发的内容(诸如网络应用)尚未更新为与更现代的网络浏览器和/或浏览版本兼容。因此,这样的内容可能与较新的网络浏览器和/或浏览器版本不兼容,并且因此被迫以较不先进的浏览器类型和/或版本运行。这对于使用其中未安装有旧网络浏览器和/或旧网络浏览器不可用于这样的设备的设备的用户来说是有问题的,因为这样的用户无法查看这样的内容。
25.在网络应用的情况下,该问题的潜在解决方案是为网络应用提供双重解决方案,这表示开发和维护网络应用的多个版本(例如,针对每个感兴趣的浏览器类型/版本)。然而,这种方法会消耗资源和时间。此外,用户需要知道哪个浏览器版本与哪个网络应用版本兼容。另一种解决方案引入了自动切换的概念,其中网络应用将打开新的浏览器应用,并且基于规范格式切换到该浏览器应用,该规范格式允许管理员指定网络应用站点列表和兼容浏览器。然而,该解决方案对用户来说是可见的,并且非常分散注意力。另一种解决方案引入了以下概念,即,从试图打开网络应用的不兼容浏览器的打开的浏览器窗口调用与网络应用兼容的浏览器的新浏览器窗口。虽然这可以是对其他解决方案的改进,但它也有不足之处,包括需要在单独的窗口中的单独的浏览器之间进行切换。
26.本文中描述的实施例有助于解决与网络浏览器的内容兼容性相关的这些和其他问题。在实施例中,当与第一网络浏览器不兼容的网页要被遍历时,被配置为执行与该页面兼容的第二网络浏览器的实例的虚拟机被实例化。虚拟机可以例如在基于云的平台中远程执行。第一网络浏览器和第二网络浏览器经由用于在它们之间共享信息的通信通道进行通信。例如,第一网络浏览器向第二网络浏览器提供网页的统一资源定位符(url),并且第二网络浏览器相应地遍历网页。与由第二网络浏览器绘制的网页相对应的图形信息被提供给第一网络浏览器。第一网络浏览器基于图形信息生成与网页相对应的图像,并且在第一网络浏览器的浏览器窗口或标签中绘制图像。这为用户提供了视觉体验,其中当网页实际上由第二网络浏览器绘制时,该页面看起来是由第一浏览器绘制的。
27.这样的实施例可以以各种方式实现。例如,图1示出了根据示例实施例的用于经由第二浏览器查看与第一浏览器不兼容的网页的系统100的框图。如图1所示,系统100包括第一浏览器104和计算实体102。计算实体102的示例包括但不限于物理计算设备和仿真计算设备。物理计算设备的示例包括任何类型的移动计算设备,诸如设备、个人数字助理(pda)、膝上型电脑、笔记本电脑和平板电脑(诸如apple ipadtm)、上网本、智能手机(诸如apple iphone、实现androidtm操作系统的手机等)、可穿戴计算设备(例如,头戴式设备,包括诸如glasstm等智能眼镜、虚拟头戴式耳机,诸如oculus vr,llc的oculus或microsoft corporation的等)、诸如台式计算机或pc(个人计算机)等固定计算设备、或其他支持浏览器的设备。仿真计算设备的示例包括虚拟机。根据一个实施例,第一浏览器104在远离计算实体102的计算设备上执行。根据另一实施例,第一浏览器104和计算实体102在同一计算设备上执行。
28.第一浏览器104包括第一绘制引擎120,并且具有打开的浏览器窗口110。计算实体
102被配置为执行第二浏览器106,第二浏览器106未安装在第一浏览器104在其上执行的计算设备上。第二浏览器106包括第二绘制引擎122。如图1所示,第一浏览器104和计算实体102经由一个或多个通信接口112被通信地耦合。(多个)通信接口的示例包括但不限于应用程序编程接口(api)、通用串行端口(usb)端口和/或电缆,ieee 1394(火线)端口和/或电缆、rs-232端口和/或电缆、rj-45端口和/电缆等。
29.第一浏览器104和第二浏览器106是网络浏览器,网络浏览器是用于访问万维网上的信息的软件应用。例如,第一浏览器104和第二浏览器106可以被配置为接收到网页的链接,在由链接指示的地址处检索网页,并且绘制页面以显示给第一浏览器104在其上执行的计算设备的用户。第一浏览器104和第二浏览器106的示例包括都由华盛顿州雷蒙德的microsoft corp.开发的internet或microsoft由加利福尼亚州山景城的mozilla corp.开发的mozilla由加州库比蒂诺的apple inc.开发的以及由加利福尼亚州山景城的google corp.开发的chrometm。在实施例中,第一浏览器104和第二浏览器106彼此不同。例如,第一浏览器104和第二浏览器106可以是不同网络浏览器类型(例如,chrometm和microsoft)。备选地,第一浏览器104和第二浏览器106可以是同一网络浏览器的不同版本。
30.第一浏览器104和第二浏览器106的第一绘制引擎120和第二绘制引擎122分别被配置为在浏览器窗口和/或浏览器窗口的浏览器标签中生成内容的显示,包括将html(超文本标记语言)文档和网页的其他资源转换为交互式视觉表示。在一个实施例中,第一绘制引擎120和第二绘制引擎122中的每个可以被配置为在对应浏览器窗口和/或标签的显示窗口区域内执行页面布局和内容绘制。浏览器引擎的示例包括在mozilla网络浏览器中使用的geckotm、由apple safari浏览器使用的webkittm引擎、在internet explorer中使用的tridenttm(mshtml)、以及在google chrome和microsoft edge浏览器中使用的blinktm。
31.如上所述,网页可以与某些浏览器兼容,但与其他浏览器不兼容。例如,第一页面116可以与第二浏览器106兼容,但不与第一浏览器104兼容。在这种情况下,第一浏览器104可以使计算实体102执行第二浏览器106的实例。在计算实体102是物理计算设备的实施例中,第一浏览器104可以经由(多个)通信接口112向计算实体102提供请求,该请求使计算实体102启动第二浏览器106。在计算实体102是虚拟机的实施例中,第一浏览器104可以经由(多个)通信接口112提供请求,该请求使虚拟机被实例化(例如,在第一浏览器104在其上执行的计算设备本地或由云服务平台维护的远程虚拟机)以执行第二浏览器106的实例。如图1所示,第二浏览器106在浏览器窗口110中绘制第一页面116。第一页面116的内容经由(多个)通信接口112被提供给第一浏览器104,并且第一绘制引擎120在标签114(被示出为第一页面内容118)内绘制第一页面116的内容。以这种方式,即使当第二浏览器106未安装在第一浏览器104在其上执行的同一计算设备上时,与第二浏览器106兼容但不与第一浏览器104兼容的页面仍可以在第一浏览器104内被显示给用户,从而提供了改进的用户体验。这可以通过各种方式实现。
32.例如,图2描绘了根据示例实施例的用于经由在虚拟机上执行的远程第二浏览器来查看与第一浏览器不兼容的网页的系统的框图。如图2所示,系统200包括经由网络212被
通信地耦合的计算设备234和云服务平台208。网络212可以包括一个或多个网络,诸如局域网(lan)、广域网(wan)、企业网络、互联网等,并且可以包括有线和/或无线部分中的一个或多个。计算设备234是用户能够经由其被启用以运行应用并且访问与各种网络浏览器兼容的网页的计算设备。计算设备234可以是任何类型的移动计算设备,诸如的网页的计算设备。计算设备234可以是任何类型的移动计算设备,诸如设备、个人数字助理(pda)、膝上型电脑、笔记本电脑、平板电脑(诸如apple ipadtm)、上网本、智能手机(诸如apple iphone、实现androidtm操作系统的手机等)、可穿戴计算设备(例如,头戴式设备,包括诸如glasstm等智能眼镜、虚拟头戴式耳机,诸如oculus vr,llc的oculus或microsoft corporation的等)、诸如台式计算机或pc(个人计算机)等固定计算设备、或其他支持浏览器的设备。
33.如图2所示,计算设备234包括第一浏览器204,第一浏览器204是如以上参考图1所述的第一浏览器104的示例。第一浏览器204包括多浏览器标签管理器226和第一绘制引擎220。第一绘制引擎220是如以上参考图1所述的第一绘制引擎120的示例。第一浏览器204的第一绘制引擎220被配置为在浏览器窗口的显示窗口区域和/或浏览器窗口的浏览器标签中生成内容的显示,包括将html(超文本标记语言)文档和网页的其他资源转换成交互式视觉表示。
34.根据至少一个实施例,云服务平台208包括由华盛顿州雷蒙德市微软公司拥有的云计算平台的一部分,尽管这只是一个示例,并非旨在限制。云服务平台208包括虚拟桌面服务218。
35.多浏览器标签管理器226被配置为接收到网络应用的页面的导航请求,并且确定请求所指向的页面是否与不同浏览器兼容,但与第一浏览器204不兼容,诸如通过与浏览器兼容性列表进行对照。浏览器兼容性列表可以列出(多个)其他浏览器与其兼容(例如,能够绘制)并且第一浏览器204与其不兼容的内容的特定内容项目、网络应用、文件扩展和/或其他标识符。如果多浏览器标签管理器226确定所请求的页面与第一浏览器204兼容(例如,在与第一浏览器204不兼容的浏览器兼容性列表中未标识),则第一浏览器204接收该网络地址并且将第一浏览器204内的页面绘制为正常(例如,在浏览器窗口210和/或浏览器窗口210的标签214内)。然而,如果多浏览器标签管理器226确定页面与另一浏览器(其未安装在计算设备234上)兼容,但不与第一浏览器204(例如,其在浏览器兼容性列表中被标识为与另一浏览器兼容但与第一浏览器204不兼容)兼容,则多浏览器标签管理器226使被配置为执行兼容浏览器的虚拟机被实例化。
36.例如,第一浏览器204的多浏览器标签管理器226的接口可以经由网络212向在云服务平台208中执行的虚拟桌面服务218发出调用请求(例如,api(应用程序编程接口)调用)。调用请求使虚拟桌面服务218调用虚拟机202,虚拟机202被配置为执行与页面兼容的浏览器(例如,第二浏览器206)并且被配置为执行使得第一浏览器204和第二浏览器206能够通信的服务。虚拟机202是如以上参考图1所述的计算实体102的示例。服务可以包括远程桌面协议(rdp)服务228。虚拟桌面服务218和虚拟机202中的每个可以经由经由网络被通信地耦合的云服务平台208的一个或多个节点(或服务器)来执行。虚拟桌面服务218的示例包
括但不限于由华盛顿州雷蒙德市的corporation发布的虚拟桌面。
37.调用请求可以包括计算设备234的用户的用户凭证(例如,用户名、密码、访问令牌等)。例如,在尝试经由第一浏览器204访问不兼容的网页时,用户可以被提示输入他或她的用户凭证,该凭证经由调用请求被提供给虚拟桌面服务218。虚拟桌面服务218使用接收的用户凭证来认证用户,以确定用户是否被授权利用虚拟桌面服务218和/或实例化虚拟机202。在成功认证之后,虚拟桌面服务218实例化虚拟机202和/或向第一浏览器204提供虚拟机202已经被实例化的确认。
38.虚拟机202可以经由虚拟机发起的请求来发起(或启动)第二浏览器206,该虚拟机发起的请求包括使第二浏览器206加载主机浏览器接口224的一个或多个参数(例如,(多个)命令行参数)。例如,(多个)参数可以指定主机浏览器接口224的名称和/或从其加载主机浏览器接口224的位置。主机浏览器接口224可以被实现为动态链接库(dll),该dll被加载到第二浏览器206的进程中(例如,响应于接收到请求而从由虚拟机202维护的dll库中)。
39.如图2所示,第二浏览器206还包括第二绘制引擎222。第二浏览器206的第二绘制引擎222被配置为在浏览器窗口和/或浏览器窗口的浏览器标签中生成内容的显示,包括将html(超文本标记语言)文档和网页的其他资源转换为交互式视觉表示。在一个实施例中,第二绘制引擎222被配置为执行内容的页面布局和绘制。第二绘制引擎222是如以上参考图1所述的第二绘制引擎122的示例。
40.rdp服务228被配置为在第一浏览器204与第二浏览器206之间建立一个或多个通信通道。经由rdp服务228建立的(多个)通信通道是如以上参考图1所述的(多个)通信接口112的示例。
41.根据一个实施例,一个这样的通信通道是动态虚拟通道。动态虚拟通道实现第一浏览器204与第二浏览器206之间的进程间通信(ipc)。例如,第一浏览器204可以包括ipc api 230,该ipc api 230被配置为经由rdp服务228与主机浏览器接口224通信。根据一个实施例,ipc api 230包括一个或多个远程桌面核心api。
42.在确定所请求的页面与第一浏览器204不兼容的情况下,第一浏览器204可以经由ipc api 230向rdp服务228发出导航请求。导航请求包括不兼容网页的统一资源定位器(url)。rdp服务228向主机浏览器接口224提供消息。
43.主机浏览器接口224可以确定所标识的页面是否与第二浏览器206兼容,而不与第一浏览器204兼容。例如,主机浏览器接口224可以与浏览器兼容性列表进行对照以做出该确定。由主机浏览器接口224访问的浏览器兼容性列表可以是由多浏览器标签管理器226使用的相同页面兼容性列表或者是不同页面兼容性列表。在确定页面与第二浏览器206兼容而不与第一浏览器204兼容时,主机浏览器接口224使第二绘制引擎222在第二浏览器206的浏览器窗口210中绘制页面(示出为第一页面216)。
44.第二浏览器206例如经由动态虚拟通道向第一浏览器204提供与第一页面216相关联的上下文信息。例如,在绘制第一页面216时,主机浏览器接口224经由rdp服务228向第一浏览器204的ipc api230提供上下文信息。
45.上下文信息的一个示例包括第一页面216的标题。例如,主机浏览器接口224可以向ipc api 230提供指定第一页面216的标题的消息。多浏览器标签管理器226可以在标签
214的标题栏中显示标题。上下文信息的另一示例包括其中绘制有第一页面216的浏览器窗口(例如,浏览器窗口210)的窗口标识符。窗口标识符可以包括浏览器窗口210的句柄(handle)(例如,hwnd)。
46.第二浏览器206还可以例如经由动态虚拟通道向第一浏览器204提供与第一页面216相关联的状态信息。例如,主机浏览器接口224可以向ipc api 230提供消息,该消息包括指示由第二绘制引擎222加载和/或绘制的网页大小是否较大和/或加载时间是否较长的信息。基于状态信息,第一浏览器204使用户界面元素经由第一浏览器204被绘制以指示状态。例如,用户界面元素可以是由第一浏览器204使用的旋转轮或环(也称为“活动指示器(throbber)”)。由第二浏览器206用于反映该状态的用户界面元素(即,第二浏览器的活动指示器版本)不经由第一浏览器204进行显示。相反,利用由第一浏览器204使用的用户界面元素。
47.在另一示例中,状态信息可以指示第二绘制引擎222正在加载和/或绘制的网页是否受到用户的偏好。基于该信息,第一浏览器204使用户界面元素经由第一浏览器204被绘制以指示偏好状态。例如,用户界面元素可以是示出在第一浏览器204的地址栏中的星号。第二浏览器206用来反映该状态的用户界面元素(即,第二浏览器的星号版本)不显示。相反,利用由第一浏览器204使用的用户界面元素。上述技术有利地实现了经由第二浏览器206在第一浏览器204内可绘制的网页的无缝集成。
48.注意,上述上下文和状态信息纯粹是示例性的,并且上下文和状态可以包括第一浏览器204用来显示上下文或状态信息和/或利用其自己的特定用户界面元素版本的任何类型的信息。
49.为了接收第一页面216的内容,第一浏览器204可以为由第二绘制引擎222在其中绘制第一页面216的窗口(即,窗口210)实例化图形宿(graphics sink)232。图形宿232可以包括api,api被配置为经由rdp服务228接收图形信息。图形信息通过不同于第一通信通道的第二通信通道接收。根据一个实施例,第二通信通道是基于本地集成远程应用(rail)的通信通道。图形信息可以包括由第二绘制引擎222所绘制的第一页面216的每个像素的数据。每个像素的信息可以包括表示该像素的一种或多种颜色的位。第一绘制引擎220可以分析所接收的像素数据并且生成表示由第二绘制引擎所绘制的第一页面216的图像(例如,位图、jpeg、tiff、gif等)。第一绘制引擎220调整图像大小以适合标签214的显示窗口区域(示出为第一页面内容236),并且将内容236放置在显示窗口区域之上,以给出第一页面216被绘制在标签214中的外观。注意,图形信息不包括与第二浏览器206的任何ui元素相关联的信息,而是仅包括绘制在浏览器窗口210的显示窗口区域中的内容。
50.第二浏览器206可以提供标识图形信息所对应于的浏览器窗口210的窗口标识符。窗口标识符可以包括浏览器窗口210的句柄(例如,hwnd)。第一绘制引擎220使用经由第一通信通道和第二通信通道所接收的窗口标识符将经由第一通信通道接收的状态/上下文信息与经由第二通信通道所接收的图形信息相关联。这样,第一绘制引擎220将所接收的状态/上下文信息与对应图形信息适当地关联。
51.多浏览器标签管理器226还被配置为检测关于标签214的用户输入。检测到的关于内容236的用户输入经由第一通信通道被提供给第二浏览器206。例如,ipc api 230可以经由rdp服务228向主机浏览器接口224提供消息。对于诸如鼠标点击、触摸屏交互等用户输
入,该消息可以包括点击、交互等发生的位置的坐标。第二绘制引擎222利用坐标并且在坐标处生成对应用户输入。
52.例如,假定用户点击包括url的内容236的区域。ipc api 230经由rdp服务228向主机浏览器接口224提供关于内容236的点击的坐标。第二绘制引擎222在与第一页面216的url的位置相对应的那些坐标处生成(例如,模拟)鼠标点击。主机浏览器接口224确定位于url处的网页是否与第二浏览器206兼容,但与第一浏览器204不兼容。例如,主机浏览器接口224可以与浏览器兼容性列表进行对照以做出该确定。在确定页面与第二浏览器206兼容而不与第一浏览器204兼容时,第二绘制引擎222在浏览器窗口210中绘制页面。rdp服务228向图形宿232提供与浏览器窗口210正在绘制的新页面相对应的图形信息。第一绘制引擎220分析所接收的图形信息并且生成表示由第二绘制引擎222绘制的新页面的图像(例如,位图)。第二绘制引擎220调整图像大小以适合标签214的显示窗口区域,并且将位图放置在显示窗口区域之上。
53.在确定页面与第一浏览器204兼容的情况下,主机浏览器接口224经由rpd服务228向ipc api 230提供页面的url。响应于接收到url,多浏览器标签管理器226确定url是否与第一浏览器202兼容。例如,在确定页面与第一浏览器204兼容的情况下,通过与浏览器兼容性列表进行对照,第一绘制引擎220停止显示内容236,多浏览器标签管理器226导航到url,并且第一绘制引擎220在标签214内绘制网页。
54.内容236的显示也可以响应于用户使用第一浏览器204的用户界面导航到另一网页而终止。例如,假定用户在浏览器窗口210的地址栏中键入另一网页的url。多浏览器标签管理器226确定键入的url是否与第一浏览器204兼容,例如,通过与浏览器兼容性列表进行对照。在确定页面与第一浏览器204兼容的情况下,第一绘制引擎220停止显示内容236,多浏览器标签管理器226导航到url,并且第一绘制引擎220在标签214内绘制网页。
55.在另一示例中,假定用户执行向上滚动或向下滚动操作(例如,经由鼠标滚轮、键盘、触摸屏滑动等)。ipc api 230经由rdp服务228向主机浏览器接口224提供滚动事件。第二绘制引擎222生成(例如,模拟)关于浏览器窗口210的滚动事件,并且相应地向上或向下滚动第一页面216(取决于滚动事件)。rdp服务228向图形宿232提供与现在经由浏览器窗口210可见的第一页面216的部分相对应的图形信息。第一绘制引擎220分析所接收的图形信息并且生成表示由第二绘制引擎222绘制的第一页面216的可见部分的图像(例如,位图)。第一绘制引擎220调整图像大小以适合标签214的显示窗口区域,并且将图像放置在显示窗口区域之上,以给出第一页面216的新可见部分被绘制在标签214中的外观。
56.第一浏览器204可以实现用于维护与虚拟机202的连接的策略。根据一个实施例,响应于显示经由第一浏览器204接收的内容(例如,内容236)的所有浏览器窗口和/或标签被关闭,与虚拟机202的连接终止。根据另一实施例,响应于确定用户在预定持续时间(例如,30分钟、60分钟、120分钟等)内没有针对第一浏览器204的浏览器窗口和/或标签(经由第二浏览器206接收的内容在其中被显示)执行任何活动,与虚拟机202的连接终止。注意,这样的策略仅仅是示例性的,并且第一浏览器204可以利用其他策略来终止其与虚拟机202的连接。
57.因此,与第一浏览器不兼容的页面可以使用远程的第二浏览器206以多种方式显示。例如,图3示出了根据示例实施例的用于在与第一浏览器不兼容的第一浏览器内查看网
页的计算设备中的方法的流程图300。在一个实施例中,流程图300可以由在计算设备234上执行的第一浏览器204来实现。为了说明的目的,继续参考图2来描述流程图300。基于以下讨论,其他结构和操作实施例对于相关领域的技术人员将是很清楚的。
58.图3的流程图300从步骤302开始。在步骤302中,在计算设备上执行第一浏览器,第一浏览器具有打开的浏览器窗口。例如,如图2所示,第一浏览器204在计算设备234上执行。第一浏览器204具有打开的浏览器窗口210。在实施例中,计算设备234的用户可以已经调用第一浏览器204,或者第一浏览器204可以已经通过网络应用的调用而被调用。
59.在步骤304中,在第一浏览器处接收导航到第一页面的请求。例如,参考图2,多浏览器标签管理器226可以接收导航到第一页面216的请求。在实施例中,导航请求可以由计算设备234的用户发起,诸如通过在标签214或其他打开的标签中当前打开的页面中的链接点击(使标签214打开),或者通过用标签214是活动标签的历史导航(例如,通过用户选择浏览器后退按钮或前进按钮)。导航请求包括到第一页面216的地址,诸如以统一资源位置(url)或其他地址类型的形式。
60.在步骤306中,确定第一页面与第一浏览器不兼容并且与第二浏览器兼容。在一个实施例中,多浏览器标签管理器226可以被配置为确定第一页面216与第二浏览器206兼容而与第一浏览器204不兼容。
61.在实施例中,多浏览器标签管理器226可以基于管理员定义的列表诸如通过访问如上所述的浏览器兼容性列表来确定第一页面216与第一浏览器204或第二浏览器206兼容。然而,这并非意在限制,并且多浏览器标签管理器226可以以其他方式做出该确定,这对于相关领域的技术人员来说从本文中的教导中很清楚。
62.在步骤308中,第一浏览器向虚拟机发送调用第二浏览器的实例的调用请求。例如,参考图2,多浏览器标签管理器224可以向虚拟桌面服务218发送调用虚拟机(例如,虚拟机202)的调用请求,该虚拟机被配置为执行与第一页面216兼容并且未安装在计算设备234上的第二浏览器(例如,第二浏览器206)。被调用的虚拟机还被配置为执行rdp服务228以实现第一浏览器204与第二浏览器206之间的通信。响应于接收到调用请求,虚拟桌面服务218实例化虚拟机202。
63.根据一个或多个实施例,经由在第一浏览器与第二浏览器的实例之间建立的第一通信通道将第一页面的地址提供给第二浏览器的实例。例如,参考图2,多浏览器标签管理器226通过ipc api 230与主机浏览器接口224之间的第一通信通道向第二浏览器206提供指定第一页面216的url的消息。ipc api 230可以经由rdp服务228向第二浏览器206的主浏览器接口224提供该消息。在遍历到该地址时,第二绘制引擎222在浏览器窗口210中绘制第一页面216。
64.根据一个实施例,虚拟机在远程计算设备上执行,该远程计算设备经由网络被通信地耦合到计算设备。例如,参考图2,虚拟机202在由云服务平台208维护的节点(或服务器)上执行,该云服务平台208经由网络212被通信地耦合到计算设备234。
65.在步骤310中,接收由第二浏览器的实例显示的第一页面的内容。例如,参考图2,rdp服务228向第一浏览器204提供第一页面216的内容。
66.在步骤312中,在打开的浏览器窗口中绘制所接收的内容。例如,参考图2,第一绘制引擎220在浏览器窗口210中绘制所接收的内容(内容236)。
67.根据一个或多个实施例,内容经由在第一浏览器与第二浏览器的实例之间建立的第二通信通道来接收,并且第一页面的内容在第一浏览器的打开的浏览器窗口中的标签的显示窗口区域之上绘制。例如,参考图2,rdp服务228经由第二浏览器206获取内容,并且将内容提供给第一浏览器204的图形宿232。第一绘制引擎220在浏览器窗口210的标签214的显示窗口区域之上绘制所接收的内容。
68.根据一个或多个实施例,第一通信通道是动态虚拟通道(dvc),并且第二通信通道是本地集成远程应用(rail)通信通道。例如,参考图2,第一浏览器204和第二浏览器206可以使用经由ipc api 230、rdp服务228和主机浏览器接口224建立的动态虚拟通道来交换消息和/或信息,并且第二浏览器206可以提供网页内容,并且第一浏览器204可以使用经由图形宿232和rdp服务228建立的rail通信通道来接收网页内容。
69.根据一个或多个实施例,所接收的内容包括图形信息,该图形信息被第一浏览器用来生成与由第二浏览器绘制的网页相对应的图像。图4示出了根据示例实施例的用于生成与由第二浏览器绘制的网页相对应的图像的方法的流程图400。在一个实施例中,流程图400可以由如图5所示的第一浏览器500实现。图5描绘了根据示例实施例的第一浏览器500的框图,该第一浏览器500被配置为生成与由第二浏览器绘制的网页相对应的图像。如图5所示,第一浏览器500包括图形宿532、多浏览器标签管理器526和第一绘制引擎520。图形宿532、多浏览器标签管理器526和第一绘制引擎520是如以上参考图2所述的图形宿232、多浏览器标签管理器226和第一绘制引擎220的示例。第一绘制引擎520包括图像生成器502和图像大小调整器504。第一浏览器500具有打开的浏览器窗口510。如图5进一步所示,图形宿532接收表示由第二浏览器(例如,如图2所示的第二浏览器206)绘制的页面的图形信息512(例如,像素数据)。为了简洁起见,上面参考第一浏览器500描述的附加组件没有示出。基于以下讨论,其他结构和操作实施例对于相关领域的技术人员将是很清楚的。
70.图4的流程图400从步骤402开始。在步骤402中,基于图形信息生成图像。例如,参考图5,图形宿532向多浏览器标签管理器526提供图形信息512,多浏览器标签管理员526继而向第一绘制引擎520提供图形信息。根据一个实施例,图形信息512包括针对经由第二浏览器显示的网页而绘制的每个像素的数据。每个像素的数据可以包括表示该像素的一种或多种颜色的位。图像生成器502分析所接收的图形信息512,并且生成表示由第二浏览器的绘制引擎绘制的网页的图像514。根据一个实施例,图像514是位图,尽管本文中描述的实施例不限于此。例如,图像514可以根据其他文件格式来格式化,诸如jpeg、gif、png、tiff等。图像514被提供给图像大小调整器504。
71.图像大小调整器504被配置为调整图像514的大小,使得其适合网页在其中被显示的标签(例如,标签514)的显示窗口区域。例如,如图5所示,第一浏览器500已经接收到到https://www.webpage.com的导航请求。该url在标签514的地址栏506中示出。多浏览器标签管理器526确定该网页与第一浏览器500不兼容,但与另一浏览器兼容。在地址栏506(以及为简洁起见而未示出的第一浏览器500的其他ui元素)下方是显示窗口区域508,显示窗口区域508是网页内容通常在其中被绘制的区域。图像大小调整器504可以被配置为确定显示窗口区域508的大小(例如,高度、宽度、面积等),并且调整图像514的大小以适合所确定的显示窗口区域506的大小。调整大小之后的图像(被示出为调整大小之后的图像536)可以与显示窗口区域508的大小基本相同,或者可以是小于显示窗口区域508的大小。
72.在步骤404,在第一浏览器的打开的浏览器窗口中的标签的显示窗口区域之上绘制图像。例如,参考图5,第一绘制引擎520在浏览器窗口510的标签514的显示窗口区域508之上绘制调整大小之后的图像536。调整大小之后的图像536是如以上参考图2所述的内容236的示例。
73.根据一个实施例,第一浏览器500可以经由多个标签和/或窗口显示来自多个不兼容页面的内容。根据这样的实施例,第一浏览器500利用第二浏览器的单个实例来查看每个页面。每个不兼容的网页可以在第二浏览器的相应窗口中打开。
74.例如,图6示出了根据示例实施例的用于在第一浏览器中查看来自多个不兼容网页的内容的方法的流程图600。在一个实施例中,流程图600可以由如图7所示的第一浏览器704实现。图7描绘了根据示例实施例的用于在第一浏览器中查看来自多个不兼容网页的内容的系统700的框图。如图7所示,系统700包括经由网络712通信耦合的虚拟机702和计算设备734。计算设备734、虚拟机702和网络712是如以上参考图2所述的计算设备234、虚拟机202和网络212的示例。第一浏览器704在计算设备734上执行。第一浏览器704包括多浏览器标签管理器726、第一绘制引擎720、ipc api 730、图形宿732a和图形宿732b。第一浏览器704、ipc api 730、多浏览器标签管理器726和第一绘制引擎720是如以上参考图2所述的第一浏览器202、ipc api 230、多浏览器标签管理器226和第一绘制引擎220的示例。图形宿732a和图形宿732b是如以上参考图2所述的图形宿232的示例。如图7中进一步所示,第一浏览器704具有打开的浏览器窗口710。浏览器窗口710是如以上参考图2所述的浏览器窗口210的示例。虚拟机702包括rdp服务728并且执行第二浏览器706。rdp服务728和第二浏览器706是如以上参考图2所述的rdp服务228和第二浏览器206的示例。第二浏览器706包括主机浏览器接口724和第二绘制引擎722。主机浏览器接口724和第二绘制引擎722是如以上参考图2所述的主机浏览器接口224和第二绘制引擎222的示例。
75.如图7进一步所示,第一浏览器704在第一标签714a中显示与第一页面716a相对应的内容736a。第一页面716a经由第二浏览器706的浏览器窗口710a被绘制。第一页面716、标签714a和内容736a是如以上参考图2所述的第一页面216、标签214和内容236的示例。内容236根据以上参考图2-图5所述的实施例来显示。
76.图6的流程图600从步骤602开始。在步骤602中,在第一浏览器处接收导航到第二页面的请求。例如,参考图7,多浏览器标签管理器726可以接收导航到第二页面716b的请求。在实施例中,导航请求可以由计算设备734的用户发起,诸如通过在另一打开的标签中的链接点击(使标签714b打开)。导航请求包括到第二页面716b的地址,诸如以统一资源位置(url)或其他地址类型的形式。
77.在步骤604中,确定第二页面与第一浏览器不兼容并且与第二浏览器兼容。在一个实施例中,多浏览器标签管理器726可以被配置为确定第二页面716b与第二浏览器706兼容而与第一浏览器704不兼容。
78.在实施例中,多浏览器标签管理器726可以基于管理员定义的列表诸如通过访问如上所述的浏览器兼容性列表来确定第二页面716b与第一浏览器704或第二浏览器706兼容。然而,这并非意在限制,并且多浏览器标签管理器726可以以其他方式做出该确定,这对于相关领域的技术人员来说从本文中的教导中很清楚。
79.在步骤606中,第一浏览器经由第一通信通道向第二浏览器的实例发送第二页面
的地址。例如,参考图7,多浏览器标签管理器726通过ipc api 730与主机浏览器接口724之间的第一通信通道向第二浏览器706提供指定第二页面716b的url的消息。ipc api 730可以经由rdp服务728向第二浏览器706的主机浏览器接口726提供该消息。在遍历到该地址时,第二绘制引擎722在另一浏览器窗口(即,浏览器窗口710b)中绘制第二页面716b。
80.在步骤608中,接收由第二浏览器的实例显示的第二页面的内容。例如,参考图7,第一浏览器704实例化第二图形宿732b,第二图形宿732b被配置为从rdp服务728接收第二页面716b的内容(例如,表示内容的图形信息)。
81.在步骤610中,在打开的浏览器窗口中绘制所接收的内容。例如,参考图2,第一绘制引擎220在标签714b中绘制所接收的内容。第一绘制引擎720被配置为以上面参考图4和图5描述的类似方式绘制内容。具体地,第一绘制引擎720分析经由图形宿732b接收的图形信息,生成表示第二页面716b的图像,调整图像大小以适合标签714b的显示窗口区域,和/或在标签714b的显示窗口区域之上绘制调整大小之后的图像。
82.如上所述,第二浏览器706可以经由第一通信通道提供与网页相关的状态/上下文信息,并且rdp服务728可以经由第二通信通道提供表示所绘制的网页的图形信息。在为第二浏览器706打开多个浏览器窗口的情况下,第一浏览器704必须能够确定状态/上下文信息和图形信息属于哪个浏览器窗口。上述内容经由提供给第一浏览器704的窗口标识符来促进。例如,当向第一浏览器704提供经由浏览器窗口710a绘制的第一页面716a的状态/上下文信息时,第二浏览器706经由第一通信通道提供标识浏览器窗口710a的窗口标识符(例如,句柄)。当向第一浏览器704提供经由浏览器窗口710b绘制的第二页面716b的状态/上下文信息时,第二浏览器706经由第一通信通道提供标识浏览器窗口710b的窗口标识符(例如,句柄)。类似地,当提供表示经由浏览器窗口710绘制的第一页面716a的图形信息时,第二浏览器706经由第二通信通道提供标识浏览器窗口710a的窗口标识符。第二窗口710a的窗口标识符经由图形宿732a接收。当提供表示经由浏览器窗口710绘制的第一页面716b的图形信息时,rdp服务728可以经由第二通信通道从第二浏览器706获取标识浏览器窗口710b的窗口标识符。针对第二窗口710b的窗口标识符经由图形宿732b接收。
83.第一绘制引擎720使用经由第一通信通道和第二通信通道接收的窗口标识符将经由第一通信通道接收的状态/上下文信息与经由第二通信通道接收的图形信息相关联。这样,第二绘制引擎720将接收的状态/上下文信息与对应图形信息适当地关联,并且在标签714a和标签714b的适当标签中绘制与第一页面716a和716b相对应的状态/上下文信息和图像。
84.经由第一浏览器704接收并且经由rdp服务728提供给第二浏览器704的任何用户输入可以不是特定于窗口或标签的,这表示在第一浏览器704处接收的鼠标输入在由第一浏览器702指定的坐标(如以上参考图2所述)处以z顺序被自动提供给浏览器窗口710a和710b中的顶部窗口,并且键盘输入被提供给窗口710a和710b中具有键盘焦点的窗口。远程浏览器(即,第二浏览器706)的浏览器窗口的z顺序和键盘焦点不一定与第一浏览器704的浏览器窗口和/或标签的z顺序或键盘焦点匹配。例如,如图7所示,第一浏览器704包括两个打开的标签714a和标签714b,它们分别对应于浏览器窗口710a和浏览器窗口710b。如果用户点击标签714a,但浏览器窗口710b在顶部,则输入将会不正确地转到浏览器窗口710b而不是浏览器窗口710a。
85.为了防止这种不正确的行为,第一浏览器704管理第二浏览器706的浏览器窗口的浏览器窗口z顺序和键盘焦点。特别地,当标签714a和标签714b的焦点改变时,第一浏览器702确保浏览器窗口710a和浏览器窗口710b的z顺序或焦点改变。例如,图8示出了根据示例实施例的用于管理远程浏览器的浏览器窗口的方法的流程图800。在一个实施例中,流程图800可以由第一浏览器704实现。为了说明的目的,继续参考图7来描述流程图800。基于以下讨论,其他结构和操作实施例对于相关领域的技术人员来说将是很清楚的。
86.图8的流程图800从步骤802开始。在步骤802中,检测到使第二标签活动的输入。例如,参考图7,多标签浏览器管理器726检测使标签714b活动的输入。例如,输入可以是鼠标点击标签714b。
87.在步骤804中,向第二浏览器的实例发送使第二浏览器窗口活动的消息。例如,参考图7,多浏览器标签管理器726经由ipc api 730向第二浏览器706发送消息。该消息可以包括第二浏览器706的将处于活动的浏览器窗口的窗口标识符(例如,浏览器窗口716b的窗口标识符)。该消息由rdp服务728接收,rdp服务728将该消息提供给第二浏览器706的主机浏览器接口724。第二浏览器706使浏览器窗口710b处于活动。
88.在步骤806中,检测关于在第二标签的显示窗口区域之上显示的内容的用户输入。例如,参考图7,多浏览器标签管理器726检测关于经由标签714b显示的内容736b的用户输入。输入可以是鼠标输入、触摸屏输入、键盘输入等。
89.在步骤808中,经由第一通信通道将用户输入提供给第二浏览器的实例。所提供的用户输入被应用于第二浏览器窗口。例如,参考图7,ipc api 730经由rdp服务728向主机浏览器接口724提供指定检测到的用户输入的消息。第二浏览器706将用户输入应用于浏览器窗口710b的第二页面716b。
90.iii.示例移动和固定设备实施例
91.上面描述的系统和方法(包括使用参考图1-8描述的远程浏览器实例来管理不兼容的网页)可以使用硬件、或硬件与软件和/或固件中的一者或两者相结合来实现。例如,第一浏览器104、第一绘制引擎120、(多个)通信接口112、计算实体102、第二浏览器106、第二绘制引擎122、云服务平台208、虚拟桌面服务218、虚拟机202、rdp服务228、第二服务器206、主机浏览器接口224、第二绘制引擎222、计算设备234、第一浏览器204、ipc api 230、图形宿232、多浏览器标签管理器226、第一绘制引擎220、第一浏览器500、图形宿532、多浏览器标签管理员526、第一绘制引擎520、图像生成器502、图像大小调整器504、虚拟机702、rdp服务728、第二浏览器706、主机浏览器接口724、第二绘制引擎722、计算设备734、第一浏览器704、ipc api 730、图形宿732a和732b、多浏览器标签管理器726、和第一绘制引擎720、和/或其中描述的每个组件、以及流程图300、流程图400、流程图600和/或流程图800每个可以实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并且存储在计算机可读存储介质中。备选地,第一浏览器104、第一绘制引擎120、(多个)通信接口112、计算实体102、第二浏览器106、第二绘制引擎122、云服务平台208、虚拟桌面服务218、虚拟机202、rdp服务228、第二服务器206、主机浏览器接口224、第二绘制引擎222、计算设备234、第一浏览器204、ipc api 230、图形宿232、多浏览器标签管理器226、第一绘制引擎220、第一浏览器500、图形宿532、多浏览器标签管理器526、第一绘制引擎520、图像生成器502、图像大小调整器504、虚拟机702、rdp服务728、第二浏览器706、主机浏览器接口
724、第二绘制引擎722、计算设备734、第一浏览器704、ipc api 730、图形宿732a和图形宿732b、多浏览器标签管理器726、和第一绘制引擎720、和/或其中描述的每个组件、以及流程图300、流程图400、流程图600和/或流程图800可以实现为硬件逻辑/电路系统。在一个实施例中,第一浏览器104、第一绘制引擎120、(多个)通信接口112、计算实体102、第二浏览器106、第二绘制引擎122、云服务平台208、虚拟桌面服务218、虚拟机202、rdp服务228、第二浏览器206、主机浏览器接口224、第二绘制引擎222、计算设备234、第一浏览器204、ipc api 230、图形宿232、多浏览器标签管理器226、第一绘制引擎220、第一浏览器500、图形宿532、多浏览器标签管理器526、第一绘制引擎520、图像生成器502、图像大小调整器504、虚拟机702、rdp服务728、第二浏览器706、主机浏览器接口724、第二绘制引擎722、计算设备734、第一浏览器704、ipc api 730、图形宿732a和732b、多浏览器标签管理器726、和第一绘制引擎720、和/或其中描述的每个组件、以及流程图300、流程图400、流程图600和/或流程图800可以在一个或多个soc(片上系统)中实现。soc可以包括集成电路芯片,该集成电路芯片包括以下中的一种或多种:处理器(例如,中央处理单元(cpu)、微控制器、微处理器、数字信号处理器(dsp)等)、存储器、一个或多个通信接口、和/或其他电路,并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。
92.图9示出了示例性移动设备900的框图,该移动设备900包括各种可选的硬件和软件组件,总体上示出为组件902。第一浏览器104、第一绘制引擎120、(多个)通信接口112、计算实体102、计算设备234、第一浏览器204、ipc api 230、图形宿232、多浏览器标签管理器226、第一绘制引擎220、第一浏览器500、图形宿532、多浏览器标签管理员526、第一绘制引擎520、图像生成器502、图像大小调整器504、虚拟机702、计算设备734、第一浏览器704、ipc api 730、图形宿732a和732b、多浏览器标签管理器726、和第一绘制引擎720、和/或其中描述的每个组件、以及流程图300、流程图400、流程图600和/或流程图800的特征/元素的任何数量和组合可以实现为移动设备实施例中包括的组件902、以及相关领域的技术人员已知的附加和/或备选特征/元素。应当注意,组件902中的任何一个可以与组件902中的任何其他组件通信,尽管为了便于说明而未示出所有连接。移动设备900可以是本文中别处描述或提及的或以其他方式已知的各种移动设备中的任何一种(例如,手机、智能手机、手持计算机、个人数字助理(pda)等),并且可以允许通过一个或多个通信网络904(诸如蜂窝或卫星网络)或通过局域网或广域网与一个或多个移动设备进行无线双向通信。
93.所示的移动设备900可以包括被称为处理器电路910的控制器或处理器,该控制器或处理器用于执行诸如信号编码、图像处理、数据处理、输入/输出处理、功率控制和/或其他功能等任务。处理器电路910是作为中央处理单元(cpu)、微控制器、微处理器和/或其他物理硬件处理器电路在一个或多个物理硬件电路器件元件和/或集成电路器件(半导体材料芯片或管芯)中实现的电气和/或光学电路。处理器电路910可以执行存储在计算机可读介质中的程序代码,诸如一个或多个应用914的程序代码、操作系统912、存储在存储器920中的任何程序代码等。操作系统912可以控制组件902的分配和使用以及对一个或多个应用程序914(也称为应用、“app”等)的支持。应用程序914可以包括常见的移动计算应用(例如,电子邮件应用、日历、联系人管理器、网络浏览器、消息收发应用)和任何其他计算应用(如,文字处理应用、映射应用、媒体播放器应用)。
94.如图所示,移动设备900可以包括存储器920。存储器920可以包括不可移动存储器
922和/或可移动存储器924。不可移动存储器922可以包括ram、rom、闪存、硬盘或其他公知的存储器存储技术。可移动存储器924可以包括闪存或订户身份模块(sim)卡(这在gsm通信系统中是公知的)或其他公知的存储器存储技术,诸如“智能卡”。存储器920可以用于存储用于运行操作系统912和应用914的数据和/或代码。示例数据可以包括网页、文本、图像、声音文件、视频数据或其他数据集,这些数据集要通过一个或多个有线或无线网络发送到一个或多个网络服务器或其他设备和/或从一个或多个网络服务器和其他设备接收。存储器920可以用于存储诸如国际移动订户身份(imsi)等订户标识符和诸如国际移动设备标识符(imei)等设备标识符。这样的标识符可以被传输到网络服务器以标识用户和设备。
95.很多程序可存储在存储器920中。这些程序包括操作系统912、一个或多个应用程序914、以及其他程序模块和程序数据。这种应用程序或程序模块的示例可以包括例如用于实现上述系统的计算机程序逻辑(例如,计算机程序代码或指令),包括参考图1-图8描述的实施例。
96.移动设备900可以支持一个或多个输入设备930(诸如触摸屏932、麦克风934、相机936、物理键盘938和/或轨迹球940)以及一个或多个输出设备950(诸如扬声器952和显示器954)。
97.其他可能的输出设备(未示出)可以包括压电或其他触觉输出设备。一些设备可以提供一个以上的输入/输出功能。例如,触摸屏932和显示器954可以组合在单个输入/输出设备中。输入设备930可以包括自然用户界面(nui)。
98.(多个)无线调制解调器960可以耦合到(多个)天线(未示出),并且可以支持处理器电路910与外部设备之间的双向通信,如本领域公知的。(多个)调制解调器960总体上示出并且可以包括用于与移动通信网络904通信的蜂窝调制解调器966和/或其他基于无线电的调制解调器(例如,bluetooth 964和/或wi-fi 962)。蜂窝调制解调器966可以被配置为根据任何合适的通信标准或技术(诸如gsm、3g、4g、5g等)来实现电话呼叫(以及可选地传输数据)。(多个)无线调制解调器960中的至少一个通常被配置用于与一个或多个蜂窝网络的通信,诸如用于单个蜂窝网络内、蜂窝网络之间、或移动设备与公共交换电话网络(pstn)之间的数据和语音通信的gsm网络。
99.移动设备900还可以包括至少一个输入/输出端口980、电源982、卫星导航系统接收器984(诸如全球定位系统(gps)接收器)、加速计986和/或物理连接器990,物理连接器990可以是usb端口、ieee 1394(火线)端口和/或rs-232端口。所示的组件902不是必需的或包括所有的,因为任何组件都可以不存在,并且其他组件可以另外存在,如本领域技术人员将认识到的。
100.此外,图10描绘了可以在其中实现实施例的计算设备1000的示例性实现,计算设备1000包括第一浏览器104、第一绘制引擎120、(多个)通信接口112、计算实体102、计算设备234、第一浏览器204、ipc api 230、图形宿232、多浏览器标签管理器226、第一绘制引擎220、第一浏览器500、图形宿532、多浏览器标签管理器526、第一绘制引擎520、图像生成器502、图像大小调整器504、虚拟机702、计算设备734、第一浏览器704、ipc api 730、图形宿732a和图形宿732b、多浏览器标签管理器726、和第一绘制引擎720、和/或其中描述的每个组件、以及流程图300、流程图400、流程图600和/或流程图800。本文中提供的计算设备1000的描述是为了说明的目的而提供的,而非旨在限制。如相关领域的技术人员所知,实施例可
以在其他类型的计算机系统中实现。
101.如图10所示,计算设备1000包括称为处理器电路1002的一个或多个处理器、系统存储器1004、和将包括系统存储器1004在内的各种系统组件耦合到处理器电路1002的总线1006。处理器电路1002是作为中央处理单元(cpu)、微控制器、微处理器和/或其他物理硬件处理器电路在一个或多个物理硬件电路器件元件和/或集成电路器件(半导体材料芯片或管芯)中实现的电气和/或光学电路。处理器电路1002可以执行存储在计算机可读介质中的程序代码,诸如操作系统1030、应用程序1032、其他程序1034等的程序代码。总线1006表示若干类型的总线结构中的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任何一种的处理器或本地总线。系统存储器1004包括只读存储器(rom)1008和随机存取存储器(ram)1010。基本输入/输出系统1012(bios)存储在rom 1008中。
102.计算设备1000还具有以下驱动器中的一种或多种:用于从硬盘读取和向其写入的硬盘驱动器1014、用于从可移动磁盘1018读取或向其写入的磁盘驱动器1016、以及用于从可移动光盘1022(诸如cd rom、dvd rom或其他光学介质)读取或向其写入的光盘驱动器1020。硬盘驱动器1014、磁盘驱动器1016和光盘驱动器1020分别通过硬盘驱动器接口1024、磁盘驱动器接口1026和光盘驱动接口1028连接到总线1006。驱动器及其相关联的计算机可读介质为计算机提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。尽管描述了硬盘、可移动磁盘和可移动光盘,但其他类型的基于硬件的计算机可读存储介质可以用于存储数据,诸如闪存卡、数字视频盘、ram、rom和其他硬件存储介质。
103.很多程序模块可以存储在硬盘、磁盘、光盘、rom或ram上。这些程序包括操作系统1030、一个或多个应用程序1032、其他程序1034和程序数据1036。应用程序1034或其他程序1032可以包括例如用于实现上述系统的计算机程序逻辑(例如,计算机程序代码或指令),包括上面参考图1-图8描述的实施例。
104.用户可以通过诸如键盘1038和定点设备1040等输入设备向计算设备1000中输入命令和信息。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏板、卫星盘、扫描仪、触摸屏和/或触摸板、用于接收语音输入的语音识别系统、用于接收手势输入的手势识别系统等。这些和其他输入设备通常通过耦合到总线1006的串行端口接口1042连接到处理器电路1002,但是可以通过其他接口连接,诸如并行端口、游戏端口或通用串行总线(usb)。
105.显示屏1044也经由接口(诸如视频适配器1046)连接到总线1006。显示屏1044可以在计算设备1000外部,或并入计算设备1000中。显示屏1046可以显示信息,也可以是用于接收用户命令和/或其他信息(例如,通过触摸、手指手势、虚拟键盘等)的用户接口。除了显示屏1044之外,计算设备1000可以包括其他外围输出设备(未示出),诸如扬声器和打印机。
106.计算设备1000通过适配器或网络接口1050、调制解调器1052或用于通过网络建立通信的其他装置连接到网络1048(例如,互联网)。调制解调器1052(其可以是内部或外部的)可以经由串行端口接口1042连接到总线1006,如图10所示,或者可以使用另一种接口类型(包括并行接口)连接到总线1006。
107.如本文中使用的,术语“计算机程序介质”、“计算机可读介质”和“计算机可读存储介质”通常用于指代物理硬件介质,诸如与硬盘驱动器1014相关联的硬盘、可移动磁盘1018、可移动光盘1022、其他物理硬件介质,诸如ram、rom、闪存卡、数字视频盘、zip磁盘、
mem、基于纳米技术的存储设备、以及其他类型的物理/有形硬件存储介质(包括图10的系统存储器1004)。这种计算机可读存储介质与通信介质不同(不包括通信介质),并且不与通信介质重叠。通信介质通常在诸如载波等调制数据信号中体现计算机可读指令、数据结构、程序模块或其他数据。术语“调制数据信号”是指一种信号,该信号的一个或多个特性以在信号中编码信息的方式被设置或改变。作为示例而非限制,通信介质包括无线介质(诸如声学、rf、红外和其他无线介质)以及有线介质。实施例还涉及这样的通信介质。
108.如上所述,计算机程序和模块(包括应用程序1032和其他程序1034)可以存储在硬盘、磁盘、光盘、rom、ram或其他硬件存储介质上。这样的计算机程序也可以经由网络接口1050、串行端口接口1052或任何其他接口类型来接收。当由应用执行或加载时,这样的计算机程序使得计算设备1000能够实现本文中讨论的实施例的特征。因此,这样的计算机程序表示计算设备1000的控制器。
109.实施例还涉及包括存储在任何计算机可读介质上的计算机代码或指令的计算机程序产品。这样的计算机程序产品包括硬盘驱动器、光盘驱动器、存储器设备封装、便携式记忆棒、存储卡和其他类型的物理存储硬件。
110.iv.附加示例实施例
111.本文中描述了一种计算设备中的方法。方法包括:在计算设备上执行第一浏览器,第一浏览器具有打开的浏览器窗口;在第一浏览器处接收导航到第一页面的请求;确定第一页面与第一浏览器不兼容并且与第二浏览器兼容;由第一浏览器向虚拟机发送调用第二浏览器的实例的调用请求;接收由第二浏览器的实例显示的第一页面的内容;以及在打开的浏览器窗口中绘制所接收的内容。
112.在上述方法的一个实施例中,虚拟机在经由网络被通信地耦合到计算设备的远程计算设备上执行。
113.在上述方法的一个实施例中,方法还包括:经由在第一浏览器与第二浏览器的实例之间被建立的第一通信通道将第一页面的地址提供给第二浏览器的实例。
114.在上述方法的一个实施例中,接收第一页面的内容包括:经由在第一浏览器与第二浏览器的实例之间被建立的第二通信通道接收内容;以及在第一浏览器的打开的浏览器窗口中的标签的显示窗口区域之上绘制第一页面的内容。
115.在上述方法的一个实施例中,第一通信通道是动态虚拟通道(dvc),并且第二通信通道是本地集成远程应用(rail)通信通道。
116.在上述方法的一个实施例中,第一页面的内容包括表示第一页面的内容的图形信息,并且绘制第一网页的内容包括:基于图形信息生成图像;以及在第一浏览器的打开的浏览器窗口中的标签的显示窗口区域之上绘制图像。
117.在上述方法的一个实施例中,方法还包括:在第一浏览器处接收导航到第二页面的请求;确定第二页面与第一浏览器不兼容并且与第二浏览器兼容;由第一浏览器经由第一通信通道向第二浏览器的实例发送第二页面的地址;接收由第二浏览器的实例显示的第二页面的内容;以及在打开的浏览器窗口中绘制所接收的内容。
118.在上述方法的一个实施例中,第一页面在第二浏览器的实例的第一浏览器窗口中被绘制,其中第二页面在第二浏览器的实例的第二浏览器窗口中被绘制,其中第一页面的所接收的内容被显示在打开的浏览器窗口的第一标签的显示窗口区域之上,并且其中第二
页面的所接收的内容被显示在打开的浏览器窗口的第二标签的显示窗口区域之上。
119.在上述方法的一个实施例中,方法还包括:检测使第二标签活动的输入;经由第一通信通道向第二浏览器的实例发送使第二浏览器窗口活动的消息;检测关于在第二标签的显示窗口区域之上被显示的内容的用户输入;以及经由第一通信通道将用户输入提供给第二浏览器的实例,所提供的用户输入被应用于第二浏览器窗口。
120.本文中还描述了一种系统。系统包括至少一个处理器电路;以及至少一个存储器,存储被配置为由至少一个处理器电路执行的程序代码,程序代码包括:标签管理器,被配置为:在第一浏览器处接收导航到第一页面的请求;以及确定第一页面与第一浏览器不兼容并且与第二浏览器兼容;应用程序编程接口,被配置为:向虚拟机发送调用第二浏览器的实例的调用请求;以及接收由第二浏览器的实例显示的第一页面的内容;以及绘制引擎,被配置为在打开的浏览器窗口中绘制所接收的内容。
121.在上述系统的一个实施例中,虚拟机在经由网络被通信地耦合到计算设备的远程计算设备上执行。
122.在上述系统的一个实施例中,应用程序编程接口还被配置为:经由在第一浏览器与第二浏览器的实例之间被建立的第一通信通道,将第一页面的地址提供给第二浏览器的实例。
123.在上述系统的一个实施例中,应用程序编程接口还被配置为:经由在第一浏览器与第二浏览器的实例之间被建立的第二通信通道接收内容;以及在第一浏览器的打开的浏览器窗口中的标签的显示窗口区域之上绘制第一页面的内容。
124.在上述系统的一个实施例中,第一通信通道是动态虚拟通道(dvc),并且其中第二通信通道是本地集成远程应用(rail)通信通道。
125.在上述系统的一个实施例中,第一页面的内容包括表示第一页面的内容的图形信息,并且其中绘制引擎还被配置为:基于图形信息生成图像;以及在第一浏览器的打开的浏览器窗口中的标签的显示窗口区域之上绘制图像。
126.在上述系统的一个实施例中,标签管理器还被配置为:在第一浏览器处接收导航到第二页面的请求;并且确定第二页面与第一浏览器不兼容并且与第二浏览器兼容;应用程序编程接口还被配置为:经由第一通信通道向第二浏览器的实例发送第二页面的地址;并且接收由第二浏览器的实例所显示的第二页面的内容;并且绘制引擎还被配置为在打开的浏览器窗口中绘制所接收的内容。
127.在上述系统的一个实施例中,第一页面被绘制在第二浏览器的实例的第一浏览器窗口中,其中第二页面被绘制在第二浏览器的实例的第二浏览器窗口中,其中第一页面的所接收的内容被显示在打开的浏览器窗口的第一标签的显示窗口区域之上,并且其中第二页面的所接收的内容被显示在打开的浏览器窗口的第二标签的显示窗口区域之上。
128.一种其上记录有程序指令的计算机可读存储介质,程序指令在由计算设备的至少一个处理器执行时执行一种方法。方法包括:在计算设备上执行第一浏览器,第一浏览器具有打开的浏览器窗口;在第一浏览器处接收导航到第一页面的请求;确定第一页面与第一浏览器不兼容并且与第二浏览器兼容;由第一浏览器向虚拟机发送调用第二浏览器的实例的调用请求;接收由第二浏览器的实例所显示的第一页面的内容;以及在打开的浏览器窗口中绘制所接收的内容。
129.在上述计算机可读存储介质的一个实施例中,虚拟机在经由网络被通信地耦合到计算设备的远程计算设备上执行。
130.在上述计算机可读存储介质的一个实施例中,方法还包括:经由在第一浏览器与第二浏览器的实例之间被建立的第一通信通道,将第一页面的地址提供给第二浏览器的实例。
131.v.结论
132.虽然上面已经描述了本发明的各种实施例,但应当理解,它们只是通过示例而非限制的方式呈现的。相关领域的技术人员将理解,在不脱离所附权利要求中限定的本发明的精神和范围的情况下,可以对其进行形式和细节的各种改变。因此,本发明的广度和范围不应受到任何上述示例性实施例的限制,而应仅根据以下权利要求及其等同物来限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1