CN101553771B - 绘制超文本标记语言内容 - Google Patents
绘制超文本标记语言内容 Download PDFInfo
- Publication number
- CN101553771B CN101553771B CN200780045435.6A CN200780045435A CN101553771B CN 101553771 B CN101553771 B CN 101553771B CN 200780045435 A CN200780045435 A CN 200780045435A CN 101553771 B CN101553771 B CN 101553771B
- Authority
- CN
- China
- Prior art keywords
- engine
- html
- script
- user interface
- script engine
- 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
Images
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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2354/00—Aspects of interface with display user
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/027—Arrangements and methods specific for the display of internet documents
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Image Generation (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
总体上,本说明书所描述的主题的一个方面可以在一种方法中实现,该方法包括:在HTML绘制引擎中,将超文本标记语言(HTML)内容绘制为矢量图形绘制引擎的图元;在所述矢量图形绘制引擎中,绘制所述图元以提供用户界面;经由所述用户界面接收输入事件;在所述HTML绘制引擎中基于所述输入事件确定用户界面的外观变化;以及根据所述外观变化来更新至少一个图元,以便通过所述矢量图形绘制引擎进行绘制,从而更新所述用户界面。
Description
背景技术
本发明涉及绘制超文本标记语言(HTML)内容。HTML是一种通常用于创建万维网上文档的写作语言。HTML使用各种标签和属性来定义Web文档的结构和布局,在处理HTML内容时,HTML绘制引擎对其进行解释。通常,Web浏览器使用HTML绘制引擎将HTML内容绘制到显示设备。在其他情况中,在将HTML内容显示给用户之前,已将HTML内容静态地绘制为另一格式,诸如使用由California,San Jose的Adobe Systems公司提供的ADOBE中的Web Capture(Web捕捉)特征。
此外,在绘制HTML内容时,HTML绘制引擎通常使用文档对象模型(DOM),例如在绘制动态HTML(DHTML)时使用DOM在将Web页面下载至Web浏览器后动态地改变Web页面的外观。DOM维持内部文档表示,并且实现DOM应用程序接口(API)。嵌入在HTML文档中的JavaScript可以通过DOM API直接访问当前文档,并且做出改变或者读取内容。
虚拟机(VM)是自包含的操作环境,其行为如同独立的计算机。例如,小应用程序运行在虚拟机(JVM)(可从SunMicrosystems公司获得)中,其已针对多种不同的计算机平台而实现。JVM为大部分操作系统提供运行时环境和Java解释器,这些操作系统包括OS,OS,以及OS。而且,JVM已经实现为Web浏览器插件。
发明内容
本说明书描述了涉及绘制超文本标记语言内容的技术。总体上,本说明书描述的主题的一个方面可以在一种方法中实现,该方法包括:在HTML绘制引擎中,将超文本标记语言(HTML)内容绘制为矢量图形绘制引擎的图元;在矢量图形绘制引擎中,绘制该图元以提供用户界面;经由用户界面接收输入事件;在HTML绘制引擎中,基于输入事件确定用户界面的外观变化;以及根据外观变化来更新至少一个图元以便通过矢量图形绘制引擎进行绘制,从而更新用户界面。此方面的其他实施方式包括相应的系统、装置和计算机程序产品(在计算机可读介质上编码的计算机程序产品,可操作以使得数据处理装置执行该方法的操作)。
这些以及其他实施方式可选地可以包括下列特征中的一个或多个。所述确定可以包括确定该外观变化仅影响用户界面的一部分,所述更新可以包括仅更新与所述变化影响的用户界面的部分相交的图元。该方法还可以包括在HTML绘制引擎所使用的第一脚本引擎与矢量图形绘制引擎所使用的第二脚本引擎之间进行关联(bridge)。关联可以包括:生成用于第一脚本引擎的对象,其表示第二脚本引擎中的对象;以及生成用于第二脚本引擎的对象,其表示第一脚本引擎中的对象。
该方法还可以包括使第一脚本引擎使用第二脚本引擎的无用单元回收站(garbage collector)。该方法可以包括交叉检查用于第一和第二脚本引擎的对象的安全上下文信息,从而维护安全模型的完整性。而且,该方法可以包括交叉检查用于HTML内容以及矢量图形绘制引擎的本地内容的域信息,从而维护安全模型的完整性。
此外,本说明书所描述的主题的另一方面可以在一种系统中实现,该系统包括:输入设备;显示设备;包括操作系统和虚拟机的计算机平台,该虚拟机被配置用于在计算机平台与被编程以在虚拟机上运行的软件应用之间创建虚拟化环境;以及该虚拟机可操作用于使用该输入设备和显示设备通过矢量图形绘制引擎来绘制和动态更新交互式HTML内容,从而生成用于该软件应用的用户界面。虚拟机可以包括HTML绘制引擎,其配置用于将交互式HTML内容绘制为矢量图形绘制引擎的图元,并且该虚拟机可以包括矢量图形绘制引擎,其配置用于绘制该图元以提供用户界面。
HTML绘制引擎可以配置用于保持所绘制图元的有关信息,以用于确定由输入事件导致的用户界面的外观变化仅影响该用户界面的一部分,以及用于仅更新与该变化影响的用户界面的部分相交的图元。虚拟机可以包括HTML绘制引擎所使用的第一脚本引擎以及由矢量图形绘制引擎所使用的第二脚本引擎,并且该虚拟机可以配置用于使用第一脚本引擎和第二脚本引擎之间的关联对象。
第一脚本引擎可以配置用于使用第二脚本引擎的无用单元回收站,并且虚拟机可以配置用于交叉检查用于第一和第二脚本引擎的对象的安全上下文信息,从而维护安全模型的完整性。虚拟机可以配置用于交叉检查用于交互式HTML内容和矢量图形绘制引擎的本地内容的域信息,从而维护安全模型的完整性。而且,计算机平台、输入设备和显示设备可以是一个个人计算机。
可以实施此说明书所描述的主题的特定实施方式以实现以下优点中的一个或多个。软件平台可以支持基于HTML的桌面应用,这些桌面应用独立于下层计算机平台(硬件/固件+操作系统)。基于HTML的桌面应用可以在操作系统内像正常桌面应用一样工作(例如,具有安装包、桌面图标以及通过操作系统的添加删除程序工具的卸载选项)。桌面应用可以使用HTML来生成其用户界面,这潜在地包括:使用HTML生成应用的整个用户界面,使用HTML生成应用的部分用户界面,或者在应用的用户界面内嵌入Web浏览器类型的元素。
软件平台可以使用跨平台运行时(runtime),其使用矢量图形绘制引擎来显示桌面应用的图形用户界面。除了HTML之外,运行时可以支持其他基于Web的跨平台技术,诸如脚本语言(例如,JavaScript和ActionScript)、跨平台文档格式(例如,便携式文档格式(PDF))以及跨平台解释代码(例如,代码)。因此,运行时可以允许使用Web技术来创建桌面应用,并且许多熟悉Web技术并且能够创建Web站点和Web应用的软件工程师和设计师也可以创建完全控制其外观、并且在未连接至网络的计算机上运行的桌面应用。而且,系统可以管理授予此类应用的权限,其中授予该应用的权限级别可以高于授予应用所加载的内容的权限(例如,可以授权应用访问本地磁盘,而可以拒绝从远程网站加载的HTML的此类访问),并且可以允许用户或系统管理员如所希望的配置此类权限级别。
本发明的一个或多个实施方式的细节在所附附图以及下文的描述中阐述。本发明的其他特征、方面和优点从描述、附图以及权利要求书中将变得明显。
附图说明
图1示出了包括用作应用软件的软件平台的虚拟机的示例系统。
图2示出了进行交互以呈现用户界面的超文本标记语言引擎与矢量图形引擎的示例组件。
图3示出了通过矢量图形绘制引擎来绘制超文本标记语言内容的示例过程。
图4示出了在第一脚本引擎与第二脚本引擎之间进行关联的示例过程。
具体实施方式
图1示出了包括用作应用软件的软件平台的虚拟机的示例系统。计算机平台100是具有适当硬件的数据处理装置,其包括用于该数据处理装置的特定操作系统(OS)120(例如,OS,OS,或OS)。计算机平台100包括虚拟机110。虚拟机110是运行时环境,其在计算机正在运行时为进程或程序提供软件服务。虚拟机110可以包括运行时库(或者可以视为与运行时间库一样的库),该运行时库是在程序运行时支持该程序的工具功能的集合,其经常与OS 120一起工作以提供便利。虚拟机110可以是运行应用的、基于客户端的软件,支持矢量和光栅图形、双向流传输音频和视频以及一个或多个脚本语言(例如,JavaScript和ActionScript)。而且,虚拟机110可以将应用与OS深度整合,从而提供诸如文件系统访问、多窗口、后台运行等服务。
应用150可以依赖运行时库来进行操作;例如,应用150可以是应用,其使用SWF并且在使用基于客户端的运行时库的计算机上运行,该运行时库运行无论是在线或离线都与web浏览器分离的应用。此处所使用的“应用”是指计算机程序,用户将其理解为用于所定义目的的确切的计算机工具。尽管应用150可以依赖于虚拟机110而在计算机平台100上操作,但是应用150也可以控制其外观,而且,即使在计算机平台100未连接到网络时应用150也可以在其上运行。因此,可以将应用150视为计算机平台100内的桌面应用,即使应用150可以运行在虚拟机110上并且因而是平台无关的。
应用150包括超文本标记语言(HTML)内容155,其用于生成应用150的用户界面180。应用150也可以使用其他代码内容来生成用户界面180。例如,应用150可以包括在生成用户界面180时使用的SWF代码,并且HTML内容155可以包括在该SWF代码中。
虚拟机110可以包括HTML绘制引擎130和矢量图形绘制引擎140,这两个引擎进行交互以便在显示设备160上呈现用户界面180,以及基于结合输入设备170而经由用户界面180接收的输入事件来更新用户界面180。操作系统120可以接收来自输入设备170的输入事件,并将这些输入事件传递给虚拟机110。虚拟机110可以将这些事件给予包括矢量图形绘制引擎140的代码,其继而可以酌情将这些事件传递给HTML绘制引擎130。
显示设备160可以包括CRT(阴极射线管)或LCD(液晶显示)监视器以用于向用户显示信息,并且输入设备170可以包括键盘和指示设备(例如鼠标或轨迹球),用户可以通过它们来向系统提供输入。应当理解,计算机平台100、显示设备160以及输入设备170可以一起包括在单个系统或设备中,举几个例子来说,诸如个人计算机、移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)接收机。
可以通过多种方式使HTML内容155与用户进行交互。HTML内容155可以包括DHTML,可以包括脚本(例如JavaScript),可以包括CSS(级联样式表),或者可以包括其某种组合。HTML引擎130可以将交互式HTML内容155绘制为矢量图形引擎140的图元。这些图元可以包括矢量图形(例如,矩形、椭圆形和字体)以及光栅图形(例如,位图或便携式网络图形(PNG)图像)。将会理解,光栅图形与矢量图形的区别在于:矢量图使用诸如曲线和多边形的几何对象来表示图像,而光栅图形使用像素网格来表示图像。尽管如此,矢量图形绘制引擎140所支持的图元可以包括矢量图形和光栅图形二者。
HTML引擎130还可以将对外部资源(图像、框架、样式表、脚本等)的请求转发至矢量图形引擎140或虚拟机110的相关组件。这么做可以解决安全性问题(下文将详细解释),并且还可以改善最终用户的体验。例如,当应用150连接至网络(例如,互联网)上的安全站点时,应用150的用户通常必须键入密码。如果HTML引擎150以不同于矢量图形引擎140的方式连接至网络,则用户可能必须两次键入她的密码,以访问HTML内容以及矢量图形引擎140的本地内容二者。然而,通过将来自HTML引擎130的资源请求转发至矢量图形引擎140(或相关组件),可以跟踪所输入的密码并且用户只需要键入一次她的密码。
虚拟机110可以使用受管理的环境,其中授予应用150的权限可以由用户或系统管理员在每个应用的基础上来配置。例如,可以不允许作为用户U而运行的应用A读取或写入“C:\Program Files”中的文件,但可以允许作为用户U而运行的应用B读取“C:\ProgramFiles”中的文件。这些应用的运行权限可以高于基于web的应用(例如,它们可以读取和写入本地磁盘),同时它们有可能轻易地加载应当阻止其使用该高级权限的内容。例如,通过HTML编写的桌面应用可以打开新窗口并且将www-cnn-com加载到该新窗口中。在这种情况下,可以允许桌面应用的HTML代码读取和写入本地磁盘,同时可以阻止来自www-cnn-com的HTML代码读取或写入本地磁盘。这可能是虚拟机110的默认配置,然而,这种配置也可能被用户或系统管理员改变,或者可以被某种机制改变,这样,具有特定权限级别的代码可能在运行时将此权限级别授与其他代码(那些不具有此权限级别的代码)。
此外,矢量图形绘制引擎140可以使用保持的(retained)图形模式,在该模式中,在框架(frame)的生命周期内,对绘制到该框架上的图元进行跟踪记录。当框架改变时,矢量图形绘制引擎140仅需要修改和更新具有新状态的图元。例如,矢量图形绘制引擎140可以是绘制引擎。
可以将保持的图形模式扩展到HTML绘制引擎130,使得HTML引擎130跟踪记录HTML内容155与绘制到矢量图形绘制引擎140的图元之间的关系。当改变用户界面180的HTML元素时(例如,由于鼠标在滚动元素上移动或者菜单元素弹出),HTML引擎130仅需要重新生成该改变所影响的相应图元,并将这些图元转发给矢量图形引擎140。因此,HTML绘制引擎130仅需要更新那些与该改变所影响的用户界面部分相交的图元。
图2示出了HTML引擎210和矢量图形引擎230的示例组件,其进行交互以呈现用户界面270。HTML引擎210包括用于给定HTML内容集合的DOM 220,其可以包括第一脚本类型(例如,JavaScript)的脚本。矢量图形引擎230包括第二脚本类型(例如,ActionScript)的脚本的对象模型240的实例。脚本对象模型240包括用于生成用户界面270的显示控制260。显示控制260可以是脚本对象模型240中的显示类的实例,该脚本对象模型240提供基本显示列表构建块:显示列表节点,其可以显示图形,也可以包含子节点。
可以通过与DOM 220对接的HTML控制250来扩展显示控制260。例如,HTML类可以扩展显示类,并且向虚拟机110中的HTML功能提供应用程序接口(API)。作为显示控制类的扩展,只要将HTML控制构建为可以具有孩子的任何其他显示控制260的孩子,则HTML控制类允许将HTML控制250添加到显示列表中。
以下描述着重于允许HTML控制类的用户(例如,桌面应用编程者)在这种基于类的方案上下文中实现各种行为的细节。然而,应当理解,还可以有其他实现。例如,可以使用基于事件的方案。事件的优点在于挂起事件处理机通常比较简单,而且事件可以由不止一个监听者进行处理。然而,使用事件处理机将状态返回给事件的分发者可能产生问题,因为在此类实现中返回状态通常涉及传送布尔值,其指示分发者是否应当在分发该事件之后执行某些默认逻辑。
还可以使用基于接口的方案。这种方案可以优于基于事件的方案,因为接口通常比事件更加地类型安全,可以更容易返回状态,并且仅调用一个处理机(相比于针对一个事件可以注册任意数目的处理机的事件而言)。然而,基于接口的方案可能要求新类的规范,同时还可能危及在稍后将向接口添加其他方法的情况下的向后兼容性。
相反,使用子类,所需要的行为可以实现为在此处所描述的HTML控制类上的可重载(override)方法。允许HTML控制的用户对HTML控制划分子类并且重载其某些方法,这可以提供利用接口来实现所需行为的大部分甚至全部益处。如果新的行为将由HTML控制的用户在将来实现,则已有应用代码将不必改变。事实上,窗口对象以及默认DOM事件处理机的所有行为都可以实现为HTML控制上的可重载方法。
HTML控制可以允许HTML控制中的第一脚本类型代码(例如,JavaScript)保持对第二脚本类型的对象的引用、调用第二脚本类型的对象的方法以及访问第二脚本类型的对象的属性。HTML控制还可以允许第二脚本类型代码(例如,ActionScript)保持对第一脚本类型代码的对象的引用、调用第一脚本类型代码的对象的方法以及访问第一脚本类型代码的对象的属性。例如,ActionScript可以经由windowObject(窗口对象)属性来访问在HTML控制中运行的JavaScript的窗口对象;ActionScript继而可以向该窗口对象添加属性,其值是对ActionScript对象(包括方法封闭)的引用。
外露给第一脚本类型对象模型的虚拟机的API可以是与第一脚本引擎关联的第二脚本类型函数闭包。第二脚本类型代码也可以使用windowObject属性来访问HTML控制所包含的HTML中的顶层窗口对象的第一脚本类型对象。第二脚本类型代码继而可以在该窗口对象上设置附加属性。这些附加属性可以具有值,这些值是可以从第一脚本类型代码调用的函数闭包。这些函数闭包可以返回与第一脚本引擎关联的第二脚本类型对象。通过找到用于HTML控制的窗口对象中的第一脚本类型对象的构造器,第二类型的脚本可以实例化第一类型的脚本对象。
第二类型脚本可以在任何时候访问窗口对象,然而,可以释放HTML控制对窗口对象的引用,并且可以在向HTML控制加载新内容的任何方法之后不久或者在其期间重新创建新的窗口。“完成的”事件可以发信号通知:HTML的所有加载时间处理已经完成,并且这还可以是第二类型脚本操纵第一类型脚本对象模型的好时机。而且,只要HTML窗口对象被引用,则可以调用安全管理器来确保允许调用方访问所讨论的HTML窗口的对象模型。这种在第一脚本引擎和第二脚本引擎之间关联、同时维护安全模型完整性的其他示例细节在下文中结合图4进行描述。
图3示出了通过矢量图形绘制引擎来绘制超文本标记语言内容的示例过程。HTML内容可以在HTML绘制引擎中被绘制为矢量图形绘制引擎的图元310。这可以包括:当矢量图形绘制引擎的图元中包括光栅图形时,将HTML内容绘制为一个或多个光栅图像。这可以包括将HTML内容绘制为矢量图形,从而可以得到清晰视图以及改善的性能(例如,对于嵌入在HTML内容中的任何视频)。
可以在矢量图形绘制引擎中绘制图元以提供用户界面(UI)320。例如,上述HTML控制默认地可以是嵌入式浏览器,其功能在HTMLIFRAME元素之后建模。嵌入式浏览器通常是用于实现将HTML绘制为应用UI的一部分的容器的功能超集。因此,HTML控制可以用于通过矢量图像引擎来绘制HTML UI,而无需对HTML控制划分子类。如果不希望任一HTML控制的行为的默认实现,则可以将用于UI的HTML编写为不执行该行为。例如,如果开发者不希望用户能够操纵该控制,则开发者可以选择编写该HTML使得其不包含外部链接和对window.location(窗口.位置)、window.history.go(窗口.历史.进行)等的JavaScript调用。如果开发者希望更多控制,则她可以对HTML控制划分子类并且重载实现各种行为的方法(诸如在点击链接时发生的事情)。
可以经由用户界面接收输入事件330。可以在HTML绘制引擎中基于该输入事件来确定用户界面的外观变化340。根据该外观变化,可以更新至少一个图元,以便矢量图形绘制引擎进行绘制,从而更新用户界面350。该确定可以包括确定该外观变化仅影响用户界面的一部分,而更新可以包括仅更新与受该变化影响的用户界面部分相交的图元(例如,仅更新该变化影响的矢量图形,或者仅更新该变化影响的用户界面的光栅图形区域)。
更新可以设计成重新生成尽可能小的用户界面以提高系统性能。例如,对于由HTML绘制引擎发送到矢量图形绘制引擎的每个图元(例如,矩形、椭圆形、图像等),HTML绘制引擎可以在用户导航离开HTML内容以前存储所维护的引用;并且当对HTML内容的上下文中的用户界面发生变化时,仅需更新该变化所影响的图元。
例如,对于HTML内容的每个DOM节点,可以附加上指针以标识给定节点生成的一个或多个图元。当UI中的光标移动到对应于给定DOM节点(例如,对应于菜单项的DOM节点)的UI元素之上时,该DOM节点接收事件。DOM节点可以包括响应于该事件而产生颜色变化的JavaScript,在这种情况下,可以定位表示该给定节点的图元,对颜色进行更新,并且可以将新图元发送到矢量图形引擎,以便绘制到显示器。备选地,可以使用单个图元(单个光栅图像)来实现UI,该图元继而针对UI中的任何变化进行更新。
在上面结合图2描述的HTML控制的上下文中,HTML控制可以使某些行为的实现服从于HTML控制的用户。这些行为可以是用于DOM事件的默认事件处理机,或者是JavaScript对象模型的方法和属性的实现。HTML控制的用户可以这样来实现这些行为:对HTML控制划分子类,并且重载与其希望控制的行为相对应的第二类型脚本方法(例如,ActionScript方法)。
当HTML文档中的JavaScript不处理鼠标或键盘事件时,该事件可以由HTML引擎中的默认事件处理机来处理。对于链接等,默认动作可以是导航至新的URL(通用资源定位符)。HTML控制所使用的HTML引擎可以决定何时调用默认动作。在点击链接的情况下,JavaScript onClick(点击)处理机可以在默认处理机执行之前执行,并且JavaScript onClick可以阻止调用默认处理机。如果HTML引擎调用默认处理机,那么HTML控制上的第二类型脚本方法(例如,ActionScript方法)可以由HTML控制来调用。
类似地,如果JavaScript没有处理鼠标按下和鼠标移动到图像上,则嵌入式浏览器可以告知虚拟机的拖拽管理器启动拖拽循环,从而可以该图像拖拽到桌面上或接受图像的另一应用上。HTML控制可以允许HTML控制的用户在第二类型脚本语言(例如,ActionScript)中实现这些默认行为。
当已调用默认处理机时,事件可能已经通过了HTML内容中的起泡(bubble)阶段。默认地,所有起泡事件可以将HTML控制主体浮升至安全性检查,诸如下文进一步描述的。起泡事件可以浮升通过每个显示列表对象,但是每个显示列表对象上的事件处理机仅在这些处理机有权访问事件目标的对象模型时才被调用。如果起泡事件浮升上来,则在该事件浮升至显示列表的顶层之前不需要执行默认行为。然而,如果在该事件对象上调用preventDefault(阻止默认行为),则不调用这些默认行为处理机。
当HTML控制在捕捉阶段接收到事件时,HTML控制可以将该事件转发至HTML DOM。此时,HTML引擎可以找到包含该HTML控制内事件的目标的DOM(也即,目标DOM)。目标DOM可以是IFRAM元素或FRAME元素的DOM。HTML引擎继而可以通过目标DOM来执行捕捉、目标和起泡阶段。目标阶段可以导致事件被转发至运行捕捉、目标和起泡阶段的另一DisplayObject(显示对象)树。在目标DOM的起泡阶段完成该事件之后,可以完成包含该HTML控制的显示列表中的事件的捕捉阶段。如果事件浮升出HTML控制中的目标DOM,则HTML控制可以允许事件浮升出该HTML控制,并且上升到包含该HTML控制的显示列表。注意,HTML通常不允许JavaScript对以IFRAME元素或FRAME元素中的元素为目标的事件进行捕获或者起泡。
源自HTML控制中的事件(错误事件、异常事件以及用户定义的事件)如果浮升通过HTML DOM,则其可以浮升出HTML控制。如果HTML控制的用户从不希望特定类型的事件浮升出HTML控制,则她可以将HTML控制放置在阻止此类事件浮升出容器的容器内。
当HTML是依赖于虚拟机的桌面应用的根内容时,运行时可以加载预先存在的代码(例如,预先储存的SWF),该代码是运行时的一部分。此代码可以对实现windowOpen(窗口打开)、windowMoveTo(窗口移动至)、windowResizeTo(窗口调整大小至)以及windowClose(窗口关闭)的HTML控制的子类进行实例化。可以实现这些方法以用于打开新窗口、移动窗口以及调整窗口大小。此代码还可以支持将所有运行时API注入到第一脚本类型(例如,JavaScript)对象模型中。运行时API可以添加至与根HTML文件具有相同起源域的所有IFRAME和FRAME元素的对象模型。预先存在的代码可以被指派给与根HTML内容相同的安全域。当任何框架中的第一类型脚本(例如,JavaScript)调用运行时方法时,运行时方法可以利用堆栈上的任意第一类型脚本(例如,JavaScript)或第二类型脚本(例如,ActionScript)代码的最小权限来执行。运行时方法本身可以位于运行时的安全上下文中。
可以通过交叉检查HTML内容以及矢量图形绘制引擎的本地内容的域信息来维护安全模型的完整性。当实现将HTML内容嵌入到矢量图形绘制引擎的本地内容的能力时(例如,嵌入在内容中的HTML),系统应当防止屏幕截图类的攻击,在这类攻击中,本地内容的作者即使在不合适的情况下也可以有权访问嵌入的HTML内容。这可以通过记录HTML引用的任何可视资源(例如,图像、框架、HTML自身等等)的域来加以阻止。当本地内容试图截取HTML的屏幕截图时,运行时可以进行检查,以确保本地内容与所引用HTML的所有可视资源来自相同的域。如果本地内容来自与任何可视资源不同的域,则可以阻止屏幕截图操作。备选地,可以记录与HTML关联的所有资源的域,包括非可视资源(例如,外部脚本、外部样式表,等等)。
而且,HTML引擎可以具有在虚拟机的安全管理器之上实现的HTML安全模型。每个图像(图像标签、背景图像、CSS背景图像等等)和HTML文件(包括IFRAMES和FRAMES)可以具有指派的安全上下文。可以为JavaScript代码指派代码上下文,该代码上下文与包括该代码定义(内联或经由外部引用)的HTML文件处于相同的安全上下文中。无论何时JavaScript引擎在不同的安全上下文中调用JavaScript函数,都可以推送安全上下文堆栈。
因此,JavaScript执行可以与虚拟机所使用的安全模型完全集成。对于虚拟机的安全模型,可以实现相同的起源检查。可以修改HTML引擎中针对交叉框架脚本和XMLHTTPRequest的安全性检查,以转换至虚拟机的安全管理器。可以修改XMLHTTPRequest实现,以使用虚拟机的安全管理器来决定是否允许针对指定URL的请求继续进行。当JavaScript设置window.domain(窗口.域)时,也可以通报安全管理器。
当调用实现部分第一脚本类型对象模型的、HTML控制上的任何第二脚本类型可重载方法时,可以默认地使该方法利用调用堆栈上的任何脚本代码的最低权限来运行。然而要注意,实现可重载方法的第二类型脚本也可以选择使用虚拟机的安全管理器将其权限升级至该方法所属的安全上下文的级别。IFRAMES和FRAMES可以具有基于其URL以及该URL的域而指派给它们的安全上下文。
图4示出了在(HTML绘制引擎所使用的)第一脚本引擎和(矢量图形绘制引擎所使用的)第二脚本引擎之间进行关联400的示例过程。可以生成用于第一脚本引擎的对象,其表示在第二脚本引擎中的对象410。可以生成用于第二脚本引擎的对象,表示在第一脚本引擎中的对象420。第一脚本引擎可以是JavaScript引擎,而第二脚本引擎可以是ActionScript引擎。
例如,ActionScript函数可以有一个或多个自变量,并且对于每个自变量,可以创建JavaScirpt对象。然后,无论何时请求该JavaScript对象的属性,或对该JavaScript对象调用方法,请求可以被转发回其对应的ActionScript对象。
因此,可以创建表示所有自变量到ActionScript方法的一组JavaScript对象。系统可以调入JavaScript引擎以获得合适的代码,并且可以执行函数。在函数执行时,当函数访问属性或对自变量调用方法时,这导致将控制传递回ActionScript引擎,在ActionScript引擎中,获得这些操作的结果,将其与JavaScript对象一起打包并递送回JavaScript引擎。从JavaScript到ActionScript可以执行相反的操作。因此,系统可以使用两个不同脚本引擎之间的关联对象,这些关联对象表示另一脚本引擎中的对象。
可以使第一脚本引擎使用第二脚本引擎的无用单元回收站430。很多脚本语言是“无用单元回收的”,这意味着脚本引擎自动识别以前分配的、不再被使用的存储单元,并且清空该存储单元以便将来使用(无用单元被回收)。典型的无用单元回收站工作如下:检查程序堆栈以找到不再被该程序引用的任何存储对象,其从而指示这些存储对象是待回收的无用单元。然而,在使用上述关联对象的情况下,两个不同的脚本引擎可能无法越过关联对象横跨的边界进行查看,因此关联对象可以避免成为被回收的无用单元。注意,关联对象可以在C++中实现,并且作为脚本外露给脚本引擎。
为了解决无用单元回收问题,可以将脚本引擎之一(例如,JavaScript引擎)改变为使用其他脚本引擎的无用单元回收站。因此,每当第一脚本引擎希望创建新对象时,并不直接分配存储单元,而是第一脚本引擎可以向第二脚本引擎请求分配存储单元。第二脚本引擎可以使用“保守型无用单元回收站”,其中“保守型无用单元回收站”是这样的无用单元回收站:其查找分配给对象的存储块的所有部分,以检查可能的指针(例如,每四个字节进行检查,以查看其是否是针对另一对象的指针),从而找到对对象的引用;由于存储单元中的对象是已知的,因此地址是已知的,并且通过保守型无用单元回收站可以识别引用指针的任何潜在对象。通过使第一脚本引擎使用第二脚本引擎所使用的保守型无用单元回收站来分配存储单元以及管理无用单元的回收,可以找到关联对象,并且在其存储单元不再使用时可以将其清空。
脚本引擎可以视为解释器,其响应于输入而操纵对象图。与针对两个不同的脚本引擎具有两个对象图不同,仅需要使用单个对象图。第一脚本引擎可以配置为通过与第二脚本引擎交互来使用第二脚本引擎的对象图,因而这两个脚本引擎可以经济而有效地集成。
可以通过交叉检查用于第一和第二脚本引擎的对象的安全性上下文信息来维护安全模型的完整性440。安全性上下文信息可以包括域信息(例如,互联网域)、传输协议信息以及对象文件中的设置。在对上述两个脚本引擎进行关联时,第二脚本类型的脚本可以保持对第一脚本类型对象的引用、调用第一脚本类型对象上的方法以及访问第一脚本类型对象的属性,反之亦然。这可能创建应当被阻止的基于脚本的攻击的入口。
最初有两种引用:第一对象模型和第二对象模型。主控内容包含对被主控内容的全局对象的引用,并且被主控内容引用表示该被主控内容的主控内容的对象模型中的对象。在两个两个引用之一至少被使用一次之前,对越过主控和被主控内容之间边界的对象的所有其他引用不能存在。只要脚本引擎遵循这些原始引用之一,便可以执行安全性检查。安全性检查可以具有各种输入,包括尝试使用该引用的脚本的调用堆栈,调用堆栈的每个框架的域、所引用对象的域、系统偏好以及用户偏好。安全性检查可以使用这些输入来确定脚本引擎是否应当允许遵循该引用。安全性检查代码可以使用其输入的全部或部分子集来做出决策。因此,可以阻止基于脚本的攻击。
本说明书中描述的主题和功能性操作的实施方式可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,该计算机软件、固件或硬件包括本说明书中公开的结构及其等同结构、或是它们的一个或多个的组合。本说明书中描述的主题的实施方式可以实现为一个或多个计算机程序产品,也即,在计算机可读介质上编码的、以便由数据处理装置执行或控制数据处理装置操作的一个或多个计算机程序指令模块。计算机可读介质可以是机器可读的存储设备、机器可读的存储衬底、存储设备、实现计算机可读的传播信号的组合、或者它们中的一个或多个的结合。术语“数据处理装置”包括用于处理数据的所有装置、设备和机器,例如包括可编程处理器、计算机,或者多个处理器或计算机。除了硬件之外,该装置可以包括为考虑中的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统,或者它们中一个或多个的结合的代码。传播信号是人工产生的信号,例如,机器产生的电信号、光信号或者电磁信号,生成该信号以对信息进行编码,以便传输到适当的接收器装置。
计算机程序(也公知为程序、软件、软件应用、脚本或代码)可以由任意形式的编程语言编写,包括编译语言或解释语言,并且该计算机程序可以任意形式部署,包括部署为单独的程序或模块、组件、子例程,或者适于在计算环境中使用的其他单元。计算机程序无需对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、可以存储在专门用于考虑中的程序的单个文件中,或者存储在多个协同文件中(例如,存储一个或多个模块、子程序,或代码部分的文件)。可以将计算机程序部署为在一个计算机上执行,或者将其部署为在位于一个地点的多个计算机上执行或跨过多个地点分布且通过通信网络互连的多个计算机上执行。
本说明书中描述的处理和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,用于通过对输入数据进行操作以及产生输出来执行功能。该处理和逻辑流程还可以由例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)的专用逻辑电路执行,并且也可以将装置实现为所述专用逻辑电路。
适于计算机程序执行的处理器例如包括通用和专用处理器两者、以及任意类型的数字计算机的任意一个或多个处理器。通常,处理器将从只读存储器或随机访问存储器或两者处接收指令和数据。计算机的基本元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个海量存储设备,或被操作性地耦合为从所述用于存储数据的一个或多个海量存储设备接收数据、向其传送数据、或者进行两者,该海量存储设备例如磁盘、磁光盘、或光盘。然而,计算机不必一定具有这样的设备。而且,计算机可以嵌入在其他设备中,例如移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器,这仅是几例。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,例如包括:半导体存储设备,如EPROM、EEPROM和闪存设备;磁盘,如内部硬盘或可移动硬盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或是包括在专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施方式可以在具有用于向用户显示信息的显示设备以及用户可以通过其向计算机提供输入的键盘和指点设备的计算机上实现,其中显示设备例如CRT(阴极射线管)或者LCD(液晶显示器)监视器,指点设备例如鼠标或者轨迹球。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感观反馈,例如视觉反馈、声觉反馈、或者触觉反馈;并且可以接收来自用户的任意形式的输入,包括声音、语音或触觉输入。
本说明书中描述的主题的实施方式可以实现在包括后端组件的计算系统中,例如数据服务器;或实现在包括中间件组件的计算系统中,例如应用服务器;或实现在包括前端组件的计算系统中,例如具有图形用户界面或者Web浏览器的客户端计算机,用户通过该图形用户界面或Web浏览器可以与本说明书中描述的主题的实现进行交互;或实现在一个或多个这样的后端、中间件、或前端组件的任意结合中。系统组件可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络)。
计算系统可以包括客户端和服务器。客户端和服务器一般相互远离,并且通常通过通信网络进行交互。客户端和服务器的关系是借助于在各自计算机上运行的、彼此具有客户端-服务器关系的计算机程序得到的。
尽管本说明书包含多种特定细节,但是不应将其理解为是对本发明的范围或者所要求保护内容的限制,而应当理解为是本发明具体实施方式的特定特征的描述。本说明书中描述的在各个实施方式的上下文中的某些特征也可以在单个实施方式中结合实现。相反,在单个实施方式上下文中描述的各种特征也可以分别实现在多个实施方式中或者任意适当的子组合中。而且,尽管上文可能将特征描述为在特定的组合中操作,甚至初始也是这样要求保护的,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以针对子组合或组合的变形。
类似地,尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。而且,在上述实施方式中多个系统组件的分离不应被理解为在所有实施方式中需要这些操作,应当将其理解为所描述的程序组件和系统通常可以在单个软件产品中集成在一起,或是被打包到多个软件产品中。
因此,已经描述了本发明的特定实施方式。其他实施方式在权利要求书的范围内。例如,权利要求中所记载的动作可以以不同的顺序执行并且仍然得到期望的结果。
Claims (12)
1.一种用于绘制超文本标记语言HTML的计算机实现的方法,包括:
在HTML绘制引擎中,将HTML内容绘制为矢量图形绘制引擎的图元;
在所述矢量图形绘制引擎中,绘制所述图元以提供用户界面;
经由所述用户界面接收输入事件;
在所述HTML绘制引擎中,基于所述输入事件来确定所述用户界面的外观变化;以及
根据所述外观变化来更新至少一个所述图元,以便通过所述矢量图形绘制引擎进行绘制,从而更新所述用户界面。
2.如权利要求1的方法,其中所述确定包括确定所述外观变化仅影响所述用户界面的部分,并且所述更新包括仅更新与所述变化影响的用户界面的所述部分相交的图元。
3.如权利要求1的方法,还包括在所述HTML绘制引擎所使用的第一脚本引擎与所述矢量图形绘制引擎所使用的第二脚本引擎之间进行关联,所述关联包括生成所述第一脚本引擎的对象,其表示所述第二脚本引擎中的对象,以及生成所述第二脚本引擎的对象,其表示所述第一脚本引擎中的对象。
4.如权利要求3的方法,还包括使所述第一脚本引擎使用所述第二脚本引擎的无用单元回收站,其中所述无用单元回收站被配置为用于找到不再被应用的任何存储对象。
5.如权利要求3的方法,还包括通过交叉检查用于所述第一脚本引擎和第二脚本引擎的对象的安全上下文信息来维护安全模型的完整性。
6.如权利要求1的方法,还包括通过交叉检查用于所述HTML内容以及所述矢量图形绘制引擎的本地内容的域信息来维护安全模型的完整性。
7.一种用于绘制超文本标记语言HTML的设备,包括:
用于在HTML绘制引擎中将HTML内容绘制为矢量图形绘制引擎的图元的装置;
用于在所述矢量图形绘制引擎中绘制所述图元以提供用户界面的装置;
用于经由所述用户界面接收输入事件的装置;
用于在所述HTML绘制引擎中基于所述输入事件来确定所述用户界面的外观变化的装置;以及
用于根据所述外观变化来更新至少一个所述图元以便通过所述矢量图形绘制引擎进行绘制从而更新所述用户界面的装置。
8.如权利要求7的设备,其中用于确定的装置包括用于确定所述外观变化仅影响所述用户界面的部分的装置,并且用于更新的装置包括用于仅更新与所述变化影响的用户界面的所述部分相交的图元的装置。
9.如权利要求7的设备,还包括:用于在所述HTML绘制引擎所使用的第一脚本引擎与所述矢量图形绘制引擎所使用的第二脚本引擎之间进行关联的装置,用于关联的装置包括用于生成表示所述第二脚本引擎中的对象的、所述第一脚本引擎的对象的装置,以及用于生成表示所述第一脚本引擎中的对象的、所述第二脚本引擎的对象的装置。
10.如权利要求9的设备,还包括:用于使所述第一脚本引擎使用所述第二脚本引擎的无用单元回收站的装置,其中所述无用单元回收站被配置为用于找到不再被应用的任何存储对象。
11.如权利要求9的设备,还包括:用于通过交叉检查用于所述第一脚本引擎和第二脚本引擎的对象的安全上下文信息来维护安全模型的完整性的装置。
12.如权利要求7的设备,还包括:用于通过交叉检查用于所述HTML内容以及所述矢量图形绘制引擎的本地内容的域信息来维护安全模型的完整性的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/585,661 | 2006-10-23 | ||
US11/585,661 US7614003B2 (en) | 2006-10-23 | 2006-10-23 | Rendering hypertext markup language content |
PCT/US2007/081680 WO2008051770A2 (en) | 2006-10-23 | 2007-10-17 | Rendering hypertext markup language content |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101553771A CN101553771A (zh) | 2009-10-07 |
CN101553771B true CN101553771B (zh) | 2012-01-04 |
Family
ID=39319497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780045435.6A Active CN101553771B (zh) | 2006-10-23 | 2007-10-17 | 绘制超文本标记语言内容 |
Country Status (3)
Country | Link |
---|---|
US (2) | US7614003B2 (zh) |
CN (1) | CN101553771B (zh) |
WO (1) | WO2008051770A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106168948A (zh) * | 2016-02-24 | 2016-11-30 | 苏州绿豆豆软件科技有限公司 | 一种显示html网页数据的方法和系统 |
Families Citing this family (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8245049B2 (en) | 2004-06-14 | 2012-08-14 | Microsoft Corporation | Method and system for validating access to a group of related elements |
US7596747B2 (en) * | 2005-07-27 | 2009-09-29 | Microsoft Corporation | Incrementally parsing style sheets |
US7614003B2 (en) * | 2006-10-23 | 2009-11-03 | Adobe Systems Incorporated | Rendering hypertext markup language content |
US8020089B1 (en) | 2006-10-23 | 2011-09-13 | Adobe Systems Incorporated | Rendering hypertext markup language content |
US8490117B1 (en) | 2006-10-23 | 2013-07-16 | Adobe Systems Incorporated | Bridging script engines |
US8984446B1 (en) | 2007-03-13 | 2015-03-17 | Adobe Systems Incorporated | Sharing display spaces |
US8166165B1 (en) | 2007-03-13 | 2012-04-24 | Adobe Systems Incorporated | Securing event flow in a user interface hierarchy |
US8220062B1 (en) * | 2007-08-16 | 2012-07-10 | Google Inc. | Double sand-boxing for flash library |
US20090070663A1 (en) * | 2007-09-06 | 2009-03-12 | Microsoft Corporation | Proxy engine for custom handling of web content |
US9906549B2 (en) * | 2007-09-06 | 2018-02-27 | Microsoft Technology Licensing, Llc | Proxy engine for custom handling of web content |
CN101855618B (zh) | 2007-10-10 | 2015-11-25 | 甲骨文美国公司 | 用于在应用执行期间改变执行环境的方法和系统 |
US8806431B1 (en) * | 2007-12-03 | 2014-08-12 | Appecelerator, Inc. | Aspect oriented programming |
US8850339B2 (en) * | 2008-01-29 | 2014-09-30 | Adobe Systems Incorporated | Secure content-specific application user interface components |
US20090193067A1 (en) * | 2008-01-30 | 2009-07-30 | Microsoft Corporation | Server-based recalculation of vector graphics |
US20090288019A1 (en) * | 2008-05-15 | 2009-11-19 | Microsoft Corporation | Dynamic image map and graphics for rendering mobile web application interfaces |
CN102282565B (zh) * | 2009-01-19 | 2016-08-03 | 皇家飞利浦电子股份有限公司 | 用于隐私保护的具有双脚本引擎的浏览器 |
EP2425398A4 (en) * | 2009-04-27 | 2014-09-03 | Blackberry Ltd | IMPLEMENTATION OF SWF MORPH FORM DEFINITIONS FOR VECTOR GRAPHIC PLAYBACK |
US20100271397A1 (en) * | 2009-04-27 | 2010-10-28 | Research In Motion Limited | Conversion of swf morph shape definitions for vector graphics rendering |
US8219598B1 (en) * | 2009-05-11 | 2012-07-10 | Google Inc. | Cross-domain communicating using data files |
US10713018B2 (en) * | 2009-12-07 | 2020-07-14 | International Business Machines Corporation | Interactive video player component for mashup interfaces |
EP2543550A4 (en) * | 2010-03-04 | 2016-05-04 | Panasonic Ip Man Co Ltd | INFORMATION DISPLAY SYSTEM AND DEVICE, AND INFORMATION PROVIDING DEVICE |
US8528005B2 (en) * | 2010-04-09 | 2013-09-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and arrangement in an IPTV terminal |
US20110307808A1 (en) * | 2010-06-10 | 2011-12-15 | Microsoft Corporation | Rendering incompatible content within a user interface |
US8977653B1 (en) * | 2010-06-17 | 2015-03-10 | Google Inc. | Modifying web pages to reduce retrieval latency |
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 |
US8832559B2 (en) * | 2010-06-25 | 2014-09-09 | LeftsnRights, Inc. | Content distribution system and method |
EP2614486B1 (en) * | 2010-09-06 | 2015-07-01 | Anteleon Imaging S.a.r.l. | Method for marking graphical elements and method for detecting said marking in a graphical element |
US8589950B2 (en) * | 2011-01-05 | 2013-11-19 | Blackberry Limited | Processing user input events in a web browser |
WO2012122539A2 (en) * | 2011-03-10 | 2012-09-13 | Rickabaugh Jason | Apparatus, system and method for a vector-based form field document |
US8527560B2 (en) * | 2011-03-29 | 2013-09-03 | Microsoft Corporation | Conservative garbage collecting with concurrent marking and concurrent sweeping for memory management |
US8862640B2 (en) | 2011-04-25 | 2014-10-14 | Microsoft Corporation | Conservative garbage collecting and tagged integers for memory management |
US9342274B2 (en) | 2011-05-19 | 2016-05-17 | Microsoft Technology Licensing, Llc | Dynamic code generation and memory management for component object model data constructs |
US8881101B2 (en) | 2011-05-24 | 2014-11-04 | Microsoft Corporation | Binding between a layout engine and a scripting engine |
US8522133B2 (en) * | 2011-06-16 | 2013-08-27 | Microsoft Corporation | Incrementally tokenizing and/or parsing a style sheet |
US20150002536A1 (en) * | 2011-08-25 | 2015-01-01 | Google Inc. | Label rendering for computerized mobile device with heading sensitive map display |
US8954475B2 (en) | 2011-11-10 | 2015-02-10 | Microsoft Technology Licensing, Llc | Deep cloning of objects using binary format |
US9239831B2 (en) * | 2011-12-07 | 2016-01-19 | Google Inc. | Data localization service made available by a web browser |
CN103179166A (zh) * | 2011-12-23 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 在客户端中提供服务的方法和客户端 |
US8924437B2 (en) * | 2012-03-13 | 2014-12-30 | Microsoft Corporation | Memory usage data collection and analysis for dynamic objects |
CN103513975A (zh) * | 2012-06-29 | 2014-01-15 | 深圳中兴网信科技有限公司 | 播放器嵌入方法及装置 |
US8775917B2 (en) | 2012-08-09 | 2014-07-08 | Sweetlabs, Inc. | Systems and methods for alert management |
US20140053064A1 (en) * | 2012-08-16 | 2014-02-20 | Qualcomm Incorporated | Predicting the usage of document resources |
US20140055495A1 (en) * | 2012-08-22 | 2014-02-27 | Lg Cns Co., Ltd. | Responsive user interface engine for display devices |
US8775925B2 (en) | 2012-08-28 | 2014-07-08 | Sweetlabs, Inc. | Systems and methods for hosted applications |
US9465596B2 (en) * | 2012-09-27 | 2016-10-11 | Google Inc. | Cross system installation of web applications |
US9772889B2 (en) | 2012-10-15 | 2017-09-26 | Famous Industries, Inc. | Expedited processing and handling of events |
US10908929B2 (en) | 2012-10-15 | 2021-02-02 | Famous Industries, Inc. | Human versus bot detection using gesture fingerprinting |
US10877780B2 (en) | 2012-10-15 | 2020-12-29 | Famous Industries, Inc. | Visibility detection using gesture fingerprinting |
WO2014062730A1 (en) * | 2012-10-15 | 2014-04-24 | Famous Industries, Inc. | Efficient manipulation of surfaces in multi-dimensional space using energy agents |
US9501171B1 (en) | 2012-10-15 | 2016-11-22 | Famous Industries, Inc. | Gesture fingerprinting |
US9069735B2 (en) | 2012-10-15 | 2015-06-30 | Sweetlabs, Inc. | Systems and methods for integrated application platforms |
KR101491591B1 (ko) * | 2012-11-05 | 2015-02-09 | 주식회사 케이티 | 웹앱 가상화 서비스를 제공하는 가상화 서버 및 웹앱 가상화 서비스 제공을 위한 데이터 전송방법 |
US9569292B2 (en) | 2013-02-25 | 2017-02-14 | Microsoft Technology Licensing, Llc | Remotable contracts for the web |
US10346501B2 (en) | 2013-03-13 | 2019-07-09 | International Business Machines Corporation | Mobile enablement of existing web sites |
US9563448B2 (en) * | 2013-03-13 | 2017-02-07 | International Business Machines Corporation | Mobilizing a web application to take advantage of a native device capability |
US10083156B2 (en) | 2013-03-13 | 2018-09-25 | International Business Machines Corporation | Mobile enablement of webpages |
US9426201B2 (en) | 2013-03-13 | 2016-08-23 | International Business Machines Corporation | Transforming application cached template using personalized content |
US9430452B2 (en) | 2013-06-06 | 2016-08-30 | Microsoft Technology Licensing, Llc | Memory model for a layout engine and scripting engine |
CN103678685A (zh) * | 2013-12-26 | 2014-03-26 | 华为技术有限公司 | 一种网页标注方法及装置 |
US9749440B2 (en) | 2013-12-31 | 2017-08-29 | Sweetlabs, Inc. | Systems and methods for hosted application marketplaces |
US10089098B2 (en) | 2014-05-15 | 2018-10-02 | Sweetlabs, Inc. | Systems and methods for application installation platforms |
US10019247B2 (en) | 2014-05-15 | 2018-07-10 | Sweetlabs, Inc. | Systems and methods for application installation platforms |
US20170315971A1 (en) * | 2014-10-06 | 2017-11-02 | Symmetric Co., Ltd. | Program for displaying webpage, terminal device, and server device |
WO2016141131A1 (en) | 2015-03-03 | 2016-09-09 | Software Robotics Corporation Limited | Software robots for programmatically controlling computer programs to perform tasks |
CN105302445B (zh) * | 2015-11-12 | 2019-07-23 | 小米科技有限责任公司 | 图形用户界面绘制方法及装置 |
CN105528217A (zh) * | 2015-12-24 | 2016-04-27 | 北京白鹭时代信息技术有限公司 | 一种基于显示列表的局部刷新方法及装置 |
CN106383686A (zh) * | 2016-10-09 | 2017-02-08 | 广州视睿电子科技有限公司 | 一种html图片显示方法及装置 |
CN107479821B (zh) * | 2017-08-28 | 2021-07-27 | 海信视像科技股份有限公司 | 一种界面绘制方法及装置 |
WO2023037325A2 (en) * | 2021-09-12 | 2023-03-16 | Rathod Yogesh | Make automatically workable or generating code for service worker, replication and rules based web app and suggesting, installing, invoking & managing progressive web apps (pwas) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1398377A (zh) * | 2000-02-04 | 2003-02-19 | 美国联机股份有限公司 | 提供和呈现可定标web页面的系统和处理 |
US6801224B1 (en) * | 2000-09-14 | 2004-10-05 | International Business Machines Corporation | Method, system, and program for generating a graphical user interface window for an application program |
Family Cites Families (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2765411B2 (ja) * | 1992-11-30 | 1998-06-18 | 株式会社日立製作所 | 仮想計算機方式 |
EP0814404B1 (en) * | 1996-06-19 | 2001-01-31 | Matsushita Electric Industrial Co., Ltd. | Debugging apparatus for debugging a program |
US6057854A (en) * | 1997-03-07 | 2000-05-02 | Micrografx, Inc. | System and method of providing interactive vector graphics over a network |
US6415278B1 (en) | 1997-11-14 | 2002-07-02 | Adobe Systems Incorporated | Retrieving documents transitively linked to an initial document |
US6256772B1 (en) * | 1997-11-24 | 2001-07-03 | International Business Machines Corporation | Multilingual hierarchial scripting environment |
US6558431B1 (en) | 1998-09-11 | 2003-05-06 | Macromedia, Inc. | Storing valid and invalid markup language in strict and relaxed tables respectively |
US6986101B2 (en) * | 1999-05-06 | 2006-01-10 | International Business Machines Corporation | Method and apparatus for converting programs and source code files written in a programming language to equivalent markup language files |
US6687745B1 (en) | 1999-09-14 | 2004-02-03 | Droplet, Inc | System and method for delivering a graphical user interface of remote applications over a thin bandwidth connection |
US6779172B1 (en) * | 1999-10-22 | 2004-08-17 | International Business Machines Corporation | Bean scripting framework |
US6609158B1 (en) * | 1999-10-26 | 2003-08-19 | Novell, Inc. | Component architecture in a computer system |
US6691176B1 (en) * | 1999-11-04 | 2004-02-10 | Microsoft Corporation | Method for managing client services across browser pages |
US6812941B1 (en) * | 1999-12-09 | 2004-11-02 | International Business Machines Corp. | User interface management through view depth |
US7958457B1 (en) * | 1999-12-20 | 2011-06-07 | Wireless Agents, Llc | Method and apparatus for scheduling presentation of digital content on a personal communication device |
US7009626B2 (en) * | 2000-04-14 | 2006-03-07 | Picsel Technologies Limited | Systems and methods for generating visual representations of graphical data and digital document processing |
US6658600B1 (en) * | 2000-04-24 | 2003-12-02 | Microsoft Corporation | Target control abstraction for debugging embedded systems |
US6873343B2 (en) * | 2000-05-11 | 2005-03-29 | Zoran Corporation | Scalable graphics image drawings on multiresolution image with/without image data re-usage |
US6999101B1 (en) * | 2000-06-06 | 2006-02-14 | Microsoft Corporation | System and method for providing vector editing of bitmap images |
US7210099B2 (en) * | 2000-06-12 | 2007-04-24 | Softview Llc | Resolution independent vector display of internet content |
US6675230B1 (en) * | 2000-08-22 | 2004-01-06 | International Business Machines Corporation | Method, system, and program for embedding a user interface object in another user interface object |
US20020156881A1 (en) * | 2000-10-03 | 2002-10-24 | Klopp Lemon Ana H. Von | HTTP transaction monitor with replay capacity |
US7210095B1 (en) * | 2000-10-31 | 2007-04-24 | Cisco Technology, Inc. | Techniques for binding scalable vector graphics to associated information |
US6898786B1 (en) * | 2000-11-15 | 2005-05-24 | Sun Microsystems, Inc. | Javascript interpreter engine written in Java |
US7058955B2 (en) * | 2000-12-06 | 2006-06-06 | Microsoft Corporation | Method and system for passing messages between threads |
US20020105548A1 (en) * | 2000-12-12 | 2002-08-08 | Richard Hayton | Methods and apparatus for creating a user interface using property paths |
US20020109729A1 (en) * | 2000-12-14 | 2002-08-15 | Rabindranath Dutta | Integrating content with virtual advertisements using vector graphics images obtainable on the web |
US6817010B2 (en) * | 2000-12-27 | 2004-11-09 | International Business Machines Corporation | Monitoring messages during execution of a message flow |
AU2002303640A1 (en) * | 2001-05-04 | 2002-11-18 | Logic Junction | System and method for logical agent engine |
US20020178141A1 (en) * | 2001-05-25 | 2002-11-28 | Kushnirskiy Igor Davidovich | Method and apparatus for remote inter-language method calling |
US20040015940A1 (en) * | 2001-05-29 | 2004-01-22 | 3Com Corporation | Intelligent device upgrade engine |
US7117504B2 (en) * | 2001-07-10 | 2006-10-03 | Microsoft Corporation | Application program interface that enables communication for a network software platform |
WO2003021798A2 (en) * | 2001-09-04 | 2003-03-13 | Soft2B Llc | Browser-to-browser, dom-based, peer-to-peer communication with delta synchronization |
US7287274B1 (en) * | 2001-10-04 | 2007-10-23 | Perot Systems Corporation | Method and system for providing security to a client server operating a browser |
US20030097421A1 (en) * | 2001-10-04 | 2003-05-22 | Wille Allan D. | System and method for directed delivery of information to end users |
US6919891B2 (en) * | 2001-10-18 | 2005-07-19 | Microsoft Corporation | Generic parameterization for a scene graph |
US7161599B2 (en) * | 2001-10-18 | 2007-01-09 | Microsoft Corporation | Multiple-level graphics processing system and method |
US6892200B2 (en) * | 2001-11-13 | 2005-05-10 | America Online, Incorporated | Javascript engine |
US7213236B2 (en) * | 2001-11-30 | 2007-05-01 | Intrinsyc Software International, Inc. | Method of bridging between .Net and Java |
US6922200B1 (en) * | 2001-11-30 | 2005-07-26 | Oracle International Corporation | Delivering a graphical object to a browser |
US7069562B2 (en) * | 2001-12-12 | 2006-06-27 | Sun Microsystems, Inc. | Application programming interface for connecting a platform independent plug-in to a web browser |
US20040110490A1 (en) * | 2001-12-20 | 2004-06-10 | Steele Jay D. | Method and apparatus for providing content to media devices |
US6957392B2 (en) * | 2002-01-16 | 2005-10-18 | Laszlo Systems, Inc. | Interface engine providing a continuous user interface |
US8321553B2 (en) * | 2002-03-29 | 2012-11-27 | Oracle America, Inc. | Method and apparatus for calling virtual machine across processes |
US20040056894A1 (en) * | 2002-09-19 | 2004-03-25 | Igor Zaika | System and method for describing and instantiating extensible user interfaces |
US7340718B2 (en) * | 2002-09-30 | 2008-03-04 | Sap Ag | Unified rendering |
US20060010246A1 (en) * | 2002-11-01 | 2006-01-12 | Schulz Kurt S | Human-machine interface system and method |
US7546607B2 (en) * | 2002-11-19 | 2009-06-09 | Microsoft Corporation | Native code exposing virtual machine managed object |
US7346897B2 (en) * | 2002-11-20 | 2008-03-18 | Purenative Software Corporation | System for translating programming languages |
US7034835B2 (en) * | 2002-11-29 | 2006-04-25 | Research In Motion Ltd. | System and method of converting frame-based animations into interpolator-based animations |
CA2414378A1 (en) * | 2002-12-09 | 2004-06-09 | Corel Corporation | System and method for controlling user interface features of a web application |
CA2414047A1 (en) * | 2002-12-09 | 2004-06-09 | Corel Corporation | System and method of extending scalable vector graphics capabilities |
US7088374B2 (en) * | 2003-03-27 | 2006-08-08 | Microsoft Corporation | System and method for managing visual structure, timing, and animation in a graphics processing system |
US7417645B2 (en) * | 2003-03-27 | 2008-08-26 | Microsoft Corporation | Markup language and object model for vector graphics |
US7486294B2 (en) * | 2003-03-27 | 2009-02-03 | Microsoft Corporation | Vector graphics element-based model, application programming interface, and markup language |
US20040225491A1 (en) * | 2003-05-08 | 2004-11-11 | Taiwan Semiconductor Manufacturing Co., Ltd. | Generic script template engine repository adapter system and method of use |
CA2560386C (en) * | 2004-03-23 | 2013-09-24 | Google Inc. | A digital mapping system |
US20050216895A1 (en) * | 2004-03-23 | 2005-09-29 | Tran Hieu T | Method and apparatus for remote debugging of kernel and application software |
US7257771B2 (en) * | 2004-05-26 | 2007-08-14 | Texterity, Inc. | System and method for converting a page description file to a composite representation thereof for fast Web viewing |
US7430343B2 (en) * | 2004-05-28 | 2008-09-30 | Dee Sign Company | System and method for displaying images |
US20060048051A1 (en) * | 2004-08-25 | 2006-03-02 | Research In Motion Limited | Method for rendering formatted content on a mobile device |
WO2006042300A2 (en) * | 2004-10-12 | 2006-04-20 | Mindego, Inc. | System and method for creating, distributing, and executing rich multimedia applications |
US8878851B2 (en) * | 2004-11-12 | 2014-11-04 | Synchronica Plc | Method and system for streaming documents, e-mail attachments and maps to wireless devices |
US7574692B2 (en) * | 2004-11-19 | 2009-08-11 | Adrian Herscu | Method for building component-software for execution in a standards-compliant programming environment |
US20060123360A1 (en) * | 2004-12-03 | 2006-06-08 | Picsel Research Limited | User interfaces for data processing devices and systems |
US7971194B1 (en) * | 2005-06-16 | 2011-06-28 | Sap Portals Israel Ltd. | Programming language techniques for client-side development and execution |
US7463263B2 (en) * | 2005-07-15 | 2008-12-09 | Sap Portals Israel Ltd. | Declarative specification of model visualizations |
US20070089048A1 (en) * | 2005-10-14 | 2007-04-19 | Lacey Jon-David K | Displaying using graphics display language and native UI objects |
US7895604B2 (en) * | 2005-11-17 | 2011-02-22 | Opera Software Asa | Method and device for event communication between documents |
US8171470B2 (en) * | 2006-08-29 | 2012-05-01 | Adobe Systems Incorporated | Software installation and support |
US8612847B2 (en) * | 2006-10-03 | 2013-12-17 | Adobe Systems Incorporated | Embedding rendering interface |
US7614003B2 (en) * | 2006-10-23 | 2009-11-03 | Adobe Systems Incorporated | Rendering hypertext markup language content |
US8020089B1 (en) * | 2006-10-23 | 2011-09-13 | Adobe Systems Incorporated | Rendering hypertext markup language content |
US7823164B2 (en) * | 2007-06-01 | 2010-10-26 | Microsoft Corporation | Automated generation of different script versions |
-
2006
- 2006-10-23 US US11/585,661 patent/US7614003B2/en active Active
-
2007
- 2007-10-17 CN CN200780045435.6A patent/CN101553771B/zh active Active
- 2007-10-17 WO PCT/US2007/081680 patent/WO2008051770A2/en active Application Filing
-
2009
- 2009-10-05 US US12/573,511 patent/US8627216B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1398377A (zh) * | 2000-02-04 | 2003-02-19 | 美国联机股份有限公司 | 提供和呈现可定标web页面的系统和处理 |
US6801224B1 (en) * | 2000-09-14 | 2004-10-05 | International Business Machines Corporation | Method, system, and program for generating a graphical user interface window for an application program |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106168948A (zh) * | 2016-02-24 | 2016-11-30 | 苏州绿豆豆软件科技有限公司 | 一种显示html网页数据的方法和系统 |
CN106168948B (zh) * | 2016-02-24 | 2021-02-12 | 深圳市华球通网络有限公司 | 一种显示html网页数据的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US7614003B2 (en) | 2009-11-03 |
US20100023884A1 (en) | 2010-01-28 |
US8627216B2 (en) | 2014-01-07 |
CN101553771A (zh) | 2009-10-07 |
WO2008051770A2 (en) | 2008-05-02 |
WO2008051770A3 (en) | 2008-10-16 |
US20080098296A1 (en) | 2008-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101553771B (zh) | 绘制超文本标记语言内容 | |
CN102221993B (zh) | 复杂用户界面状态变更的声明性定义 | |
CN103001963B (zh) | 用于最小下载和模拟的页面导航特征的方法和系统 | |
US8510371B2 (en) | Method and system for creating IT-oriented server-based web applications | |
CN102027460B (zh) | 动态声明性应用程序描述 | |
US8490117B1 (en) | Bridging script engines | |
EP1603033A2 (en) | Method and apparatus for generating forms using form types | |
CN102105862B (zh) | 实体交互的自动用户界面生成 | |
CN105760162A (zh) | 混合型app软件的开发方法 | |
CN101322101A (zh) | 用于动态增强在计算装置上执行的应用程序的系统、方法和计算机程序产品 | |
CN103999052A (zh) | 远程进程执行管理 | |
US20090271436A1 (en) | Techniques for Providing a Virtual-World Object Based on a Real-World Object Description | |
US8839186B2 (en) | Entity morphing in metamodel-based tools | |
CN105637563A (zh) | 在屏幕上显示3d场景图的方法 | |
US9286142B2 (en) | Methods and systems for supporting a rendering API using a runtime environment | |
CN102968755A (zh) | 基元组成 | |
CN105930467A (zh) | 一种信息处理方法及电子设备 | |
CN114546364A (zh) | 一种可视化图表组件的配置方法 | |
US7689903B2 (en) | Unified markup language processing | |
CN115202729A (zh) | 基于容器服务的镜像生成方法、装置、设备及介质 | |
CN112783660B (zh) | 虚拟场景中的资源处理方法、装置及电子设备 | |
CN113835691A (zh) | 一种iOS应用开发方法、系统、设备、介质和程序产品 | |
CN110275923B (zh) | 插件化图形的管理方法及设备 | |
US20020101449A1 (en) | System and method for developing and processing a graphical user interface for a computer application | |
WO2015156838A1 (en) | Apparatus, method, and computer system for generating contained, usable objects that are dynamically configurable |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |