CN114586005B - 用于在浏览器内托管另一浏览器的***和方法 - Google Patents
用于在浏览器内托管另一浏览器的***和方法 Download PDFInfo
- Publication number
- CN114586005B CN114586005B CN202080041817.7A CN202080041817A CN114586005B CN 114586005 B CN114586005 B CN 114586005B CN 202080041817 A CN202080041817 A CN 202080041817A CN 114586005 B CN114586005 B CN 114586005B
- Authority
- CN
- China
- Prior art keywords
- browser
- instance
- page
- tab
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 104
- 238000009877 rendering Methods 0.000 claims abstract description 123
- 230000008569 process Effects 0.000 claims description 46
- 230000004044 response Effects 0.000 claims description 42
- 230000009471 action Effects 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 14
- 230000000007 visual effect Effects 0.000 abstract description 5
- 238000013459 approach Methods 0.000 abstract description 3
- YWXYYJSYQOXTPL-SLPGGIOYSA-N isosorbide mononitrate Chemical compound [O-][N+](=O)O[C@@H]1CO[C@@H]2[C@@H](O)CO[C@@H]21 YWXYYJSYQOXTPL-SLPGGIOYSA-N 0.000 description 55
- 238000004590 computer program Methods 0.000 description 13
- 230000003287 optical effect Effects 0.000 description 11
- 239000010410 layer Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000010354 integration Effects 0.000 description 6
- 239000002346 layers by function Substances 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 241000218202 Coptis Species 0.000 description 1
- 235000002991 Coptis groenlandica Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0483—Interaction with page-structured environments, e.g. book metaphor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44536—Selecting among different versions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
Abstract
提供了一种集成方法来运行具有各种兼容性的网络应用,该兼容性不需要第三方扩展或牺牲用户体验。当要执行与第一浏览器不兼容的应用的页面时,单独调用和/或执行与该页面兼容的第二浏览器的实例,而无需打开用于该第二浏览器的窗口。替代地,第二浏览器在第一浏览器的窗口内打开页面。此外,用于经由第二浏览器打开的页面的绘制和/或上下文信息被提供给第一浏览器。这样的信息被第一浏览器用来向用户提供网页由第一浏览器托管的视觉体验,尽管它实际上由第二浏览器托管。
Description
背景技术
网络浏览器(或“浏览器”)是一种用于访问万维网上的信息的软件应用。网络浏览器安装在用户设备上,以使得这些设备的用户能够从网络服务器检索资源(例如,个人网页、图像、视频等)并且将其显示在用户设备上。网络浏览器还用于运行应用(例如,网络邮件、在线零售、在线拍卖),称为“网络应用”或“网络app”。网络应用是一种客户端服务器计算机程序,其中客户端(包括用户界面和客户端侧逻辑)在网络浏览器中运行。客户端根据需要与服务器通信,以在用户设备处实现网络应用的功能。
随着网络浏览器多年来的进步,企业已经开发出可以利用进步的网络浏览器的不断增加的能力以及新网络浏览器的能力的内容。在某些情况下,为特定网络浏览器类型和/或浏览器版本而开发的内容(诸如网络应用)尚未更新为与更现代的网络浏览器和/或浏览器版本兼容。因此,这样的内容可能与较新的网络浏览器和/或浏览器版本不兼容,并且因此不得不在不太先进的浏览器类型和/或版本中运行。
发明内容
提供本“发明内容”以便以简化的形式介绍在以下“具体实施方式”中进一步描述的概念的选择。本“发明内容”不旨在确定所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。
本文中描述的方法、***、装置和计算机可读存储介质使得集成方法能够以不需要第三方扩展或牺牲用户体验的各种兼容性来运行网络应用。在实施例中,当要执行与第一网络浏览器不兼容的应用的页面时,单独调用和/或执行与该页面兼容的第二网络浏览器的实例,而无需打开用于该第二浏览器的窗口。替代地,第二浏览器在第一浏览器的窗口内打开页面。通过实现具有不同网络浏览器兼容性的不同网络应用在同一浏览器窗口中的运行,这实现了有效和高效的用户体验。此外,用于经由第二浏览器打开的页面的绘制和/或上下文信息被提供给第一浏览器。这样的信息由第一浏览器用来向用户提供网页由第一浏览器托管的视觉体验,尽管它实际上由第二浏览器托管。
下面参考附图详细描述实施例的其他特征和优点、以及各种实施例的结构和操作。注意,方法和***不限于本文中描述的具体实施例。这样的实施例在此仅用于说明目的。基于本文中包含的教导,其他示实施例对于相关领域的技术人员将是很清楚的。
附图说明
并入本文并且形成说明书的一部分的附图示出了本申请的实施例,并且与说明书一起进一步用于解释实施例的原理并且使得相关领域的技术人员能够制作和使用实施例。
图1A和图1B示出了根据示例实施例的用于管理计算设备中的第一(主)浏览器与第二(辅)浏览器之间的页面兼容性的***的框图。
图2示出了根据示例实施例的用于在浏览器内托管另一个浏览器的计算设备中的方法的流程图。
图3示出了根据示例实施例的用于由第一浏览器显示从第二浏览器接收的导航URL和/或安全指示符的方法的流程图。
图4示出了根据示例实施例的用于由第一浏览器显示从第二浏览器接收的导航URL和/或安全指示符的***的框图。
图5示出了根据示例实施例的用于由第一浏览器基于从第二浏览器接收的状态指示符来显示图形用户界面元素的方法的流程图。
图6示出了根据示例实施例的用于由第一浏览器基于从第二浏览器接收的状态指示符来显示图形用户界面元素的***的框图。
图7示出了根据示例实施例的用于监测第一浏览器的方法的流程图。
图8示出了根据示例实施例的用于监测第一浏览器的***的框图。
图9示出了根据示例实施例的用于由第一浏览器处理从第二浏览器接收的加速器输入的方法的流程图。
图10示出了根据示例实施例的用于由第一浏览器处理从第二浏览器接收的加速器输入的***的框图。
图11示出了根据示例实施例的用于向第二浏览器提供第一浏览器的许可设置的方法的流程图。
图12A和12B示出了根据示例实施例的被配置为使得第一浏览器的许可设置能够被提供给第二浏览器的***的框图。
图13是在一个实施例中可以用于实现各种实施例的示例性的基于处理器的计算机***的框图。
本文中描述的实施例的特征和优点将从以下结合附图所阐述的详细描述中变得更加明显,在附图中,相同的附图标记自始至终标识对应元素。在附图中,相似的附图标记通常表示相同、功能相似和/或结构相似的元素。元素第一次出现的图由对应附图标记中最左边的数字表示。
具体实施方式
I.简介
以下详细描述公开了多个实施例。本专利申请的范围不限于所公开的实施例,还包括所公开的实施例的组合、以及对所公开的实施例的修改。
说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用表示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以不必包括特定特征、结构或特性。此外,这些短语不一定指代相同的实施例。此外,当结合实施例描述特定特征、结构或特性时,认为与其他实施例(无论是否明确描述)相结合实现这样的特征、结构或特性在本领域技术人员的知识范围内。
在讨论中,除非另有说明,否则诸如“基本上”和“大约”等修饰本公开的实施例的一个或多个特征的条件或关系特性的形容词应当理解为表示条件或特性被定义为在针对其预期应用的实施例的操作可接受的容差内。
很多示例性实施例描述如下。注意,本文中提供的任何节/小节标题并非旨在进行限制。贯穿本文档描述了实施例,并且任何类型的实施例可以被包括在任何节/小节下。此外,在任何节/小节中公开的实施例可以以任何方式与在相同节/小节和/或不同节/小节中描述的任何其他实施例组合。
II.示例实施例
如上所述,随着网络浏览器多年来的进步,企业已经开发出可以利用不断进步的网络浏览器的不断增加的能力以及新的网络浏览器的能力的内容。在某些情况下,为特定网络浏览器类型和/或浏览器版本而开发的内容(诸如网络应用)尚未更新为与更现代的网络浏览器和/或浏览器版本兼容。因此,这样的内容可能与较新的网络浏览器和/或浏览器版本不兼容,并且因此不得不在不太先进的浏览器类型和/或版本中运行。这对于用户来说是不方便的,他们不得不维护旧版本的网络浏览器,使得与较新浏览器技术不兼容的内容可以继续被访问。
在网络应用的情况下,该问题的潜在解决方案是为网络应用提供双重解决方案,这表示,开发和维护网络应用的多个版本(例如,对于每个感兴趣的浏览器类型/版本)。然而,这种方法消耗资源和时间。此外,用户需要知道哪个浏览器版本与哪个网络应用版本兼容。另一种解决方案引入了自动切换的概念,其中网络应用将打开新的浏览器应用,并且基于允许管理员指定网络app站点列表和兼容浏览器的规范格式来切换到该浏览器应用。然而,该解决方案对用户是可见的并且非常分散注意力。另一种解决方案引入了从试图打开网络应用的不兼容浏览器的浏览器窗口调用与该网络应用兼容的浏览器的新浏览器窗口的概念。虽然这可能比其他解决方案有所改进,但它也存在不足,包括需要在不同窗口中在不同浏览器之间切换。
本文中描述的实施例帮助解决与与网络浏览器的内容兼容性相关的这些和其他问题。特别地,本文中描述的实施例实现了一种集成方法来运行具有各种兼容性的网络应用,该兼容性不需要第三方扩展或牺牲用户体验。在实施例中,当要执行与第一网络浏览器不兼容的应用的页面时,单独调用和/或执行与该页面兼容的第二网络浏览器的实例,而无需打开用于该第二浏览器的窗口。替代地,第二浏览器在第一浏览器的窗口内打开页面。通过实现具有不同网络浏览器兼容性的不同网络应用在同一浏览器窗口中的运行,这实现了有效和高效的用户体验。此外,用于经由第二浏览器打开的页面的绘制和/或上下文信息被提供给第一浏览器。这样的信息由第一浏览器用来向用户提供网页由第一浏览器托管的视觉体验,尽管它实际上由第二浏览器托管。
这样的实施例可以以各种方式实现。例如,图1A和图1B示出了根据示例实施例的用于管理第一(主)浏览器104与第二(辅)浏览器106之间的页面兼容性的***100的框图。如图1A和图1B所示,***100包括计算设备102,该计算设备102包括第一浏览器104和第二浏览器106。第一浏览器104包括第一绘制引擎120和多浏览器标签管理器108,并且具有打开的浏览器窗口110。第二浏览器106包括第二绘制引擎122和主机浏览器界面112。在图1A中,第二浏览器106已经调用其自身的运行实例(或进程),称为第二浏览器(第一实例)106A。此外,浏览器窗口110包括标签114,该标签114显示由第二浏览器(第一实例)106A的第二绘制引擎122绘制的第一页面116。在图1B中,第二浏览器106的实例都没有执行。相反,标签114显示由第一浏览器104的第一绘制引擎120绘制的第二页面118。下面进一步描述图1A和1B。
计算设备102是用户能够经由其来运行应用并且访问与各种网络浏览器兼容的网页的计算设备。计算设备102可以是任何类型的移动计算设备,诸如设备、个人数字助理(PDA)、膝上型计算机、笔记本计算机、平板计算机(诸如Apple iPadTM)、上网本、智能电话(诸如Apple iPhone、实现/>AndroidTM操作***的电话等)、可穿戴计算设备(例如,头戴式设备,包括诸如/>GlassTM等智能眼镜、诸如Oculus VR,LLC的Oculus/>或Microsoft Corporation的/>等虚拟耳机等)、固定计算设备(诸如台式计算机或PC(个人计算机))、或其他支持浏览器的设备。
第一浏览器104和第二浏览器106是网络浏览器,该网络浏览器是被配置用于访问万维网上信息的软件应用。例如,第一浏览器104和第二浏览器106可以被配置为接收到网页的链接,在由链接指示的地址处检索网页,并且绘制页面以显示给计算设备102的用户。浏览器104和第二浏览器106的示例包括均由华盛顿州雷蒙德市的微软公司开发的Internet或Microsoft/>由加利福尼亚州山景城的Mozilla公司开发的Mozilla/>由加利福尼亚州库比蒂诺的Apple Inc.开发的/>和由加利福尼亚州山景城的Google Inc.开发的/>ChromeTM。在实施例中,第一浏览器104和第二浏览器106彼此不同。例如,第一浏览器104和第二浏览器106可以是不同网络浏览器类型(例如,/>ChromeTM和Microsoft/>)。替代地,第一浏览器104和第二浏览器106可以是同一网络浏览器的不同版本。此外,第二浏览器106可以被集成到在计算设备102上执行的操作***中并且被认为是该操作***的组件。
如图1A和1B所示,第二浏览器106包括主机浏览器界面112和多标签管理器128。多标签管理器128(也称为浏览器框架层)可以被配置为管理一个或多个标签(例如,标签126)。标签126可以包括网络浏览器控件124和/或其他功能层。网络浏览器控件124(也称为WebOC)实现第二浏览器106的浏览、文档查看和数据下载能力。它使得用户能够经由互联网浏览站点,以及计算设备102的本地文件***中的文件夹或者网络上的文件夹。网络浏览器控件124通过点击式超链接和统一资源定位符(URL)导航支持网络浏览。经由多标签管理器128、标签126和/或网络浏览器控件124而示出的网页经由第二绘制引擎122被绘制。
第一浏览器104和第二浏览器106的第一绘制引擎120和第二绘制引擎122分别被配置为在浏览器窗口的浏览器标签中生成内容的显示,包括将HTML(超文本标记语言)文档和网页的其他资源转换为交互式视觉表示。在一个实施例中,第一引擎120和第二引擎122中的每个可以被配置为执行页面布局和内容的绘制。浏览器引擎的示例包括在Mozilla网络浏览器中使用的GeckoTM、在Apple Safari浏览器中使用的WebKitTM引擎、在Internet ExplorerTM中使用的TridentTM(MSHTML)以及在Google Chrome和MicrosoftEdge浏览器中使用的BlinkTM。
注意,虚线所示的第二浏览器106代表第二浏览器106的(多个)可执行文件,该可执行文件可以被调用以生成第二浏览器106的执行实例(或进程),诸如图1A所示的第二浏览器(第一实例)106A。注意,第二浏览器106的执行实例确实包括主机浏览器界面112、多标签管理器128、标签126、网络浏览器控件124和第二绘制引擎122,但是由于简洁原因而未在这样的实例中示出它们。
如上所述,网页可以与一些浏览器兼容但与其他浏览器不兼容。例如,第一页面116可以与第二浏览器106兼容但与第一浏览器104不兼容。在这种情况下,第二浏览器106的实例(诸如图1A的第二浏览器(第一实例)106A)可以被调用以在第一浏览器104的浏览器窗口110内绘制第一页面116。以这种方式,与第二浏览器106兼容但与第一浏览器104不兼容的页面仍然可以在第一浏览器104内显示给用户,而无需打开用于第二浏览器106的单独的浏览器窗口,从而提供了改进的用户体验。这可以通过各种方式实现。
特别地,第一浏览器104包括多浏览器标签管理器108。多浏览器标签管理器108被配置为接收对网络应用的页面的导航请求,并且通过例如与浏览器兼容性列表协商,确定这样的请求所指向的页面是否与第二浏览器106兼容但不与第一浏览器104兼容。浏览器兼容性列表可以列出第二浏览器106兼容(例如,能够绘制)而第一浏览器104不兼容的特定的内容项目、网络应用、文件扩展名和/或其他标识符。如果多浏览器标签管理器108确定所请求的页面与第一浏览器104兼容(例如,在浏览器兼容性列表中未被标识为与第一浏览器104不兼容),则第一浏览器104接收该网络地址并且在第一浏览器104内正常绘制页面。然而,如果多浏览器标签管理器108确定页面与第二浏览器106兼容但与第一浏览器104不兼容(例如,在浏览器兼容性列表中被标识为与第二浏览器106兼容但与第一浏览器104不兼容),则第二浏览器(第一实例)106A被调用以接收页面的网络地址并且在第一浏览器104内绘制页面。
例如,第一浏览器104的多浏览器标签管理器108的界面可以向第二浏览器106发出调用请求(例如,API调用),该调用请求使第二浏览器(第一实例)106A被调用并且被第一浏览器104托管。调用请求可以包括使第二浏览器(第一实例)106A加载主机浏览器界面112的一个或多个参数(例如,命令行参数)。例如,参数可以指定主机浏览器界面112的名称和/或从其加载主机浏览器界面112的位置。调用请求可以经由API调用或以另一种方式发送,当被第二浏览器106接收到时,该调用请求将使第二浏览器106调用第二浏览器(第一实例)106A。主机浏览器界面112可以被挂接(hook)到多标签管理器128中,从而在第一浏览器104内提供多标签管理器128、标签126、网络浏览器控件124和/或第二绘制引擎122的功能。这种功能包括但不限于:虚拟标签(或“vtab”切换)、浏览器助手对象(BHO)和/或其他扩展。vtab切换功能使得在新标签内启动的内容看起来被绘制在从其启动新标签的同一标签内。例如,假定第一安全容器(例如,企业的私有网页)中的网页显示由第二安全容器托管的网页(例如,在企业网络外部托管的公共网页)的URL。当点击该URL时,会启动新标签以显示与该URL相对应的网页的内容。但是,通过vtab切换,它看起来就像在其中绘制企业网页的同一标签内绘制网页一样。主机浏览器界面112可以被实现为动态链接库(DLL),该DLL响应于第一浏览器104调用第二浏览器106而被加载到第二浏览器(第一实例)106A的进程中(例如,从存储在计算设备102上的DLL库)。
注意,当第二浏览器(第一实例)106A被调用时,第二浏览器(第一实例)106A不像通常会发生的那样打开浏览器窗口。替代地,这样的浏览器窗口打开被阻止。调用请求可以包括指定第二浏览器(第一实例)106A不打开浏览器窗口,而是替代地指示第二浏览器(第一实例)106A将页面的任何绘制和/或上下文信息定向到第一浏览器104的参数,因此可以在接收到初始导航请求的第一浏览器104的打开标签内打开页面。绘制信息和/或上下文信息可以经由主机浏览器界面112被提供给第一浏览器104。
第二浏览器(第一实例)106A的主机浏览器界面112可以进一步被配置为在由第二浏览器(第一实例)106A在标签114中打开的页面内接收导航请求,并且确定这样的请求所指向的页面是否与第二浏览器106兼容而与第一浏览器104不兼容。例如,主机浏览器界面112可以与浏览器兼容性列表协商以做出该确定。由主机浏览器界面112访问的浏览器兼容性列表可以是由多浏览器标签管理器108使用的相同页面兼容性或者是不同页面兼容性。在确定页面与第二浏览器106兼容而与第一浏览器104不兼容之后,主机浏览器界面112绘制被托管在第一浏览器104的标签114内的页面,同样无需打开用于第二浏览器(第一实例)106A的浏览器窗口。
例如,如图1A所示,第一页面116被确定为与第二浏览器106兼容但与第一浏览器104不兼容。因此,第一浏览器104的浏览器窗口110在标签114内显示第一页面116,以由第二浏览器(第一实例)106A的第二绘制引擎122在那里绘制。替代地,如图1B所示,第二页面118(从第一页面116内的链接打开,或通过历史导航打开)被确定为与第一浏览器104兼容。因此,浏览器窗口110在标签114内显示第二页面118,以由第一绘制引擎120在那里进行绘制。在图1B的情况下,因为第二页面118与第一浏览器104兼容,所以不需要第二浏览器(第一实例)106A并且因此可以将其关闭,从而释放存储器并且减少计算设备102中的处理器需求。
因此,取决于页面的浏览器能力,页面可以由第一浏览器104或第二浏览器106的实例以任何页面顺序在标签114中打开。
图2示出了根据示例实施例的用于在浏览器内托管另一浏览器的计算设备中的方法的流程图200。在一个实施例中,流程图200可以由第一浏览器104的多浏览器标签管理器108实现。为了说明的目的,继续参考图1描述流程图200。基于以下讨论,其他结构和操作实施例对于相关领域的技术人员将是很清楚的。
图2的流程图200开始于步骤202。在步骤202中,在计算设备中执行第一浏览器,第一浏览器具有打开的浏览器窗口。例如,如图1A所示,第一浏览器104在计算设备102中执行。第一浏览器104具有打开的浏览器窗口110。在实施例中,计算设备102的用户可能已经调用第一浏览器104,或者第一浏览器104可能已经被网络应用的调用所调用。
在步骤204中,在第一浏览器处接收导航到第一页面的请求。例如,并且参考图1A,多浏览器标签管理器108可以接收导航到第一页面116的请求。在实施例中,导航请求可以由计算设备102的用户发起,诸如通过在标签114中当前打开的页面中的链接点击或其他打开的标签(使标签114打开),或通过历史导航(例如,通过用户选择浏览器后退按钮或前进按钮),其中标签114是活动标签。导航请求包括到第一页面116的地址,诸如以统一资源位置(URL)或其他地址类型的形式。
在步骤206中,确定第一页面与第一浏览器不兼容而与第二浏览器兼容。在一个实施例中,多浏览器标签管理器108可以被配置为确定第一页面116与第二浏览器106兼容而与第一浏览器104不兼容。
在实施例中,多浏览器标签管理器108可以基于管理员定义的列表来确定第一页面与第一浏览器或第二浏览器兼容,诸如通过访问如上所述的浏览器兼容性列表。然而,这并不旨在限制,并且多浏览器标签管理器108可以其他方式做出该确定,如相关领域的技术人员根据本文中的教导将很清楚的。
在步骤208中,第一浏览器发送调用第二浏览器的实例的调用请求。例如,参考图1A,多浏览器标签管理器108可以向第二浏览器106发送调用请求。例如,调用请求可以经由API调用发送,并且第二浏览器106可以包括被配置为接收API调用的API接口。
在步骤210中,响应于接收到调用请求,由第二浏览器的实例加载用于第二浏览器的实例的主机浏览器界面,主机浏览器界面耦合到第二浏览器的实例的浏览器框架层。例如,参考图1A,响应于接收到调用请求,由第二浏览器(第一实例)106A加载用于第二浏览器(第一实例)106A的主机浏览器界面112。主机浏览器界面112耦合到第二浏览器(第一实例)106A的浏览器框架层128,从而使得第一浏览器104能够托管浏览器框架层128、标签126、网络浏览器控件124和/或第二绘制引擎122的功能。
在步骤212中,在第一浏览器的控制下,在没有为第二浏览器的实例而打开的浏览器窗口的情况下执行第二浏览器的实例。例如,参考图1A,第二浏览器(第一实例)106A在第一浏览器104的控制下执行,而没有为第二浏览器(第一实例)106A打开浏览器窗口。
根据一个或多个实施例,第一页面的地址被提供给第二浏览器的实例,并且第二浏览器的实例绘制第一页面,第一页面被托管在第一浏览器的浏览器窗口中的标签内。例如,参考图1A,第一页面116的地址被提供给第二浏览器(第一实例)106A,并且第二浏览器(第一实例)106A在第一浏览器104的浏览器窗口110中的标签114内绘制第一页面116。
根据一个或多个实施例,主机浏览器界面112是在第二浏览器(第一实例)106A的初始化时加载的DLL。
根据一个或多个实施例,第二浏览器的实例的功能被托管在第一浏览器内,该功能包括虚拟标签切换、浏览器助手对象和一个或多个浏览器扩展中的至少一项。
如上所述,第二浏览器(第一实例)106A向第一浏览器104提供由第二绘制引擎122绘制的页面的绘制信息和/或上下文信息。该信息由第一浏览器104用来向用户提供网页由第一浏览器104托管的视觉体验,尽管它实际上由第二浏览器(第一实例)106A托管。下面描述上述内容。
A.导航URL
假定用户查看网页(经由第二浏览器(第一实例)106A),该网页包括到另一网页(例如,另一不兼容的网页)的URL。当用户点击URL时,第一浏览器104可以在其地址栏中指示URL。因此,根据一个实施例,在用户点击该URL时和/或在第二浏览器(第一实例)106A导航到该URL时,主机浏览器界面112向第一浏览器104提供该URL。响应于接收到该URL,第一浏览器104使URL被显示在其地址栏中。还可以向第一浏览器104提供附加信息。例如,如果与URL相关联的网页是安全的(例如,网页利用安全套接字层(SSL)或传输层安全(TLS)),则主机浏览器界面112可以向第一浏览器104提供关于该网页安全的指示,并且第一浏览器104可以经由其GUI来反映这一点。例如,第一浏览器104可以在其地址栏中在URL之前显示“https://”。在另一示例中,第一浏览器104可以经由其GUI显示锁图标。
类似地,当第一浏览器104调用第二浏览器106以绘制不兼容的网页时,第一浏览器104向第二浏览器106提供URL(和/或附加信息,诸如安全信息)。第一浏览器104还可以提供经由第一浏览器104遍历以托管第二浏览器(第一实例)106A的浏览器界面112的URL的列表,并且第二浏览器(第一实例)106可以向第一浏览器104提供经由第二浏览器(第一实例)106遍历的URL的列表。这使得第一浏览器104和/或第二浏览器(第一实例)106能够执行由第一浏览器104和/或第二浏览器(第一实例)106两者遍历的URL的历史的导航。
图3示出了根据示例实施例的用于由第一浏览器显示从第二浏览器接收的导航URL和/或安全指示符的方法的流程图300。在一个实施例中,流程图300可以由图4所示的***400实现,但是该方法不限于该实现。如图4所示,***400包括计算设备402,该计算设备402包括第一浏览器404、和第二浏览器406A的实例。第一浏览器404包括第一绘制引擎420和多浏览器标签管理器408,并且具有包括一个或多个标签(例如,标签414)的打开的浏览器窗口410。第二浏览器406A包括多标签管理器428、第二绘制引擎422和主机浏览器界面412。多标签管理器428可以被配置为管理一个或多个标签(例如,标签426)。标签426可以包括网络浏览器控件424和/或其他功能层。第二绘制引擎422可以由网络浏览器控件424管理。计算设备402、第一浏览器404、多浏览器标签管理器408、第一绘制引擎420、浏览器窗口410、标签414、第二浏览器(第一实例)406A、主机浏览器界面412、多标签管理器428、标签426、网络浏览器控件424和第二绘制引擎422分别是上面参考图1A和1B描述的计算设备102、第一浏览器104、多浏览器标签管理器108、第一绘制引擎120、浏览器窗口110、标签114、第二浏览器(第一实例)106A、主机浏览器界面112、多标签管理器128、标签126、网络浏览器控件124和第二绘制引擎122的示例。在图4所示的实施例中,第二浏览器(第一实例)406A已经例如经由用户点击显示在第一页面(例如,图1A所示的页面116)上的超链接而遍历到另一网页(例如,页面418)。
流程图300开始于步骤302。在步骤302中,向第一浏览器提供第二浏览器的实例已经遍历到的第二页面的地址或与第二页面相关联的安全指示符中的至少一项。例如,参考图4,第二浏览器(第一实例)406A经由主机浏览器界面412向第一浏览器404提供第二页面的地址(例如,URL)401或与第二页面相关联的安全指示符403中的至少一项。
在步骤304中,由第二浏览器的实例绘制第二页面,第二页面被托管在第一浏览器的浏览器窗口中的标签内。例如,参考图4,第二浏览器(第一实例)406A的第二绘制引擎422绘制第二页面418。第二页面418被托管在第一浏览器404的浏览器窗口410的标签414内。
在步骤306中,显示经由与第一浏览器相关联的地址栏的地址或代表安全指示符并且与第一浏览器相关联的图形用户界面元素中的至少一项。例如,参考图4,第一绘制引擎420经由经由标签414显示的地址栏430绘制地址401(例如,https://www.2ndpage.com)和/或绘制代表地址栏430内的安全指示符403的图形用户界面元素432。在图4所示的示例中,安全指示符403指示第二页面418是安全网站。因此,图形用户界面元素432(被示出为锁)表示第二页面418是安全的。第一绘制引擎420绘制其锁的版本,而不是由第二浏览器(第一实例)606A使用的锁(或由第二浏览器(第一实例)406A用来表示安全网站的图形用户界面元素)的版本,从而实现第二浏览器(第一实例)406A在第一浏览器404内的无缝集成。
B.用户界面元素控制
再次参考图1,根据一个实施例,主机浏览器界面112可以向第一浏览器104提供状态信息。状态信息可以指示由第二绘制引擎122加载和/或绘制的网页是否具有较大尺寸和/或正在占用较长时间进行加载。基于状态信息,第一浏览器104使用户界面元素被绘制以指示该状态。例如,用户界面元素可以是由第一浏览器104使用的旋转轮或环(也称为“跳动窗口图标(throbber)”)。由第二浏览器(第一实例)106A用来反映该状态(即,第二浏览器的跳动窗口图标版本)的用户界面元素未显示。替代地,使用由第一浏览器104使用的用户界面元素。
在另一示例中,状态信息可以指示由第二绘制引擎122加载和/或绘制的网页是否被用户收藏。基于该信息,第一浏览器104使用户界面元素被绘制以指示收藏状态。例如,用户界面元素可以是第一浏览器104的地址栏中所示的星号。由第二浏览器(第一实例)106A用来反映该状态(即,第二浏览器的星号版本)的用户界面元素未显示。替代地,使用由第一浏览器104使用的用户界面元素。前述技术有利地实现了第二浏览器(第一实例)106A在第一浏览器104内的无缝集成。
注意,上述状态信息纯粹是示例性的,并且状态信息可以包括第一浏览器104用来显示其自己的特定用户界面元素版本的任何类型的信息。
图5示出了根据示例实施例的用于由第一浏览器基于从第二浏览器接收的状态指示符来显示图形用户界面元素的方法的流程图500。在一个实施例中,流程图500可以由图6所示的***600实现,虽然该方法不限于该实现。如图6所示,***600包括计算设备602,该计算设备602包括第一浏览器604、和第二浏览器606A的实例。第一浏览器604包括第一绘制引擎620和多浏览器标签管理器608,并且具有包括一个或多个标签(例如,标签614)的打开的浏览器窗口610。第二浏览器606A包括多标签管理器628、第二绘制引擎622和主机浏览器界面612。多标签管理器628可以被配置为管理一个或多个标签(例如,标签626)。标签626可以包括网络浏览器控件624和/或其他功能层。第二绘制引擎622可以由网络浏览器控件624管理。计算设备602、第一浏览器604、多浏览器标签管理器608、第一绘制引擎620、浏览器窗口610、标签614、第二浏览器(第一实例)606A、主机浏览器界面612、多标签管理器628、标签626、网络浏览器控件624和第二绘制引擎622分别是上面参考图1A和1B描述的计算设备102、第一浏览器104、多浏览器标签管理器108、第一绘制引擎120、浏览器窗口110、标签114、第二浏览器(第一实例)106A、主机浏览器界面112、多标签管理器128、标签126、网络浏览器控件124和第二绘制引擎122的示例。在图6所示的实施例中,第二浏览器(第一实例)606A已经遍历到第一页面(例如,页面616)。页面616是页面116的示例,如上面参考图1A所述。
流程图500开始于步骤502。在步骤502中,从主机浏览器界面接收指示由第二浏览器的实例绘制的第一页面的状态的状态指示符。例如,参考图6,第二浏览器(第一实例)606A提供状态指示符601,状态指示符601指示由第二浏览器(第一实例)606A的第二绘制引擎622经由主机浏览器界面612而绘制的页面616的状态。
在步骤504中,显示代表状态指示符并且与第一浏览器相关联的图形用户界面元素。例如,参考图6,第一绘制引擎620显示代表状态指示符601并且与第一浏览器604相关联的图形用户界面元素630。例如,状态指示符601可以指示页面616需要较长时间来加载。因此,第一绘制引擎620在标签614中显示跳动窗口图标(即,图形用户界面元素630)以向用户指示页面616正在加载。第一绘制引擎620绘制它的跳动窗口图标版本,而不是由第二浏览器(第一实例)606A使用的跳动窗口图标的版本,从而实现第二浏览器(第一实例)606A在第一浏览器604内的无缝集成。
C.看门狗进程
再次参考图1A,在第二浏览器(第一实例)106A的初始化期间,可以启动看门狗进程。看门狗进程可以被配置为确定第一浏览器104是否仍然活动(或打开)。例如,在初始化期间,第一浏览器104可以经由主机浏览器界面112向第二浏览器(第一实例)106A提供其进程标识(PID)。看门狗进程可以周期性地监测PID以确定它是否仍然指向第一浏览器104。在PID不再指向第一浏览器104(例如,由于第一浏览器104自我终止或崩溃等,第一浏览器104被关闭)的情况下,看门狗进程可以使第二浏览器(第一实例)106A被终止。
图7示出了根据示例实施例的用于监测第一浏览器的方法的流程图700。在一个实施例中,流程图700可以由图8所示的***800实现,虽然该方法不限于该实现。如图8所示,***800包括计算设备802,该计算设备802包括第一浏览器804、和第二浏览器806A的实例。第一浏览器804包括第一绘制引擎820和多浏览器标签管理器808,并且具有包括一个或多个标签(例如,标签814)的打开的浏览器窗口810。第二浏览器806A包括多标签管理器828、第二绘制引擎822和主机浏览器界面812。多标签管理器828可以被配置为管理一个或多个标签(例如,标签826)。标签826可以包括网络浏览器控件824和/或其他功能层。第二绘制引擎822可以由网络浏览器控件824管理。计算设备802、第一浏览器804、多浏览器标签管理器808、第一绘制引擎820、浏览器窗口810、标签814、第二浏览器(第一实例)806A、主机浏览器界面812、多标签管理器828、标签826、网络浏览器控件824和第二绘制引擎822分别是上面参考图1A和1B描述的计算设备102、第一浏览器104、多浏览器标签管理器108、第一绘制引擎120、浏览器窗口110、标签114、第二浏览器(第一实例)106A、主机浏览器界面112、多标签管理器128、标签126、网络浏览器控件124和第二绘制引擎122的示例。在图8所示的实施例中,第二浏览器(第一实例)806A已经遍历到第一页面(例如,页面816)。页面816是页面116的示例,如上面参考图1A所述。如图7进一步所示,计算设备802还可以包括看门狗进程832和操作***834。看门狗进程832和操作***834在计算设备802上被执行。响应于第一浏览器804被发起,看门狗进程832可以被发起。
流程图700开始于步骤702。在步骤702中,由第一浏览器向主机浏览器界面提供与第一浏览器相关联的进程标识符。例如,参考图8,第一浏览器804向第二浏览器(第一实例)806A的主机浏览器界面812提供进程标识符(例如,PID 801)。
在步骤704中,基于进程标识符确定第一浏览器不活动。例如,参考图8,主机浏览器界面812向看门狗进程832提供PID 801。看门狗进程832可以周期性地监测PID 801以确定它是否仍然指向第一浏览器804。当PID 801不再指向第一浏览器804(例如,由于第一浏览器804自我终止或崩溃,第一浏览器104被关闭)时,看门狗进程832确定第一浏览器804不活动。看门狗进程832可以连续接收PID 801的值,或者可以周期性地或根据任何其他时间表来检查PID 801的值。
在步骤706中,响应于确定第一浏览器不再活动,使第二浏览器的实例被终止。例如,参考图8,响应于确定第一浏览器804不再活动,看门狗进程832向操作***834提供命令803。响应于接收到命令803,操作***834终止第二浏览器(第一实例)806A。
D.加速器处理
再次参考图1A,加速器处理从具有焦点的任何线程上的键盘按下(keydown)消息开始,并且在各种加速器表上迭代,直到找到匹配项,在这种情况下,它就被“处理”并且停止搜索其他匹配加速器。如果某个加速器(也称为键盘快捷键,诸如但不限于Ctrl+C(复制文本)、Ctrl+P(粘贴文本)等)未处理,则其会被转发给其他线程以循环通过更多加速器表以进行处理,直到没有线程剩余或其已经被处理。未处理的键盘按下加速器被转换为字符,并且在字符被传递到聚焦窗口之前经过另一加速器处理进程。
第二浏览器(第一实例)106A可以将加速器定义为当“Ctrl”、“Alt”或“F1-F24”键被按下时的任何按键按下、释放或字符,并且具有用于处理如“Tab”和“Esc”等按键按下的特殊用例。
每个窗口可以有多个线程处理加速器,例如标签线程(例如,标签126)、第二浏览器106的框架线程(例如,多标签管理器128)和第一浏览器104的框架线程(例如,多浏览器标签管理器108)。接收加速器输入的线程基于与线程相关联的哪个窗口处于焦点。例如,如果网页正在由第二绘制引擎122绘制并且正在其中绘制网页的窗口是活动的,则该窗口将接收加速器输入。类似地,如果网页正在由第一绘制引擎120绘制并且正在其中绘制网页的窗口是活动的,则该窗口将接收加速器输入。
如果与第二浏览器(第一实例)106A相关联的窗口接收加速器输入,则第二浏览器(第一实例)106A可以根据所接收的加速器输入来执行特定动作。例如,在其中第二浏览器(第一实例)106A以独立模式运行(即,它不被第一浏览器104调用)的场景中,如果加速器输入匹配第二浏览器(第一实例)106A的映射中的加速器输入,则第二浏览器(第一实例)106A处理加速器输入并且执行与加速器输入相对应的动作(如映射中指定的)。如果不匹配,则第二浏览器(第一实例)106A丢弃加速器输入。
在第一浏览器104调用第二浏览器(第一实例)106A的场景中,主机浏览器界面112可以向第一浏览器104提供加速器输入,并且第一浏览器104确定加速器输入是否匹配第一浏览器104的映射中的加速器输入。如果加速器输入匹配第一浏览器104的映射中的加速器输入,则第一浏览器104处理加速器输入并且执行与加速器输入相对应的动作(如映射中指定的)。如果不匹配,则第一浏览器104丢弃加速器输入。
根据一个实施例,由第二浏览器(第一实例)106A执行的特定动作的加速器输入与由第一浏览器104执行的相同特定动作的加速器输入不匹配。根据这样的实施例,第一浏览器104可以将从第二浏览器(第一实例)106A接收的加速器输入转换为第一浏览器104针对相同动作所接受的加速器输入。
图9示出了根据示例实施例的用于由第一浏览器处理从第二浏览器接收的加速器输入的方法的流程图900。在一个实施例中,流程图900可以由图10所示的***1000实现,虽然该方法不限于该实现。如图10所示,***1000包括计算设备1002,该计算设备1002包括第一浏览器1004、和第二浏览器1006A的实例。第一浏览器1004包括第一绘制引擎1020和多浏览器标签管理器1008,并且具有包括一个或多个标签(例如,标签1014)的打开的浏览器窗口1010。第二浏览器1006A包括多标签管理器1028、第二绘制引擎1022和主机浏览器界面1012。多标签管理器1028可以被配置为管理一个或多个标签(例如,标签1026)。标签1026可以包括网络浏览器控件1024和/或其他功能层。第二绘制引擎1022可以由网络浏览器控件1024管理。计算设备1002、第一浏览器1004、多浏览器标签管理器1008、第一绘制引擎1020、浏览器窗口1010、标签1014、第二浏览器(第一实例)1006A、主机浏览器界面1012、多标签管理器1028、标签1026、网络浏览器控件1024和第二绘制引擎1022分别是上面参考图1A和1B描述的计算设备102、第一浏览器104、多浏览器标签管理器108、第一绘制引擎120、浏览器窗口110、标签114、第二浏览器(第一实例)106A、主机浏览器界面112、多标签管理器128、标签126、网络浏览器控件124和第二绘制引擎122的示例。在图10所示的实施例中,第二浏览器(第一实例)1006A已经遍历到第一页面(例如,页面1016)。页面1016是页面116的示例,如上面参考图1A所述。如图7进一步所示,第一浏览器1004维护加速器映射1030。加速器映射1030可以是将不同加速器输入映射到不同动作的数据结构(例如,表)。
流程图900开始于步骤902。在步骤902中,从主机浏览器界面接收被提供给第二浏览器的实例的第一加速器输入。例如,参考图10,第二浏览器(第一实例)1006A可以经由用户使用的输入设备(例如,键盘)接收加速器输入(例如,CTRL+C、CTRL+P等)。第一浏览器1004经由主机浏览器界面1012从第二浏览器(第一实例)1006A接收加速器输入(示出为加速器输入1001)。
在步骤904中,确定第一加速器输入是否与存储在与第一浏览器相关联的加速器映射中的第二加速器输入匹配。例如,参考图10,第一浏览器1004确定加速器输入1001是否与存储在与第一浏览器1004相关联的加速器映射1030中的加速器输入匹配。响应于确定第一加速器输入与存储在加速器映射1030中的加速器输入匹配,流程继续到步骤906。否则,流程继续到步骤908。
在步骤906中,第一浏览器执行与第一加速器输入相对应的动作。例如,参考图10,第一浏览器1004执行与第一加速器输入1001相对应的动作(例如,复制文本、绘制打印对话屏幕等)。
在步骤908中,绕过对第一加速器输入的处理。例如,参考图10,第一浏览器1004绕过对加速器输入1001的处理。例如,第一浏览器1004忽略或丢弃加速器输入1001,因为它与由加速器映射1030维护的任何加速器输入不匹配。
E.用户许可
再次参考图1中,第一浏览器104和第二浏览器106可以维护站点许可的相同或不同模型——诸如允许/拒绝弹出窗口、允许某些页面使用地理位置API使用您的物理位置、以及拒绝其他操作等的许可。例如,第一浏览器104和第二浏览器106不仅可以维护单独的许可而且可以具有单独的模型。例如,第二浏览器106可以使得用户能够配置“区域”中的大量站点以被允许或不允许使用弹出窗口,并且使得用户能够个体地添加其他站点以被允许提供弹出窗口,即使它通常是被禁止的,但用户不能做出例外并且禁止通常允许他们访问的站点。第一浏览器104可以允许用户做出两种例外,并且还增加了做出基于简档的许可的能力,但并不真正具有基于区域的许可。
当第二浏览器(第一实例)106A由第一浏览器104托管时,本文中描述的实施例可以将第一浏览器104的设置投影到第二浏览器(第一实例)106A上,以将第二浏览器106的区域概念与第一浏览器104的用户简档和复杂许可覆盖概念合并,以创建与双浏览器场景兼容的许可方案。这涉及解析第一浏览器104对当前简档的许可,将它们传输到第二浏览器(第一实例)106A的主机浏览器界面112,将它们与第二浏览器(第一实例)106A的区域设置合并,以及改变第二浏览器(第一实例)106A以在作为由第一浏览器104托管的应用操作时首先查找设置覆盖。这可以在用户改变设置时动态更新。
在第二浏览器106的初始化期间,第一浏览器104可以经由主机浏览器界面112向第二浏览器106提供其站点许可设置(及其版本号)。替代地,第二浏览器106可以为所接收的站点许可设置生成版本号。多标签管理器128可以将设置连同其版本号一起存储。响应于用户改变设置,第一浏览器104可以向第二浏览器106提供更新后的站点许可设置。多标签管理器128可以将这种更新后的站点许可设置连同更新的版本号一起存储。
当内容进程(例如,由第二绘制引擎122在其中绘制网站的窗口)需要站点许可设置时,它可以从多标签管理器128检索设置并且将它们存储在其自己的许可缓存中。针对特定用户许可的设置(及其版本)可以存储在其自己的许可缓存中。
当在由第二浏览器(第一实例)106A绘制的特定网站上执行的脚本向用户请求许可(例如,地理位置许可)时,第二浏览器(第一实例)106A可以首先确定其是否具有最新许可设置。例如,第二浏览器(第一实例)106A可以确定由第二浏览器(第一实例)106A的内容进程的许可缓存维护的版本号是否与由多标签管理器128维护的版本号匹配。如果版本号匹配,第二浏览器106检查许可缓存中的许可设置以查看用户是否已经启用地理位置共享。如果版本号不匹配,则多标签管理器128可以向对应许可缓存提供更新后的配置设置(及其版本号)。
如果许可设置指示用户实际上已经启用地理位置共享,则第二浏览器106可以向脚本提供指示这样的情况的响应。然而,如果许可设置指示用户没有启用地理位置共享,则第二浏览器(第一实例)106可以经由主机浏览器界面112向第一浏览器104提供请求。该请求可以指定要向用户显示的提示。第一浏览器104绘制用户界面控件(例如,对话框),该用户界面控件包括提示和用于响应于提示的一个或多个用户界面元素(例如,“是”按钮、“否”按钮等)。在提交响应时,第一浏览器104经由主机浏览器界面112向第二浏览器106提供指示用户选择的响应。然后第二浏览器(第一实例)106A向脚本提供响应。因此,由第二浏览器(第一实例)106A用来提示用户他或她的地理位置(即,第二浏览器的提示版本)的用户界面控件未显示。替代地,使用由第一浏览器104使用的用户界面控件。前述技术有利地实现了第二浏览器(第一实例)106A在第一浏览器104内的无缝集成。
在另一示例中,第二浏览器(第一实例)106可以向第一浏览器104提供(经由主机浏览器界面112)指示弹出窗口是否已经被第二浏览器106阻止的指示。基于该信息,第一浏览器104使用户界面元素被绘制以指示弹出窗口已经被阻止,并且还可以使得用户能够相对于弹出窗口被阻止的网站调节弹出窗口阻止设置。由第二浏览器(第一实例)106A用来反映这一点(即,第二浏览器的弹出窗口阻止指示符的版本)的用户界面元素未显示。替代地,使用由第一浏览器104使用的用户界面元素。前述技术有利地实现了第二浏览器(第一实例)106A在第一浏览器104内的无缝集成。
根据一个实施例,第二浏览器(第一实例)106A可以支持基于区域的安全性,其中每个网站基于其网站地址被分类为属于特定区域,即互联网、内联网、受信任的或受限的。第二浏览器(第一实例)106A使用给定站点的区域信息来允许或拒绝该站点执行某个请求功能的能力。例如,由于互联网区域被认为不如内联网区域安全,因此不允许互联网区域的网页显示内容(例如,弹出窗口),而允许来自内联网区域的网页显示内容。
在第一浏览器104托管第二浏览器(第一实例)106A的场景中,基于区域的安全设置可以优先于由第一浏览器104维护的设置。例如,当请求许可设置时,第二浏览器(第一实例)106A可以首先确定它是否为该许可维护基于区域的安全设置。如果存在这样的设置,则第二浏览器(第一实例)106A利用该设置。如果这样的设置不存在,则第二浏览器(第一实例)106A利用由第一浏览器104提供的设置。
根据一个实施例,第二浏览器(第一实例)106A可以维护用于在独立模式下使用的第一许可缓存和用于在第一浏览器104托管第二浏览器(第一实例)106A时使用的第二许可缓存。当在独立模式下执行时,第二浏览器(第一实例)106A访问第一许可缓存,该第一许可缓存存储第一浏览器106A的许可设置。当第二浏览器(第一实例)106A被第一浏览器104调用时,第二浏览器(第一实例)106A利用第二许可缓存,该第二许可缓存存储第一浏览器104的许可设置。
如上所述,每个许可设置可以与其自己的许可缓存相关联。例如,地理位置的许可设置可以被维护在一个许可缓存中,而弹出窗口阻止的许可设置可以被维护在另一许可缓存中。这些许可缓存中的每个可以按域名存储。例如,地理位置的许可缓存可以存储多个不同域名的地理位置设置。许可缓存可以例如按域名的字母顺序排序。根据一个实施例,第二浏览器(第一实例)106A执行二分搜索以找到与特定域名相关联的许可设置。
图11示出了根据示例实施例的用于向第二浏览器提供第一浏览器的许可设置的方法的流程图1100。在一个实施例中,流程图1100可以由图12A和12B所示的***1200A和1200B实现,但是该方法不限于这些实现。如图12A和12B所示,***1200A和1200B包括计算设备1202,该计算设备1202包括第一浏览器1204、和第二浏览器1206A的实例。第一浏览器1204包括第一绘制引擎1220和多浏览器标签管理器1208,并且具有包括一个或多个标签(例如,标签1214)的打开的浏览器窗口1210。第二浏览器1206A包括多标签管理器1228、第二绘制引擎1222和主机浏览器界面1212。多标签管理器1228可以被配置为管理一个或多个标签(例如,标签1226)。标签1226可以包括网络浏览器控件1224和/或其他功能层。第二绘制引擎1222可以由网络浏览器控件1224管理。计算设备1202、第一浏览器1204、多浏览器标签管理器1208、第一绘制引擎1220、浏览器窗口1210、标签1214、第二浏览器(第一实例)1206A、主机浏览器界面1212、多标签管理器1228、标签1226、网络浏览器控件1224和第二绘制引擎1222分别是上面参考图1A和1B描述的计算设备102、第一浏览器104、多浏览器标签管理器108、第一绘制引擎120、浏览器窗口110、标签114、第二浏览器(第一实例)106A、主机浏览器界面112、多标签管理器128、标签126、网络浏览器控件124和第二绘制引擎122的示例。在图12A和12B所示的实施例中,第二浏览器(第一实例)1206A已经遍历到第一页面(例如,页面1216)。页面1216是页面116的示例,如上面参考图1A所述。如图12A和12B进一步所示,第二浏览器(第一实例)1206A维护由计算设备1202执行的许可缓存1230和许可授权器1232。
流程图1100开始于步骤1102。在步骤1102中,与第一浏览器相关联的许可设置由第一浏览器提供给主机浏览器界面。例如,参考图12A,第一浏览器1204将其许可设置1201提供给第二浏览器(第一实例)1206A的主机浏览器界面1212。当第二浏览器(第一实例)1206A被初始化时,许可设置1201可以被提供给第二浏览器(第一实例)1206A。许可设置1201可以包括由第一浏览器1204维护的设置的子集(例如,一些或全部)。
在步骤1104中,由第二浏览器存储许可设置。例如,参考图12A,第二浏览器(第一实例)1206A将许可设置1201存储在许可缓存1230中。
在步骤1106中,由第二浏览器接收来自第一页面的对执行特定动作的许可的请求。例如,参考图12A,第二浏览器(第一实例)1206A可以接收来自页面1216(例如,在页面1216上执行的脚本)的对执行特定动作(例如,获取计算设备1202的地理位置)的许可的请求1203。
在步骤1108中,确定许可设置中的许可设置是否授权第一页面执行动作。例如,参考图12A,许可授权器1232向许可缓存1230提供查询1211以确定存储在许可缓存1230中的许可设置1201中的许可设置是否授权页面1216执行动作。如果确定许可设置授权第一页面执行动作,则流程继续到步骤1110。否则,流程继续到步骤1112。
在步骤1110中,由第二浏览器向第一页面提供指示第一页面被授权执行特定动作的响应。例如,参考图12A,第二浏览器(第一实例)106A向页面1216提供指示页面1216被授权执行特定动作(例如,获取地理位置信息)的响应1205。
在步骤1112中,第二浏览器向第一浏览器提供绘制与第一浏览器相关联的、提示用户进行输入的用户界面元素的请求,该输入指定第一页面是否被授权执行特定动作。例如,参考图12B,第二浏览器(第一实例)1206A提供绘制提示用户进行输入的用户界面元素1236的请求1207(经由主机浏览器界面1212)。第一绘制引擎1210绘制其用户界面元素1236的版本而不是由第二浏览器(第一实例)1206A使用的用户界面元素的版本,从而实现第二浏览器(第一实例)1206A在第一浏览器1204内的无缝集成。
在步骤1114中,由第一浏览器接收指示用户输入的响应。例如,参考图12B,第一浏览器1204可以接收来自用户的指定是授予还是拒绝许可的输入。
根据一个或多个实施例,使用对应许可设置来更新许可缓存。例如,参考图12,使用对应许可设置来更新许可缓存1230。
在步骤1116中,第一浏览器向第二浏览器提供响应。例如,参考图12B中,第一浏览器1204提供响应1209,响应1209表示用户经由主机浏览器界面1212对第二浏览器(第一实例)1206A的输入。
在步骤1118中,第二浏览器向第一页面提供响应。例如,参考图12B,第二浏览器(第一实例)1206A向页面1218提供响应1209。
III.附加实施例
再次参考图1A,在某些实施例中,可能未正确调用第二浏览器106(例如,未正确加载主机浏览器界面112)。例如,如果第二浏览器106是不正确的或较旧的版本和/或其中包含第二浏览器106的操作***是不支持本文中描述的浏览器托管功能的不正确或较旧的版本,则可能发生这种情况。在这种情况下,第二浏览器106以独立模式被启动(即,第一浏览器104不调用第二浏览器106并且不托管第二浏览器106)。
IV.示例计算机***实现
计算设备102、第一浏览器104、第二浏览器106、第二浏览器(第一实例)106A、多浏览器标签管理器108、第一绘制引擎120、标签114、主机浏览器界面112、多标签管理器128、标签126、网络浏览器控件124、第二绘制引擎122、计算设备402、第一浏览器404、第二浏览器(第一实例)406A、多浏览器标签管理器408、第一绘制引擎420、标签414、主机浏览器界面412、多标签管理器428、标签426、网络浏览器控件424、第二绘制引擎422、计算设备602、第一浏览器604、第二浏览器(第一实例)606A、多浏览器标签管理器608、第一绘制引擎620、标签614、主机浏览器界面612、多标签管理器628、标签626、网络浏览器控件624、第二绘制引擎622、计算设备802、第一浏览器804、第二浏览器(第一实例)806A、多浏览器标签管理器808、第一绘制引擎820、标签814、主机浏览器界面812、多标签管理器828、标签826、网页浏览器控件824、第二绘制引擎822、看门狗进程832、操作***834、计算设备1002、第一浏览器1004、第二浏览器(第一实例)1006A、多浏览器标签管理器1008、第一绘制引擎1020、标签1014、主机浏览器界面1012、多标签管理器1028、标签1026、网络浏览器控件1024、第二绘制引擎1022、加速器映射1030、计算设备1202、第一浏览器1204、第二浏览器(第一实例)1206A、多浏览器标签管理器1208、第一绘制引擎1220、标签1214、主机浏览器界面1212、多标签管理器1228、标签1226、网络浏览器控件1224、第二绘制引擎1222、许可授权器1232和许可缓存1230(和/或其中描述的任何组件)、和/或流程图200、300、500、700、900和1100可以以硬件或硬件与软件和/或固件中的一者或两者结合来实现。例如,计算设备102、第一浏览器104、第二浏览器106、第二浏览器(第一实例)106A、多浏览器标签管理器108、第一绘制引擎120、标签114、主机浏览器界面112、多标签管理器128、标签126、网络浏览器控件124、第二绘制引擎122、计算设备402、第一浏览器404、第二浏览器(第一实例)406A、多浏览器标签管理器408、第一绘制引擎420、标签414、主机浏览器界面412、多标签管理器428、标签426、网络浏览器控件424、第二绘制引擎422、计算设备602、第一浏览器604、第二浏览器(第一实例)606A、多浏览器标签管理器608、第一绘制引擎620、标签614、主机浏览器界面612、多标签管理器628、标签626、网络浏览器控件624、第二绘制引擎622、计算设备802、第一浏览器804、第二浏览器(第一实例)806A、多浏览器标签管理器808、第一绘制引擎820、标签814、主机浏览器界面812、多标签管理器828、标签826、网络浏览器控件824、第二绘制引擎822、看门狗进程832、操作***834、计算设备1002、第一浏览器1004、第二浏览器(第一实例)1006A、多浏览器标签管理器1008、第一绘制引擎1020、标签1014、主机浏览器界面1012、多标签管理器1028、标签1026、网络浏览器控件1024、第二绘制引擎1022、加速器映射1030、计算设备1202、第一浏览器1204、第二浏览器(第一实例)1206A、多浏览器标签管理器1208、第一绘制引擎1220、标签1214、主机浏览器界面1212、多标签管理器1228、标签1226、网络浏览器控件1224、第二绘制引擎1222、许可授权器1232和许可缓存1230(和/或其中描述的任何组件)、和/或流程图200、300、500、700、900和1100可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并且存储在计算机可读存储介质中。
替代地,计算设备102、第一浏览器104、第二浏览器106、第二浏览器(第一实例)106A、多浏览器标签管理器108、第一绘制引擎120、标签114、主机浏览器界面112、多标签管理器128、标签126、网络浏览器控件124、第二绘制引擎122、计算设备402、第一浏览器404、第二浏览器(第一实例)406A、多浏览器标签管理器408、第一绘制引擎420、标签414、主机浏览器界面412、多标签管理器428、标签426、网络浏览器控件424、第二绘制引擎422、计算设备602、第一浏览器604、第二浏览器(第一实例)606A、多浏览器标签管理器608、第一绘制引擎620、标签614、主机浏览器界面612、多标签管理器628、标签626、网络浏览器控件624、第二绘制引擎622、计算设备802、第一浏览器804、第二浏览器(第一实例)806A、多浏览器标签管理器808、第一绘制引擎820、标签814、主机浏览器界面812、多标签管理器828、标签826、网络浏览器控件824、第二绘制引擎822、看门狗进程832、操作***834、计算设备1002、第一浏览器1004、第二浏览器(第一实例)1006A、多浏览器标签管理器1008、第一绘制引擎1020、标签1014、主机浏览器界面1012、多标签管理器1028、标签1026、网络浏览器控件1024、第二绘制引擎1022、加速器映射1030、计算设备1202、第一浏览器1204、第二浏览器(第一实例)1206A、多浏览器标签管理器1208、第一绘制引擎1220、标签1214、主机浏览器界面1212、多标签管理器1228、标签1226、网络浏览器控件1224、第二绘制引擎1222、许可授权器1232和许可缓存1230(和/或其中描述的任何组件)、和/或流程图200、300、500、700、900和1100可以实现为硬件逻辑/电路***。
例如,在一个实施例中,计算设备102、第一浏览器104、第二浏览器106、第二浏览器(第一实例)106A、多浏览器标签管理器108、第一绘制引擎120、标签114、主机浏览器界面112、多标签管理器128、标签126、网络浏览器控件124、第二绘制引擎122、计算设备402、第一浏览器404、第二浏览器(第一实例)406A、多浏览器标签管理器408、第一绘制引擎420、标签414、主机浏览器界面412、多标签管理器428、标签426、网络浏览器控件424、第二绘制引擎422、计算设备602、第一浏览器604、第二浏览器(第一实例)606A、多浏览器标签管理器608、第一绘制引擎620、标签614、主机浏览器界面612、多标签管理器628、标签626、网络浏览器控件624、第二绘制引擎622、计算设备802、第一浏览器804、第二浏览器(第一实例)806A、多浏览器标签管理器808、第一绘制引擎820,标签814、主机浏览器界面812、多标签管理器828、标签826、网络浏览器控件824、第二绘制引擎822、看门狗进程832、操作***834、计算设备1002、第一浏览器1004、第二浏览器(第一实例)1006A、多浏览器标签管理器1008、第一绘制引擎1020、标签1014、主机浏览器界面1012、多标签管理器1028、标签1026、网络浏览器控件1024、第二绘制引擎1022、加速器映射1030、计算设备1202、第一浏览器1204、第二浏览器(第一实例)1206A、多浏览器标签管理器1208、第一绘制引擎1220、标签1214、主机浏览器界面1212、多标签管理器1228、标签1226、网络浏览器控件1224、第二绘制引擎1222、许可授权器1232和许可缓存1230(和/或其中描述的任何组件)、和/或流程图200、300、500、700、900和1100中的一个或多个以任何组合可以在SoC中一起实现。SoC可以包括集成电路芯片,该集成电路芯片包括处理器(例如,中央处理单元(CPU)、微控制器、微处理器、数字信号处理器(DSP)等)、存储器、一个或多个通信接口、和/或其他电路,并且可以可选地执行所接收的程序代码和/或包括用于执行功能的嵌入式固件。
图13描绘了可以在其中实现实施例的计算设备1300的示例性实现。例如,计算设备102、402、602、802、1002和/或1202可以在类似于固定或移动计算机实施例中的计算设备1300的一个或多个计算设备中实现,包括计算设备1300的一个或多个特征和/或替代特征。本文中提供的计算设备1300的描述是出于说明的目的而提供的,并不旨在进行限制。如相关领域的技术人员所知,实施例可以在其他类型的计算机***中实现。
如图13所示,计算设备1300包括一个或多个处理器(称为处理器电路1302)、***存储器1304、和将包括***存储器1304在内的各种***组件耦合到处理器电路1302的总线1306。处理器电路1302是在一个或多个物理硬件电路设备元件和/或集成电路设备(半导体材料芯片或管芯)中作为中央处理单元(CPU)、微控制器、微处理器和/或其他物理硬件处理器电路实现的电和/或光电路。处理器电路1302可以执行存储在计算机可读介质中的程序代码,例如操作***1330的程序代码、应用程序1332、其他程序1334等。总线1306表示几种类型的总线结构中的一种或多种,包括存储器总线或存储器控制器、***总线、加速图形端口、以及使用各种总线架构中的任何一种的处理器或本地总线。***存储器1304包括只读存储器(ROM)1308和随机存取存储器(RAM)1310。基本输入/输出***1312(BIOS)存储在ROM1308中。
计算设备1300还具有以下驱动器中的一个或多个:用于从硬盘读取和向其写入的硬盘驱动器1314、用于从可移动磁盘1318读取或向其写入的磁盘驱动器1316、以及用于从诸如CD ROM、DVD ROM或其他光学介质等可移动光盘1322读取或向其写入的光盘驱动器1320。硬盘驱动器1314、磁盘驱动器1316和光盘驱动器1320分别通过硬盘驱动器接口1324、磁盘驱动器接口1326和光驱接口1328连接到总线1306。驱动器及其相关联的计算机可读介质为计算机提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。虽然描述了硬盘、可移动磁盘和可移动光盘,但也可以使用其他类型的基于硬件的计算机可读存储介质来存储数据,例如闪存卡、数字视频磁盘、RAM、ROM和其他硬件存储介质。
多个程序模块可以存储在硬盘、磁盘、光盘、ROM或RAM上。这些程序包括操作***1330、一个或多个应用程序1332、其他程序1334和程序数据1336。应用程序1332或其他程序1334可以包括例如用于实现以下各项的特征中的任何一个的计算机程序逻辑(例如,计算机程序代码或指令):计算设备102、第一浏览器104、第二浏览器106、第二浏览器(第一实例)106A、多浏览器标签管理器108、第一绘制引擎120、标签114、主机浏览器界面112、多标签管理器128、标签126、网络浏览器控件124、第二绘制引擎122、计算设备402、第一浏览器404、第二浏览器(第一实例)406A、多浏览器标签管理器408、第一绘制引擎420、标签414、主机浏览器界面412、多标签管理器428、标签426、网络浏览器控件424、第二绘制引擎422、计算设备602、第一浏览器604、第二浏览器(第一实例)606A、多浏览器标签管理器608、第一绘制引擎620、标签614、主机浏览器界面612、多标签管理器628、标签626、网络浏览器控件624、第二绘制引擎622、计算设备802、第一浏览器804、第二浏览器(第一实例)806A、多浏览器标签管理器808、第一绘制引擎820,标签814、主机浏览器界面812、多标签管理器828、标签826、网络浏览器控件824、第二绘制引擎822、看门狗进程832、操作***834、计算设备1002、第一浏览器1004、第二浏览器(第一实例)1006A、多浏览器标签管理器1008、第一绘制引擎1020、标签1014、主机浏览器界面1012、多标签管理器1028、标签1026、网络浏览器控件1024、第二绘制引擎1022、加速器映射1030、计算设备1202、第一浏览器1204、第二浏览器(第一实例)1206A、多浏览器标签管理器1208、第一绘制引擎1220、标签1214、主机浏览器界面1212、多标签管理器1228、标签1226、网络浏览器控件1224、第二绘制引擎1222、许可授权器1232和许可缓存1230(和/或其中描述的任何组件)、和/或流程图200、300、500、700、900和1100、和/或本文中描述的其他实施例。
用户可以通过诸如键盘1338和指示设备1340等输入设备将命令和信息输入到计算设备1300中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏手柄、卫星天线、扫描仪、触摸屏和/或触摸板、接收语音输入的语音识别***、接收手势输入的手势识别***等。这些和其他输入设备通常通过耦合到总线1306的串行端口接口1342连接到处理器电路1302,但也可以通过其他接口连接,例如并行端口、游戏端口或通用串行总线(USB)。
显示屏1344还经由接口(例如,视频适配器1346)连接到总线1306。显示屏1344可以在计算设备1300外部,或者并入计算设备1300中。显示屏1344可以显示信息,并且可以是用于接收用户命令和/或其他信息(例如,通过触摸、手指手势、虚拟键盘等)的用户界面。除了显示屏1344,计算设备1300可以包括其他***输出设备(未示出),例如扬声器和打印机。
计算设备1300通过适配器或网络接口1350、调制解调器1352、或用于通过网络建立通信的其他装置连接到网络1348(例如,互联网)。调制解调器1352(可以是内部的或外部的)可以通过串行端口接口1342连接到总线1306,如图13所示,或者可以使用另一种接口类型(包括并行接口)连接到总线1306。
如本文中使用的,术语“计算机程序介质”、“计算机可读介质”和“计算机可读存储介质”等用于指代物理硬件介质,诸如与硬盘驱动器1314相关联的硬盘、可移动磁盘1318、可移动光盘1322、其他物理硬件介质,例如RAM、ROM、闪存卡、数字视频磁盘、zip磁盘、MEM、基于纳米技术的存储器设备、以及其他类型的物理/有形硬件存储介质。这种计算机可读存储介质与通信介质不同(不包括通信介质)并且不重叠。通信介质在诸如载波等调制数据信号中包含计算机可读指令、数据结构、程序模块或其他数据。术语“调制数据信号”是指一种信号,该信号的一个或多个特性以在信号中编码信息的方式被设置或改变。作为示例而非限制,通信介质包括无线介质(诸如声学、RF、红外线和其他无线介质)以及有线介质。实施例还涉及与涉及计算机可读存储介质的实施例分开并且不重叠的这种通信介质。
如上所述,计算机程序和模块(包括应用程序1332和其他程序1334)可以存储在硬盘、磁盘、光盘、ROM、RAM或其他硬件存储介质上。这种计算机程序也可以通过网络接口1350、串行端口接口1342或任何其他接口类型来接收。这样的计算机程序在由应用执行或加载时使得计算设备1300能够实现本文中公开的实施例的特征。因此,这样的计算机程序代表计算设备1300的控制器。
实施例还涉及包括存储在任何计算机可读介质上的计算机代码或指令的计算机程序产品。这样的计算机程序产品包括硬盘驱动器、光盘驱动器、存储器设备封装、便携式存储棒、存储卡和其他类型的物理存储硬件。
III.附加示例实施例
本文中描述了一种计算设备中的方法。所述方法包括:在所述计算设备中执行第一浏览器,所述第一浏览器具有打开的浏览器窗口;在所述第一浏览器处接收导航到第一页面的请求;确定所述第一页面与所述第一浏览器不兼容而与第二浏览器兼容;由所述第一浏览器发送调用所述第二浏览器的实例的调用请求;响应于接收到所述调用请求,由所述第二浏览器的所述实例加载用于所述第二浏览器的所述实例的主机浏览器界面,所述主机浏览器界面耦合到所述第二浏览器的所述实例的浏览器框架层;以及在所述第一浏览器的控制下,在没有为所述第二浏览器的所述实例而打开的浏览器窗口的情况下执行所述第二浏览器的所述实例。
在前述方法的一个实施例中,所述方法还包括:将所述第一页面的地址提供给所述第二浏览器的所述实例;以及由所述第二浏览器的所述实例绘制所述第一页面,所述第一页面被托管在所述第一浏览器的所述浏览器窗口中的标签内。
在前述方法的一个实施例中,所述方法还包括:向所述第一浏览器提供所述第二浏览器的所述实例已经遍历到的第二页面的地址或与所述第二页面相关联的安全指示符中的至少一项;由所述第二浏览器的所述实例绘制所述第二页面,所述第二页面被托管在所述第一浏览器的所述浏览器窗口中的所述标签内;以及显示经由与所述第一浏览器相关联的地址栏的所述地址或代表所述安全指示符并且与所述第一浏览器相关联的图形用户界面元素中的至少一项。
在前述方法的一个实施例中,所述方法还包括:从所述主机浏览器界面接收状态指示符,所述状态指示符指示由所述第二浏览器的所述实例绘制的所述第一页面的状态;以及由所述第一浏览器显示代表所述状态指示符并且与所述第一浏览器相关联的图形用户界面元素。
在前述方法的一个实施例中,所述方法还包括:由所述第一浏览器向所述主机浏览器界面提供与所述第一浏览器相关联的进程标识符;基于所述进程标识符确定所述第一浏览器不活动;以及响应于确定所述第一浏览器不再活动,使所述第二浏览器的所述实例被终止。
在前述方法的一个实施例中,所述方法还包括:从所述主机浏览器界面接收被提供给所述第二浏览器的所述实例的第一加速器输入;确定所述第一加速器输入是否与存储在与所述第一浏览器相关联的加速器映射中的第二加速器输入匹配;响应于确定所述第一加速器输入与所述第二加速器输入匹配,由所述第一浏览器执行与所述第一加速器输入相对应的动作;以及响应于确定所述第一加速器输入与所述第二加速器输入不匹配,绕过对所述第一加速器输入的处理。
在前述方法的一个实施例中,所述方法还包括:由所述第一浏览器向所述主机浏览器界面提供与所述第一浏览器相关联的许可设置;由所述第二浏览器存储所述许可设置;由所述第二浏览器接收来自所述第一页面的对执行特定动作的许可的请求;确定所述许可设置中的许可设置是否授权所述第一页面执行所述特定动作;响应于确定所述许可设置授权所述第一页面执行所述特定动作,由所述第二浏览器向所述第一页面提供指示所述第一页面被授权执行所述特定动作的响应;以及响应于确定所述许可设置没有授权所述第一页面执行所述特定动作:由所述第二浏览器向所述第一浏览器提供绘制与所述第一浏览器相关联的、提示用户进行输入的用户界面元素的请求,所述输入指定所述第一页面是否被授权执行所述特定动作;由所述第一浏览器接收指示所述用户输入的响应;由所述第一浏览器向所述第二浏览器提供所述响应;以及由所述第二浏览器向所述第一页面提供所述响应。
在前述方法的一个实施例中,所述第二浏览器的所述实例的功能被托管在所述第一浏览器内,所述功能包括以下中的至少一项:虚拟标签切换;浏览器助手对象;以及一个或多个浏览器扩展。
本文中还描述了一种***。所述***包括:至少一个处理器电路;以及至少一个存储器,存储被配置为由所述至少一个处理器电路执行的程序代码,所述程序代码包括:第一浏览器,被配置为:在第一浏览器处接收导航到第一页面的请求,所述第一浏览器具有打开的浏览器窗口;确定所述第一页面与所述第一浏览器不兼容而与第二浏览器兼容;以及发送调用所述第二浏览器的实例的调用请求;以及第二浏览器,被配置为:响应于接收到所述调用请求而调用所述第二浏览器的实例,所述第二浏览器的所述实例被配置为:加载用于所述第二浏览器的所述实例的主机浏览器界面,所述主机浏览器界面耦合到所述第二浏览器的所述实例的浏览器框架层,所述第一浏览器还被配置为在没有为所述第二浏览器的所述实例而打开的浏览器窗口的情况下控制所述第二浏览器的所述实例的执行。
在前述***的一个实施例中,所述第一浏览器还被配置为将所述第一页面的地址提供给所述第二浏览器的所述实例,并且其中所述第二浏览器的所述实例被配置为绘制所述第一页面,所述第一页面被托管在所述第一浏览器的所述浏览器窗口中的标签内。
在前述***的一个实施例中,所述第二浏览器的所述实例还被配置为向所述第一浏览器提供所述第二浏览器的所述实例已经遍历到的第二页面的地址或与所述第二页面相关联的安全指示符中的至少一项,并且绘制所述第二页面,所述第二页面被托管在所述第一浏览器的所述浏览器窗口中的所述标签内,以及所述第一浏览器被配置为显示经由与所述第一浏览器相关联的地址栏的所述地址或代表所述安全指示符并且与所述第一浏览器相关联的图形用户界面元素中的至少一项。
在前述***的一个实施例中,所述第一浏览器还被配置为:从所述主机浏览器界面接收状态指示符,所述状态指示符指示由所述第二浏览器的所述实例绘制的所述第一页面的状态;以及显示代表所述状态指示符并且与所述第一浏览器相关联的图形用户界面元素。
在前述***的一个实施例中,所述第一浏览器还被配置为向所述主机浏览器界面提供与所述第一浏览器相关联的进程标识符,以及所述第二浏览器的所述实例还被配置为:基于所述进程标识符确定所述第一浏览器不活动;以及响应于确定所述第一浏览器不再活动,使所述第二浏览器的所述实例被终止。
在前述***的一个实施例中,所述主机浏览器界面是动态链接库。
在前述***的一个实施例中,所述调用请求包括一个或多个参数,所述一个或多个参数指定所述主机浏览器界面的名称或从其加载所述主机浏览器界面的位置中的至少一项。
在前述***的一个实施例中,所述调用请求包括指示所述第二浏览器的所述实例进行以下操作的参数:禁止所述第二浏览器的所述实例的所述浏览器窗口的打开;向所述第一浏览器提供与所述第二浏览器的所述实例相关联的绘制信息或上下文信息中的至少一项;并且使所述第一页面在所述第一浏览器的标签内被打开。
一种其上记录有程序指令的计算机可读存储介质,所述程序指令在由计算设备的至少一个处理器执行时执行一种方法。所述方法包括:在所述计算设备中执行第一浏览器,所述第一浏览器具有打开的浏览器窗口;在所述第一浏览器处接收导航到第一页面的请求;确定所述第一页面与所述第一浏览器不兼容而与第二浏览器兼容;由所述第一浏览器发送调用所述第二浏览器的实例的调用请求;响应于接收到所述调用请求,由所述第二浏览器的所述实例加载用于所述第二浏览器的所述实例的主机浏览器界面,所述主机浏览器界面耦合到所述第二浏览器的所述实例的浏览器框架层;以及在所述第一浏览器的控制下,在没有为所述第二浏览器的所述实例而打开的浏览器窗口的情况下执行所述第二浏览器的所述实例。
在前述计算机可读存储介质的一个实施例中,所述方法还包括:将所述第一页面的地址提供给所述第二浏览器的所述实例;以及由所述第二浏览器的所述实例绘制所述第一页面,所述第一页面被托管在所述第一浏览器的所述浏览器窗口中的标签内。
在前述计算机可读存储介质的一个实施例中,所述方法还包括:向所述第一浏览器提供所述第二浏览器的所述实例已经遍历到的第二页面的地址或与所述第二页面相关联的安全指示符中的至少一项;由所述第二浏览器的所述实例绘制所述第二页面,所述第二页面被托管在所述第一浏览器的所述浏览器窗口中的所述标签内;以及显示经由与所述第一浏览器相关联的地址栏的所述地址或代表所述安全指示符并且与所述第一浏览器相关联的图形用户界面元素中的至少一项。
在前述计算机可读存储介质的一个实施例中,所述方法还包括:从所述主机浏览器界面接收状态指示符,所述状态指示符指示由所述第二浏览器的所述实例绘制的所述第一页面的状态;以及由所述第一浏览器显示代表所述状态指示符并且与所述第一浏览器相关联的图形用户界面元素。
在前述计算机可读存储介质的一个实施例中,所述方法还包括:由所述第一浏览器向所述主机浏览器界面提供与所述第一浏览器相关联的进程标识符;基于所述进程标识符确定所述第一浏览器不活动;以及响应于确定所述第一浏览器不再活动,使所述第二浏览器的所述实例被终止。
在前述计算机可读存储介质的一个实施例中,所述主机浏览器界面是动态链接库。
V.结论
虽然上面已经描述了本发明的各种实施例,但是应当理解,它们仅作为示例而不是限制被呈现。相关领域的技术人员将理解,在不脱离如所附权利要求中限定的本发明的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,本发明的广度和范围不应当受上述示例性实施例中的任何一个的限制,而应当仅根据所附权利要求及其等同物来限定。
Claims (20)
1.一种计算设备中的方法,包括:
在所述计算设备中执行第一浏览器,所述第一浏览器具有打开的浏览器窗口;
在所述第一浏览器处接收导航到第一页面的请求;
由所述第一浏览器确定所述第一页面与所述第一浏览器不兼容而与第二浏览器兼容;
响应于所述确定,由所述第一浏览器发送在单独进程中调用所述第二浏览器的实例的调用请求;
响应于接收到所述调用请求,由所述第二浏览器的所述实例加载主机浏览器界面,所述主机浏览器界面被加载到所述第二浏览器的所述实例的所述单独进程中,所述主机浏览器界面耦合到所述第二浏览器的所述实例的浏览器框架层;以及
在所述第一浏览器的控制下,在没有为所述第二浏览器的所述实例而打开的浏览器窗口的情况下执行所述第二浏览器的所述实例。
2.根据权利要求1所述的方法,还包括:
将所述第一页面的地址提供给所述第二浏览器的所述实例;以及
由所述第二浏览器的所述实例绘制所述第一页面,所述第一页面被托管在所述第一浏览器的所述浏览器窗口中的标签内。
3.根据权利要求2所述的方法,还包括:
向所述第一浏览器提供以下至少一项:所述第二浏览器的所述实例已经遍历到的第二页面的地址或与所述第二页面相关联的安全指示符;
由所述第二浏览器的所述实例绘制所述第二页面,所述第二页面被托管在所述第一浏览器的所述浏览器窗口中的所述标签内;以及
显示以下至少一项:经由与所述第一浏览器相关联的地址栏的所述地址或代表所述安全指示符并且与所述第一浏览器相关联的图形用户界面元素。
4.根据权利要求2所述的方法,还包括:
从所述主机浏览器界面接收状态指示符,所述状态指示符指示由所述第二浏览器的所述实例绘制的所述第一页面的状态;以及
由所述第一浏览器显示代表所述状态指示符并且与所述第一浏览器相关联的图形用户界面元素。
5.根据权利要求1所述的方法,还包括:
由所述第一浏览器向所述主机浏览器界面提供与所述第一浏览器相关联的进程标识符;
基于所述进程标识符确定所述第一浏览器不活动;以及
响应于确定所述第一浏览器不再活动,使所述第二浏览器的所述实例被终止。
6.根据权利要求1所述的方法,还包括:
从所述主机浏览器界面接收被提供给所述第二浏览器的所述实例的第一加速器输入;
确定所述第一加速器输入是否与存储在与所述第一浏览器相关联的加速器映射中的第二加速器输入匹配;
响应于确定所述第一加速器输入与所述第二加速器输入匹配,由所述第一浏览器执行与所述第一加速器输入相对应的动作;以及
响应于确定所述第一加速器输入与所述第二加速器输入不匹配,绕过对所述第一加速器输入的处理。
7.根据权利要求1所述的方法,还包括:
由所述第一浏览器向所述主机浏览器界面提供与所述第一浏览器相关联的许可设置;
由所述第二浏览器存储所述许可设置;
由所述第二浏览器接收来自所述第一页面的对执行特定动作的许可的请求;
确定所述许可设置中的许可设置是否授权所述第一页面执行所述特定动作;
响应于确定所述许可设置授权所述第一页面执行所述特定动作,由所述第二浏览器向所述第一页面提供指示所述第一页面被授权执行所述特定动作的响应;以及
响应于确定所述许可设置没有授权所述第一页面执行所述特定动作:
由所述第二浏览器向所述第一浏览器提供绘制与所述第一浏览器相关联的、提示用户进行输入的用户界面元素的请求,所述输入指定所述第一页面是否被授权执行所述特定动作;
由所述第一浏览器接收指示所述用户的输入的响应;
由所述第一浏览器向所述第二浏览器提供所述响应;以及
由所述第二浏览器向所述第一页面提供所述响应。
8.根据权利要求1所述的方法,其中所述第二浏览器的所述实例的功能被托管在所述第一浏览器内,所述功能包括以下中的至少一项:
虚拟标签切换;
浏览器助手对象;以及
一个或多个浏览器扩展。
9.一种计算机***,包括:
至少一个处理器电路;以及
至少一个存储器,存储被配置为由所述至少一个处理器电路执行的程序代码,所述程序代码包括:
第一浏览器,被配置为:
在第一浏览器处接收导航到第一页面的请求,所述第一浏览器具有打开的浏览器窗口;
确定所述第一页面与所述第一浏览器不兼容而与第二浏览器兼容;以及
响应于确定所述第一页面与所述第一浏览器不兼容而与所述第二浏览器兼容,发送在单独进程中调用所述第二浏览器的实例的调用请求;以及
第二浏览器,被配置为:
响应于接收到所述调用请求而调用所述第二浏览器的实例,所述第二浏览器的所述实例被配置为:
在所述第二浏览器的所述实例的所述单独进程中加载主机浏览器界面,所述主机浏览器界面耦合到所述第二浏览器的所述实例的浏览器框架层,
所述第一浏览器还被配置为控制在没有为所述第二浏览器的所述实例而打开的浏览器窗口的情况下控制所述第二浏览器的所述实例的执行。
10.根据权利要求9所述的计算机***,其中所述第一浏览器还被配置为将所述第一页面的地址提供给所述第二浏览器的所述实例,并且其中所述第二浏览器的所述实例被配置为绘制所述第一页面,所述第一页面被托管在所述第一浏览器的所述浏览器窗口中的标签内。
11.根据权利要求10所述的计算机***,其中所述第二浏览器的所述实例还被配置为向所述第一浏览器提供所述第二浏览器的所述实例已经遍历到的第二页面的地址或与所述第二页面相关联的安全指示符中的至少一项,以及绘制所述第二页面,所述第二页面被托管在所述第一浏览器的所述浏览器窗口中的所述标签内,并且
其中所述第一浏览器被配置为显示以下至少一项:经由与所述第一浏览器相关联的地址栏的所述地址或代表所述安全指示符并且与所述第一浏览器相关联的图形用户界面元素。
12.根据权利要求10所述的计算机***,其中所述第一浏览器还被配置为:
从所述主机浏览器界面接收状态指示符,所述状态指示符指示由所述第二浏览器的所述实例绘制的所述第一页面的状态;以及
显示代表所述状态指示符并且与所述第一浏览器相关联的图形用户界面元素。
13.根据权利要求9所述的计算机***,其中所述第一浏览器还被配置为向所述主机浏览器界面提供与所述第一浏览器相关联的进程标识符,并且
其中所述第二浏览器的所述实例还被配置为:
基于所述进程标识符确定所述第一浏览器不活动;以及
响应于确定所述第一浏览器不再活动,使所述第二浏览器的所述实例被终止。
14.根据权利要求9所述的计算机***,其中所述主机浏览器界面是动态链接库。
15.根据权利要求9所述的计算机***,其中所述调用请求包括一个或多个参数,所述一个或多个参数指定所述主机浏览器界面的名称或从其加载所述主机浏览器界面的位置中的至少一项。
16.根据权利要求9所述的计算机***,其中所述调用请求包括指示所述第二浏览器的所述实例进行以下操作的参数:
禁止所述第二浏览器的所述实例的所述浏览器窗口的打开;
向所述第一浏览器提供与所述第二浏览器的所述实例相关联的绘制信息或上下文信息中的至少一项;以及
使所述第一页面在所述第一浏览器的标签中被打开。
17.一种其上记录有程序指令的计算机可读存储介质,所述程序指令在由计算设备的至少一个处理器执行时执行方法,所述方法包括:
在所述计算设备中执行第一浏览器,所述第一浏览器具有打开的浏览器窗口;
在所述第一浏览器处接收导航到第一页面的请求;
由所述第一浏览器确定所述第一页面与所述第一浏览器不兼容而与第二浏览器兼容;
响应于所述确定,由所述第一浏览器发送在单独进程中调用所述第二浏览器的实例的调用请求;
响应于接收到所述调用请求,由所述第二浏览器的所述实例加载主机浏览器界面,所述主机浏览器界面被加载到所述第二浏览器的所述实例的所述单独进程中,所述主机浏览器界面耦合到所述第二浏览器的所述实例的浏览器框架层;以及
在所述第一浏览器的控制下,在没有为所述第二浏览器的所述实例而打开的浏览器窗口的情况下执行所述第二浏览器的所述实例。
18.根据权利要求17所述的计算机可读存储介质,其中所述方法还包括:
将所述第一页面的地址提供给所述第二浏览器的所述实例;以及
由所述第二浏览器的所述实例绘制所述第一页面,所述第一页面被托管在所述第一浏览器的所述浏览器窗口中的标签内。
19.根据权利要求18所述的计算机可读存储介质,其中所述方法还包括:
向所述第一浏览器提供以下至少一项:所述第二浏览器的所述实例已经遍历到的第二页面的地址或与所述第二页面相关联的安全指示符;
由所述第二浏览器的所述实例绘制所述第二页面,所述第二页面被托管在所述第一浏览器的所述浏览器窗口中的所述标签内;以及
显示以下至少一项:经由与所述第一浏览器相关联的地址栏的所述地址或代表所述安全指示符并且与所述第一浏览器相关联的图形用户界面元素。
20.根据权利要求18所述的计算机可读存储介质,其中所述方法还包括:
从所述主机浏览器界面接收状态指示符,所述状态指示符指示由所述第二浏览器的所述实例绘制的所述第一页面的状态;以及
由所述第一浏览器显示代表所述状态指示符并且与所述第一浏览器相关联的图形用户界面元素。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311554548.6A CN117519829A (zh) | 2019-06-07 | 2020-04-29 | 用于在浏览器内托管另一浏览器的***和方法 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962858900P | 2019-06-07 | 2019-06-07 | |
US62/858,900 | 2019-06-07 | ||
US16/566,689 | 2019-09-10 | ||
US16/566,689 US11442599B2 (en) | 2019-06-07 | 2019-09-10 | Systems and methods for hosting a browser within another browser |
PCT/US2020/030339 WO2020247119A1 (en) | 2019-06-07 | 2020-04-29 | Systems and methods for hosting a browser within another browser |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311554548.6A Division CN117519829A (zh) | 2019-06-07 | 2020-04-29 | 用于在浏览器内托管另一浏览器的***和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114586005A CN114586005A (zh) | 2022-06-03 |
CN114586005B true CN114586005B (zh) | 2023-11-28 |
Family
ID=73651514
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080041817.7A Active CN114586005B (zh) | 2019-06-07 | 2020-04-29 | 用于在浏览器内托管另一浏览器的***和方法 |
CN202311554548.6A Pending CN117519829A (zh) | 2019-06-07 | 2020-04-29 | 用于在浏览器内托管另一浏览器的***和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311554548.6A Pending CN117519829A (zh) | 2019-06-07 | 2020-04-29 | 用于在浏览器内托管另一浏览器的***和方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11442599B2 (zh) |
EP (1) | EP3980883A1 (zh) |
CN (2) | CN114586005B (zh) |
WO (1) | WO2020247119A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11023558B1 (en) * | 2020-04-03 | 2021-06-01 | International Business Machines Corporation | Executing functions on-demand on a server utilizing web browsers |
US11893199B2 (en) | 2020-06-10 | 2024-02-06 | Microsoft Technology Licensing, Llc | Systems and methods for viewing incompatible web pages via remote browser instances |
CN112883309B (zh) * | 2021-02-24 | 2024-05-28 | 江苏保旺达软件技术有限公司 | 一种通过浏览器访问应用的方法、装置、设备及介质 |
CN113900628B (zh) * | 2021-12-09 | 2022-02-18 | 中邮消费金融有限公司 | 一种基于vue的多页签实例缓存方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107925685A (zh) * | 2015-07-31 | 2018-04-17 | 思杰***有限公司 | 用于安全网页浏览的重定向器 |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010013043A1 (en) | 1998-03-12 | 2001-08-09 | Richard J. Wagner | System and method for determining browser package and version compatibility of a web document |
US7496847B2 (en) | 2004-04-29 | 2009-02-24 | International Business Machines Corporation | Displaying a computer resource through a preferred browser |
US8972977B2 (en) | 2004-06-30 | 2015-03-03 | Microsoft Technology Licensing, Llc | Systems and methods for providing seamless software compatibility using virtual machines |
JP2006350831A (ja) | 2005-06-17 | 2006-12-28 | Ntt Docomo Inc | 通信装置およびブラウザ切換方法 |
US7779091B2 (en) | 2005-12-19 | 2010-08-17 | Vmware, Inc. | Method and system for providing virtualized application workspaces |
US20070174429A1 (en) | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
US20070260702A1 (en) | 2006-05-03 | 2007-11-08 | University Of Washington | Web browser architecture for virtual machine access |
US7996778B2 (en) | 2006-05-18 | 2011-08-09 | Dell Products L.P. | Central internet browser control for multiple browsers enabled system |
US7805728B2 (en) | 2007-03-16 | 2010-09-28 | Microsoft Corporation | Browser elements for communicating with other browser elements and with external applications |
US20080301562A1 (en) | 2007-04-27 | 2008-12-04 | Josef Berger | Systems and Methods for Accelerating Access to Web Resources by Linking Browsers |
US8321798B2 (en) | 2007-06-28 | 2012-11-27 | International Business Machines Corporation | Containing and accessing multiple web browsers |
US7818681B2 (en) | 2007-06-28 | 2010-10-19 | International Business Machines Corporation | Method and system for internally identifying a specific web browser for displaying a specific web page |
US8887039B2 (en) | 2008-01-02 | 2014-11-11 | Microsoft Corporation | Web page based program versioning |
US7937452B2 (en) | 2008-02-19 | 2011-05-03 | Microsoft Corporation | Framework for rendering plug-ins in remote access services |
TW201007574A (en) | 2008-08-13 | 2010-02-16 | Inventec Corp | Internet server system and method of constructing and starting a virtual machine |
US20100211865A1 (en) | 2009-02-19 | 2010-08-19 | Microsoft Corporation | Cross-browser page visualization generation |
US9448815B2 (en) | 2009-04-15 | 2016-09-20 | Wyse Technology L.L.C. | Server-side computing from a remote client device |
US20100301562A1 (en) | 2009-05-31 | 2010-12-02 | Nedelcu Viorel-Ioan | Lottery ticket and corresponding card game |
US8525850B2 (en) | 2009-12-31 | 2013-09-03 | International Business Machines Corporation | Automatic targeting of browser content to optimal rendering engine |
US9262396B1 (en) | 2010-03-26 | 2016-02-16 | Amazon Technologies, Inc. | Browser compatibility checker tool |
CN102971706B (zh) | 2010-05-10 | 2016-08-10 | 思杰***有限公司 | 将信息从安全虚拟机重定向到不安全虚拟机 |
US8555155B2 (en) * | 2010-06-04 | 2013-10-08 | Apple Inc. | Reader mode presentation of web content |
CN102467565B (zh) | 2010-11-19 | 2016-05-11 | 北京奇虎科技有限公司 | 一种浏览器内核切换的方法 |
US9692806B2 (en) | 2010-12-17 | 2017-06-27 | Hewlett-Packard Development Company, L.P. | Route a service |
KR20120071670A (ko) | 2010-12-23 | 2012-07-03 | 엘지전자 주식회사 | 이동단말기 및 그 제어방법 |
CN102156709B (zh) | 2011-02-28 | 2020-01-03 | 奇智软件(北京)有限公司 | 一种浏览器引擎模式的切换方法 |
US20150161277A1 (en) * | 2011-03-14 | 2015-06-11 | Browsium, Inc. | Methods and systems for one browser version to use a rendering engine of another browser version for displaying information |
US8839245B1 (en) | 2012-06-18 | 2014-09-16 | Bromium, Inc. | Transferring files using a virtualized application |
US20130014126A1 (en) | 2011-07-05 | 2013-01-10 | Microsoft Corporation | Cross-browser communication between devices on a network |
US9256696B2 (en) | 2011-10-20 | 2016-02-09 | International Business Machines Corporation | Dynamic selection of one of many available web browsers |
US9256691B2 (en) | 2012-07-10 | 2016-02-09 | Recursive Labs, Inc. | Systems and methods for enabling Internet co-browsing experience for multiple users |
US10353718B2 (en) | 2012-07-23 | 2019-07-16 | Vmware, Inc. | Providing access to a remote application via a web client |
US20140108496A1 (en) | 2012-10-11 | 2014-04-17 | Browsium, Inc. | Systems and methods for browser redirection and navigation control |
US20150094150A1 (en) | 2013-09-30 | 2015-04-02 | Zynga Inc. | Operation of a browser-incompatible application within a browser |
US9813421B2 (en) | 2014-05-20 | 2017-11-07 | Box, Inc. | Systems and methods for secure resource access and network communication |
US9844723B2 (en) * | 2014-07-25 | 2017-12-19 | Zynga Inc. | In-browser emulation of multiple technologies to create consistent visualization experience |
TWI566178B (zh) | 2015-03-09 | 2017-01-11 | 宏碁股份有限公司 | 電子裝置、使用者介面操作方法以及其電腦程式產品 |
EP3326077A4 (en) | 2015-07-20 | 2019-03-20 | Ent. Services Development Corporation LP | WEB APPLICATION SETTING FOR DIFFERENT BROWSERS |
US10334075B2 (en) | 2016-05-23 | 2019-06-25 | Citrix Systems, Inc. | Virtual browser integration |
US10469562B2 (en) | 2016-06-24 | 2019-11-05 | Vmware, Inc. | Virtual machine pixel remoting |
US10733260B1 (en) | 2019-05-03 | 2020-08-04 | Microsoft Technology Licensing, Llc | Page display by hosted browser within controlling browser |
-
2019
- 2019-09-10 US US16/566,689 patent/US11442599B2/en active Active
-
2020
- 2020-04-29 CN CN202080041817.7A patent/CN114586005B/zh active Active
- 2020-04-29 WO PCT/US2020/030339 patent/WO2020247119A1/en active Application Filing
- 2020-04-29 CN CN202311554548.6A patent/CN117519829A/zh active Pending
- 2020-04-29 EP EP20728586.7A patent/EP3980883A1/en active Pending
-
2022
- 2022-08-08 US US17/818,148 patent/US20220391231A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107925685A (zh) * | 2015-07-31 | 2018-04-17 | 思杰***有限公司 | 用于安全网页浏览的重定向器 |
Also Published As
Publication number | Publication date |
---|---|
US11442599B2 (en) | 2022-09-13 |
US20220391231A1 (en) | 2022-12-08 |
US20200387273A1 (en) | 2020-12-10 |
WO2020247119A1 (en) | 2020-12-10 |
CN114586005A (zh) | 2022-06-03 |
CN117519829A (zh) | 2024-02-06 |
EP3980883A1 (en) | 2022-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114586005B (zh) | 用于在浏览器内托管另一浏览器的***和方法 | |
US9635138B2 (en) | Client-server input method editor architecture | |
US20220075696A1 (en) | Application Exception Recovery | |
US8935755B1 (en) | Managing permissions and capabilities of web applications and browser extensions based on install location | |
US20150220239A1 (en) | Global keyboard shortcuts management for web applications | |
US10733260B1 (en) | Page display by hosted browser within controlling browser | |
US20170118216A1 (en) | Substitution of requests or results in access control systems | |
US20110271201A1 (en) | Decentralized Contextual Collaboration Across Heterogeneous Environments | |
EP3205066B1 (en) | Client-assisted fulfillment of a resource request | |
EP3161598A1 (en) | Light dismiss manager | |
EP3497586A1 (en) | Discovery of calling application for control of file hydration behavior | |
US11249771B2 (en) | Terminal input invocation | |
US9282091B2 (en) | Information processing system, information processing device, and authentication method | |
US9870116B1 (en) | Controlling actions for browser extensions | |
US11893199B2 (en) | Systems and methods for viewing incompatible web pages via remote browser instances | |
US20220067220A1 (en) | Mask including a moveable window for viewing content | |
WO2022220998A1 (en) | System, method and computer program product for alerting users to websites new to the web | |
US10897463B2 (en) | Managing and securing manageable resources in stateless web server architecture using servlet filters | |
US11750460B1 (en) | Identifying duplicate entries in views of same and other network management interfaces | |
US11036365B2 (en) | Hang condition mitigation for browser applications | |
US11422668B1 (en) | Seamless application updates | |
US11461422B2 (en) | Page personalization | |
WO2022098820A1 (en) | Presenting web content based on rules |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |