CN104520816A - 使用浏览器作为中间件的跨扩展消息接发 - Google Patents
使用浏览器作为中间件的跨扩展消息接发 Download PDFInfo
- Publication number
- CN104520816A CN104520816A CN201380016175.5A CN201380016175A CN104520816A CN 104520816 A CN104520816 A CN 104520816A CN 201380016175 A CN201380016175 A CN 201380016175A CN 104520816 A CN104520816 A CN 104520816A
- Authority
- CN
- China
- Prior art keywords
- browser
- browser extension
- request
- extension
- application programming
- 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.)
- Granted
Links
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/543—Local
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明涉及一种用于使用计算装置的web浏览器在至少两个浏览器扩展之间调解消息的方法,其包含经由所述web浏览器提供的消息接发应用程序编程接口接收来自第一浏览器扩展的请求,其中所述请求的接收者是由所述消息接发应用程序编程接口基于来自所述第一浏览器扩展的所述请求中所包含的所请求功能性而确定的第二浏览器扩展。所述方法包含:当所述所请求功能性在所述第二浏览器扩展中可用时,使用所述消息接发应用程序编程接口将所述请求发送到所述第二浏览器扩展;以及当所述所请求功能性不可用时,使用所述消息接发应用程序编程接口将错误消息发送到所述第一浏览器扩展。
Description
相关申请案的交叉参考
此申请案主张2012年3月1日提出申请的标题为“使用浏览器作为中间件的跨扩展消息接发(CROSS-EXTENSION MESSAGING USING A BROWSER AS ANINTERMEDIARY)”的美国非临时专利申请案第13/409,651号的优先权且为所述美国非临时专利申请案的接续案,所述美国非临时专利申请案的揭示内容以其全文引用的方式并入本文中。
技术领域
此申请案一般来说涉及web浏览器技术。
背景技术
万维网的使用持续增加,其用户可获得的内容的量及种类也持续增加。万维网的用户通常使用启用web的计算装置上所实施的浏览器(web浏览器)来存取内容。此些装置包含个人计算机、膝上型计算机、上网本、智能电话及移动电话以及若干其它可能装置。此些web浏览器经配置以读取编程代码且将所述代码渲染为web页,此可包含渲染各种媒体文件(例如,图像、视频及音频文件)中所含有的音频及视觉内容两者以及执行编程代码中所定义的其它功能。Web页通常使用例如HTML(包含HTML5)、CSS及JavaScript以及若干其它可用编程语言的编程语言来实施。
一些浏览器允许用户对浏览器安装附件(或扩展),其中此些扩展给浏览器添加功能性且作为浏览器的集成部分而操作。举例来说,扩展可通过修改浏览器的用户接口(UI)来提供对其额外功能性的用户存取。作为实例,可将天气预报扩展添加到浏览器,其中扩展通过将图标或按钮添加到浏览器的UI而提供对天气信息的容易存取。接着,用户可与扩展的按钮或图标(例如,通过单击其或以指针装置悬停在其上)互动以获得天气信息,而非必须浏览天气相关的web页以便获得天气信息。
浏览器扩展通常使用编程代码来实施,所述编程代码使用用于实施web页的相同编程语言(例如JavaScript)而写入。从浏览器角度来说,一旦安装扩展,所述扩展便有效地充当为浏览器的集成部分的web页。通过安装其感兴趣的扩展,用户可有效地创建包含其选择安装的扩展的功能性的定制浏览器。举例来说,用户(举例来说)在经由web浏览器阅读图书时可利用扩展来播放所合成的文本到语音。交换消息同时维持用户的隐私且同时允许web浏览器干净地处置错误对于扩展可是有用的。
发明内容
根据一个一般方面,揭示一种用于使用计算装置的web浏览器在至少两个浏览器扩展之间调解消息的方法,其包含经由所述web浏览器提供的消息接发应用程序编程接口接收来自第一浏览器扩展的请求,其中所述请求的接收者是由所述消息接发应用程序编程接口基于来自所述第一浏览器扩展的所述请求中所包含的所请求功能性而确定的第二浏览器扩展。所述方法包含:当所述所请求功能性在所述第二浏览器扩展中可用时,使用所述消息接发应用程序编程接口将所述请求发送到所述第二浏览器扩展;以及当所述所请求功能性不可用时,使用所述消息接发应用程序编程接口将错误消息发送到所述第一浏览器扩展。
根据另一个一般方面,揭示一种其上记录且存储有指令的非暂时性计算机可读存储媒体,所述指令在由计算装置执行时致使所述计算装置:经由所述计算装置的web浏览器提供的消息接发应用程序编程接口接收来自第一浏览器扩展的请求,其中所述请求的接收者是由所述消息接发应用程序编程接口基于来自所述第一浏览器扩展的所述请求中所包含的所请求功能性而确定的第二浏览器扩展;当所述所请求功能性在所述第二浏览器扩展中可用时,使用所述消息接发应用程序编程接口将所述请求发送到所述第二浏览器扩展;以及当所述所请求功能性不可用时,使用所述消息接发应用程序编程接口将错误消息发送到所述第一浏览器扩展。
根据又一个一般方面,一种设备包含存储器及可操作地耦合到所述存储器的处理器。所述处理器可经配置以执行用以进行以下操作的代码:经由计算装置的web浏览器提供的消息接发应用程序编程接口接收来自第一浏览器扩展的请求,其中所述请求的接收者是由所述消息接发应用程序编程接口基于来自所述第一浏览器扩展的所述请求中所包含的所请求功能性而确定的第二浏览器扩展;当所述所请求功能性在所述第二浏览器扩展中可用时,使用所述消息接发应用程序编程接口将所述请求发送到所述第二浏览器扩展;以及当所述所请求功能性不可用时,使用所述消息接发应用程序编程接口将错误消息发送到所述第一浏览器扩展。
在附图及下文说明中陈述一或多个实施方案的细节。依据所述说明及图式且依据权利要求书将明了其它特征。
揭示一种用于使用浏览器作为中间件在浏览器扩展之间进行消息传递的系统及/或方法,实质上如连同图中的至少一者所展示及/或所描述,如权利要求书中较完整地陈述。
附图说明
图1是图解说明实施使用浏览器作为中间件的扩展消息接发的示范性web浏览器的框图。
图2是图解说明根据实例实施方案的示范性扩展间消息接发架构的框图。
图3是根据关于图2所描述的实例实施方案的web浏览器的示范性用户接口。
图4是图解说明用于使用浏览器作为中间件的扩展消息接发的方法的流程图。
图5是图解说明根据上文关于图2及3所描述的实例实施方案的用于使用浏览器作为中间件的扩展消息接发的方法的流程图。
图6是图解说明根据实例实施例的可用于实施本文中所描述的技术的计算装置及移动计算装置的图式。
在各图式中,相似元件符号指示相似元件。
具体实施方式
由客户端装置执行的web浏览器可从远程服务器(例如,托管网站的远程服务器)接收代码(例如,HTML代码)且为使客户端装置的用户受益,可对客户端装置执行接收代码。
在各种实施方案中,web浏览器可包含一或多个web应用程序或与一或多个web应用程序相关联。在此上下文中,“web应用程序”可经配置以执行用户的单个任务或多个任务。在此实施方案中,web应用程序可经配置以由web浏览器执行或解译。此与包含机器可执行代码且经配置以由处理器直接执行或经由客户端装置的操作系统而执行的本机应用程序相当,然而,web应用程序在不借助web浏览器的情况下可无法执行或显示。因此,web应用程序可在具有专用用户接口的浏览器内运行且可提供比独立网站更丰富且更多交互但不如桌面应用程序繁琐且具整体性的功能性及体验。web应用程序的实例包含在浏览器内运行的游戏、图片编辑器及视频播放器。
Web应用程序可为“托管web应用程序”、“可安装web应用程序”或“经封装web应用程序”。托管web应用程序可包含网站的其自身包含web页的至少一部分加上可尤其与web应用程序有关或与web应用程序的用户有关以允许web应用程序执行用户的一些特定功能性的一些元数据。
可安装web应用程序是使浏览器将一些网站视为应用程序的方式。许多可安装web应用程序是具有额外元数据(例如描述应用程序的小清单文件)的托管web应用程序。经封装web应用程序是可安装web应用程序的类型。封装应用程序可视为其代码被捆绑的web应用程序,使得用户可下载供由浏览器执行的web应用程序的所有内容。经封装web应用程序可不需要具有用以供用户执行其功能性的网络接入而是可在不接入网络的情况下由计算装置本地上的浏览器成功地执行。经封装web应用程序具有使用扩展应用程序编程接口(API)的选项,从而允许封装应用程序改变浏览器作用或观看的方式。
在各种实例中,web浏览器可包含一或多个浏览器扩展或经配置以与一或多个浏览器扩展互动。在此上下文中,“浏览器扩展”可包含作为可定义整体而封装或分组在一起的一或多个web页,且经配置以将功能性扩展到web浏览器。如本文中所描述,“浏览器扩展”是可修改且增强web浏览器的功能性的小软件程序。其可使用例如HTML、JavaScript及CSS的web技术而写入。扩展可具有极少或不具有用户接口。扩展可提供可修改浏览器的“chrome”的用户接口图标或其它用户接口,其在本文中定义为包含在浏览器中所显示的web页外侧的区域(例如web浏览器窗口的边界,其包含窗口框架、菜单、工具栏及滚动条)。
因此,浏览器扩展还给浏览器提供额外功能性,但通常,与web应用程序不同,存在极少或不存在针对由扩展提供的功能性的用户接口组件。而是,浏览器扩展扩展浏览器及在其中观看的网站的功能性。举例来说,浏览器扩展可通过将新按钮添加到地址栏(例如始终存在的货币转换器)而扩展浏览器的功能性。类似此的按钮还可适用于正观看的当前网站—举例来说,单击货币转换器按钮可将呈现给用户的网站上的所有价格转换为用户选定的货币。在另一实例中,扩展可经安装使得在用户将光标悬停在由浏览器执行的web页上的缩略图图像上时,显示图像的较大大小的版本直到用户将光标移离图像为止。在另一实例中,扩展可经安装以在每一页中紧挨着每一链接嵌入“发送此”按钮。与web应用程序相比,扩展横跨网站及web应用程序。实际上,扩展通常跨越所有网站(但一些网站是站点特定的)。Web应用程序不以此方式与其它应用程序组合。而是,web应用程序如任何常规网站一样独立地运行。经封装web应用程序及可安装web应用程序也不同于浏览器扩展,因为其呈现非常不同的用户接口。
与浏览器扩展相比,“经封装web应用程序”可能看起来且感觉与具有大屏幕设计及丰富用户接口的常规web应用程序一样。扩展及经封装web应用程序两者均可将其所有文件捆绑到用户下载及安装的单个文件中。此捆绑意指,与普通web应用程序不同,扩展及经封装web应用程序不需要取决于来自web的内容。浏览器扩展、经封装web应用程序及可安装web应用程序可经由受信任到网络店铺或经由个别网站而分发。
图1是图解说明根据实例实施方案的实施使用浏览器作为中间件的扩展间消息接发的web浏览器100的框图。浏览器100可实施于计算装置中,所述计算装置例如下文关于图6所展示及描述的计算装置。如图1中所展示,浏览器100可用于实施第一扩展过程Extension_A 110及第二扩展过程Extension_B 120。在浏览器100中,实施Extension_A110及Extension_B 120,使得其在功能上彼此隔离,以便减小与在开放执行环境中运行扩展相关联的风险。在此实例中,扩展过程110及120中的每一者可经由浏览器100的请求处理器130而彼此通信。扩展过程110及120可在不知晓彼此的情况下彼此通信,举例来说,在不知晓与每一扩展相关联的任何唯一识别符的情况下彼此通信。
使用请求处理器130,Extension_A 110及Extension_B 120可实施允许其彼此一致地操作同时保持其功能隔离且不需要彼此的识别或知识的消息接发协议。请求处理器130可操作为经配置以在扩展之间调解消息的一或多个公共消息接发应用程序编程接口(API)。API可为同步的,或其可为非同步的,使得其立即返回而不等待操作完成。虽然图1中展示及描述了仅两个扩展过程110及120以及一个请求处理器130,但将了解,浏览器100中可实施额外扩展或请求处理器,且本文中所描述的技术将同样适用于那些额外扩展或请求处理器。
图2是图解说明根据实例实施方案的示范性扩展间消息接发架构的框图。关于图2所展示及论述的实例实施方案仅是出于说明性目的,且并不打算限制所描述方法及系统。尽管实例实施方案利用web应用程序来大声阅读出图书,但所属领域的技术人员将理解,所描述系统及方法可适用于任何类型的web应用程序或浏览器扩展,例如如上文关于图1所描述。因此,所揭示系统及方法不仅仅限于关于图2所描述的图书阅读器或语音提供者web应用程序及浏览器扩展。作为其它实例,所描述系统及方法可使用与游戏、视频、天气、金融、生产力、社会、商业、娱乐、新闻、计算机编程有关的web应用程序或浏览器扩展或任何其它web应用程序、浏览器扩展或者其组合实施。可利用任何类型及数目的web应用程序及/或浏览器扩展来实施本文中所描述的系统及方法。
如图2中所展示,浏览器100包含“图书阅读器”web应用程序220,其可表示由正操作浏览器100的计算装置的用户安装的web应用程序。图书阅读器web应用程序220可包含使用文本到语音(TTS)API 204大声说出图书的能力。在一些实施方案中,浏览器可使用由操作系统提供的语音合成能力提供对语音的本机支持。替代地或另外,用户可安装将其自身注册为替代语音引擎的浏览器扩展,如下文较详细描述。
在图2中所展示的实例中,浏览器100还可包含实施文本到语音引擎的扩展。TTS引擎API 202允许浏览器扩展实施文本到语音引擎。举例来说,在一些实施方案中,如果浏览器扩展使用TTS引擎API 202而注册,那么在任何浏览器扩展或经封装web应用程序使用TTS API 204产生语音时,扩展可接收含有将说出的话语及其它参数的事件。接着,浏览器扩展可使用任何可用web技术来合成及输出语音,且可将事件往回发送到调用函数以报告状态。“事件”可视为在发生某事时允许通知浏览器扩展(或web应用程序)的对象。
在一些实例实施方案中,每一事件可包含事件类型、与话语相关的当前语音的字符索引及(针对错误事件)任选错误消息。事件类型可包含:‘开始’:引擎已开始说出话语;‘字’:达到字边界;‘句子’:达到句子边界;‘标记’:达到标记;‘结束’:引擎已完成说出话语;‘中断’:此话语由对speak()或stop()的另一调用中断且未完成;‘取消’:此话语在排队,但接着因对speak()或stop()的另一调用而取消且完全不再开始说出;'错误':发生引擎特定错误且此话语无法说出。
在图2中所展示的实例中,扩展包含借助浏览器100(例如,由已(举例来说)从网络店铺安装扩展的用户)注册的艾丽西娅(Alicia)206、巴里(Barry)208及查理(Charlie)210。在图2中所展示的实例中,每一扩展206、208、210可产生如不同人的话音的声音,且每一扩展可具有不同音频质量。如上文所论述,例如扩展206、208及210的扩展其自身可注册为语音引擎。speak()stop()通过进行此,扩展可截获对例如speak()及stop()的功能的一些或全部调用且提供替代实施方案。扩展可自由使用任何可用web技术来以各种音频格式提供语音,包含来自服务器的流式音频、HTML5音频、本机客户端(NativeClient)或闪客(Flash)。扩展甚至可借助话语执行不同动作,例如,在弹出窗口中显示隐藏字幕或将其作为日志消息发送到远程服务器。此外,扩展可指定任何数目个话音。
在一个实施方案中,TTS引擎API 202可调用渲染语音且经由网络播放音频的服务器。另一实施方案在计算机本地产生语音而完全不涉及服务器。甚至在TTS引擎API 202使用服务器时,TTS引擎API 202也不在服务器上操作—TTS引擎API 202仍在本地操作,但TTS引擎API 202可与远程服务器通信以帮助实施语音处理。
在一个示范性实施方案中,最初,用户已在用户的浏览器100中安装图书阅读器web应用程序220、艾丽西娅206及巴里208。尽管图书阅读器web应用程序220是web应用程序且艾丽西娅206及巴里208是扩展,但区别是较小的且仅出于说明性目的而使用。本文中所描述的实例可借助web应用程序及/或扩展的各种各样的组合而实施。在图2中所展示的实例中,用户可能已从受信任到网络店铺或数字市场安装全部三者。当艾丽西娅206及巴里208加载于浏览器100中时,艾丽西娅206及巴里208自身可使用TTS引擎API 202借助浏览器100来注册,使得浏览器100知晓其为语音引擎。
图3图解说明根据关于图2所描述的实例实施方案的web浏览器的示范性用户接口。如图3中所展示,用户可观看包含标签312及314的浏览器接口310。浏览器应用程序中的每一标签可使用单独过程以保护总体浏览器应用程序在渲染与浏览器应用程序相关联的引擎中免受错误及故障。每一标签可执行单独过程,每一单独过程具有对执行浏览器应用程序的计算装置的存储器的至少一部分的读取/写入存取。存取可限于从一个渲染引擎过程到其它渲染引擎过程及到系统的其余部分。以此方式,针对一个web应用程序或针对一个浏览器扩展而运行的一个过程可与针对其它web应用程序或针对其它浏览器扩展运行的其它过程隔离及分离。
在一些实施方案中,例如标签312及314的标签可执行单独过程,每一单独过程具有其自己的存储器及其自己的全局数据结构副本。单独过程渲染单独标签,此还可创建单独JavaScript线程。一个标签(例如,312)可是忙碌的,而所有其它标签在使用中。如果一个标签(例如,标签312)的渲染器中存在错误,那么其可不影响其它标签或使整个浏览器应用程序崩溃。
图书阅读器web应用程序220在开启时可显示浏览器接口310的标签312中所显示的图形用户接口320。在一个实施方案,如果用户最初可使用图书阅读器web应用程序320来开始阅读图书,但接着想要开始聆听图书而非读取。那么用户可通过选择图书阅读器web应用程序320的图形用户接口元件(例如,按下“说话”322)而体验。图书阅读器web应用程序220可调用例如chrome.tts.speak(“It was a dark and stormy night”)(“那是一个漆黑的暴风雨之夜”)的功能,且所述图书开始大声读出。在幕后,用以说话的指令被发送到浏览器100。浏览器100知晓注册两个TTS扩展(即,图2中所展示的艾丽西娅206及巴里208),且由于在此实例中未给出其它要求,因此浏览器100可选取其中的一者(任意地或举例来说,首先注册的一者,在此实例中,艾丽西娅206),且将消息(例如,经由TTS API 204及TTS引擎API 202)转发到艾丽西娅206。艾丽西娅206可产生语音及播放音频,且接着在完成时往回发送消息(例如,到TTS引擎API 202)。浏览器100(例如,经由与TTS引擎API 202通信的TTS API 204,如图2中所展示)可将“完成”消息往回转发到图书阅读器web应用程序220,使得其知晓需翻页并在下一页上继续。
在一些实施方案中,用户可从图书阅读器web应用程序220选择其它选项,举例来说,体验其它话音。在那些实施方案中,举例来说,用户可打开图书阅读器web应用程序220接口320以修改web应用程序的设定且(举例来说)使用图3中所展示的图形用户接口下拉菜单324选择话音。图书阅读器web应用程序220查询浏览器100且确定浏览器100中安装两个话音:艾丽西娅206及巴里208。用户此次选择巴里。现在当用户按下“说话”322时,图书阅读器web应用程序220调用chrome.tts.speak("The campers werestill in shock over seeing the dead body.",{voiceName:"Barry"})(“露营者仍惊恐地看着死尸”,{话音名:“巴里”}),且浏览器100此次将语音自动转发到巴里208(举例来说,使用TTS API 204及TTS引擎API 202,如图2中所展示)。
在一些情形中,web浏览器扩展或web应用程序可经历错误。通过使浏览器用作中间件,浏览器可干净地处置此些错误。作为实例,巴里208在给出太长的句子时崩溃。由于浏览器100是中间件,因此如果巴里208在长句子的中间崩溃,那么浏览器100(例如,经由TTS引擎API 202及TTS API 204)可将称先前句子被“中断”的消息往回发送到图书阅读器220。那样的话,图书阅读器web应用程序220知晓将再次尝试相同句子而非进行到下一句子。图书阅读器web应用程序220此时还可发现巴里208不再可用,且图书阅读器web应用程序220可选择提示用户使用另一话音或选择无话音并使浏览器100任意地选取另一者。
用户可安装任何数目个扩展。在一项实例中,用户可在浏览器100中安装另一扩展(凯特琳(Caitlin)210)。图书阅读器web应用程序220下次查询一列可能话音时,其现在还将看到凯特琳210,且用户可开始使用凯特琳210。当注册凯特琳210时,所述扩展仅将“英语”列为所支持语言,但艾丽西娅206列出英语及西班牙语两者。所述图书可能在一本图书内遇到语言的组合,例如,单个句子呈西班牙语。在此实施方案中,当图书阅读器web应用程序220请求说出西班牙语句子时,替代地,浏览器100可将所述请求自动转发到艾丽西娅206,这是因为艾丽西娅206将英语及西班牙语两者均列为所支持语言。下一句子再次呈英语,使得句子可回到凯特琳210的话音。
所有这些由于浏览器100用作中间件而变得可能。图书阅读器220调用chrome.tts.speak(及其它chrome.tts方法,使用TTS API 204),且扩展206、208、210全部均调用chrome.ttsEngine方法(使用TTS引擎API 202),且浏览器100向其等发送消息以便使一切正常工作。浏览器100提供用于扩展的机制以通过指定扩展的唯一ID而将消息发送到另一扩展。通过用作中间件,浏览器100允许web应用程序与扩展之间较为匿名及隐私的通信,这是因为扩展及web应用程序不需要知晓关于彼此的不必要细节—举例来说,其不需要知晓其它扩展的唯一ID。另外,通过充当中间件,浏览器100不易于出现错误,因为浏览器100可促进通信且不允许API的不当使用,并干净地处置错误情形。
由于浏览器充当中间件(例如,使用TTS API 204及TTS引擎API 202),因此一个同伴可创建web应用程序(例如图书阅读器220)而不必与创建扩展(例如话音扩展206、208及210)的同伴一起。此外,图书阅读器web应用程序220不必知晓每一可能话音的唯一ID。在浏览器100用作中间件的情况下,图书阅读器web应用程序220不必将消息发送到每一可能话音并查看哪些话音作出响应,且图书阅读器web应用程序220不必就由用户安装的所有扩展的列表而询问浏览器。通过使浏览器100用作图书阅读器web应用程序220与扩展206、208及210之间的中间件,用户不必授予图书阅读器web应用程序220存取所安装扩展的列表(且因此揭露应用程序可能敏感的信息)的权限。此外,由于浏览器100用作中间件,因此当出现新话音时,如果其由用户安装,那么图书阅读器web应用程序220可自动利用新话音。相比之下,如果浏览器100不用作中间件,那么图书阅读web应用程序220将不知晓存在新话音,此意味第三方在不与所有讨论web应用程序一起且说服其提供新话音作为选择的情况下不可创建新话音。
由于扩展206、208及210以及图书阅读器web应用程序220不需要彼此直接通信,因此如果巴里208崩溃,那么图书阅读器web应用程序220知晓用不同话音重试所述句子。由于浏览器100是中间件,因此其可向图书阅读器web应用程序220呈现一致接口,使得对tts.speak的每次调用将最终成功或产生错误。相比之下,如果浏览器不用作中间件,那么扩展(例如,206、208或210)中的一者可崩溃或悬置,且web应用程序(例如,图书阅读器web应用程序220)可不知晓问题是什么。
类似地,在浏览器100用作中间件的情况下,图书阅读器web应用程序220不必处理扩展错误,且每一话音扩展不必处理讨论应用程序(例如图书阅读器web应用程序220)中的错误。在一些实施方案中,当浏览器100用作中间件时,其可在两侧上自动执行错误校验。举例来说,浏览器100可防止图书阅读器web应用程序220一次发送太多数据,且TTS引擎API 202可不允许发送关于不再作用的话语的通知。图3中所展示的用户接口仅是出于说明性目的。在不背离本文中所描述的方法及系统的范围的情况下可使用任何类型的用户接口。
图4是图解说明根据实例实施方案的用于使用浏览器作为中间件的扩展消息接发的方法400的流程图。方法400可使用图1及2中所展示的浏览器100实施。然而,将了解,可使用其它配置及技术来实施方法400。
方法400包含在框410处,经由在计算装置的web浏览器应用程序内操作的API(例如,web浏览器100的请求处理器130或TTS API 204,如图1及2中所展示)接收来自第一浏览器扩展(例如,扩展过程Extension_A 110)的对信息的请求。方法400进一步包含在框420处,在web浏览器100内将请求发送到第二浏览器扩展(例如,Extension_B120)。第一浏览器扩展与第二浏览器扩展不知晓彼此。在一些实施方案中,扩展各自封装为包含清单文件及至少一个HTML文件的可安装文件捆绑包。
在框430处,方法400包含经由在web浏览器应用程序内操作的API接收来自第二浏览器扩展的响应。在框440处,方法400包含经由在web浏览器应用程序内操作的API将响应自动提供到第一浏览器扩展(例如,经由请求处理器130)。
以此方式,web应用程序可经由API将请求发送到浏览器扩展。如果扩展经由API对请求作出响应,那么可将响应往回发送到web应用程序。然而,如果web应用程序发送畸形请求,那么浏览器(例如,API)可处置错误且将错误响应发送到web应用程序,因此浏览器扩展不必查看畸形请求。类似地,如果浏览器扩展发送畸形响应、在预定时间内未能对请求作出响应或崩溃,那么浏览器可将错误响应发送到web应用程序,使得web应用程序不必查看畸形响应。
由于浏览器用作中间件,因此API的客户端(在此实例中,web应用程序及浏览器扩展)不必处置通信细节(包含通信故障)。web应用程序及浏览器扩展可仅使用API,且浏览器可处置通信细节,包含错误处置。
图5是图解说明根据上文关于图2及3所描述的实例实施方案的用于使用浏览器作为中间件的扩展消息接发的方法的流程图。方法500可使用图2中所展示的浏览器100来实施。然而,将了解,可使用其它配置及技术来实施方法500,且所述方法500仅是示范性的且并非将所描述系统及方法限于使用特定类型的API、web应用程序或浏览器扩展。
方法500包含在框510处,经由在计算装置的web浏览器应用程序内操作的文本到语音API(例如,如图2中所展示的TTS API 204)接收来自在web浏览器应用程序内执行的第一web应用程序(例如,图书阅读器web应用程序202)的所请求语音。方法500进一步包含在框520处,经由在计算装置的web浏览器应用程序内操作的文本到语音API将请求发送到在计算装置的web浏览器应用程序内操作的语音引擎API(例如,TTS引擎API 202)。方法500进一步包含在框530处,将请求自动转发到安装于计算装置的web浏览器应用程序中的语音提供者浏览器扩展(例如,扩展206、208、210)。语音提供者浏览器扩展不知晓第一web应用程序(例如,扩展206不知晓图书阅读器web应用程序220)。
在框540处,方法500包含经由计算装置的web浏览器应用程序以由语音提供者浏览器扩展提供的第一话音(例如,以来自艾丽西娅206的艾丽西娅的话音)自动输出所请求语音。举例来说,所述话音可使用图书阅读器web应用程序220输出。
图6是展示可借助此处所描述的技术而使用的类属计算机装置600及类属移动计算机装置650的实例的图式。计算装置600打算表示各种形式的数字计算机,例如膝上型计算机、桌上型计算机、工作站、个人数字助理、服务器、刀片式服务器、大型计算机及其它适当计算机。计算装置650打算表示各种形式的移动装置,例如个人数字助理、蜂窝式电话、智能电话及其它类似计算装置。此处所展示的组件、其连接及关系以及其功能仅打算为示范性的。
计算装置600包含:处理器602;存储器604;存储装置606;高速接口608,其连接到存储器604及高速扩充端口610;以及低速接口612,其连接到低速总线614及存储装置606。组件602、604、606、608、610及612中的每一者使用各种总线来互连,且可安装于共同主板上或以其它方式适当地安装。处理器602可处理供在计算装置600内执行的指令,包含存储于存储器604中或存储装置606上用以在外部输入/输出装置(例如耦合到高速接口608的显示器616)上显示用于GUI的图形信息的指令。在其它实施方案中,多个处理器及/或多个总线可适当地连同多个存储器及若干类型的存储器一起使用。此外,可连接多个计算装置600,其中每一装置提供必要操作的若干部分(例如,作为服务器组、刀片式服务器群组或多处理器系统)。
存储器604存储计算装置600内的信息。在一个实施方案中,存储器604是一或多个易失性存储器单元。在另一实施方案中,存储器604是一或多个非易失性存储器单元。存储器604还可为另一形式的计算机可读媒体,例如磁盘或光盘。
存储装置606能够提供用于计算装置600的大容量存储装置。在一个实施方案中,存储装置606可为或含有计算机可读媒体,例如软盘装置、硬盘装置、光盘装置或磁带装置、快闪存储器或其它类似固态存储器装置或装置阵列,包含存储区域网络或其它配置中的装置。计算机程序产品可有形地体现于信息载体中。所述计算机程序产品还可含有在执行时实施例如上文所描述的方法的一或多种方法的指令。所述信息载体是计算机可读媒体或机器可读媒体,例如存储器604、存储装置606或处理器602上的存储器。
高速控制器608管理计算装置600的带宽密集型操作,而低速控制器612管理较低带宽密集型操作。此功能分配仅是示范性的。在一个实施方案中,高速控制器608耦合到存储器604、显示器616(例如,经由图形处理器或加速器)且耦合到可接受各种扩充卡(未展示)的高速扩充端口610。在所述实施方案中,低速控制器612耦合到存储装置606及低速扩充端口614。可包含各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩充端口可(例如,经由网络适配器)耦合到一或多个输入/输出装置,例如键盘、指针装置、扫描机或联网装置(例如交换机或路由器)。
如图中所展示,可以若干种不同形式来实施计算装置600。举例而言,可将其实施为标准服务器620或在此类服务器的群组中多次实施。其还可实施为机架式服务器系统624的一部分。另外,其可实施于个人计算机(例如膝上型计算机622)中。或者,来自计算装置600的组件可与移动装置(未展示)(例如装置650)中的其它组件组合。此些装置中的每一者可含有计算装置600、650中的一或多者,且整个系统可由彼此通信的多个计算装置600、650构成。
计算装置650包含处理器652、存储器664、例如显示器654的输入/输出装置、通信接口666及收发器668以及其它组件。装置650还可具备存储装置(例如微型驱动器或其它装置)以提供额外存储。组件650、652、664、654、666及668中的每一者使用各种总线而互连,且几个组件可安装于共同主板上或以其它方式适当地安装。
处理器652可执行计算装置650内的指令,包含存储于存储器664中的指令。处理器可实施为包含单独及多个模拟及数字处理器的芯片的芯片集。举例来说,处理器可提供(例如)用户接口的控制、由装置650运行的应用程序及通过装置650进行的无线通信以用于装置650的其它组件的协调。
处理器652可经由耦合到显示器654的控制接口658及显示接口656与用户通信。举例来说,显示器654可为TFT LCD(薄膜电晶体液晶显示器)或OLED(有机发光二极管)显示器或其它适当显示技术。显示接口656可包括用于驱动显示器654向用户呈现图形及其它信息的适当电路。控制接口658可接收来自用户的命令并转换其以供提交到处理器652。另外,外部接口662可经提供与处理器652通信,以实现装置650与其它装置的近区通信。举例来说,外部接口662可在一些实施方案中提供有线通信或在其它实施方案中提供无线通信,且还可使用多个接口。
存储器664存储计算装置650内的信息。存储器664可实施为一或多个计算机可读媒体、一或多个易失性存储器单元或一或多个非易失性存储器单元中的一或多者。扩充存储器674还可经由扩充接口672提供及连接到装置650,举例来说,扩充接口672可包含SIMM(单列直插式存储器模块)卡接口。此扩充存储器674可为装置650提供额外存储空间或还可存储用于装置650的应用程序或其它信息。具体来说,扩充存储器674可包含用以实施或补充上文所描述的过程的指令且还可包含安全信息。因此,举例来说,扩充存储器674可提供为用于装置650的安全模块且可以准许装置650的安全使用的指令进行编程。另外,安全应用程序可连同额外信息一起经由SIMM卡而提供,例如以非黑客方式将识别信息放置于SIMM卡上。
举例来说,存储器可包含快闪存储器及/或NVRAM存储器,如下文所论述。在一个实施方案中,计算机程序产品有形地体现于信息载体中。所述计算机程序产品含有在执行时实施例如上文所描述的方法的一或多种方法的指令。所述信息载体是(举例来说)可接纳于收发器668或外部接口662上方的计算机可读媒体或机器可读媒体,例如存储器664、扩充存储器674或处理器652上的存储器。
装置650可经由通信接口666无线地通信,所述通信接口在需要的情况下可包含数字信号处理电路。通信接口666可提供在各种模式或协议下的通信,例如GSM话音调用、SMS、EMS或MMS消息、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS以及其它。举例来说,此通信可经由射频收发器668而发生。另外,短程通信可(例如)使用蓝牙、WiFi或其它此类收发器(未展示)而发生。另外,GPS(全球定位系统)接收器模块670可将额外导航及位置相关无线数据提供到装置650,所述数据适当地可由装置650上运行的应用程序使用。
装置650还可使用音频编解码器660以音频方式通信,所述音频编解码器可从用户接收所说信息并将其转换为可用数字信息。音频编解码器660同样地可(例如)在装置650的手机中(例如)经由扬声器向用户产生可听声音。此声音可包含来自话音电话呼叫的声音、可包含所记录声音(例如,话音消息、音乐文件等)且还可包含由在装置650上操作的应用程序产生的声音。
如图中所展示,可以若干种不同形式来实施计算装置650。举例来说,其可实施为蜂窝式电话680。其还可实施为智能电话682、个人数字助理或其它类似移动装置的部分。
此处所描述的系统及技术的各种实施方案可以数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件及/或其组合而实现。这些各种实施方案可包含可在可编程系统上执行及/或解译的一或多个计算机程序中的实施方案,所述可编程系统包含可为专用或通用的至少一个可编程处理器(其经耦合以从存储系统接收数据及指令且将数据及指令传输到存储系统)、至少一个输入装置及至少一个输出装置。
这些计算机程序(还称为程序、软件、软件应用程序或代码)包含用于可编程处理器的机器指令且可以高级程序及/或对象导向的编程语言及/或以汇编/机器语言实施。如本文中所使用,术语“机器可读媒体”、“计算机可读媒体”是指用于将机器指令及/或数据提供到可编程处理器的任何计算机程序产品、设备及/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),所述可编程处理器包含作为机器可读信号接收机器指令的机器可读媒体。术语“机器可读信号”是指用于将机器指令及/或数据提供到可编程处理器的任何信号。
为提供与使用者的互动,此处所描述的系统及技术可实施于具有用于向使用者显示信息的显示装置(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)及使用者可通过其将输入提供到计算机的键盘及指针装置(例如,鼠标或轨迹球)的计算机上。也可使用其它种类的装置来提供与用户的互动;举例来说,提供给用户的反馈可为任何形式的感观反馈(例如,视觉反馈、听觉反馈或触觉反馈);且来自用户的输入可以任何形式(包括声音、语音或触觉输入)而接收。
此处所描述的系统及技术可实施于计算系统(包含后端组件(例如,作为数据服务器);或包含中间件组件(例如,应用程序服务器);或包含前端组件(例如,具有用户可经由其来与此处所描述的系统及技术的实施方案互动的图形用户接口或Web浏览器的客户端计算机))或此类后端、中间件或前端组件的任一组合中。系统的组件可通过任一数字数据通信形式或媒体(例如,通信网络)互连。通信网络的实例包含局域网络(“LAN”)、广域网络(“WAN”)及因特网。
所述计算系统可包含客户端及服务器。客户端与服务器一般彼此远离且通常经由通信网络而互动。客户端与服务器的关系是借助在相应计算机上运行且彼此之间具有客户端-服务器关系的计算机程序而产生。
已描述若干实施方案。然而,将理解,可在不背离本发明的精神及范围的情况下作出各种修改。
另外,图中所绘示的逻辑流程未必需要所展示的特定次序或顺序次序来实现所要结果。另外,可提供其它步骤,或可从所描述流程消除若干步骤,且可向所描述系统添加或从所描述系统移除其它组件。因此,其它实施方案也在所附权利要求书的范围内。
Claims (20)
1.一种用于使用计算装置的web浏览器在至少两个浏览器扩展之间调解消息的方法,所述方法包括:
经由所述web浏览器提供的消息接发应用程序编程接口接收来自第一浏览器扩展的请求,其中所述请求的接收者是由所述消息接发应用程序编程接口基于来自所述第一浏览器扩展的所述请求中所包含的所请求功能性而确定的第二浏览器扩展;
当所述所请求功能性在所述第二浏览器扩展中可用时,使用所述消息接发应用程序编程接口将所述请求发送到所述第二浏览器扩展;以及
当所述所请求功能性不可用时,使用所述消息接发应用程序编程接口将错误消息发送到所述第一浏览器扩展。
2.根据权利要求1所述的方法,其中所述第一浏览器扩展及所述第二浏览器扩展各自单独地封装为包含清单文件及至少一个HTML文件的可安装文件捆绑包。
3.根据权利要求1或权利要求2所述的方法,其中所述第一浏览器扩展在所述web浏览器中实施与由所述第二浏览器扩展实施的第二扩展过程隔离的第一扩展过程。
4.根据权利要求1、权利要求2或权利要求3所述的方法,其进一步包括:
通过所述消息接发应用程序编程接口从由用户安装于所述web浏览器中的多个浏览器扩展选择所述第二浏览器扩展。
5.根据前述权利要求中任一权利要求所述的方法,其中所述选择包含确定所述第二浏览器扩展包含由所述第一浏览器扩展请求的所支持特征。
6.根据前述权利要求中任一权利要求所述的方法,其中所述第一浏览器扩展及所述第二浏览器扩展由用户安装于所述web浏览器中且与所述用户的账户相关联。
7.根据前述权利要求中任一权利要求所述的方法,其进一步包括:
使用所述消息接发应用程序编程接口截获来自所述第二浏览器扩展的错误;
将所述请求自动转发到安装于所述计算装置的所述web浏览器中的第三浏览器扩展;以及
经由所述计算装置的所述web浏览器自动输出由所述第三浏览器扩展提供的输出。
8.一种用于使用计算装置的web浏览器调解请求的方法,所述方法包括:
经由所述计算装置的所述web浏览器提供的消息接发应用程序编程接口接收来自在所述web浏览器内执行的第一web应用程序的请求,其中所述请求包含所请求功能性;
通过所述消息接发应用程序编程接口基于所述所请求功能性而从安装于所述web浏览器中的一组浏览器扩展选择一浏览器扩展;
当所述所请求功能性在所述浏览器扩展中可用时,通过所述消息接发应用程序编程接口将所述请求自动转发到所述浏览器扩展;以及
如果所述浏览器扩展未能在预定时间内对所述请求作出响应,或如果所述浏览器扩展发送畸形响应,那么使用所述消息接发应用程序编程接口将错误消息提供到所述第一web应用程序。
9.根据权利要求8所述的方法,其中所述第一web应用程序经由所述消息接发应用程序编程接口仅与所述浏览器扩展通信。
10.根据权利要求8所述的方法,其中每当所述web浏览器的用户在所述web浏览器中安装新浏览器扩展时,自动更新由所述用户安装的所述组浏览器扩展。
11.根据权利要求10所述的方法,其中每当所述web浏览器的用户从所述web浏览器卸载所述组浏览器扩展中的任一者时,自动更新由所述用户安装的所述组浏览器扩展。
12.根据权利要求8、权利要求9、权利要求10或权利要求11所述的方法,其中所述消息接发应用程序编程接口通过所述第一web应用程序及所述浏览器扩展自动校验错误。
13.根据权利要求8、权利要求9、权利要求10、权利要求11或权利要求12所述的方法,其进一步包括:
在提供所述错误消息后,即刻将所述请求自动转发到安装于所述计算装置的所述web浏览器中的第二浏览器扩展;以及
经由所述计算装置的所述web浏览器自动输出由所述第二浏览器扩展提供的输出。
14.根据权利要求8、权利要求9、权利要求10、权利要求11、权利要求12或权利要求13所述的方法,其中所述第一web应用程序及所述浏览器扩展各自单独地封装为包含清单文件及至少一个HTML文件的可安装文件捆绑包,且其中所述第一web应用程序还包含图形图标。
15.根据权利要求8、权利要求9、权利要求10、权利要求11、权利要求12、权利要求13或权利要求14所述的方法,其进一步包括:
以音频格式输出所述消息。
16.根据权利要求15所述的方法,其中所述音频格式包含:来自服务器的流式音频、HTML5音频、本机客户端或闪客。
17.根据权利要求8、权利要求9、权利要求10、权利要求11、权利要求12、权利要求13、权利要求14、权利要求15或权利要求16所述的方法,其进一步包括:
使用所述计算装置的所述web浏览器在弹出窗口中显示与所述消息相关联的信息。
18.根据权利要求8、权利要求9、权利要求10、权利要求11、权利要求12、权利要求13、权利要求14、权利要求15、权利要求16或权利要求17所述的方法,其中所述web应用程序是经封装web应用程序。
19.一种其上记录且存储有指令的非暂时性计算机可读存储媒体,所述指令在由计算装置执行时致使所述计算装置:
经由所述计算装置的web浏览器提供的消息接发应用程序编程接口接收来自第一浏览器扩展的请求,其中所述请求的接收者是由所述消息接发应用程序编程接口基于来自所述第一浏览器扩展的所述请求中所包含的所请求功能性而确定的第二浏览器扩展;
当所述所请求功能性在所述第二浏览器扩展中可用时,使用所述消息接发应用程序编程接口将所述请求发送到所述第二浏览器扩展;以及
当所述所请求功能性不可用时,使用所述消息接发应用程序编程接口将错误消息发送到所述第一浏览器扩展。
20.一种设备,其包括:
存储器;以及
处理器,其可操作地耦合到所述存储器且经配置以执行用以进行以下操作的代码:
经由计算装置的web浏览器提供的消息接发应用程序编程接口接收来自第一浏览器扩展的请求,其中所述请求的接收者是由所述消息接发应用程序编程接口基于来自所述第一浏览器扩展的所述请求中所包含的所请求功能性而确定的第二浏览器扩展;
当所述所请求功能性在所述第二浏览器扩展中可用时,使用所述消息接发应用程序编程接口将所述请求发送到所述第二浏览器扩展;以及
当所述所请求功能性不可用时,使用所述消息接发应用程序编程接口将错误消息发送到所述第一浏览器扩展。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/409,651 US9384073B2 (en) | 2012-03-01 | 2012-03-01 | Cross-extension messaging using a browser as an intermediary |
US13/409,651 | 2012-03-01 | ||
PCT/US2013/028394 WO2013130862A1 (en) | 2012-03-01 | 2013-02-28 | Cross-extension messaging using a browser as an intermediary |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104520816A true CN104520816A (zh) | 2015-04-15 |
CN104520816B CN104520816B (zh) | 2018-05-11 |
Family
ID=47892014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380016175.5A Active CN104520816B (zh) | 2012-03-01 | 2013-02-28 | 用于调节跨扩展通信的方法、设备及存储媒体 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9384073B2 (zh) |
EP (1) | EP2820543A1 (zh) |
CN (1) | CN104520816B (zh) |
DE (1) | DE202013012491U1 (zh) |
WO (1) | WO2013130862A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108139950A (zh) * | 2015-10-09 | 2018-06-08 | 微软技术许可有限责任公司 | 计算系统中的分布式扩展执行 |
CN110110274A (zh) * | 2019-05-17 | 2019-08-09 | 极智(上海)企业管理咨询有限公司 | 一种浏览器多页面消息处理分发方法 |
CN113747376A (zh) * | 2016-06-12 | 2021-12-03 | 苹果公司 | 消息扩展应用程序商店 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9384073B2 (en) | 2012-03-01 | 2016-07-05 | Google Inc. | Cross-extension messaging using a browser as an intermediary |
CN106096030B (zh) * | 2013-04-23 | 2019-10-15 | 北京奇虎科技有限公司 | 对浏览器运行进行优化的方法和装置 |
US9575734B2 (en) * | 2014-03-28 | 2017-02-21 | Wipro Limited | System and method for improved light-weight business process modeling in offline mode using browser resources |
CN106375441A (zh) * | 2016-08-31 | 2017-02-01 | 北京深思数盾科技股份有限公司 | 一种基于web浏览器的功能扩展方法及终端设备 |
US10820053B2 (en) * | 2018-12-05 | 2020-10-27 | Hulu, LLC | Extension bundle generation for recording extensions in video delivery |
US11257396B2 (en) * | 2020-03-18 | 2022-02-22 | Sas Institute Inc. | User interfaces for converting geospatial data into audio outputs |
CN112257104A (zh) * | 2020-10-10 | 2021-01-22 | 北京字跳网络技术有限公司 | 权限控制方法、装置和电子设备 |
US11460973B1 (en) | 2022-04-11 | 2022-10-04 | Sas Institute Inc:. | User interfaces for converting node-link data into audio outputs |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050038788A1 (en) * | 2003-08-14 | 2005-02-17 | International Business Machines Corporation | Annotation security to prevent the divulgence of sensitive information |
CN101122861A (zh) * | 2007-09-30 | 2008-02-13 | 田园 | 一种浏览器扩展对象、函数或变量的方法 |
CN101408840A (zh) * | 2007-10-11 | 2009-04-15 | 沈阳金顶电子数字家庭技术有限公司 | 一种可调用不同浏览器对象的方法 |
US20090288098A1 (en) * | 2008-05-13 | 2009-11-19 | Google Inc. | Separate Plug-In Processes In Browsers and Applications Thereof |
US20110154212A1 (en) * | 2009-12-17 | 2011-06-23 | Google Inc. | Cloud-based user interface augmentation |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2330430B (en) * | 1997-10-16 | 2002-07-17 | Ibm | Error handler for a proxy server computer system |
US20070042332A1 (en) * | 2000-05-20 | 2007-02-22 | Young-Hie Leem | System and method for providing customized contents |
US20020046109A1 (en) * | 2000-07-24 | 2002-04-18 | Huw Leonard | Method and system for administering a customer loyalty reward program using a browser extension |
US7194411B2 (en) * | 2001-02-26 | 2007-03-20 | Benjamin Slotznick | Method of displaying web pages to enable user access to text information that the user has difficulty reading |
US7693719B2 (en) * | 2004-10-29 | 2010-04-06 | Microsoft Corporation | Providing personalized voice font for text-to-speech applications |
JP4743686B2 (ja) * | 2005-01-19 | 2011-08-10 | 京セラ株式会社 | 携帯端末装置、およびその音声読み上げ方法、並びに音声読み上げプログラム |
US8448241B1 (en) * | 2006-02-16 | 2013-05-21 | Oracle America, Inc. | Browser extension for checking website susceptibility to cross site scripting |
US8209622B2 (en) * | 2007-01-30 | 2012-06-26 | Oracle International Corporation | Drag and drop browser extension |
US8695020B2 (en) * | 2009-02-06 | 2014-04-08 | Visicom Media, LLC | Techniques for customizing a toolbar using widgets |
US20100299588A1 (en) * | 2009-05-21 | 2010-11-25 | Michael Joseph Dattilo | Method and system for providing interaction between a host system and web pages |
US8756488B2 (en) * | 2010-06-18 | 2014-06-17 | Sweetlabs, Inc. | Systems and methods for integration of an application runtime environment into a user computing environment |
US9384073B2 (en) | 2012-03-01 | 2016-07-05 | Google Inc. | Cross-extension messaging using a browser as an intermediary |
-
2012
- 2012-03-01 US US13/409,651 patent/US9384073B2/en active Active
-
2013
- 2013-02-28 WO PCT/US2013/028394 patent/WO2013130862A1/en active Application Filing
- 2013-02-28 EP EP13710210.9A patent/EP2820543A1/en not_active Withdrawn
- 2013-02-28 CN CN201380016175.5A patent/CN104520816B/zh active Active
- 2013-02-28 DE DE202013012491.1U patent/DE202013012491U1/de not_active Expired - Lifetime
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050038788A1 (en) * | 2003-08-14 | 2005-02-17 | International Business Machines Corporation | Annotation security to prevent the divulgence of sensitive information |
CN101122861A (zh) * | 2007-09-30 | 2008-02-13 | 田园 | 一种浏览器扩展对象、函数或变量的方法 |
CN101408840A (zh) * | 2007-10-11 | 2009-04-15 | 沈阳金顶电子数字家庭技术有限公司 | 一种可调用不同浏览器对象的方法 |
US20090288098A1 (en) * | 2008-05-13 | 2009-11-19 | Google Inc. | Separate Plug-In Processes In Browsers and Applications Thereof |
US20110154212A1 (en) * | 2009-12-17 | 2011-06-23 | Google Inc. | Cloud-based user interface augmentation |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108139950A (zh) * | 2015-10-09 | 2018-06-08 | 微软技术许可有限责任公司 | 计算系统中的分布式扩展执行 |
CN108139950B (zh) * | 2015-10-09 | 2022-06-17 | 微软技术许可有限责任公司 | 分布式扩展执行的方法及计算系统 |
CN113747376A (zh) * | 2016-06-12 | 2021-12-03 | 苹果公司 | 消息扩展应用程序商店 |
US11375345B2 (en) | 2016-06-12 | 2022-06-28 | Apple Inc. | Message extension app store |
CN110110274A (zh) * | 2019-05-17 | 2019-08-09 | 极智(上海)企业管理咨询有限公司 | 一种浏览器多页面消息处理分发方法 |
CN110110274B (zh) * | 2019-05-17 | 2021-06-29 | 极智(上海)企业管理咨询有限公司 | 一种浏览器多页面消息处理分发方法 |
Also Published As
Publication number | Publication date |
---|---|
DE202013012491U1 (de) | 2017-01-24 |
US9384073B2 (en) | 2016-07-05 |
US20130232506A1 (en) | 2013-09-05 |
EP2820543A1 (en) | 2015-01-07 |
CN104520816B (zh) | 2018-05-11 |
WO2013130862A1 (en) | 2013-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104520816A (zh) | 使用浏览器作为中间件的跨扩展消息接发 | |
US11175968B2 (en) | Embedding an interface of one application into an interface of another application | |
KR101633366B1 (ko) | 앱스토어 서비스 제공 방법 및 시스템 | |
US20190208230A1 (en) | Live video broadcast method, live broadcast device and storage medium | |
US8533741B2 (en) | Methods for launching a program application | |
CN103517158B (zh) | 一种生成可展示视频批注的视频的方法、装置及系统 | |
CN104395884A (zh) | 用于网页应用程序和浏览器扩展的数据存储层级 | |
TW201032131A (en) | Device, method and computer program product for automatically selecting internet browser and providing web page service | |
CN104685469A (zh) | 用于web应用程序的后台应用程序页面架构 | |
US20090064202A1 (en) | Support layer for enabling same accessory support across multiple platforms | |
CN104995596A (zh) | 在选项卡层级管理音频以用于用户通知及控制 | |
US20110041078A1 (en) | Method and device for creation of integrated user interface | |
CN102685573A (zh) | 经由多个设备的因特网内容订阅服务 | |
CN104572042A (zh) | 移动终端设备的跨平台中间件装置及其实现方法 | |
CN104704468A (zh) | Web应用程序的跨系统安装 | |
WO2021135537A1 (zh) | 一种直播内容引入方法、装置、存储介质及设备 | |
US10620978B2 (en) | Simulation desktop establishment method and related apparatus | |
WO2019007327A1 (zh) | 视频播放方法、装置、计算设备以及存储介质 | |
CN108959605A (zh) | 用于网页的截图方法、装置、计算机设备和存储介质 | |
WO2014154097A1 (en) | Automatic page content reading-aloud method and device thereof | |
US20170185422A1 (en) | Method and system for generating and controlling composite user interface control | |
US20010056351A1 (en) | Networked audio posting method and system | |
CN112328140B (zh) | 图像输入方法及其装置、设备、介质 | |
JP2010500671A5 (zh) | ||
KR20140090394A (ko) | 웹페이지에의 응용프로그램 임베디드 서비스 제공 방법 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: American California Applicant after: Google limited liability company Address before: American California Applicant before: Google Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |