CN107408189B - 针对干扰在信息资源上渲染内容元素的未授权脚本部署对策的系统和方法 - Google Patents

针对干扰在信息资源上渲染内容元素的未授权脚本部署对策的系统和方法 Download PDF

Info

Publication number
CN107408189B
CN107408189B CN201680001924.0A CN201680001924A CN107408189B CN 107408189 B CN107408189 B CN 107408189B CN 201680001924 A CN201680001924 A CN 201680001924A CN 107408189 B CN107408189 B CN 107408189B
Authority
CN
China
Prior art keywords
content
format
information resource
rendering
content element
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
Application number
CN201680001924.0A
Other languages
English (en)
Other versions
CN107408189A (zh
Inventor
马修·布列希
丽贝卡·伊洛斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN202410054691.7A priority Critical patent/CN117909603A/zh
Publication of CN107408189A publication Critical patent/CN107408189A/zh
Application granted granted Critical
Publication of CN107408189B publication Critical patent/CN107408189B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/032Protect output to user by software means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本文提供一种针对干扰在信息资源上渲染内容元素的未授权脚本部署对策的系统和方法。计算设备能接收包括内容渲染验证脚本和第一内容元素的信息资源。计算设备能执行脚本。计算设备能以第一格式渲染第一内容元素以在信息资源上显示。计算设备能确定以第一格式未成功地显示第一内容元素。计算设备能响应于该确定,以第二格式渲染第一内容元素以在信息资源上显示。计算设备能确定以第二格式成功地显示第一内容元素。计算设备能响应于该确定,显示信息资源的第二内容元素。

Description

针对干扰在信息资源上渲染内容元素的未授权脚本部署对策 的系统和方法
相关申请
本申请要求2016年2月1日提交的,名称为“SYSTEMS AND METHODS FOR DEPLOYINGCOUNTERMEASURES AGAINST UNAUTHORIZED SCRIPTS INTERFERING WITH THE RENDERINGOF CONTENT ELEMENTS ON INFORMATION RESOURCES(针对干扰在信息资源上渲染内容元素的未授权脚本部署对策的系统和方法)”的美国临时专利申请No.62/289,699的优先权,其全部内容为了所有目的在此通过引用并入。
背景技术
计算设备执行被配置为提供用于显示包括在信息资源(例如网页)中的内容的应用。在一些计算设备中,应用可以允许执行一个或多个脚本。这些脚本会干扰信息资源和显示包括在信息资源中的内容的应用的能力。
发明内容
至少一个方面针对一种针对干扰在信息资源上渲染内容元素的未经授权的脚本部署对策的方法。客户端设备能从数据处理系统接收信息资源,信息资源包括内容渲染验证脚本和第一内容元素。脚本可包括计算机可执行指令以使客户端设备以第一格式渲染第一内容元素以在信息资源上显示。脚本可包括计算机可执行指令以使客户端设备确定以第一格式未成功地显示第一内容元素。脚本可包括计算机可执行指令以使客户端设备响应于确定以第一格式未成功地显示第一内容元素,以第二格式渲染第一内容元素以在信息资源上显示。脚本可包括计算机可执行指令以使客户端设备确定以第二格式成功地显示第一内容元素。脚本可包括计算机可执行指令以使客户端设备响应于确定以第二格式成功地显示第一内容元素,显示信息资源的第二内容元素。
在一些实施方式中,渲染第一内容元素以在信息资源上显示可进一步包括识别用于渲染信息资源的渲染树。渲染树可包括一个或多个节点。在一些实施方式中,确定以第一格式未成功地显示第一内容元素可进一步包括确定渲染树的一个或多个节点中的任何一个不对应于第一内容元素。
在一些实施方式中,渲染第一内容元素以在信息资源上显示可进一步包括识别用于渲染信息资源的渲染树,渲染树包括一个或多个节点。在一些实施方式中,确定以第一格式未成功地显示第一内容元素可进一步包括确定将第二内容元素显示为第一内容元素上的叠层。
在一些实施方式中,渲染第一内容元素以在信息资源上显示可进一步包括识别从信息资源生成的文档树。文档树包括多个内容对象。在一些实施方式中,确定以第一格式未成功地显示第一内容元素可进一步包括确定变更文档树的至少一个内容对象。
在一些实施方式中,渲染第一内容元素以在信息资源上显示可进一步包括识别基于信息资源生成的对象模型。对象模型可包括多个内容对象。每一个内容对象可包括对应的样式规则。在一些实施方式中,确定以第一格式未成功地显示第一内容元素可进一步包括确定变更对象模型的至少一个样式规则。
在一些实施方式中,以第二格式渲染第一内容元素以在信息资源上显示可进一步包括:通过包括第二格式来修改第一内容元素,第二格式指定与第一格式不同的、用于第一内容元素的视觉特性。在一些实施方式中,接收信息资源可进一步包括:接收包括第一内容元素的信息资源,第一内容元素包括多种格式、和指定用于由客户端设备处理的多种格式的选择顺序的优先次序。在一些实施方式中,以第二格式渲染第一内容元素以在信息资源上显示可进一步包括:基于优先次序,从包括在第一内容元素中的多种格式选择继第一格式后的第二格式。
在一些实施方式中,脚本可进一步使客户端设备维护指示在信息资源上显示第一内容元素的尝试次数的计数器,在一些实施方式中,脚本可进一步使客户端设备响应于确定在信息资源上以第一格式未成功地显示的第一内容元素,递增指示尝试次数的计数器。在一些实施方式中,脚本可进一步使客户端设备确定指示尝试次数的计数器低于预定阈值。在一些实施方式中,以第二格式渲染第一内容元素以在信息资源上显示可进一步包括:响应于确定指示尝试次数的计数器低于预定阈值,使用第二格式修改第一内容元素。
在一些实施方式中,确定以第二格式成功地显示第一内容元素可进一步包括:响应于确定以第二格式成功地显示第一内容元素,将通告(pingback)传送到数据处理系统。该通告指示在信息资源上成功地渲染第一内容元素。通告可包括客户端设备的设备标识符和第二格式的格式标识符。在一些实施方式中,接收通告可使数据处理系统基于设备标识符和格式标识符,更新由数据处理系统维护的数据库。在一些实施方式中,数据库可包括对每一个设备标识符,识别与成功显示的格式对应的接受格式标识符的集合的多个条目。
在一些实施方式中,客户端设备可将对内容的请求传送到数据处理系统,请求包括设备标识符和应用简档。在一些实施方式中,接收请求可使数据处理系统选择包括多种格式的第一内容元素。在一些实施方式中,接收请求可使数据处理系统对多种格式的每一种,基于设备标识符和应用简档,计算将在信息资源上显示以相应的格式的第一内容元素的成功概率。在一些实施方式中,接收请求可使数据处理系统基于用于多种格式的每一种的成功概率,确定指定用于由客户端设备处理的多种格式的选择顺序的优先次序。
至少一个方面针对一种针对干扰在信息资源上渲染内容元素的未经授权的脚本部署对策的系统。该系统可包括具有一个或多个处理器的客户端设备。客户端设备可从数据处理系统接收信息资源,信息资源包括内容渲染验证脚本和第一内容元素。脚本可包括计算机可执行指令以使客户端设备以第一格式渲染第一内容元素以在信息资源上显示。脚本可包括计算机可执行指令以使客户端设备确定以第一格式未成功地显示第一内容元素。脚本可包括计算机可执行指令以使客户端设备响应于确定以第一格式未成功地显示第一内容元素,以第二格式渲染第一内容元素以在信息资源上显示。脚本可包括计算机可执行指令以使客户端设备确定以第二格式成功地显示第一内容元素。脚本可包括计算机可执行指令以使客户端设备响应于确定以第二格式成功地显示第一内容元素,显示信息资源的第二内容元素。
在一些实施方式中,脚本可进一步使客户端设备识别用于渲染信息资源的渲染树。渲染树可包括一个或多个节点。在一些实施方式中,脚本可进一步使客户端设备确定渲染树的一个或多个节点中的任何一个不对应于第一内容元素。
在一些实施方式中,脚本可进一步使客户端设备识别用于渲染信息资源的渲染树,渲染树包括一个或多个节点。在一些实施方式中,脚本可进一步使客户端设备确定将第二内容元素显示为第一内容元素上的叠层。
在一些实施方式中,脚本可进一步使客户端设备识别从信息资源生成的文档树,文档树包括多个内容对象。在一些实施方式中,脚本能可一步使客户端设备从文档树识别多个内容对象的任何一个均不对应于第一内容元素。
在一些实施方式中,脚本可进一步使客户端设备识别基于信息资源生成的对象模型。对象模型可包括多个内容对象。每一个内容对象可包括对应的样式规则。在一些实施方式中,脚本可进一步使客户端设备确定变更对象模型的至少一个对应的样式规则。
在一些实施方式中,脚本可进一步使客户端设备通过包括第二格式来修改第一内容元素。第二格式指定与第一格式不同的、用于第一内容元素的视觉特性。在一些实施方式中,脚本可进一步使客户端设备接收包括第一内容元素的信息资源。第一内容元素包括多种格式和指定用于由客户端设备处理的多种格式的选择顺序的优先次序。以这种方式,脚本能够更好地确保成功的内容传递和/或提高安全性。在一些实施方式中,脚本可进一步使客户端设备基于优先次序,从包括在第一内容元素中的多种格式选择继第一格式后的第二格式。
在一些实施方式中,脚本可进一步使客户端设备维护指示在信息资源上显示第一内容元素的尝试次数的计数器,在一些实施方式中,脚本可进一步使客户端设备响应于确定在信息资源上以第一格式未成功地显示的第一内容元素,递增指示尝试次数的计数器。在一些实施方式中,脚本可进一步使客户端设备确定指示尝试次数的计数器低于预定阈值。在一些实施方式中,以第二格式渲染第一内容元素以在信息资源上显示可进一步包括:响应于确定指示尝试次数的计数器低于预定阈值,使用第二格式修改第一内容元素。
在一些实施方式中,脚本可进一步使客户端设备响应于确定以第二格式成功地显示第一内容元素,由客户端设备将通告传送到数据处理系统。该通告可指示在信息资源上成功地渲染第一内容元素。通告可包括客户端设备的设备标识符和第二格式的格式标识符。在一些实施方式中,接收通告可使数据处理系统基于设备标识符和格式标识符,更新由数据处理系统维护的数据库。数据库可包括对每一个设备标识符,识别与成功显示的格式对应的接受格式标识符的集合的多个条目。当将另外的信息资源提供给客户端设备时,该数据库能促进改善未来数据传递。
在一些实施方式中,客户端设备可将对内容的请求传送到数据处理系统。请求可包括设备标识符和应用简档。在一些实施方式中,接收请求可使数据处理系统对多种格式的每一种,基于设备标识符和应用简档,计算将在信息资源上显示以相应的格式的第一内容元素的成功概率。在一些实施方式中,接收请求可使数据处理系统基于对于多种格式的每一种的成功概率,确定指定用于由客户端设备处理的多种格式的选择顺序的优先次序。
在下文中详细地论述这些和其他方面以及实施方式。上述信息和下述详细描述包括各个方面和实施方式的示例性示例,并且提供用于理解所要求保护的方面和实施方式的性质和特征的概述或框架。附图提供各个方面和实施方式的示例和进一步理解,并且被并入该说明书中并构成其一部分。
附图说明
不旨在按比例绘制附图。在各个附图中,相同的附图标记指示相同的元素。为清楚目的,并未在每一个图中标记每一个部件。在图中:
图1是根据示例性实施方式,图示用于在计算机网络环境中,针对干扰在信息资源上渲染内容元素的未经授权的脚本部署对策的环境的一种实施方式的框图;
图2A是根据示例性实施方式,图示包括内容渲染验证系统的计算设备的一种实施方式的框图;
图2B是根据示例性实施方式,图示在应用上显示信息资源的内容元素的、信息资源的框图;
图3A是根据示例性实施方式,图示基于信息资源生成的文档树的框图;
图3B是根据示例性实施方式,图示具有与由信息资源指定的样式规则匹配的每一个内容对象的对象模型的框图;
图3C是根据示例性实施方式,图示基于具有与样式规则匹配的每一个对象的文档树生成的渲染树的框图;
图4是根据示例性实施方式,图示针对干扰在信息资源上渲染内容元素的未经授权的脚本部署对策的方法的流程图;
图5是根据示例性实施方式,图示针对干扰在信息资源上渲染内容元素的未经授权的脚本部署对策的方法的流程图;
图6是根据示例性实施方式,图示针对干扰在信息资源上渲染内容元素的未经授权的脚本部署对策的方法的流程图;
图7是根据示例性实施方式,示例用于可被采用来实施本文所述和所示的系统和方法的要素的计算机系统的一般架构的框图。
具体实施方式
下文的描述是与在计算机网络环境中,针对干扰在信息资源上渲染内容元素的未经授权的脚本部署对策的方法、装置和系统有关的各种概念及其实施方式的更详细描述。可以以许多方式中的任何一种实施上文引入和下文更详细论述的各种概念,因为所述概念不限于实施方式的任何具体方式。
信息资源(例如网页)可包括一个或多个内容元素(尤其是,例如内嵌帧、图像和片段)。这些内容元素中的一些能定义组成信息资源的视觉内容。应用(例如Web浏览器)能使用这些内容元素来处理、渲染信息资源,并且显示在计算设备的显示器上。作为为应用上的插件或作为与在客户端设备或代理设备(例如路由器)上执行的应用分离的单独程序操作的内容控制模块(例如内容过滤器、恶意软件或广告拦截器)会干扰渲染信息资源的一个或多个内容元素。一些这样的内容控制模块能通过防止负责显示信息资源的应用从服务器检索内容元素来过滤或阻止渲染一些内容元素,所述服务器可以包括在由内容控制模块维护的服务器列表中。
这些内容控制模块可能引发安全问题。这些内容控制模块能在未授权的情况下,改变初始派发有信息资源的组成内容元素。此外,这些模块能使内容元素和信息资源的行为偏离初始如何编程信息资源。例如,内容控制模块能改变一个内容元素中、可能使客户端设备被定向到恶意网站的链接(例如超级链接)。此外,从人机交互(HCI)观点看,内容元素的这些改变以及信息资源的行为的偏离会干扰用户对信息资源和应用的体验。例如,如果内容控制模块从信息资源移除内容元素中的一个,则用户不能浏览被移除的内容元素或与之交互,由此降低用户对初始编码的信息资源的体验。
在一些实施方式中,内容发布者可在信息资源中包括能使客户端设备经由一个或多个链接从一个或多个内容服务器请求内容的指令。这些内容服务器可以不同于对内容发布者的内容进行托管的主机服务器。通过包括请求内容的指令,而不是在传送信息资源前将内容直接插入到信息资源中,内容发布者能减少将信息资源派发给客户端设备的等待时间,同时减少网络流量。在客户端设备上执行的一些内容控制模块能通过将内容服务器的链接修改到其他未经授权或未知内容服务器,或通过简单地防止任何请求被传送到任何内容服务器,干扰客户端设备传送对于一个或多个内容服务器的内容的请求的能力。因此,客户端设备不能访问或显示内容发布者期望包括在内容发布者的信息资源中的所有内容项。
为减轻内容控制模块的一些潜在危害,内容发布者可以包括使客户端设备从托管信息资源的主机服务器,而不是一个或多个其他内容服务器请求内容的指令。然而,该实施方式不能应对内容控制模块可能采用的其他技术。例如,内容控制模块可能能够运行基于视觉的技术,诸如识别内容元素中的颜色差异来阻止信息资源的内容元素。
为解决这些和其他挑战,本公开提供用于针对干扰在信息资源上渲染内容元素的未经授权的脚本部署对策的系统和方法。在一个实施方式中,客户端设备能从数据处理系统接收包括内容元素和内容渲染验证脚本的信息资源。内容元素的每一个可包括定义内容元素的各种视觉特性的格式。执行内容渲染验证脚本,客户端设备可尝试以用于渲染的一种格式来处理内容元素。客户端设备能验证客户端设备的应用是否适当地生成用于信息资源的文档树、对象模型、渲染树和布局。如果文档树、对象模型、渲染树和布局不同于信息资源的规范,客户端设备能重复该过程,为该内容元素选择另一格式,并且验证客户端设备的应用是否适当地生成用于信息资源的文档树、对象模型、渲染树和布局。客户端设备能重复该过程直到适当地处理内容元素为止。客户端设备能将指示是否在客户端设备上适当地渲染信息资源的内容元素的通告发送回数据处理系统。
在一些实施方式中,可以防止显示信息资源的第二内容元素,直到确定已经成功地显示第一内容元素为止。当内容控制模块干扰内容元素的成功传递时,可以防止显示另外的内容元素。在这些实施方式中,可以确定即使以多种格式尝试渲染内容元素后,也不能显示内容元素(例如第一内容元素或另外的内容元素)。以这种方式抑制内容元素可以防止另外的未经授权并且可能是不安全的干扰,并且可以对客户端设备的用户操作未经授权的脚本发出警告。
图1是图示用于在计算机网络环境中,针对干扰在信息资源上渲染内容元素的未经授权的脚本部署对策的环境的一种实施方式的框图。环境100包括至少一个数据处理系统110。数据处理系统110可包括至少一个处理器和存储器,即处理电路。存储器存储当由处理器执行时,使处理器执行本文所述的一个或多个操作的处理器可执行指令。处理器可以包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等或其组合。存储器可以包括但不限于能够为处理器提供程序指令的电子、光学、磁或任何其他存储或传输设备。存储器可以进一步包括处理器能从其读取指令的软盘、CD-ROM、DVD、磁盘、存储器芯片、ASIC、FPGA、只读存储器(ROM)、随机存取存储器(RAM)、电可擦ROM(EEPROM)、电可擦可编程ROM(EPROM)、闪存、光学介质或任何其他适当的存储器。指令可以包括来自任何适当的计算机编程语言的代码。数据处理系统可包括执行各种功能的一个或多个计算设备或服务器。在一些实施方式中,数据处理系统可包括被配置为托管拍卖的广告拍卖系统。在一些实施方式中,数据处理系统不包括广告拍卖系统,而是被配置为经由网络105与广告拍卖系统通信。
网络105可包括计算机网络,诸如互联网、局域、广域、城域或其他区域网、内联网、卫星网络、其他计算机网络诸如语音或数据移动电话通信网络,及其组合。系统100的数据处理系统110能经由网络105,与例如至少一个内容提供者计算设备115、至少一个内容发布者计算设备120或至少一个客户端设备125通信。网络105可以是在客户端设备125、数据处理系统110和一个或多个内容源,例如Web服务器、广告服务器以及其他服务器之间转发信息的任何形式的计算机网络。例如,网络105可以包括互联网和/或其他类型的数据网络,诸如局域网(LAN)、广域网(WAN)、蜂窝网络、卫星网络或其他类型的数据网络。网络105还可以包括被配置为在网络105内接收和/或传送数据的任何数目的计算设备(例如计算机、服务器、路由器、网络交换机等)。网络105可以进一步包括任何数目的硬布线和/或无线连接。例如,客户端设备125可以与(例如经由光纤电缆、CAT5电缆等)被硬布线到网络105中的其他计算设备的收发器(例如经由WiFi、蜂窝、无线电等)无线地通信。客户端设备125还可以经由代理设备155(例如路由器、网络交换机或网关)与网络105的计算设备无线地通信。
内容提供者计算设备115可包括由内容提供者实体操作以将内容元素提供给内容发布者计算设备120或数据处理系统110的服务器或其他计算设备。由内容提供者计算设备115提供的内容可包括用于在信息资源上显示的第三方内容元素,诸如包括主要内容(例如由内容发布者计算设备120提供的内容)的网站或网页。还能在搜索结果网页上显示内容元素。可以在除网页外的信息资源(诸如显示为在智能电话或其他客户端设备125上执行的应用的一部分的内容)上显示与内容提供者计算设备115相关联的内容元素。内容发布者计算设备120或数据处理系统110转而能选择内容提供者计算设备115的内容元素。例如,数据处理系统110能运行广告拍卖,以基于相应的内容元素的不同效能度量来选择内容元素。内容发布者计算设备120或数据处理系统能传送内容提供者计算设备的被选内容元素,以在客户端设备125处的信息资源上显示。
内容发布者计算设备120可包括由内容发布实体操作以经由网络105提供主要内容以显示的服务器或其他计算设备。例如,内容发布者计算设备120可包括提供主要内容以在网页上显示的网页运营商。内容发布者计算设备120还能经由网络105,提供从内容提供者计算设备115接收的第三方内容以显示。主要内容可包括除由内容发布者计算设备120提供的内容以外的内容,并且网页可包括被配置以显示由内容发布者计算设备120从内容提供者计算设备115接收的内容元素的内容位(slot)。例如,内容发布者计算设备120可运营公司的网站,并且可提供有关该公司的内容以显示在网站的网页上。网页可包括被配置以显示从内容提供者计算设备115接收的内容元素,诸如图像、文本、视频或其任何组合的内容位。在一些实施方式中,内容发布者计算设备120包括运营搜索引擎网站的搜索引擎运营商的搜索引擎计算设备(例如服务器)。搜索引擎网页(例如结果或着陆网页)的主要内容可包括搜索的结果,以及在内容位中显示的第三方内容元素,诸如来自内容提供者计算设备115的内容元素。在一些实施方式中,内容发布者计算设备120可包括用于派发视频内容的服务器。
在一些实施方式中,内容发布者计算设备120能经由网络105选择从内容发布者计算设备120接收的一个或多个内容元素,以与主要内容一起包括在信息资源中以显示。内容发布者计算设备120能响应于来自客户端设备125对内容的请求,将从内容提供者计算设备115接收的内容元素连同主要内容一起传送到客户端设备125。在一些实施方式中,继传送主要内容后,内容发布者计算设备120能响应于来自客户端设备125对附加内容的请求,将从内容提供者计算设备115接收的内容元素传送到客户端设备125。例如,内容发布者计算设备120可从客户端设备125接收对主要内容的初始请求,并且作为响应,将包括主要内容的信息资源传送到客户端设备。继客户端设备125检测到动态事件(例如网页的滚动长度的改变)后,内容发布者计算设备120可接收对附加内容的请求,并转而提供在内容发布者计算设备120处缓存并且从内容提供者计算设备115接收的内容元素。
客户端设备125可包括计算设备,该计算设备被配置成经由网络105或通过代理设备150经由网络105通信以显示数据,诸如由内容发布者计算设备120提供的内容(例如,主要网页内容或其他信息资源),和由内容提供者计算设备115提供的内容(例如被配置以在信息资源中显示的内容元素)。客户端设备125、内容提供者计算设备115和内容发布者计算设备120可包括台式计算机、手提电脑、平板电脑、智能电话、个人数字助理、移动设备、消费者计算设备、服务器、客户端、数字视频录像机、用于电视的机顶盒、视频游戏控制台或被配置成经由网络105通信的任何其他计算设备。客户端设备125可以是通信设备,通过该通信设备,终端用户能提交请求以接收内容。该请求可以是对搜索引擎的请求,并且请求可包括搜索查询。在一些实施方式中,请求可包括访问网页的请求。
代理设备155可包括部署在客户端设备125和网络105之间的计算设备。代理设备155可被配置成经由网络105与一个或多个其他计算设备,诸如数据处理系统110、内容提供者计算设备115和内容发布者设备125通信。代理设备155例如可以是被配置成从客户端设备125接收数据包并且将其转发到网络105或从网络105接收数据包并且将其转发到客户端设备125的路由器、网络交换机、网关、网络节点或任何其他计算设备。
内容提供者计算设备115、内容发布者计算设备120和客户端设备125可包括处理器和存储器,即,处理电路。存储器存储机器指令,当由处理器执行时,该机器指令使处理器执行本文所述的一个或多个操作。处理器可以包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等或其组合。存储器可以包括但不限于能够为处理器提供程序指令的电子、光学、磁或任何其他存储或传输设备。存储器可以进一步包括处理器能从其读取指令的软盘、CD-ROM、DVD、磁盘、存储器芯片、ASIC、FPGA、只读存储器(ROM)、随机存取存储器(RAM)、电可擦ROM(EEPROM)、电可擦可编程ROM(EPROM)、闪存、光学介质或任何其他适当的存储器。指令可以包括来自任何适当的计算机编程语言的代码。
内容提供者计算设备115、内容发布者计算设备120和客户端设备125还可以包括一个或多个用户接口设备。通常,用户接口设备是指通过生成感官信息(例如显示器上的视觉化、一个或多个声音等),将数据传送给用户和/或将从用户接收的感官信息转换成电信号的电子设备(例如键盘、鼠标、指向设备、触摸屏显示器、麦克风等)。根据各个实施方式,一个或多个用户接口设备可以位于内容提供者计算设备115、内容发布者计算设备120和客户端设备125的壳体内部(例如内置显示器、麦克风等),或内容提供者计算设备115、内容发布者计算设备120和客户端设备125的壳体外部(例如,连接到客户端设备115的监视器、连接到客户端设备115的扬声器等)。例如,内容提供者计算设备115、内容发布者计算设备120和客户端设备125可以包括电子显示器,电子显示器使用经由网络105从一个或多个内容源和/或从数据处理系统110接收的网页数据来视觉地显示网页。
数据处理系统110可包括至少一个服务器。例如,数据处理系统110可包括位于至少一个数据中心或服务器场中的多个服务器。在一些实施方式中,数据处理系统110包括内容投放系统,例如广告服务器或广告投放系统。数据处理系统110可包括至少一个内容请求模块130、至少一个内容选择模块135、至少一个脚本提供者模块140、至少一种格式优先级模块145和至少一个数据库150。内容请求模块130、内容选择模块135、脚本提供者模块140和格式优先级模块140每个可包括至少一个处理单元、服务器、虚拟服务器、电路、引擎、代理、电器或其他逻辑设备,诸如可编程逻辑阵列,可编程逻辑阵列被配置成经由网络105与数据库150和与其他计算设备(例如内容提供者计算设备115、内容发布者计算设备120或客户端设备125)通信。
内容请求模块130、内容选择模块135、脚本提供者模块140和格式优先级模块145可包括或执行至少一个计算机程序或至少一个脚本。内容请求模块130、内容选择模块135、脚本提供者模块140和格式优先级模块145可以是单独的部件、单个部件或数据处理系统110的一部分。内容请求模块130、内容选择模块135、脚本提供者模块140和格式优先级模块145可包括软件和硬件的组合,诸如被配置成执行一个或多个脚本的一个或多个处理器。
数据处理系统110还可包括一个或多个内容库或数据库150。数据库150可对于数据处理系统110是本地的。在一些实施方式中,数据库150可对于数据处理系统110是远程的,但能经由网络105与数据处理系统110通信。数据库150可包括网页、内容元素(例如广告)和内容渲染验证脚本等,以便派发到客户端设备125。在一些实施方式中,信息资源和信息资源的内容元素可包括图2B中示例性所示的那些。在下文,将提供数据库150的内容的另外的细节。
内容请求模块130能从客户端设备125接收对内容的请求。对内容的请求可包括对信息资源的信息或对用于信息资源的内容元素的请求。对内容的请求可包括对应于客户端设备125的设备标识符。对内容的请求可包括识别在客户端设备125上执行的应用的应用简档。对内容的请求可包括用于信息资源或内容元素的标识符。例如,对内容的请求可包括引用特定资源,诸如网页(例如“ww.example.com/homepage.html”)的统一资源定位符(URL)。用于信息资源的URL的主机名可以不同于用于内容元素的URL的主机名。例如,用于信息资源的URL可以是“www.example_publisher.com/index.html”,但用于内容元素的URL可以是“www.example_thirdparty.com/content_item_271828.html”。用于对内容元素的请求的URL可包括与用于信息资源的URL相同的主页。例如,用于信息资源的URL可以是“www.example.com/index.html”,但用于内容元素的URL可以是“www.example.com/content_item_978.html”。
在一些实施方式中,对内容的请求可包括指示用于内容渲染验证脚本的请求的指示器。例如,对信息资源的请求可包括头部,该头部包括指定脚本提供者模块135或内容发布者计算设备120的脚本,以将内容渲染验证脚本连同信息资源一起发送到客户端设备125。在一些实施方式中,信息资源可包括插入用于信息资源的脚本或标记中的内容渲染验证脚本。在一些实施方式中,信息资源可包括用于检索内容渲染验证脚本,以随后插入到信息资源中的脚本。
内容选择模块135或内容发布者计算设备120能确定传送到客户端设备125的内容。内容选择模块135或内容发布者计算设备120能识别用于包括在对内容的请求中的信息资源和内容元素的地址或标识符。内容选择模块135能访问数据库150,并且选择由地址或标识符识别的信息资源或内容元素。内容选择模块135能将请求传送到内容提供者115或内容发布者120,以访问、检索或者接收由地址或标识符识别的信息资源或内容元素。内容选择模块135能将由地址或标识符识别的信息资源或内容元素传送或转发到客户端设备125。例如,数据处理系统110能从客户端设备125接收对信息资源或内容元素的请求。请求可以包括引用内容发布者120中的一个的地址。在该示例中,内容选择模块135能将对信息资源的请求转发到相应的内容发布者120。在从各个内容发布者120接收信息资源后,内容选择模块135能将内容文档连同内容渲染验证脚本转发到作出初始请求的客户端设备125。
在一些实施方式中,内容选择模块135能从基于广告拍卖选择内容元素以显示的广告拍卖系统接收内容元素。广告拍卖系统能基于广告拍卖参数,诸如投标值、广告大小、点击率(CTR)、每千人成本(CPM)和印象率等从多个广告选择广告。广告拍卖系统可进一步基于相应的广告的大小规格和来自相应的广告的在前呈现的广告效能,从多个广告选择广告。
脚本提供者模块140可从内容发布者计算设备120或内容提供者计算设备115接收对内容渲染验证脚本的请求,以插入到将被提供给客户端设备125的信息资源或内容元素中。脚本提供者模块140可响应于从内容发布者计算设备120或内容提供者计算设备115接收对内容渲染验证脚本的请求,将内容渲染验证脚本传送到内容发布者计算设备120或内容提供者计算设备115,以将内容渲染验证脚本包括、插入、嵌入或追加到信息资源或内容元素中。在一些实施方式中,脚本提供者模块140可响应于来自内容发布者计算设备120或内容提供者计算设备115的对内容渲染验证脚本的请求,将包括内容渲染验证脚本的信息资源或内容元素传送到客户端设备125。在一些实施方式中,脚本提供者模块140可从客户端设备125接收对内容渲染验证脚本的请求和对内容的请求。脚本提供者模块140可将内容渲染验证脚本传送到客户端设备125。在一些实施方式中,脚本提供者模块140可将内容渲染验证脚本包括、插入、嵌入或者追加到将被传送到客户端设备125的信息资源或内容元素中。在一些实施方式中,脚本提供者模块140,结合数据处理系统110的其他模块可将具有嵌入的内容渲染验证脚本的信息资源或内容元素传送到客户端设备125。
在一些实施方式中,脚本提供者模块140可从内容发布者计算设备120或内容提供者计算设备115接收对内容渲染验证脚本的最新版本的请求。例如,脚本提供者模块140可从内容发布者计算设备120或内容提供者计算设备115定期地接收对内容渲染验证脚本的请求,并且作为响应,传送最新版本的内容渲染验证脚本。反过来,内容发布者计算设备120或内容提供者计算设备115可将更新的内容渲染验证脚本插入或者嵌入到一个或多个信息资源中。在该示例中,当内容发布者计算设备120或内容提供者计算设备115从客户端设备125接收对信息资源的请求时,内容发布者计算设备120或内容提供者计算设备115将相应的信息资源或内容元素连同内容渲染验证脚本传送到客户端设备125。
格式优先级模块145能识别包括在从客户端设备125接收的内容的请求中的设备标识符或应用简档。格式优先级模块145能基于用于客户端设备125的设备标识符或应用标识符,确定应用编程接口(API)或协议的类型。格式优先级模块145能基于标识符API或协议,识别、选择或者指定包括在内容渲染验证脚本中的功能部件。例如,当接收对内容的请求时,格式优先级模块145能识别在客户端设备125上运行的、用来处理和执行信息资源的应用是来自应用简档的特定类型的Web浏览器。在该示例中,使用被识别类型的Web浏览器,格式优先级模块145能选择可在特定类型的Web浏览器上操作以包括在内容渲染验证脚本中的脚本,来访问由应用生成的文档树、对象模型、渲染树和布局。
在一些实施方式中,格式优先级模块145能基于从对内容的请求识别的设备标识符或应用简档,为信息资源上的每一个内容元素选择多种格式。格式优先级模块145能确定指定用于由计算设备处理的多种格式的选择顺序的优先次序。格式优先级模块145能将优先次序和多种格式包括、插入、嵌入或者追加到将被发送到客户端设备125的信息资源中。在一些实施方式中,格式优先级模块145能维护数据库150中的优先次序。优先级模块145能响应于从客户端设备125接收指示由客户端设备125渲染用于信息资源的一个或多个内容元素的多种格式的成功或失败的通告,更新数据库150和优先次序。在一些实施方式中,优先级模块145能响应于未从客户端设备125接收到指示由客户端设备125渲染用于信息资源的一个或多个内容元素的多种格式的成功或失败的任何通告,更新数据库150和优先次序。在下文中,将结合图2A论述格式优先级模块145的功能性。
在一些实施方式中,格式优先级模块145可搜索数据库150,以识别与成功在客户端设备125上渲染的内容对应的一种或多种格式。在一些实施方式中,格式优先级模块145可搜索数据库150,来识别与被阻止在客户端设备125上渲染的内容对应的一种或多种格式。在一些实施方式中,格式优先级模块145能从多种格式中,选择识别为在客户端设备125上成功渲染或被阻止渲染的一种或多种格式。在一些实施方式中,格式优先级模块145可使用格式列表来识别与成功渲染的内容对应的一种或多种格式,或与被阻止在客户端设备125上渲染的内容对应的一种或多种其他格式。数据库150可包括具有由客户端设备125以相应的格式渲染内容元素的成功或失败的指示的格式列表。对每一种格式,格式列表可以包括格式被成功渲染或被阻止渲染的若干客户端设备125。对每一种格式,通过格式被成功渲染或被阻止渲染的应用简档,格式列表可以包括若干客户端设备125。
在一些实施方式中,格式优先级模块145能基于格式列表生成优先次序。在一些实施方式中,格式优先级模块145能识别由客户端设备125以相应的格式渲染内容元素渲染内容元素的成功或失败的指示。在一些实施方式中,格式优先级模块145能使用设备标识符,识别由特定客户端设备125以相应的格式渲染内容元素的成功或失败的指示。在一些实施方式中,格式优先级模块145能使用与通过客户端设备125以相应的格式渲染内容元素的成功的指示对应的被识别格式的每一个来生成优先次序。例如,格式优先级模块145能识别被识别为在客户端设备125上成功渲染的所有格式。格式优先级模块145能使用伪随机数生成器随机地设定以优先次序待渲染的格式的次序。
在一些实施方式中,格式优先级模块145能从格式列表识别通过客户端设备125的成功渲染数。在一些实施方式中,格式优先级模块145能将在客户端设备125处的成功渲染数与阈值数比较。可以预先定义或预设阈值数。阈值数可以基于到多个客户端设备125的传输总数的百分比。例如,如果传输相应的格式到多个客户端设备125高于100,000次,则格式优先级模块145可将25,000(100,000×25%)设定为阈值数。在一些实施方式中,格式优先级模块145可选择在客户端设备125处的成功渲染数大于或等于阈值数的一种或多种格式。
在一些实施方式中,格式优先级模块145能通过应用简档,从格式列表识别通过客户端设备125的成功渲染数。对应于一个应用简档的客户端设备125可以具有不同于对应于另一应用简档的其他客户端设备125的成功渲染数。在一些实施方式中,格式优先级模块145能从格式列表识别具有与请求内容的客户端设备125相同应用简档的客户端设备125成功渲染数。在一些实施方式中,相同应用简档可以对应于用于以该格式(例如Web浏览器)渲染内容元素的应用的较晚、相同或较早版本。在一些实施方式中,格式优先级模块145可将通过应用简档成功渲染数与阈值数比较。可以预先定义或预设阈值数。阈值数可以基于到具有与请求内容的客户端设备125相同应用简档的多个客户端设备125的传输总数的百分比。在一些实施方式中,格式优先级模块145能选择一种或多种格式,对于该一种或多种格式,通过与客户端设备125相同应用简档成功渲染数大于或等于阈值数。
内容渲染验证脚本可包括计算机可执行指令。计算机可执行指令可包括诸如超文本标记语言(HTML)、可扩展超文本标记语言(XHTML)、可扩展标记语言(XML)、级联样式表(CSS)和JAVASCRIPT及其他的脚本。可以由客户端设备125的应用,例如,使客户端设备传送由内容请求模块130接收的对内容的请求的应用执行计算机可执行指令。应用可包括例如能够读取和执行计算机可执行指令的互联网浏览器、移动应用或任何其他计算机程序。简单概述,计算机可执行指令当由客户端设备125的一个或多个处理器执行时,能使在客户端设备的一个或多个处理器上运行的应用:(1)以第一格式渲染第一内容元素,以显示在信息资源上;(2)确定以第一格式未成功地显示第一内容元素;(3)响应于确定以第一格式未成功地显示第一内容元素,以第二格式渲染第一内容元素以显示在信息资源上;(4)确定以第二格式成功地显示第一内容元素;以及(5)响应于确定以第二格式成功地显示第一内容元素,显示信息资源的第二内容元素。因此,计算机可执行指令确保第一内容元素被显示,并且没有被内容控制模块替换或遮挡。因此,可以通过执行计算机可执行指令,提高用户安全性和/或体验。参考图2A、2B和3A-3C,本文提供有关内容渲染验证脚本的功能的另外的细节。
参考图2A,图2A是根据示例性实施方式,图示内容渲染验证系统200A中的计算设备(例如客户端设备125)的一种实施方式的框图。简单概述,内容渲染验证系统200A可包括客户端设备125、应用205(例如Web浏览器)、信息资源212(例如网页)和中断器模块214(例如拦截器和恶意软件)。应用205可包括例如能够执行或者调用由客户端设备125处理的计算机可执行指令(诸如包括在信息资源212、一个或多个内容元素215A-N或内容渲染验证脚本220中的计算机可执行指令)的互联网浏览器、移动应用或任何其他计算机程序。应用205可包括文档树生成器206、渲染树生成器208和显示模块210。信息资源212可包括一个或多个内容元素215A-N和内容渲染验证脚本220。内容渲染验证脚本220可包括文档树验证模块225、渲染树验证模块230、内容元素检索模块235和元素格式修改器模块240。中断器模块214可以是关于客户端设备125上运行的应用205(例如用于Web浏览器的插件)、另一应用、计算机程序或过程,或在另一设备(诸如代理设备155)上运行的应用、计算机程序或过程的脚本或计算机程序。
参考图2B,图2B是根据示例性实施方式,图示在客户端设备125上显示的应用205上显示内容元素215A-N的信息资源212的框图。简单概述,图2B中的示例图示由应用205处理和渲染并且显示在客户端设备125上的信息资源212的视觉表示200B。在该示例中,信息资源212'可包括四个显示的内容元素215'A-215'D,内容元素215'A-215'D每一个对应于信息资源212的相应的内容元素215A-D。第一显示的内容元素215'A可以是例如通常位于显示信息资源212'的顶部的横幅广告位。第二显示的内容元素215'B可以是例如通常位于显示的信息资源212'的中间的正文文本。第三显示的内容元素215'C可以是例如包括朝显示的信息资源212'的右上的视频元素的内嵌帧。第四显示的内容元素215'D可以是例如通常朝显示的信息资源212'的右下的、包括链接245的图像。信息资源212可包括还未由应用205渲染或在信息资源212'上显示(如由内容对象215'E所示)的第五内容元素215E。
在图2B的场境中,中断器模块214能基于与内容元素215A-N相关联的各种属性,改变、修改或移除信息资源212的内容元素215A-N中的一个或多个。在一些实施方式中,中断器模块214能任意或随机地改变、修改或移除信息资源212的一个或多个内容元素215A-N。这会导致显示的信息资源212'上的显示内容元素215'A-N的相应的变更。中断器模块214能识别用于信息资源212的内容元素215A-N的每一个的内容类型,并且基于识别的内容类型,应用内容变更策略来改变、修改或移除相应的内容元素215A-N。例如,中断器模块214能基于在检测算法中指定的位置和大小识别第一内容元素215A为广告位,并且从信息资源212移除对应于内容元素215A的代码。在该示例中,该移除会导致从显示的信息资源212'上的显示移除的对应的显示的内容元素215'A。此外,中断器模块214能识别用于第三内容元素215C的内容类型为视频内容元素,并且将视频内容的源改变成另一个,由此导致在显示的内容元素215'C上正在播放的另一视频。此外,中断器模块214能识别第四内容元素215D包括链接245,并且变更目的地链接页,或从第四内容元素215D移除该链接。通常,中断器模块214能使用与内容元素215A-N相关联的任何属性来改变、修改或移除信息资源212的内容元素215A-N,由此使得变更显示的信息资源212'的行为。内容渲染验证脚本220能确定一个或多个内容元素215A-N中的至少一个未被成功地显示,并且由中断器模块214修改相应的内容元素215A-N,以防止变更内容元素215A-N。
再参考图2A,进一步详细地,能经由网络105从数据处理系统110、内容提供者计算设备115或内容发布者计算设备120接收信息资源212和信息资源212的一个或多个内容元素215A-N。在一些实施方式中,信息资源212和一个或多个内容元素215A-N可来自同一源(例如,数据处理系统110)。在一些实施方式中,能由类似的标识符识别同一源。例如,信息资源212可对应于URL“www.example.com/index.html”,而内容元素215A-N中的一个对应于“www.example.com/q31.html”。在该示例中,用于信息资源212和内容元素215A-N的URL的主机名相同。在一些实施方式中,信息资源212和一个或多个内容元素215A-N可来自由不同标识符识别的不同源。例如,信息资源212对应于URL“www.example.com/home.html”,而内容元素215A-N中的一个可以对应于URL“www.example2.com/ci_n31.img”。
信息资源212可包括由应用205处理并且由客户端设备125的一个或多个处理器执行的脚本、标记或者代码。例如,信息资源212可包括超文本标记语言(HTML)、可扩展超文本标记语言(XHTML)、可扩展标记语言(XML)、级联样式表(CSS)和JAVASCRIPT及其任何组合。信息资源212可包括一个或多个内容元素215A-N、一个或多个相应的样式表以及内容渲染验证脚本220。一个或多个内容元素215A-N中的每一个可对应于信息资源212的代码段。在一些实施方式中,内容元素215A-N的每一个可包括HTML元素。HTML元素可包括例如头部、正文、段落、分区、节、内嵌帧、图像、画布、小应用、脚本、音频、视频、表和列表等。内容元素215A-N的每一个可包括一种或多种格式。内容元素215A-N的每一个的一种或多种格式的每一个可包括对应的属性。用于内容元素215A-N的属性的示例可以包括颜色、字体、字体大小、字体类型、大小和位置等。一个或多个样式规则(例如CSS样式规则)的每一个可指定相应的内容元素215A-N的对应格式的特性的一个或多个视觉性能。例如,用于内容元素215A的第一格式的CSS样式规则可规定将居中对齐第一内容元素215A的任何文本(例如“文本对齐:居中”)。在该示例中,内容元素215A的第二格式的CSS样式规则可规定将右对齐第一内容元素215A的任何文本(例如“文本对齐:右”)。内容渲染验证脚本220可对应于信息资源212的脚本部分中的一个。
文档树验证模块225或渲染树验证模块230能使应用205渲染内容元素215A-N中的一个以第一格式渲染。在一些实施方式中,文档树生成器206能处理信息资源212的一个或多个内容元素215A-N中的每一个来生成文档树。例如,文档树生成器206能解析信息资源212的HTML标记来生成文档对象模型(DOM)树。文档树可包括以层次方式相互关联的一个或多个内容对象。例如,DOM树中的两个内容对象可具有树数据结构中的父子关系。内容对象的每一个可对应于用于一个或多个内容元素215A-N中的一个的一种格式。文档树中的每一内容对象可包括一个或多个性能或属性。
参考图3A,图3A是根据示例性实施方式,图示基于信息资源212由客户端设备125的文档树生成器206生成的文档树330A的框图。在图3A所示的示例中,文档树300A可包括文档内容对象305、头部内容对象310、正文内容对象325、元标签内容对象315、链接内容对象320、包括文本节点330A的段落内容对象330、分区内容对象335、内嵌帧内容对象340和图像内容对象345。在该示例中,相应的信息资源212包括文档内容元素(例如“<html>”标签)、头部内容元素(例如“<head>”标签)、正文内容元素(例如“<body>”标签)、元标签内容元素(例如“<meta>”标签)、链接内容元素(例如“<link>”标签)、段落内容元素(例如“<p>”标签)、分区内容元素(例如“<div>”标签)、内嵌帧内容元素(例如“<iframe>”标签)和图像内容元素(例如“<img>”标签)。在该示例中,位于文档树300A的头部的文档内容对象305能对应于信息资源212的文档部分。头部内容对象310可包括与信息资源212相关联的描述性数据。元标签内容对象315可包括与信息资源212相关联的元标签数据。链接内容对象320可包括用于与内容元素215A-N相关联的样式规则的源说明书符,和用于信息资源212的对应的内容对象。正文内容对象325可定义信息资源212的文档部(例如显示的内容元素215'B)的正文。段落内容对象330可包括指定包括用于信息资源212的文本的文本节点330。分区内容对象335可定义信息资源212的文档的正文的单独分区或节。内嵌帧内容对象340可定义将另一内容元素215A-N或另一信息资源嵌入在信息资源212中的内嵌帧。图像内容对象345可定义或引用包括在信息资源212中的图像。
在图3A的场境中,中断器模块214能遍历文档树300A。在遍历文档树300A的同时,中断器模块214能基于相应的内容对象305-345的各种属性选择内容对象305-345中的一个,以改变、修改或移除被选内容对象305-345。例如,内嵌帧对象340可包括基于相应的URL的主机名,源自不同于信息资源212的源的信息资源。中断器模块214能识别用于内嵌帧内容对象340的域不同于用于信息资源212的域,并且从文档树300A移除内嵌帧内容对象340。在另一示例中,中断器模块214能识别分区内容对象335包括作为子内容对象的图像内容对象345。在图像内容对象345中引用的图像可来自与信息资源212相同的域。在该示例中,中断器模块214可将光学字符识别分析应用在图像内容对象345中引用的图像上,并且检测该图像包括某些短语,诸如“点击这里”,并且从图像内容对象345移除图像引用。
使用由文档树生成器206生成的文档树300A,文档树验证模块225能确定是否以当前格式未成功地显示内容元素215A-N中的任何一个。文档树验证模块225能确定待渲染的信息资源212的内容元素215A-N中的任何一个是否不具有由文档树生成器206生成的文档树300A中的对应的内容对象。文档树验证模块225能识别信息资源212的内容元素215A-N。文档树验证模块225能识别或访问由文档树生成器206生成的文档树300A。例如,文档树验证模块225能调用JAVASCRIPT中的函数“document.documentElement”。文档树验证模块225能遍历由文档树生成器206生成的文本节点330A。在遍历文档树300A的同时,对信息资源212的每一个内容元素215A-N,文档树验证模块225能识别内容元素215A-N的任何一个均不对应于文档树的相应的内容对象。在图3A图示的示例中,如果中断器模块214可能已经删除内嵌帧内容对象340,文档树验证模块225可确定信息资源212初始包括内嵌帧内容元素,并且遍历文档树300A来确定已经从文档树300A删除内嵌帧内容元素。
文档树验证模块225能确定在由文档树生成器206生成的文档树300A中,待渲染的信息资源212的每一个内容元素215A-N是否具有对应的内容对象。文档树验证模块225能遍历由文档树生成器206生成的文档树300A。在遍历文档树300A的同时,对信息资源212的每一个内容元素215A-N,文档树验证模块225可识别每一个内容元素215A-N对应于文档树300A的相应的内容对象。
文档树验证模块225能确定任何附加内容对象是否被添加到文档树300A。例如,中断器模块214将作为子对象的画布内容对象添加到文档树300A的段落内容对象,使得画布内容对象将遮挡作为所显示的信息资源212'上的叠层的另一内容对象。在遍历文档树300A的同时,对信息资源212的每一个内容元素215A-N,文档树验证模块225可识别文档树300A上的至少一个内容对象不对应于信息资源212的内容元素215A-N的任何一个。
文档树验证模块225能确定文档树300A具有正确数目的内容对象。正确数目的内容对象可以对应于待渲染的内容元素215A-N的数目。文档树验证模块225能识别文档树300A的内容对象的长度、基数或数目,并且与待渲染的信息资源212的内容元素215A-N的数目进行比较。基于该比较,文档树验证模块225可确定文档树300A具有正确数目的内容对象。
文档树验证模块225能确定是否变更文档树300A。在一些实施方式中,文档树验证模块225能识别文档树300A的内容对象的每一个的属性或性能。在一些实施方式中,文档树验证模块225能识别用于内容元素215A-N的每一个的格式和属性。在遍历文档树300A的同时,对信息资源的每一个内容元素215A-N,文档树验证模块225能识别文档树300A的对应的内容对象。文档树验证模块225可将文档树300A的对应的内容对象的属性或性能与信息资源212的相应的内容元素215A-N的属性或性能比较,来确定是否有匹配或等效映射。如果存在与对应的内容元素215A-N不匹配或不具有等效映射的至少一个内容对象,则文档树验证模块225可确定变更用于信息资源212的相应内容元素215A-N的文档树300A的对应的内容对象。如果所有内容对象与对应的内容元素215A-N匹配或具有等效的映射,则文档树验证模块225可确定不变更用于信息资源212的相应内容元素215A-N的文档树300A的对应的内容对象。
文档树生成器206能识别待渲染的文档树300A的内容对象的子集,以及不被渲染的文档树300A的内容对象的子集。在图3A图示的示例中,待渲染的内容对象的子集是内容对象325、330、335和345,并且不被渲染的内容对象的子集是内容对象305、310、315、320和340。文档树生成器206能识别链接内容对象320,以导入对信息资源212指定的样式规则(例如CSS样式表)。文档树生成器206能从文档树300A移除不被渲染的内容对象的子集。文档树生成器206能将待渲染的内容对象的子集中的内容对象的每一个与在信息资源212中指定的样式规则匹配以生成对象模型。
参考图3B,图3B是根据示例性实施方式,图示基于信息资源212具有由文档树生成器206与样式规则匹配的每一个内容对象的对象模型300B的框图。在图3B所示的示例中,对象模型300B包括与样式规则360A匹配的正文内容对象325'、与样式规则360B匹配的段落内容对象330'、与样式规则360C匹配的内嵌帧内容对象340'和与样式规则360D匹配的图像内容对象345'。样式规则360A-D的每一个可规定对应的内容对象325'、330'、340'和345'的属性或性能。例如,样式规则360B可规定出现在段落内容对象330'中的文本为红色。
在图3B的场境中,中断器模块214能遍历对象模型300B,并且基于相应的内容对象325'、330'、340'和345'的各种属性,改变、修改或移除内容对象325'、330'、340'和345'中的一个,并且改变、修改或移除对应的样式规则360A-D。例如,中断器模块214可识别内嵌帧内容对象340'能动态地调整大小或移动位置。基于该识别,中断器模块214可将与内嵌帧内容对象340'匹配的样式规则360C的显示性能设定为空,由此将该内容对象排除在渲染外并且由客户端设备125显示。
使用具有由如在对象模型300B中的文档树与样式规则匹配的每一个内容对象的文档树,文档树验证模块225能确定是否以当前格式未成功地显示内容元素215A-N的任何一个。文档树验证模块225能确定待渲染的信息资源212的内容元素215A-N的任何一个是否不具有由文档树生成器206生成的对象模型300B中的对应的内容对象。文档树验证模块225能识别信息资源212的内容元素215A-N。文档树验证模块225能识别或访问由文档树生成器206处理的对象模型300B。例如,文档树验证模块225能调用JAVASCRIPT中的函数“getComputedStyle()”。文档树验证模块225能确定在对象模型300B中,待渲染的信息资源212的每一内容元素215A-N是否具有对应的内容对象。文档树验证模块225能遍历对象模型300B。在遍历对象模型200B的同时,对信息资源212的每一个内容元素215A-N,文档树验证模块225可识别对象模型300B的内容对象均不对应于相应的内容元素215A-N。
在一些实施方式中,文档树验证模块225能确定任何附加内容对象是否被添加到对象模型300B。例如,中断器模块214将作为子对象的表内容对象添加到对象模型300B的段落内容对象330'。在遍历对象模型300B的同时,对信息资源212的每一个内容元素215A-N,文档树验证模块225能识别对象模型300B上的内容对象的至少一个不对应于信息资源212的内容元素215A-N的任何一个。文档树验证模块225能确定对象模型300B具有正确数目的内容对象。正确数目的内容对象可以对应于待渲染的内容元素215A-N的数目。文档树验证模块225能识别对象模型300B的内容对象的长度、基数或数目,并且与待渲染的信息资源212的内容元素215A-N的数目进行比较。如果内容对象的数目与待渲染的内容元素215A-N的数目匹配,则文档树验证模块225可确定对象模型300B具有正确数目的内容对象。
文档树验证模块225能确定是否变更对象模型300B。在一些实施方式中,文档树验证模块225能确定是否变更对象模型300B的匹配样式规则的任何一个。在一些实施方式中,文档树验证模块225能识别与对象模型200B的相应的内容对象匹配的每一个样式规则的属性或性能。在一些实施方式中,文档树验证模块225能从信息资源212识别用于内容元素215A-N的每一个的格式和属性。在一些实施方式中,文档树验证模块225能识别用于在信息资源212中指定的内容元素215A-N的每一个的样式规则。在遍历对象模型300B的同时,对信息资源的每一个内容元素215A-N,文档树验证模块225能识别对象模型300B的对应的内容对象,并且识别对应的匹配的样式规则。文档树验证模块225能将对象模型300B的对应的内容对象的对应的样式规则的属性或性能与信息资源212的相应的内容元素215A-N的属性或性能比较,来确定是否有匹配或等效映射。如果对应的内容对象的对应样式规则的至少一个不与对应的内容元素215A-N匹配或不具有等效的映射,则文档树验证模块225可确定变更用于信息资源212的相应内容元素215A-N的对象模型300B的对应内容对象。如果对应的内容对象的所有对应的样式规则与对应的内容元素215A-N匹配或具有等效的映射,则文档树验证模块225可确定不变更用于信息资源212的相应内容元素215A-N的文档树300A的对应内容对象。在图3B图示的示例中,中断器模块214将用于内嵌帧内容对象340'的样式规则360C的显示性能设定为空。文档树验证模块225能识别如在信息资源212中指定的样式规则的显示性能。如果对信息资源212中的内嵌帧内容元素指定的样式规则的显示性能不为空,则文档树验证模块225可确定变更用于内嵌帧内容元素的对应的匹配样式规则。
渲染树生成器208能生成用于渲染信息资源212的渲染树。渲染树生成器208可包括布局引擎、渲染引擎或应用205的任何模块、引擎或过程,来准备在客户端设备125的显示器上渲染信息资源212。在一些实施方式中,渲染树生成器208能基于对象模型300B或文档树300A生成渲染树。在一些实施方式中,渲染树生成器208能生成用于对象模型300B中的内容对象和匹配样式规则的每一个的一个或多个渲染性能。在一些实施方式中,渲染树生成器208能基于在文档树300A的相应内容对象或对象模型300B的匹配样式规则中指定的性能或属性,生成一个或多个性能。渲染树可包括以层次方式相互关联的一个或多个节点。例如,两个节点可具有树数据结构中的父子关系。渲染树中的每一个节点可对应于待渲染的信息资源212的内容元素215A-N。可使渲染器中的每一个节点与一个或多个渲染性能匹配。
参考图3C,图3C是根据示例性实施方式,图示基于对象模型300B生成的渲染树300C的框图。在图3图示的示例中,渲染树300C可包括正文节点325″、段落节点330″、文本节点330A″、内嵌帧节点345″、分区节点335″和图像节点350″。渲染树300C的节点可以至少对应于信息资源212的内容元素215A-N的子集。渲染树300C的一些节点可具有为各个节点330″、345″和350″指定渲染信息的渲染性能365A-C。渲染性能365A-C可适用于对应的节点及对应的节点的子节点。例如,渲染性能365A中的渲染信息可以适用于段落节点330″和文本节点330A″。
在图3C的场境中,中断器模块214能遍历渲染树300C。在遍历渲染树300C的同时,中断器模块214能基于相应节点的各种属性,选择节点中的一个来改变、修改或移除被选节点,或者改变或修改被选节点的一个或多个渲染性能。例如,中断器模块214能识别段落节点330″的文本节点330A″包括黑色文本中的链接。中断器模块214能进一步识别用于段落节点330″的渲染性能365A,并且将背景设定为黑色,由此当客户端设备125显示信息资源212时,减小文本和背景之间的对比度。
使用由渲染树生成器208生成的渲染树300C,渲染树验证模块230能确定是否以当前格式未成功地显示内容元素215A-N的任何一个。渲染树验证模块230能确定待渲染的信息资源212的内容元素215A-N的任何一个是否在由渲染树生成器208生成的渲染树300C中不具有对应的节点。渲染树验证模块230能识别信息资源212的内容元素215A-N。渲染树验证模块230能识别或访问由渲染树生成器208生成的渲染树300C。渲染树验证模块230能遍历渲染树300C。在遍历渲染树300C的同时,对信息资源212的每一个内容元素215A-N,文档树验证模块225能识别渲染树300C中的节点均不对应于相应的内容元素215A-N。在图3C所示的示例中,中断器模块214可以已经删除图像节点350″和对应的渲染性能360C。图像节点350″可以已经对应于信息资源212中的图像内容元素。渲染树验证模块230能在渲染树300C中搜索对应于信息资源212的图像内容元素的节点。未找到任何一个,则渲染树验证模块230能确定渲染树300C中的任何一个均不对应于信息资源212的图像内容元素。
渲染树验证模块230能确定在由渲染树生成器208生成的渲染树300C中,待渲染的信息资源212的每一个内容元素215A-N是否具有对应的节点。渲染树验证模块230能遍历由渲染树生成器208生成的渲染树300C。在遍历渲染树300C的同时,对信息资源212的每一个内容元素215A-N,渲染树验证模块230能识别每一个内容元素215A-N对应于渲染树300C中的相应节点。渲染树验证模块230能确定渲染树300C具有正确数目的节点。正确数目的节点可以对应于待渲染的内容元素215A-N的数目。渲染树验证模块230能识别渲染树300C的节点的长度、基数或数目,并且与待渲染的信息资源212的内容元素215A-N的数目比较。如果内容对象的数目与待渲染的内容元素215A-N的数目匹配,则渲染树验证模块230能确定渲染树300C具有正确数目的节点。
渲染树验证模块230能确定任何附加节点是否被添加到渲染树300C。例如,中断器模块214将作为子对象的另一节点添加到渲染树300C的段落内容对象330″,使得当渲染以显示时,在显示的信息资源212'中遮挡内嵌帧内容对象340″。在遍历渲染树300C的同时,对信息资源212的每一个内容元素215A-N,文档树验证模块225能识别渲染树300C的节点中的至少一个不对应于信息资源212的内容元素215A-N的任何一个。在一些实施方式中,渲染树验证模块230能识别渲染树300C中的附加节点为对应于信息资源的内容元素215A-N中的一个的另一节点上的叠层。例如,渲染树验证模块230能基于相应的渲染性能,识别具有相互类似的坐标位置(例如在10%内)的渲染树300C的两个节点。渲染树验证模块230能从相应的渲染性能识别用于这两个节点的每一个的大小和z指数。在确定在用于两个节点的渲染性能中指定的大小类似(例如在10%内)并且附加节点的z指数高于对应于内容元素215A-N中的一个的节点时,渲染树验证模块230能确定渲染树300C的附加节点是对应于内容元素215A-N中的一个的另一节点上的叠层。
渲染树验证模块230能确定是否变更渲染树300C。在一些实施方式中,渲染树验证模块230能识别用于渲染树300C中的节点的每一个的渲染性能。在一些实施方式中,渲染树验证模块230能识别用于在信息资源212中指定的内容元素215A-N的每一个的格式和属性。在一些实施方式中,渲染树验证模块230能识别用于在信息资源212中指定的内容元素215A-N的每一个的样式规则。在遍历渲染树300C的同时,对信息资源212的每一个内容元素215A-N,渲染树验证模块230能识别渲染树300C的对应节点和用于相应节点的一个或多个渲染性能。渲染树验证模块230能将用于对应节点的一个或多个渲染性能与信息资源的相应内容元素215A-N的性能或属性比较。如果存在至少一个节点,该至少一个节点与对应的内容元素215A-N的性能或属性不匹配或不具有等效的映射,则渲染树验证模块230能确定变更用于信息资源212的相应内容元素215A-N的渲染树300C的对应节点。如果渲染树300C的所有节点均与对应的内容元素215A-N的性能或属性匹配或具有等效的映射,则渲染树验证模块230能确定不变更用于信息资源212的相应内容元素215A-N的渲染树300C的对应节点。在图3C所示的示例中,中断器模块214将在文本节点330A″的渲染性能365A中指定的文本大小从12设定为3。渲染树验证模块230能对对应的段落内容元素,识别如在信息资源212中指定的文本大小。渲染树验证模块230能比较如在信息资源212中指定的文本大小和文本节点330A″的渲染性能365A。在确定不匹配时,渲染树验证模块230能确定变更用于对应于段落内容元素的节点的渲染性能。
渲染树生成器208能基于渲染树300C处理布局。该布局可包括列表、数组或树数据结构中的一个或多个子布局。一个或多个子布局中的每一个可对应于渲染树300C上的节点。一个或多个子布局的每一个可包括指定在客户端设备125的显示器上,将如何渲染对应于内容元素215A-N中的一个的节点的渲染信息。例如,子布局可指定在显示器上,节点将占用的绝对像素位置。渲染树生成器208能遍历渲染树300C的节点。对遍历的每一个节点,渲染树生成器208能基于用于节点的一个或多个渲染性能生成对应的子布局。显示模块210能另外处理由渲染树生成器208生成的布局,以在客户端设备125上显示信息资源212。
中断器模块214能改变、修改或者变更由渲染树生成器208生成的布局。中断器模块214能基于相应子布局的各种属性,选择子布局中的一个以改变、修改或移除被选的子布局。例如,基于每一个子布局的绝对像素位置,中断器模块214能识别通常将沿信息资源212'的顶部渲染的一个子布局(例如,图2B的显示的内容元素215'A)。在识别通常将沿信息资源212'的顶部渲染的子布局时,中断器模块214能将叠层子布局插入布局中,使得新插入的叠层布局遮挡被选子布局。
使用由渲染树生成器208生成的布局,渲染树验证模块230能确定是否以当前格式未成功地显示内容元素215A-N的任何一个。渲染树验证模块230能确定待渲染的信息资源212的内容元素215A-N的任何一个是否不具有由渲染树生成器208生成的布局中的对应的子布局。渲染树验证模块230能识别待渲染的信息资源212的内容元素215A-N。渲染树验证模块230能识别或访问由渲染树生成器208生成的布局。渲染树验证模块230能遍历布局。在遍历布局的同时,对信息资源212的内容元素215A-N的每一个,渲染树验证模块230能识别布局中的子布局均不对应于相应的内容元素215A-N。
渲染树验证模块230能确定在该布局中,待渲染的信息资源212的每一个内容元素215A-N是否具有对应的子布局。渲染树验证模块230能遍历由渲染树生成器208生成的布局。在遍历布局的同时,对信息资源212的每一个内容元素215A-N,渲染树验证模块230能识别每一个内容元素215A-N对应于渲染树300C中的相应的子布局。渲染树验证模块230能确定该布局具有正确数目的内容对象。正确数目的子布局可以对应于待渲染的内容元素215A-N的数目。渲染树验证模块230能识别该布局的子布局的长度、基数或数目,并且与待渲染的信息资源212的内容元素215A-N的数目比较。如果布局的子布局的数目与待渲染的内容元素215A-N的数目匹配,则渲染树验证模块230能确定该布局具有正确数目的子布局。
渲染树验证模块230能确定任何附加子布局是否被添加到布局。例如,中断器模块214可以将叠层子布局插入布局中,使得新插入的叠层布局遮挡另一子布局,诸如通过具有更高z指数。在一些实施方式中,渲染树验证模块230能计算待渲染的信息资源212的内容元素215A-N的数目。渲染树验证模块230能识别从渲染树300C生成的布局中的子布局的数目。渲染树验证模块230能将待渲染的内容元素215A-N的数目与子布局的数目比较。如果子布局的数目比内容元素215A-N的数目大预定阈值,则渲染树验证模块230能确定有一个或多个附加子布局。在一些实施方式中,渲染树验证模块230能识别附加子布局是另一子布局上的叠层。例如,渲染树验证模块230能基于相应的渲染信息,识别布局中具有彼此类似(例如在10%内)的坐标位置的子布局。渲染树验证模块230能从相应的渲染信息,识别用于这两个子布局的每一个的大小和z指数。在确定用于两个子布局的渲染性能中指定的大小类似(例如在10%内)并且附加子布局的z指数高于对应于内容元素215A-N中的一个的子布局时,渲染树验证模块230能确定布局中的附加子布局为对应于内容元素215A-N中的一个的另一子布局上的叠层。
渲染树验证模块230能确定是否变更由渲染树生成器208生成的布局。在一些实施方式中,渲染树验证模块230能识别用于在信息资源212中指定的内容元素215A-N的每一个的格式和属性。在一些实施方式中,渲染树验证模块230能识别用于在信息资源212中指定的内容元素215A-N的每一个的样式规则。在一些实施方式中,渲染树验证模块230能访问用于文档树300A的每一个内容对象的性能或属性。在一些实施方式中,渲染树验证模块230能访问用于对象模型300B的内容对象的每一个的匹配样式规则中的性能或属性。在遍历布局的同时,对信息资源212的每一个内容元素215A-N,渲染树验证模块230能识别对应的子布局和用于子布局的渲染信息。渲染树验证模块230能将用于对应节点的一个或多个渲染性能与信息资源212的相应内容元素215A-N的性能或属性或相应样式规则的性能或属性比较。如果有至少一个子布局,该子布局与对应内容元素215A-N的性能或属性不匹配或不具有等效的映射,则渲染树验证模块230能确定变更用于信息资源212的相应内容元素215A-N的布局的对应的子布局。如果布局的所有子布局与对应的内容元素215A-N的性能或属性匹配或具有等效的映射,则渲染树验证模块230能确定不变更用于信息资源212的相应内容元素215A-N的布局的对应的子布局。
响应于确定以一种格式未成功地显示一个或多个内容元素215A,文档树验证模块225或渲染树验证模块230能使应用205以另一种格式渲染内容元素215A-N中的一个。元素修改器模块240能选择另一预先生成的格式。在一些实施方式中,可以由格式优先级模块145预先生成一种或多种格式。在一些实施方式中,元素修改器模块240能生成一种或多种格式。由元素修改器模块240生成的一种或多种格式的视觉特性在颜色、字体、字体大小、字体类型、大小和位置等方面不同。
在一些实施方式中,元素格式修改器模块240能将一个或多个内容元素215A-N从一种格式改变成另一种格式。另一格式可指定用于相应内容元素215A-N的不同视觉特性,诸如颜色、字体、字体大小、字体类型、大小和位置等。例如,另一格式可规定内容元素215A-N的大小为300×200像素,而在前格式规定内容元素215A-N的大小为100×400像素。在一些实施方式中,元素格式修改器模块240能通过包括另一格式来修改一个或多个内容元素215A-N。在一些实施方式中,元素格式修改器模块240能基于在相应内容元素215A-N或信息资源212中指定的优先次序,选择另一格式。例如,如果对内容元素215A-N中的一个指定的优先次序为“格式1232z”、“格式2084m1”和“格式H80k1”,则元素格式修改器模块240能根据优先次序,使用“格式1232z”、“格式2084m1”和“格式H80k1”来修改相应的内容元素215A-N。
元素格式修改器模块240能将一个或多个内容元素215A-N从一种格式修改成另一种格式重复任何次数,或直到满足预定阈值为止。通过将一个或多个内容元素215A-N从一种格式修改成另一种格式,内容渲染验证脚本220能确保由客户端设备125适当地处理、渲染和显示信息资源212的内容。由此,内容渲染验证模块215能够阻止通过中断器模块214未经授权地尝试干扰渲染信息资源212。
元素格式修改器模块240能维护指示尝试次数的尝试计数的计数器,以在信息资源212上显示一个或多个内容元素215A-N。响应于确定以一种格式未成功地显示一个或多个内容元素215A-N,元素格式修改器模块240可递增尝试计数。每次递增尝试计数时,元素格式修改器模块240可将一个或多个内容元素215A-N从一种格式改变成另一种格式。在一些实施方式中,元素格式修改器模块240能确定尝试计数高于还是低于预定阈值。如果尝试计数低于预定阈值,则元素格式修改器模块240可继续使用另一种格式修改一个或多个内容元素215A-N。如果尝试计数高于或等于预定阈值,则元素格式修改器模块240可终止、中止或停止内容渲染验证脚本220的所有功能性。在一些实施方式中,如果尝试计数高于或等于预定阈值,则元素格式修改器模块240可终止、中止或停止显示附加内容元素215A-N(例如图2B的内容元素215D)。
在一些实施方式中,如果尝试计数高于或等于预定阈值,则元素格式修改器模块240可将通告传送到外部设备,诸如数据处理系统110、内容提供者计算设备115或内容发布者计算设备120。否定通告可指示内容渲染验证脚本220未成功或不能显示信息资源212的一个或多个内容元素215A-N。否定通告可包括对应于未成功或不能在信息资源212上显示的内容元素215A-N的内容元素标识符、对应于未成功或不能在信息资源212上显示的内容元素215A-N的相应格式的格式标识符、对应于客户端设备125的设备标识符和对应于应用205的应用类型的应用简档。接收否定通告可使数据处理系统110更新数据库150。在一些实施方式中,如果尝试计数高于或等于预定阈值,则元素格式修改器模块240可使应用205显示警告。警告可以包括授权的脚本(例如中断器模块214)可能正在客服端设备215上运行的指示。在一些实施方式中,缺少任何肯定或否定通告可使数据处理系统110更新数据库150。例如,如果数据处理系统110在预定时间窗口内未接收到任何通告,则数据处理系统110可更新数据库150,以指示未成功地显示内容元素215A-N的相应格式。
元素格式修改器模块240能维护用于指示用于一个或多个内容元素215A-N的修改数的修改计数的计数器。响应于确定以一种格式未成功地显示一个或多个内容元素215A-N,或响应于将一个或多个内容元素215A-N从一种格式修改成另一种格式,元素格式修改器模块240可递增指示修改计数的计数器。元素格式修改器模块240能确定修改计数小于还是大于用于一个或多个内容元素215A-N的格式数。如果修改计数小于格式数,则元素格式修改器模块240可继续将一个或多个内容元素215A-N从一种格式修改成另一种格式,并且递增修改计数。如果修改计数大于或等于格式数,则内容元素检索模块235结合元素格式修改器模块240可将对附加内容的请求传送到数据处理系统110、内容提供者计算设备115或内容发布者计算设备120。对附加内容的请求可包括对应于客户端设备125的设备标识符和对应于应用205的应用类型的应用简档。反过来,内容元素检索模块235可接收包括其他格式的附加内容元素215A-N。
响应于确定不变更文档树300A和对象模型300B,文档树验证模块225能确定以相应的格式成功地显示一个或多个内容元素215A-N。响应于确定不变更渲染树300C或布局,渲染树验证模块230可确定以相应的格式成功地显示一个或多个内容元素215A-N。响应于确定以任一格式成功地显示一个或多个内容元素215A-N,元素格式修改器模块240可传送指示成功渲染信息资源212上的一个或多个内容元素215A-N的肯定通告。肯定通告可包括对应于成功显示在信息资源212上的内容元素215A-N的内容元素标识符、对应于未成功或不能显示在信息资源212上的内容元素215A-N的格式的相应子集的格式标识符、对应于成功显示在信息资源212上的内容元素215的相应格式的格式标识符、对应于客户端设备125的设备标识符和对应于应用205的应用类型的应用简档。接收肯定通告可使数据处理系统110更新数据库150。
响应于确定以任一格式成功地显示一个或多个内容元素215A-N,内容元素检索模块235可显示信息资源212的附加或另一内容元素215A-N。在图2所示的示例中,内容元素检索模块235可导致应用205使第五内容元素215E可见。在一些实施方式中,内容元素检索模块235能确定是否从数据处理系统110、内容提供者计算设备115或内容发布者计算设备120接收附加内容元素。如果内容元素检索模块235确定未接收到附加内容元素,则内容元素检索模块235可将对附加内容的请求传送到数据处理系统110、内容提供者计算设备115或内容发布者计算设备120。内容元素检索模块235可接着从数据处理系统110、内容提供者计算设备115或内容发布者计算设备120接收附加内容元素。如果内容元素检索模块235确定接收到附加内容元素,则内容元素检索模块235可从客户端设备125的本地存储器或缓冲器检索或访问附加内容元素。内容元素检索模块235可使应用205处理附加内容元素,并且使客户端设备125渲染和显示附加内容元素。
再参考图1,结合图2A,当由客户端设备125传送对附加内容的请求、肯定通告或否定通告并且由数据处理系统110接收时,格式优先级模块145可基于对附加内容的请求、肯定通告或否定通告更新数据库150。数据库150可包括一个或多个条目。条目的每一个可包括按客户端标识符和应用简档排列的、对应于由相应客户端设备125成功或未成功显示的格式和内容元素的接受的格式标识符和内容元素标识符的列表或集合。
在一些实施方式中,响应于从客户端设备125接收对附加内容的请求或对内容的请求,格式优先级模块145可从该请求识别设备标识符和应用简档。格式优先级模块145可访问数据库150,来从保持在数据库150上的一个或多个条目识别设备标识符和应用简档。从在数据库150上保持的一个或多个条目,格式优先级模块145可基于设备标识符和应用简档,选择一个或多个内容元素215A-N和相应的格式。在一些实施方式中,格式优先级模块145可使用设备标识符和应用简档,从在数据库150上保持的一个或多个条目识别格式标识符和内容元素标识符,来选择先前在客户端设备125上成功显示的格式和内容元素215A-N。
在一些实施方式中,优先级模块145可对一个或多个内容元素的每一个的每一种格式,基于设备标识符和应用简档,计算将由客户端设备125渲染或显示相应格式中的相应内容元素的成功概率。在一些实施方式中,优先级模块145可从在数据库150中保持的一个或多个条目,识别用于横跨多个设备标识符的应用简档的成功数和失败数。优先级模块145能基于成功数和失败数,计算将渲染或显示相应格式中的相应内容元素的成功概率。格式优先级模块145能基于用于信息资源212的一个或多个内容元素的每一个的每一种格式的成功概率,确定优先次序。
格式优先级模块145能将一个或多个内容元素215A-N和相应的格式传送到客户端设备125。格式优先级模块145能接着从客户端设备125接收肯定通告或否定通告。基于接收到肯定通告或否定通告,格式优先级模块145能确定客户端设备125是否向客户端设备125成功地渲染或显示一个或多个内容元素215A-N和相应的格式。
如果格式优先级模块145确定客户端设备125未成功地渲染或显示一个或多个内容元素215A-N和相应的格式(例如接收到否定通告),则格式优先级模块145可更新由数据库150保持的一个或多个条目,来包括失败的指示、对应于未由客户端设备125成功渲染的内容元素215A-N和格式的内容元素标识符和格式标识符。格式优先级模块145可维护指示将用于信息资源212上的一个或多个内容元素215A-N的每一个的一种或多种格式传送到客户端设备125的尝试次数的尝试计数的计数器。格式优先级模块145可接着确定尝试计数低于还是高于预定阈值。预定阈值可指示或表示在终止与客户端设备125通信前,格式优先级模块145允许的各种格式和内容元素的传输数。如果尝试计数低于预定阈值,则格式优先级模块145可选择用于一个或多个其他内容元素的每一个的一种或多种其他格式以传送到客户端设备125。如果尝试计数高于预定阈值,则格式优先级模块145结合数据处理系统110的一个或多个其他模块,可终止数据处理系统110和格式优先级模块145之间的通信。
响应于确定以一种格式未成功地显示一个或多个内容元素215A-N,元素格式修改器模块240可递增尝试计数。每次递增尝试计数时,元素格式修改器模块240可将一个或多个内容元素215A-N从一种格式修改成另一种格式。在一些实施方式中,元素格式修改器模块240能确定尝试计数高于还是低于预定阈值。如果尝试计数低于预定阈值,则元素格式修改器模块240可使用另一格式继续修改一个或多个内容元素215A-N。如果尝试计数高于或等于预定阈值,则元素格式修改器模块240可终止、中止或停止内容渲染验证脚本220的所有功能性。在一些实施方式中,如果尝试计数高于或等于预定阈值,则元素格式修改器模块240可终止、中止或停止附加内容元素215A-N(例如图2B的内容元素215D)的显示。
如果格式优先级模块145确定客户端设备125成功地渲染或显示一个或多个内容元素215A-N和相应的格式(例如接收到肯定通告),则格式优先级模块145可更新由数据库150保持的一个或多个条目,来包括对应于由客户端设备125成功地渲染内容元素215A-N和格式的内容元素标识符和格式标识符的成功的指示。在一些实施方式中,内容请求模块130结合格式优先级模块145,可基于数据库150的一个或多个更新的条目选择附加内容元素,并且将选择的附加内容元素传送到客户端设备125。在一些实施方式中,基于数据库150的更新的条目,选择用于附加内容元素和内容元素的格式可以增加客户端设备125将成功地渲染附加内容元素的概率。例如,数据库150可以指示内容元素的第五格式先前导致在客户端设备125上成功渲染。在对来自客户端设备125的内容的后续请求中,内容请求模块130能将用于内容元素的第五格式选择为将由客户端设备125处理的第一格式。
参考图4,图4是图示属于应用的滚动事件的方法400的流程图。能由如图1所示的数据处理系统110或客户端设备125、如图2所示的内容显示管理系统200或如图7所示的计算设备或其任何组合执行或者实现本文相对于方法400所述的功能性。简单概述,客户端设备能接收包括内容渲染验证脚本和第一内容元素的信息资源(框403)。客户端设备能以第一格式渲染第一内容元素以显示在信息资源上(框406)。客户端设备能确定以第一格式未成功地显示第一内容元素(框409)。客户端设备能响应于确定以第一格式未成功地显示第一内容元素,以第二格式渲染该第一内容元素以显示在信息资源上(框412)。客户端设备能确定以第二格式成功地显示第一内容元素(框415)。客户端设备能响应于确定以第二格式成功地显示第一内容元素,显示信息资源的第二内容元素(框418)。
进一步详细地,客户端设备能接收包括内容渲染验证脚本和第一内容元素的信息资源(框403)。能经由网络从数据处理系统、内容发布者计算设备或内容提供者计算设备接收信息资源和信息资源的第一内容元素。在一些实施方式中,信息资源和第一内容元素能来自同一源(例如数据处理系统)。在一些实施方式中,能由类似的标识符识别同一源。例如,信息资源可以对应于URL“www.example.com/index.html”,而内容元素中的一个对应于“www.example.com/q31.html”。在该示例中,用于信息资源和内容元素的URL中的主机名相同。在一些实施方式中,信息资源和第一内容元素能来自由不同标识符识别的不同源。例如,信息资源对应于URL“www.example.com/home.html”,而第一内容元素可以对应于URL“ww.example2.com/ci_n31.img.”。
信息资源可包括由应用处理并且由客户端设备的一个或多个处理器执行的脚本、标记或者代码。例如,信息资源可包括超文本标记语言(HTML)、可扩展超文本标记语言(XHTML)、可扩展标记语言(XML)、级联样式表(CSS)和JAVASCRIPT及其任何组合。信息资源能包括第一内容元素、一个或多个对应的样式规则以及内容渲染验证脚本。内容元素的每一个可对应于信息资源的代码段。在一些实施方式中,内容元素的每一个可包括HTML元素。HTML元素可包括例如头部、正文、段落、分区、节、内嵌帧、图像、画布、小应用、脚本、音频、视频、表和列表等。内容元素的每一个可包括一种或多种格式。内容元素的每一个的一种或多种格式的每一个可包括对应的属性。用于内容元素的属性的示例可以包括颜色、字体、字体大小、字体类型、大小和位置等。一个或多个样式规则(例如CSS样式规则)中的每一个可指定相应的内容元素的相应格式的特性的一个或多个视觉性能。
内容渲染验证脚本可包括计算机可执行指令。计算机可执行指令可包括诸如超文本标记语言(HTML)、可扩展超文本标记语言(XHTML)、可扩展标记语言(XML)、级联样式表(CSS)和JAVASCRIPT等的脚本。可以由客户端设备的应用(例如,使客户端设备传送由数据处理系统接收的对内容的请求的应用)执行计算机可执行指令。应用可包括例如能够读取和执行计算机可执行指令的互联网浏览器、移动应用或任何其他计算机程序。简单概述,计算机可执行指令当由客户端设备125的一个或多个处理器执行时,能使在客户端设备的一个或多个处理器上运行的应用:(1)以第一格式渲染第一内容元素以显示在信息资源上;(2)确定以第一格式未成功地显示第一内容元素;(3)响应于确定以第一格式未成功地显示第一内容元素,以第二格式渲染第一内容元素以显示在信息资源上;(4)确定以第二格式成功地显示第一内容元素;以及(5)响应于确定以第二格式成功地显示第一内容元素,显示信息资源的第二内容元素。
客户端设备能渲染第一内容元素以第一格式显示在信息资源上(框406)。在一些实施方式中,应用能处理信息资源的内容元素的每一个以生成文档树。例如,应用能解析信息资源的HTML标记以生成文档对象模型(DOM)树。文档树可包括以层次方式相互关联的一个或多个内容对象。例如,DOM树中的两个内容对象可具有树数据结构中的父子关系。内容对象的每一个可对应于用于第一内容元素中的一个的一种格式。文档树中的每一个内容对象可包括一个或多个性能或属性。
应用能识别待渲染的文档树的内容对象的子集和不被渲染的文档树的内容对象的子集。应用能识别文档树的链接内容对象来导入对信息资源指定的样式规则(例如CSS样式规则)。应用能从文档树移除不被渲染的内容对象的子集。应用能将待渲染的内容对象的子集中的每一个内容对象与在信息资源中指定的样式规则匹配以生成对象模型。
应用可生成用于渲染信息资源的渲染树。应用可包括布局引擎、渲染引擎或该应用的任何模块、引擎或过程来准备在客户端设备的显示器上渲染信息资源。在一些实施方式中,应用能基于对象模型或文档树生成渲染树。在一些实施方式中,应用能生成用于对象模型中的内容对象和匹配样式规则的每一个的一个或多个渲染性能。在一些实施方式中,应用能基于在文档树中的相应内容对象或对象模型中的匹配渲染树中指定的性能或属性,生成一个或多个性能。渲染树可包括以层次方式相互关联的一个或多个节点。例如,两个节点可具有树数据结构中的父子关系。渲染树中的每一个节点可对应于待渲染的信息资源的内容元素。可使渲染器中的每一个节点与一个或多个渲染性能匹配。
应用可基于渲染树处理布局。该布局可包括列表、数组或树数据结构中的一个或多个子布局。一个或多个子布局中的每一个可对应于渲染树上的节点。一个或多个子布局中的每一个可包括指定在客户端设备的显示器上,将如何渲染对应于内容元素中的一个的节点的渲染信息。例如,子布局可指定在客户端设备的显示器上,节点将占用的绝对像素位置。应用能遍历渲染树的节点。对遍历的每一个节点,应用可基于用于节点的一个或多个渲染性能生成对应的子布局。应用可另外处理由渲染树生成器生成的布局,以在客户端设备上显示信息资源。
客户端设备可确定以第一格式未成功地显示第一内容元素(框409)。中断器模块可基于与第一内容元素相关联的各种属性,改变、修改或移除信息资源的第一内容元素,由此使得未成功地显示以第一格式的第一内容元素。中断器模块可以是关于在客户端设备上运行的应用的脚本或计算机程序(例如用于Web浏览器的插件)、另一应用、计算机程序或过程,或在另一设备(诸如代理设备)上运行的应用、计算机程序或过程。在一些实施方式中,中断器模块能任意或随机地改变、修改或移除信息资源的一个或多个内容元素。这会导致显示的信息资源上的显示内容元素的相应的变更。中断器模块能识别用于信息资源的内容元素的每一个的内容类型,并且基于识别的内容类型,应用内容变更策略来改变、修改或移除相应的内容元素。通常,中断器模块能使用与内容元素相关联的任何属性来改变、修改或移除信息资源的内容元素,由此使得变更显示的信息资源的行为。客户端设备的内容渲染验证脚本能确定第一内容元素中的至少一个未被成功地显示,并且由中断器模块修改相应的内容元素以防止变更内容元素。
在渲染树的场境中,中断器模块能遍历文档树。当遍历文档树的同时,中断器模块可基于第一内容对象的各种属性选择内容对象中的一个(诸如对应于第一内容元素的第一内容对象)以改变、修改或移除被选内容对象。
使用由应用生成的文档树,客户端设备能确定是否以当前格式未成功地显示内容元素中的任何一个。客户端设备能确定待渲染的信息资源的内容元素的任何一个是否不具有由应用生成的文档树中的对应的内容对象。客户端设备能识别信息资源的内容元素。客户端设备能识别或访问由应用生成的文档树。例如,客户端设备可调用JavaScript中的函数“document.documentElement”。客户端设备能遍历由应用生成的文档树。在遍历文档树的同时,对信息资源的每一个内容元素,客户端设备可识别内容元素的任何一个均不对应于相应的内容元素。
在一些实施方式中,客户端设备能确定任何附加内容对象是否被添加到文档树。例如,中断器模块将作为子对象的画布内容对象添加到文档树的段落内容对象,使得画布内容对象将遮挡作为显示的信息资源上的叠层的另一内容对象。在遍历文档树的同时,对信息资源的每一个内容元素,客户端设备能识别文档树上的内容对象的至少一个不对应于信息资源的内容元素的任何一个。
客户端设备可确定是否变更文档树。在一些实施方式中,客户端设备能识别文档树的内容对象的每一个的属性或性能。在一些实施方式中,客户端设备能识别用于内容元素的每一个的格式和属性。在遍历文档树的同时,对信息资源的每一个内容元素,客户端设备能识别文档树的对应的内容对象。客户端设备可将文档树的对应的内容对象的属性或性能与信息资源的相应的内容元素的属性或性能比较,以确定是否有匹配或等效映射。基于该比较,客户端设备能确定变更用于信息资源的相应内容元素的文档树的对应的内容对象。
应用可识别待渲染的文档树的内容对象的子集和不被渲染的文档树的内容对象的子集。应用可识别文档树的链接内容对象来导入对该信息资源指定的样式规则(例如CSS样式表)。应用能从文档树移除不被渲染的内容对象的子集。应用能将待渲染的内容对象的子集中的内容对象的每一个与在信息资源中指定的样式规则匹配来生成对象模型。
在对象模型的场境中,中断器模块能遍历对象模型,并且基于相应的内容对象的各种属性,改变、修改或移除内容对象中的一个(诸如对应于第一内容元素的第一内容对象),并且改变、修改或移除对应的样式规则。
使用具有由如在对象模型中的文档树与样式规则匹配的每一个内容对象的文档树,客户端设备能确定是否以当前格式未成功地显示内容元素的任何一个。客户端设备能确定待渲染的信息资源212的内容元素的任何一个是否不具有由应用生成的对象模型中的对应的内容对象。客户端设备能识别信息资源的内容元素。客户端设备能识别或访问由应用处理的对象模型。例如,客户端设备能调用JavaScript中的函数“getComputedStyle()”。客户端设备能遍历对象模型。在遍历对象模型的同时,对信息资源的每一个内容元素,客户端设备能识别对象模型的内容对象均不对应于相应的内容元素。
在一些实施方式中,客户端设备能确定任何附加内容对象是否被添加到对象模型。在遍历对象模型的同时,对信息资源的每一个内容元素,客户端设备能识别对象模型上的内容对象的至少一个不对应于信息资源的内容元素的任何一个。
客户端设备可确定是否变更对象模型。在一些实施方式中,客户端设备可确定是否变更对象模型的匹配的样式规则的任何一个。在一些实施方式中,客户端设备能识别与对象模型的相应内容对象匹配的样式规则的每一个的属性或性能。在一些实施方式中,客户端设备能从信息资源识别用于内容元素的每一个的格式和属性。在一些实施方式中,客户端设备能识别用于在信息资源中指定的内容元素的任何一个的样式规则。在遍历对象模型的同时,对信息资源的每一个内容元素,客户端设备能识别对象模型的对应的内容对象,并且识别对应的匹配的样式规则。客户端设备可将对象模型的对应的内容对象的对应的样式规则的属性或性能与信息资源的相应的内容元素的属性或性能比较,来确定是否有匹配或等效的映射。基于比较,客户端设备能确定变更用于信息资源的相应内容元素的文档树的内容对象的对应的匹配的样式规则。
在渲染树的场境中,中断器模块能遍历渲染树。在遍历渲染树的同时,中断器模块能基于相应节点的各种属性,选择节点中的一个(诸如对应于第一内容元素的节点)以改变、修改或移除被选节点或改变或修改被选节点的一个或多个渲染性能。
使用由应用生成的渲染树,客户端设备能确定是否以当前格式未成功地显示内容元素的任何一个。客户端设备能确定待渲染的信息资源212的内容元素的任何一个是否在由应用生成的渲染树中不具有对应的节点。客户端设备能识别信息资源的内容元素。客户端设备能识别或访问由应用生成的渲染树。客户端设备能遍历渲染树。在遍历渲染树的同时,对信息资源的每一内容元素,客户端设备能识别渲染树中的节点均不对应于相应的内容元素。
应用能确定任何附加节点是否被添加到渲染树。在遍历渲染树的同时,对信息资源的每一个内容元素,客户端设备能识别渲染树的节点的至少一个不对应于信息资源的内容元素的任何一个。在一些实施方式中,应用能识别渲染树中的附加节点是对应于信息资源的内容元素的一个的另一节点上的叠层。例如,应用能基于相应的渲染性能,识别具有彼此类似的坐标位置(例如在10%内)的渲染树的两个节点。应用能从相应的渲染性能识别用于这两个节点的每一个的大小和z指数。在确定在用于两个节点的渲染性能中指定的大小类似(例如在10%内)并且附加节点的z指数高于对应于内容元素中的一个的节点时,应用能确定渲染树的附加节点为在对应于内容元素的一个的另一节点上的叠层。
应用能确定是否变更渲染树。在一些实施方式中,应用能识别用于渲染树中的每一个节点的渲染性能。在一些实施方式中,应用能识别用于在信息资源中指定的内容元素的每一个的格式和属性。在一些实施方式中,应用能识别用于在信息资源中指定的内容元素的每一个的样式规则。在遍历渲染树的同时,对信息资源的每一个内容元素,应用能识别渲染树的对应节点和用于相应节点的一个或多个渲染性能。应用可将用于对应节点的一个或多个渲染性能与信息资源的相应内容元素的性能或属性比较。基于该比较,应用可确定变更用于相应内容元素的对应节点的一个或多个渲染性能。
在布局的场境中,中断器模块能改变、修改或者变更由应用生成的布局。中断器模块能基于相应子布局的各种属性,选择子布局中的一个(诸如对应于第一内容元素的一个子布局),以改变、修改或移除被选子布局。例如,基于每一个子布局的绝对像素位置,中断器模块能识别通常将沿信息资源的顶部渲染的一个子布局。在识别通常将沿信息资源的顶部渲染的子布局时,中断器模块能将叠层子布局插入该布局中,使得新插入的叠层布局遮挡被选子布局。
使用由应用生成的布局,客户端设备能确定是否以当前格式未成功地显示内容元素的任何一个。客户端设备能确定待渲染的信息资源的内容元素的任何一个是否不具有由应用生成的布局中的对应的子布局。客户端设备能识别待渲染的信息资源的内容元素。客户端设备能识别或访问由应用生成的布局。客户端设备能遍历该布局。在遍历该布局的同时,对信息资源的内容元素的每一个,客户端设备能识别布局中的子布局均不对应于相应的内容元素。
客户端设备能确定任何附加子布局是否被添加到该布局。例如,中断器模块能将叠层子布局插入到布局中,使得诸如通过具有更高z指数,新插入的叠层布局遮挡另一子布局。在一些实施方式中,客户端设备能计算待渲染的信息资源的内容元素的数目。客户端设备能识别从渲染树生成的布局中的子布局的数目。客户端设备能将待渲染的内容元素的数目与子布局的数目比较。如果子布局的数目比内容元素的数目大预定阈值,则应用可确定有一个或多个附加子布局。在一些实施方式中,客户端设备能识别附加子布局为另一子布局上的叠层。例如,应用能基于相应的渲染信息,识别布局中具有彼此类似的坐标位置(例如在10%内)的两个子布局。客户端设备能从相应的渲染信息识别用于这两个子布局的每一个的大小和z指数。在确定在用于两个子布局的渲染性能中指定的大小类似(例如在10%内)并且附加子布局的z指数高于对应于内容元素中的一个的子布局时,客户端设备可确定布局的附加子布局为对应于内容元素中的一个的另一子布局上的叠层。
客户端设备可确定是否变更由应用生成的布局。在一些实施方式中,客户端设备能识别用于在信息资源中指定的内容元素的每一个的格式和属性。在一些实施方式中,客户端设备能识别用于在信息资源中指定的内容元素的每一个的样式规则。在一些实施方式中,客户端设备能访问用于文档树的每一个内容对象的性能或属性。在一些实施方式中,客户端设备能访问在用于对象模型的内容对象的每一个的匹配样式规则中的性能或属性。在遍历布局的同时,对信息资源的每一个内容元素,客户端设备能识别对应的子布局和用于该子布局的渲染信息。客户端设备可将用于对应节点的一个或多个渲染性能与信息资源的相应内容元素的性能或属性或相应样式规则的性能或属性比较。基于该比较,客户端设备可确定变更用于相应内容元素的布局的对应子布局的一个或多个渲染信息。
客户端设备可响应于确定以第一格式未成功地显示第一内容元素,以第二格式渲染第一内容元素以显示在信息资源上(框412)。客户端设备可将第一内容元素从第一格式修改成第二格式。第二格式可指定用于相应内容元素的不同视觉特性,诸如颜色、字体、字体大小、字体类型、大小和位置等。在一些实施方式中,客户端设备可通过包括第二格式来修改第一内容元素。在一些实施方式中,客户端设备可基于在相应内容元素或信息资源中指定的优先次序来选择第二格式。
客户端设备可维护用于指示尝试次数的尝试计数的计数器,以在信息资源上显示第一内容元素。响应于确定以一种格式未成功地显示第一内容元素,客户端设备可递增尝试计数。每次递增尝试计数时,客户端设备可将第一内容元素从第一格式改变成第二格式。在一些实施方式中,客户端设备可确定尝试计数高于还是低于预定阈值。如果尝试计数低于预定阈值,则客户端设备可使用第二格式继续修改第一内容元素。如果尝试计数高于或等于预定阈值,则客户端设备可终止、中止或停止内容渲染验证脚本的所有功能性。在一些实施方式中,如果尝试计数高于或等于预定阈值,则客户端设备可终止、中止或停止显示附加内容元素。
响应于确定以任一格式成功地显示第一内容元素,客户端设备可传送指示在信息资源上成功地渲染第一内容元素的肯定通告。肯定通告可包括对应于在信息资源上成功显示的内容元素的内容元素标识符、对应于未成功或不能显示在信息资源上的内容元素的格式的相应子集的格式标识符、对应于成功在信息资源上显示的内容元素的相应格式的格式标识符、对应于客户端设备的设备标识符和对应于应用的应用类型的应用简档。接收肯定通告可使数据处理系统更新该数据库。
客户端设备可确定以第二格式成功地显示第一内容元素(框415)。使用由应用生成的文档树,客户端设备能确定是否以第二格式成功地显示内容元素的任何一个。客户端设备能确定在由应用生成的文档树中,待渲染的信息资源的每一个内容元素是否具有对应的内容对象。客户端设备能遍历由应用生成的文档树。在遍历文档树的同时,对信息资源的每一个内容元素,客户端设备能识别每一个内容元素对应于文档树的相应内容对象。客户端设备能确定文档树具有正确数目的内容对象。正确数目的内容对象可以对应于待渲染的内容元素的数目。客户端设备能识别文档树的内容对象的长度、基数或数目,并且与待渲染的信息资源的内容元素的数目进行比较。基于该比较,客户端设备可确定文档树具有正确数目的内容对象。
客户端设备可确定是否变更文档树。在一些实施方式中,客户端设备能识别文档树的内容对象的每一个的属性或性能。在一些实施方式中,客户端设备能识别用于内容元素的每一个的格式和属性。在遍历文档树的同时,对信息资源的每一个内容元素,客户端设备能识别文档树的对应内容对象。客户端设备可将文档树的对应内容对象的属性或性能与信息资源的相应内容元素的属性或性能比较,来确定是否有匹配或等效的映射。如果存在至少一个内容对象,该内容对象与对应的内容元素不匹配或不具有等效的映射,则客户端设备可确定变更用于信息资源的相应内容元素的文档树的对应内容对象。如果所有内容对象与对应的内容元素匹配或具有等效映射,则客户端设备可确定不变更用于信息资源的相应内容元素的文档树的对应内容对象。
使用由应用生成的对象模型,客户端设备可确定是否以第二格式成功地显示内容元素的任何一个。客户端设备能确定对象模型具有正确数目的内容对象。正确数目的内容对象可以对应于待渲染的内容元素的数目。客户端设备能确定在对象模型中,待渲染的信息资源的每一个内容元素是否具有对应的内容对象。客户端设备可遍历对象模型。在遍历对象模型的同时,对信息资源的每一个内容元素,客户端设备可识别对象模型的内容对象均不对应于相应的内容元素。客户端设备能识别对象模型的内容对象的长度、基数或数目,并且与待渲染的信息资源的内容元素的数目比较。如果内容对象的数目与待渲染的内容元素的数目匹配,则客户端设备能确定对象模型具有正确数目的内容对象。
客户端设备能确定是否变更对象模型。在一些实施方式中,客户端设备能确定是否变更对象模型的匹配样式规则的任何一个。在一些实施方式中,客户端设备能识别与对象模型的相应内容对象匹配的样式规则的每一个的属性或性能。在一些实施方式中,客户端设备能从信息资源识别用于内容元素的每一个的格式和属性。在一些实施方式中,客户端设备能识别用于在信息资源中指定的内容元素的每一个的样式规则。在遍历对象模型的同时,对信息资源的每一个内容元素,客户端设备能识别对象模型的对应内容元素并且识别对应的匹配的样式规则。客户端设备能将对象模型的对应内容对象的对应样式规则的属性或性能与信息资源的相应内容元素的属性或性能比较来确定是否有匹配或等效映射。如果存在对应内容对象的对应样式规则的至少一个与对应的内容元素不匹配或不具有等效的映射,则客户端设备能确定变更用于信息资源的相应内容元素的对象模型的对应内容对象。如果对应内容对象的所有对应样式规则均与对应的内容元素匹配或具有等效的映射,则客户端设备能确定不变更用于信息资源的相应内容元素的文档树的对应内容对象。
使用由应用生成的渲染树,客户端设备能确定是否以第二格式成功地显示内容元素的任何一个。客户端设备能确定在由应用生成的渲染树中,待渲染的信息的每一个内容元素是否具有对应的节点。客户端设备能遍历由应用生成的渲染树。在遍历渲染树的同时,对信息资源的每一个内容元素,客户端设备能识别每一个内容元素对应于渲染树中的相应节点。客户端设备能确定渲染树具有正确数目的内容对象。正确数目的节点可以对应于待渲染的内容元素的数目。客户端设备能识别渲染树的节点的长度、基数或数目并且与待渲染的信息资源的内容元素的数目比较。如果内容对象的数目与待渲染的内容元素的数目匹配,则客户端设备能确定渲染树具有正确数目的节点。
客户端设备能确定是否变更渲染树。在一些实施方式中,客户端设备能识别用于渲染树中的节点的每一个的渲染性能。在一些实施方式中,客户端设备能识别用于在信息资源中指定的每一个内容元素的格式和属性。在一些实施方式中,客户端设备能识别用于在信息资源中指定的每一个内容元素的样式规则。在遍历渲染树的同时,对信息资源的每一个内容元素,客户端设备能识别渲染树的对应节点和用于相应节点的一个或多个渲染性能。客户端设备能将用于对应节点的一个或多个渲染性能与信息资源的相应内容元素的性能或属性比较。如果存在至少一个节点,该至少一个节点与对应的内容元素的性能或属性不匹配或不具有等效映射,则客户端设备能确定变更用于信息资源的相应内容元素的渲染树的对应节点。如果渲染树的所有节点均与对应的内容元素的性能或属性匹配或具有等效映射,则客户端设备能确定不变更用于信息资源的相应内容元素的渲染树的对应节点。
使用由应用生成的布局,客户端设备能确定是否以第二格式成功地显示内容元素的任何一个。客户端设备能确定在布局中,待渲染的信息的每一个内容元素是否具有对应的子布局。客户端设备能遍历由应用生成的布局。在遍历该布局的同时,对信息资源的每一个内容元素,客户端设备能识别每一个内容元素对应于渲染树中的相应子布局。客户端设备能确定该布局具有正确数目的内容对象。正确数目的子布局可以对应于待渲染的内容元素的数目。客户端设备能识别该布局的子布局的长度、基数或数目并且与待渲染的信息资源的内容元素的数目比较。如果布局中的子布局的数目与待渲染的内容元素的数目匹配,则客户端设备能确定该布局具有正确数目的子布局。
客户端设备能确定是否变更由应用生成的布局。在一些实施方式中,客户端设备能识别用于在信息资源中指定的内容元素的每一个的格式和属性。在一些实施方式中,客户端设备能识别用于在信息资源中指定的内容元素的每一个的样式规则。在一些实施方式中,客户端设备能访问用于文档树的每一个内容对象的性能或属性。在一些实施方式中,客户端设备能访问用于对象模型的内容对象的每一个的匹配样式规则中的性能或属性。在遍历布局时,对信息资源的每一个内容元素,该客户端设备能识别对应的子布局和用于该子布局的渲染信息。客户端设备能将用于对应节点的一个或多个渲染性能与信息资源的相应内容元素的性能或属性或相应样式规则的性能或属性比较。如果有至少一个子布局,该至少一个子布局与对应的内容元素的性能或属性不匹配或不具有等效的映射,则客户端设备能确定变更用于信息资源的相应内容元素的布局的对应的子布局。如果布局的所有子布局均与对应内容元素的性能或属性匹配或具有等效的映射,则客户端设备能确定不变更用于信息资源的相应内容元素的布局的对应子布局。
客户端设备能响应于确定以第二格式成功地显示第一内容元素,显示信息资源的第二内容元素(框418)。响应于确定以第二格式成功地显示第一内容元素,应用能显示信息资源的附加或其他内容元素。在一些实施方式中,应用能确定是否从数据处理系统、内容提供者计算设备或内容发布者计算设备接收附加内容元素。如果应用确定还未接收到第二内容元素,则应用能将对附加内容的请求传送到数据处理系统、内容提供者计算设备或内容发布者计算设备。应用能接着从数据处理系统、内容提供者计算设备或内容发布者计算设备接收第二内容元素。如果应用确定接收到附加内容元素,则应用能从客户端设备的本地存储器或缓存器检索或访问附加内容元素。应用能使该应用处理第二内容元素并且使客户端设备渲染和显示第二内容元素。
当由客户端设备传送并且由数据处理系统接收对附加内容的请求、肯定通告或否定通告时,数据处理系统能基于对附加内容的请求、肯定通告或否定通告更新数据库。该数据库可包括一个或多个条目。每一个条目可包括按客户端标识符和应用简档排列的、对应于由相应客户端设备成功或未成功显示的格式和内容元素的接受的格式标识符和内容元素标识符的列表或集合。
在一些实施方式中,响应于从客户端设备接收对附加内容的请求或对内容的请求,数据处理系统能从该请求识别设备标识符和应用简档。数据处理系统能访问该数据库,来从在数据库上保持的一个或多个条目识别设备标识符和应用简档。从在数据库上保持的一个或多个条目,数据处理系统能基于设备标识符和应用简档,选择第一内容元素和相应格式。在一些实施方式中,数据处理系统能使用设备标识符和应用简档,从在数据库上保持的一个或多个条目识别格式标识符和内容元素标识符以选择先前在客户端设备上成功显示的格式和内容元素。
在一些实施方式中,应用能基于设备标识符和应用简档,对第一内容元素的每一个的每一种格式,计算将由客户端设备渲染或显示相应格式中的相应内容元素的成功概率。在一些实施方式中,应用能从数据库中保持的一个或多个条目,识别用于横跨多个设备标识符的应用简档的成功数和失败数。应用能基于成功数和失败数,计算将渲染或显示相应格式中的相应内容元素的成功概率。应用能基于用于信息资源的第一内容元素的每一个的每一种格式的成功概率,确定优先次序。
数据处理系统能将第一内容元素和相应格式传送到客户端设备。数据处理系统能接着从客户端设备接收肯定通告或否定通告。基于接收到肯定通告或否定通告,数据处理系统能确定客户端设备是否向客户端设备成功地渲染或显示第一内容元素和相应的格式。
如果数据处理系统确定客户端设备未成功地渲染或显示第一内容元素和相应格式(例如接收到否定通告),则数据处理系统可更新由数据库保持的一个或多个条目,来包括失败指示、对应于未由客户端设备成功渲染的内容元素和格式的内容元素标识符和格式标识符。数据处理系统可维护指示将用于信息资源上的第一内容元素的每一个的一种或多种格式传送到客户端设备的尝试次数的尝试计数的计数器。数据处理系统可接着确定尝试计数低于还是高于预定阈值。预定阈值可指示或表示在终止与客户端设备通信前,数据处理系统允许的各种格式和内容元素的传输数。如果尝试计数低于预定阈值,则数据处理系统可对一个或多个其他内容元素的每一个选择一种或多种第二格式以传送到客户端设备。如果尝试计数高于预定阈值,则数据处理系统结合数据处理系统的一个或多个其他模块,可终止数据处理系统和数据处理系统之间的通信。
响应于确定以第一格式未成功地显示第一内容元素,客户端设备可递增尝试计数。每次递增尝试计数时,客户端设备可将第一内容元素从第一格式改变成第二格式。在一些实施方式中,客户端设备能确定尝试计数高于还是低于预定阈值。如果尝试计数低于预定阈值,则客户端设备可使用第二格式继续修改第一内容元素。如果尝试计数高于或等于预定阈值,则客户端设备可终止、中止或停止内容渲染验证脚本的所有功能性。在一些实施方式中,如果尝试计数高于或等于预定阈值,则客户端设备可终止、中止或停止显示附加内容元素(诸如第二内容元素)。
如果数据处理系统确定客户端设备成功地渲染或显示第一内容元素和相应格式(例如接收到肯定通告),则数据处理系统可更新由数据库保持的一个或多个条目,来包括对应于由客户端设备成功地渲染内容元素和格式的内容元素标识符和格式标识符的成功指示。在一些实施方式中,数据处理系统能基于数据库的更新的条目选择附加内容元素,并且将选择的附加内容元素传送到客户端设备。在一些实施方式中,基于数据库的更新的条目,选择用于附加内容元素和内容元素的格式可以增加客户端设备将成功地渲染附加内容元素的概率。例如,数据库可以指示内容元素的第五格式先前导致在客户端设备上成功渲染。在对来自客户端设备的内容的后续请求中,数据处理系统能将用于内容元素的第五格式选择为将由客户端设备处理的第一格式。
图5是根据示例性实施方式,用于针对干扰在信息资源上渲染内容元素的未经授权的脚本部署对策的方法500的流程图。能由图1所示的数据处理系统110或客户端设备125、图2所示的内容显示管理系统200或图7所示的计算设备或其任何组合实现或执行本文相对于方法400所述的功能性。简单概述,客户端设备能接收具有内容渲染验证脚本的信息资源(框503)。客户端设备能执行内容渲染验证脚本(框506)。客户端设备能基于信息资源识别由在客户端设备上运行的应用生成的文档树(框509)。客户端设备能确定是否变更任何文档树内容对象(框512)。如果不变更,则客户端设备能识别将样式规则与文档树内容对象匹配的对象模型(框515)。客户端设备能确定是否变更对象模型上的匹配样式规则的任何一个(框518)。如果不变更,则客户端设备能从对象模型识别由应用生成的渲染树(框521)。客户端设备能确定是否变更渲染树的任一节点(框527)。如果不变更,则客户端设备能由渲染树识别由应用生成的布局(框530)。
如果对文档树、对象模型、渲染树或布局有任何变更,则客户端设备能递增尝试计数(框533)。客户端设备能确定尝试计数是否大于或等于阈值(框536)。如果尝试计数小于阈值,则客户端设备能确定修改计数是否大于用于相应内容元素的格式数(框539)。如果修改计数小于或等于格式数,则客户端设备能修改内容元素的格式(框542)。客户端设备能递增修改计数(框545)。如果修改计数大于格式数,则客户端设备能将对内容的请求传送到外部服务器(例如数据处理系统)(框548)。客户端设备随后能从外部服务器接收另一内容元素(框551)。如果尝试计数大于或等于阈值,则客户端设备可以不显示另一内容元素(框554)。
如果对文档树、对象模型、渲染树和布局有任何变更,则客户端设备能确定是否接收到附加内容对象(框560)。如果未接收到附加内容,则客户端设备能将对附加内容的请求传送到外部服务器(框563)。客户端设备能接着接收附加内容元素(框566)。客户端设备能在信息资源上显示附加内容元素(框569)。客户端设备能传送指示成功渲染和显示信息资源的内容元素的肯定通告(框572)。
图6是根据示例性实施方式,图示针对干扰在信息资源上渲染内容元素的未经授权的脚本部署对策的方法的流程图。能由图1所示的数据处理系统110或客户端设备125、图2所示的内容显示管理系统200或图7所示的计算设备或其任何组合实现或执行本文相对于方法600所述的功能性。数据处理系统能从客户端设备接收对信息资源的请求(框603)。数据处理系统能从该请求识别设备标识符(框606)。数据处理系统能从该请求识别应用简档(框609)。数据处理系统能基于识别的设备标识符和应用简档,选择用于信息资源上的内容元素的格式(框612)。数据处理系统能将具有被选格式的信息资源传送到客户端设备(框615)。数据处理系统能接着从客户端设备接收通告(框618)。数据处理系统能确定客户端设备是否成功地渲染用于内容元素的被选格式的至少一种格式(框621)。在一些实施例中,如果未接收到通告,则数据处理系统能确定客户端设备未成功地渲染用于内容元素的被选格式的至少一种格式。
如果客户端设备未成功地渲染用于内容元素的所有被选格式,则数据处理系统能更新数据库以包括或指示对设备标识符和应用简档,被选格式未成功(框630)。数据处理系统能接着递增尝试计数(框633)。数据处理系统能确定尝试计数是否高于阈值(框636)。如果尝试计数大于或等于阈值,则数据处理系统能终止与客户端设备通信(框639)。如果尝试计数小于阈值,则数据处理系统能选择其他格式并且从框612重复该方法600。
如果客户端设备成功地渲染用于内容元素的格式的至少一种,则数据处理系统能更新数据库以包括或指示对设备标识符和应用简档,被选格式成功(框624)。然后,数据处理系统能将附加内容元素传送到客户端设备(框627)。
图7示出根据一些实施方式,可以用来实现本文所述的计算机系统的任何一个(包括系统110及其部件,诸如内容请求模块130、内容选择模块135、脚本提供者模块140或内容渲染验证系统200及其模块,包括应用205、文档树生成器206、渲染树生成器208、显示模块210、中断器模块214、内容验证脚本220、文档树验证模块225、渲染树验证模块230、内容元素检索模块235和元素格式修改器模块240)的示例性计算机系统700的一般架构。计算机系统700能被用来经由网络105提供信息以显示。图7的计算机系统700包括可通信地耦合到存储器725的一个或多个处理器720、一个或多个通信接口705和一个或多个输出设备710(例如一个或多个显示单元)和一个或多个输入设备715。处理器720能包括在数据处理系统110或系统110的其他部件中,诸如内容请求模块130、内容选择模块135和脚本提供者模块140,或包括在客户端设备125中,诸如应用205、文档树生成器206、渲染树生成器208、显示模块210、中断器模块214、内容验证脚本220、文档树验证模块225、渲染树验证模块230、内容元素检索模块235和元素格式修改器模块240等。
在图7的计算机系统700中,存储器725可以包括任何计算机可读存储介质,并且可以存储计算机指令,诸如用于实现用于相应系统的本文所述的各种功能性的处理器可执行指令,以及与之有关、由此生成或经由通信接口或输入设备(如果存在的话)接收的任何数据。再参考图1的系统110,数据处理系统110可包括存储器725,以存储与一个或多个内容单元的库存的可用性、一个或多个内容单元的保留有关的信息等。参考图2,内容渲染验证系统200可包括存储器725,以存储信息资源、信息资源的一个或多个内容元素、每一内容元素的一种或多种格式、文档树、样式规则以及使用中断器模块的信息资源和数据生成的渲染节点等。存储器725可包括数据库150。图7所示的处理器720可以被用来执行在存储器725中存储的指令,并且这样做时,还可以从存储器读取或向存储器写入根据执行指令被处理和/或生成的各种信息。
图7所示的计算机系统700中的处理器720还可以可通信地耦合或控制通信接口705以根据执行指令,传送和接收各种信息。例如,通信接口705可以耦合到有线或无线网络、总线或其他通信装置,并且因此,允许计算机系统700将信息传送到其他设备(例如其他计算机系统)或从其接收信息。尽管在图1或2A的系统中未明确示出,但一个或多个通信接口便于系统700的部件之间的信息流。在一些实施方式中,通信接口可以被配置为(例如经由各种硬件部件或软件部件)将网站提供为计算机系统700的至少一些方面的访问门户。通信接口705的示例包括用户界面(例如网页),通过该用户界面,用户能与数据处理系统110、内容提供者计算设备115、内容发布者计算设备120或代理设备155通信。
图7所示的计算机系统700的输出设备710可以被提供以例如允许关于执行指令查看或者感知各种信息。可以提供输入设备715以允许用户在执行指令期间,进行手动调整、进行选择、输入数据或与以各种方式与处理器交互。本文进一步提供关于可以被用于本文所述的各种系统的通用计算机系统架构的附加信息。
可以以数字电路或者在有形介质上体现的计算机软件、固件或硬件(包括在本说明书中公开的结构及其结构等价物)或用其中的一个或多个的组合来实现在本说明书中描述的操作和主题的实施方式。在本说明书中描述的主题的实施方式可以实现为一个或多个计算机程序,即在计算机存储介质上编码以用于由数据处理装置执行或控制其操作的计算机程序指令的一个或多个模块。可以将程序指令编码在人工生成的传播信号上,该信号例如是被生成以对信息进行编码以用于传输到适当的接收机装置以供数据处理装置执行的机器生成的电、光或电磁信号。计算机存储介质可以是计算机可读存储设备、计算机可读存储基片、随机或串行存取存储器阵列或设备或其中的一个或多个的组合或者被包括在其中。此外,虽然计算机存储介质不是传播信号,但计算机存储介质可包括在人工生成的传播信号中编码的计算机程序的源或目的地。计算机存储介质还可以是一个或多个单独的物理部件或介质(例如,多个CD、盘或其它存储设备)或被包括在其中。
可在智能电视模块(或连接的电视模块、混合电视模块等)上实现在本文中公开的特征,该智能电视模块可包括被配置成将因特网连接与更多传统电视节目源(例如,经由电缆、卫星、广播或其它信号接收)集成的处理模块。智能电视模块可在物理上被合并到电视机中,或者可包括单独设备,诸如机顶盒、蓝光或其它数字媒体播放器、游戏控制台、旅馆电视系统及其它配套设备。智能电视模块可被配置成允许观看者在web上、在本地有线TV频道上、在卫星TV频道上搜索和查找视频、电影、照片及其它内容或者存储在本地硬盘驱动器上。机顶盒(STB)或机顶单元(STU)可包括信息电器设备,其可包含调谐器并连接到电视机和外部信号源,将信号转变成然后在电视屏幕或其它显示设备上显示的内容。还可将智能电视模块配置成提供主屏幕或顶级屏幕,其包括用于多个不同应用的图标,该应用诸如是web浏览器和多个流媒体服务、连接的电缆或卫星媒体源、其它web“信道”等。智能电视模块可进一步被配置成向用户提供电子节目指南。智能电视模块的配套应用可以可在移动计算设备上操作以向用户提供关于可用程序的附加信息,以允许用户控制智能电视模块等。在替选实施方式中,可在膝上型计算机或其它个人计算机、智能电话、其它移动电话、手持式计算机、平板PC或其它计算设备上实现特征。
在本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备或从其它源接收到的数据执行的操作。
术语“数据处理装置”、“数据处理系统”、“用户设备”或“计算设备”涵盖用于处理数据的所有种类的装置、设备以及机器,举例来说包括可编程处理器、计算机、片上系统或前述中的多个或其组合。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除硬件之外,该装置还可以包括创建用于正在讨论中的计算机程序的执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或其中的一个或多个的组合的代码。该装置和执行环境可以实现各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。内容请求模块130、内容选择模块135、脚本提供者模块140或格式优先级模块150可包括或共享一个或多个数据处理装置、计算设备或处理器。应用205、文档树生成器206、渲染树生成器208、显示模块210、中断器模块214、内容验证脚本220、文档树验证模块225、渲染树验证模块230、内容元素检索模块235和元素格式修改器模块240可包括一个或多个数据处理装置、计算设备或处理器。
可以以任何形式的编程语言来编写计算机程序(也称为程序、软件、软件应用、脚本或代码),包括编译或解释语言、声明或过程语言,并且其可以以任何形式部署,包括为独立程序或模块、部件、子例程、对象或适合于在计算环境中使用的其它单元。计算机程序可以但不需要对应于文件系统中的文件。可以将程序存储在保持其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、专用于正在讨论中的程序的单个文件中或多个协作文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。此外,可以将计算机程序部署成在位于一个位置处或跨多个位置分布并被通信网络互连的一个计算机或多个计算机上执行。
在本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行动作的一个或多个可编程处理器执行。该过程和逻辑流程还可以由专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)执行,并且可将装置实现为该专用逻辑电路。
适合于执行计算机程序的处理器举例来说包括通用和专用微处理器两者以及任何种类的数字计算机的任何一个或多个处理器。一般地,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必需元素是用于根据指令来执行动作的处理器和用于存储指令和数据的一个或多个存储设备。一般地,计算机还将包括用于存储数据的一个或多个大容量存储器件(例如,磁盘、磁光盘或光盘)或被与之操作耦合以从其接收或向其传输数据或两者。然而,计算机不需要具有此类设备。此外,可以将计算机嵌入另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收机或便携式存储设备(例如,通用串行总线(USB)闪速驱动器)。适合于存储计算机程序指令和数据的信息载体包括所有形式的非易失性存储器、介质和存储器件,举例来说,包括半导体存储器件,例如EPROM、EEPROM和闪速存储器件;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。处理器和存储器可通过专用逻辑电路来补充或合并在其中。
为了允许与用户相交互,可以将在本说明书中描述的主题的实施方式实现于计算机上,该计算机具有用于向用户显示信息的诸如CRT(阴极射线管)、等离子体或LCD(液晶显示器)监视器之类的显示设备及键盘和指向设备,诸如鼠标或轨迹球,用户可以通过其来向计算机提供输入。也可以使用其它种类的设备来提供与用户的交互;例如,提供给用户的反馈可包括任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过向用户所使用的设备发送文档和从其接收文档来与用户相交互;例如,通过响应于从web浏览器接收到的请求而向用户的客户端设备上的web浏览器发送网页。
可以将在本说明书中描述的主题的实施方式实现于计算系统中,该计算系统包括例如作为数据服务器的后端部件,或者包括中间件部件,例如应用服务器,或者包括前端部件,例如具有用户可以通过其与在本说明书中描述的主题的实施方式交互的图形用户界面或web浏览器的客户端计算机,或者一个或多个此类后端、中间件或前端部件的任何组合。系统的部件可被数字数据通信的任何形式或介质互连,例如通信网络。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如,因特网)和端对端网络(例如,自组端对端网络)。
诸如系统700或系统110之类的计算系统可以包括客户端和服务器。例如,数据处理系统110可以包括一个或多个数据中心或服务器场中的一个或多个服务器。客户端和服务器一般相互远离且通常通过通信网络相交互。客户端和服务器的关系借助于在相应计算机上运行且相互具有客户端服务器关系的计算机程序产生。在一些实施方式中,服务器向客户端设备发射数据(例如,HTML页面)(例如出于向与客户端设备相交互的用户显示数据和从其接收用户输入的目的)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
虽然本说明书包含许多特定实施方式细节,但不应将这些理解为对任何发明或可要求保护的内容的范围的限制,而是作为特定于本文所述系统和方法的具体实施方式的特征的描述。还可在单个实施方式中以组合方式实现在本说明书中在单独实施方式的背景下描述的某些特征。相反地,还可以单独地在多个实施方式中或者以任何适当的子组合来实现如在单个实施方式的背景下描述的各种特征。此外,虽然上文可将特征描述为以某些组合方式作用且甚至在最初这样要求保护,但在某些情况下可以将来自要求保护的组合的一个或多个特征从该组合移除,并且要求保护的组合可针对子组合或子组合的变体。
类似地,虽然在图中按照特定顺序来描述操作,但不应将这理解为要求按照所示的特定顺序或按照连续次序来执行此类操作,或者执行所有所示操作,以实现期望的结果。在一些情况下,可以按照不同的次序来执行在权利要求中记载的动作并仍实现期望的结果。另外,在附图中描述的过程不一定要求所示的特定次序或连续次序以实现期望结果。
在某些情况下,多任务和并行处理可能是有利的。此外,不应将上述实施方式中的各种系统部件的分离理解为在所有实施方式中都要求这样的分离,并且应理解的是一般地可以将所述程序部件和系统在单个软件产品中集成在一起或者封装成多个软件产品。例如,内容请求模块130、内容选择模块135和脚本提供者模块140可以是数据处理系统110的一部分、单个模块、具有一个或多个处理模块的逻辑设备、一个或多个服务器或搜索引擎的一部分。此外,应用205、文档树生成器206、渲染树生成器208、显示模块210、中断器模块214、内容验证脚本220、文档树验证模块225、渲染树验证模块230、内容元素检索模块235和元素格式修改器模块240可以是客户端设备125的一部分、单个模块或具有一个或多个处理模块的逻辑设备。
现在已描述了某些说明性实施方式和实施方式,但显而易见的是前述内容是说明性而非限制性的,是以示例的方式呈现的。具体地,虽然在本文中呈现的许多示例涉及方法动作或系统元素的特定组合,但可以以其它方式将那些动作和那些元素组合以达到相同的目的。仅结合一个实施方式讨论的动作、元素和特征不意图被从其它实施方式或实施方式中的类似角色排除。
本文所使用的短语和术语是出于描述的目的且不应视为是限制性的。“包括”、“具有”、“包含”、“涉及”、“以...为特征”、“特征在于”及其在本文中的变体的使用意图涵盖其后列出的项目、其等价物和附加项目以及由其后排他地列出的项目组成的替选实施方式。在一个实施方式中,本文所述的系统和方法由所述元素、动作或部件中的一个、多于一个的组合或全部组成。
对在本文中被以单数引用的系统和方法的实施方式或元素或动作的任何引用也可以涵盖包括多个这些元素的实施方式,并且在本文中对任何实施方式或元素或动作的复数形式的任何引用也可涵盖仅包括单个元素的实施方式。以单数或复数形式的引用不意图使本公开的系统或方法、其部件、动作或元素限于单数或复数配置。基于任何信息、动作或元素的对任何动作或元素的引用可包括其中该动作或元素至少部分地基于任何信息、动作或元素的实施方式。
在本文中公开的任何实施方式可被与任何其它实施方式或实施例组合,或者对“实施方式”、“一些实施方式”、“替选实施方式”、“各种实施方式”、“一个实施方式”等的引用不一定是互斥的,并且意图指示结合该实施方式所述的特定特征、结构或特性可被包括在至少一个实施方式中。如本文所使用的此类术语不一定全部引用同一实施方式。可以与在本文中公开的方面和实施方式一致的任何方式包括性地或排他性地将任何实施方式与任何其它实施方式组合。
可将对“或”的引用理解为包括性的,使得使用“或”所述的任何术语可指示所述术语中的单个、多于一个以及全部中的任何一个。
在附图、详细描述或任何权利要求中的技术特征后跟附图标记的情况下,该附图标记是出于增加附图、详细描述以及权利要求的可理解性的唯一目的而包括的。因此,附图标记及其存在都对任何要求的元素的范围没有任何限制性效果。
在不脱离其特性的情况下可用其它特定形式来体现本文所述的系统和方法。虽然在本文中提供的示例涉及属于应用的滚动事件,但本文所述的系统和方法能包括应用于其他环境。前述实施方式是说明性的而非限制所述系统和方法。本文所述的系统和方法的范围因此由所附权利要求而不是前述描述指示,并且在权利要求的等价物的意义和范围内的改变被涵盖在其中。

Claims (14)

1.一种防止干扰在信息资源上渲染内容元素的方法,包括:
由客户端设备从数据处理系统接收信息资源,所述信息资源包括内容渲染验证脚本和第一内容元素,所述内容渲染验证脚本包括计算机可执行指令以使所述客户端设备:
以从用于所述第一内容元素的多种格式选择的第一格式渲染所述第一内容元素以在所述信息资源上显示;
确定以所述第一格式未成功地显示所述第一内容元素;以及
响应于确定以所述第一格式未成功地显示所述第一内容元素,以从所述多种格式选择的第二格式渲染所述第一内容元素以在所述信息资源上显示,
其中,所述内容渲染验证脚本包括响应于确定以所述第一格式未成功地显示所述第一内容元素,使所述客户端设备防止显示第二内容项目的计算机可执行指令。
2.根据权利要求1所述的方法,其中,渲染所述第一内容元素以在所述信息资源上显示进一步包括识别用于渲染所述信息资源的渲染树,所述渲染树包括一个或多个节点;以及
其中,确定以所述第一格式未成功地显示所述第一内容元素进一步包括确定所述渲染树的一个或多个节点中的任何一个不对应于所述第一内容元素。
3.根据权利要求1所述的方法,其中,渲染所述第一内容元素以在所述信息资源上显示进一步包括识别用于渲染所述信息资源的渲染树,所述渲染树包括一个或多个节点,以及
其中,确定以所述第一格式未成功地显示所述第一内容元素进一步包括确定将所述第二内容元素显示为所述第一内容元素上的叠层。
4.根据权利要求1所述的方法,其中,渲染所述第一内容元素以在所述信息资源上显示进一步包括识别从所述信息资源生成的文档树,所述文档树包括多个内容对象,以及
其中,确定以所述第一格式未成功地显示所述第一内容元素进一步包括确定变更所述文档树的至少一个内容对象。
5.根据权利要求1所述的方法,其中,渲染所述第一内容元素以在所述信息资源上显示进一步包括识别基于所述信息资源生成的对象模型,所述对象模型包括多个内容对象,每一个内容对象包括对应的样式规则,以及
其中,确定以所述第一格式未成功地显示所述第一内容元素进一步包括确定变更所述对象模型的至少一个样式规则。
6.根据权利要求1所述的方法,其中,以所述第二格式渲染所述第一内容元素以在所述信息资源上显示进一步包括:通过包括所述第二格式来修改所述第一内容元素,所述第二格式指定与所述第一格式不同的、用于所述第一内容元素的视觉特性。
7.根据权利要求1所述的方法,其中,接收所述信息资源进一步包括:接收包括所述第一内容元素的信息资源,所述第一内容元素包括所述多种格式;以及
其中,所述脚本包括计算机可执行指令,以使所述客户端设备响应于确定以渲染所述第一内容元素的多种格式中的紧接在前格式未成功地显示所述第一内容元素,以所述多种格式的接连格式,接连地渲染所述第一内容元素。
8.根据权利要求1所述的方法,其中,接收所述信息资源进一步包括:接收包括所述第一内容元素的信息资源,所述第一内容元素包括所述多种格式、和指定用于由所述客户端设备处理的所述多种格式的选择顺序的优先次序;以及
其中,以所述第二格式渲染所述第一内容元素以在所述信息资源上显示进一步包括:基于所述优先次序,从包括在所述第一内容元素中的所述多种格式选择继所述第一格式后的第二格式。
9.根据权利要求1所述的方法,其中,所述内容渲染验证脚本进一步使所述客户端设备:
维护指示在所述信息资源上显示所述第一内容元素的尝试次数的计数器;
响应于确定在所述信息资源上以所述第一格式未成功地显示所述第一内容元素,递增指示尝试次数的所述计数器;以及
确定指示尝试次数的所述计数器低于预定阈值;以及
其中,以所述第二格式渲染所述第一内容元素以在所述信息资源上显示进一步包括:响应于确定指示尝试次数的所述计数器低于所述预定阈值,使用所述第二格式修改所述第一内容元素。
10.根据权利要求1所述的方法,进一步包括:
确定以所述第二格式成功地显示所述第一内容元素;以及
响应于确定以所述第二格式成功地显示所述第一内容元素,将指示在所述信息资源上成功地渲染所述第一内容元素的通告传送到所述数据处理系统,所述通告包括所述客户端设备的设备标识符和所述第二格式的格式标识符。
11.根据权利要求10所述的方法,其中,接收所述通告使所述数据处理系统基于所述设备标识符和所述格式标识符,更新由所述数据处理系统维护的数据库,所述数据库包括对每一个设备标识符,识别与成功显示的格式对应的接受格式标识符的集合的多个条目。
12.根据任一在前权利要求所述的方法,进一步包括:
由所述客户端设备将对内容的请求传送到所述数据处理系统,所述请求包括设备标识符和应用简档,接收所述请求使所述数据处理系统:
选择包括所述多种格式的所述第一内容元素;
对所述多种格式的每一种,基于所述设备标识符和所述应用简档,计算将在所述信息资源上显示相应的格式的所述第一内容元素的成功概率;以及
基于对于所述多种格式的每一种的成功概率,确定指定用于由所述客户端设备处理的所述多种格式的选择顺序的优先次序。
13.一种系统设备,包括:
一个或多个处理器;以及
至少一个存储器,所述至少一个存储器存储计算机可读指令,所述计算机可读指令被配置成使所述一个或多个处理器执行根据权利要求1至12中的任一项所述的方法。
14.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质具有计算机可执行指令,所述计算机可执行指令当被执行时使得一个或多个处理器执行根据权利要求1至12中的任一项所述的方法。
CN201680001924.0A 2016-02-01 2016-05-27 针对干扰在信息资源上渲染内容元素的未授权脚本部署对策的系统和方法 Active CN107408189B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410054691.7A CN117909603A (zh) 2016-02-01 2016-05-27 防止干扰在信息资源上渲染内容元素的系统和方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662289699P 2016-02-01 2016-02-01
US62/289,699 2016-02-01
PCT/US2016/034600 WO2017135984A1 (en) 2016-02-01 2016-05-27 Systems and methods for deploying countermeasures against unauthorized scripts interfering with the rendering of content elements on information resources

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202410054691.7A Division CN117909603A (zh) 2016-02-01 2016-05-27 防止干扰在信息资源上渲染内容元素的系统和方法

Publications (2)

Publication Number Publication Date
CN107408189A CN107408189A (zh) 2017-11-28
CN107408189B true CN107408189B (zh) 2024-02-02

Family

ID=56133064

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680001924.0A Active CN107408189B (zh) 2016-02-01 2016-05-27 针对干扰在信息资源上渲染内容元素的未授权脚本部署对策的系统和方法

Country Status (4)

Country Link
US (2) US11068584B2 (zh)
EP (2) EP3561712B1 (zh)
CN (1) CN107408189B (zh)
WO (1) WO2017135984A1 (zh)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9787686B2 (en) * 2013-04-12 2017-10-10 Airwatch Llc On-demand security policy activation
EP3561712B1 (en) 2016-02-01 2020-08-26 Google LLC Systems and methods for deploying countermeasures against unauthorized scripts interfering with the rendering of content elements on information resources
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11244367B2 (en) 2016-04-01 2022-02-08 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US10467432B2 (en) 2016-06-10 2019-11-05 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11210420B2 (en) 2016-06-10 2021-12-28 OneTrust, LLC Data subject access request processing systems and related methods
US10510031B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
US11222309B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11336697B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US10606916B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US11410106B2 (en) 2016-06-10 2022-08-09 OneTrust, LLC Privacy management systems and methods
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10909265B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11238390B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Privacy management systems and methods
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US10282559B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11503071B2 (en) * 2019-05-30 2022-11-15 Yahoo Ad Tech Llc Identifying fraudulent requests for content
CN110727434B (zh) * 2019-10-21 2023-07-04 百度在线网络技术(北京)有限公司 渲染方法、装置、电子设备及存储介质
US20230059754A1 (en) * 2020-01-28 2023-02-23 Hitachi Vantara Llc Methods, apparatuses and systems for managing a multi-tenant application system
US11611629B2 (en) * 2020-05-13 2023-03-21 Microsoft Technology Licensing, Llc Inline frame monitoring
US11562024B2 (en) * 2020-05-21 2023-01-24 Intuit Inc. Method and system for traversing an object graph using traversal context objects
WO2022011142A1 (en) 2020-07-08 2022-01-13 OneTrust, LLC Systems and methods for targeted data discovery
WO2022026564A1 (en) * 2020-07-28 2022-02-03 OneTrust, LLC Systems and methods for automatically blocking the use of tracking tools
WO2022032072A1 (en) 2020-08-06 2022-02-10 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
WO2022060860A1 (en) 2020-09-15 2022-03-24 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
US11526624B2 (en) 2020-09-21 2022-12-13 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
EP4241173A1 (en) 2020-11-06 2023-09-13 OneTrust LLC Systems and methods for identifying data processing activities based on data discovery results
US11687528B2 (en) 2021-01-25 2023-06-27 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
WO2022170047A1 (en) 2021-02-04 2022-08-11 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
US11494515B2 (en) 2021-02-08 2022-11-08 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
US20240098109A1 (en) 2021-02-10 2024-03-21 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
US11775348B2 (en) 2021-02-17 2023-10-03 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
WO2022178219A1 (en) 2021-02-18 2022-08-25 OneTrust, LLC Selective redaction of media content
US11533315B2 (en) 2021-03-08 2022-12-20 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
CN113297218B (zh) * 2021-05-20 2022-01-07 广州光点信息科技有限公司 一种多系统数据交互方法、装置及系统
US11836212B2 (en) * 2021-12-03 2023-12-05 Atlassian Pty Ltd. Systems and methods for rendering interactive web pages
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677481B1 (en) * 2008-09-30 2014-03-18 Trend Micro Incorporated Verification of web page integrity
CN104081742A (zh) * 2011-12-12 2014-10-01 诺基亚公司 用于提供联合服务账户的方法和装置
CN104137104A (zh) * 2012-02-24 2014-11-05 高通股份有限公司 基于共享元信息的网页的协作式加载
TW201547247A (zh) * 2014-06-13 2015-12-16 Vivotek Inc 網頁認證方法與系統

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6271840B1 (en) 1998-09-24 2001-08-07 James Lee Finseth Graphical search engine visual index
KR100458516B1 (ko) * 2001-12-28 2004-12-03 한국전자통신연구원 웹-리소스 불법 변경 감지 장치 및 그 방법
US7660857B2 (en) 2003-11-21 2010-02-09 Mindshare Design, Inc. Systems and methods for automatically updating electronic mail access lists
US7877703B1 (en) * 2005-03-14 2011-01-25 Seven Networks, Inc. Intelligent rendering of information in a limited display environment
US7788577B2 (en) * 2005-09-23 2010-08-31 Google Inc. Displaying information on a mobile device
US7756333B2 (en) * 2006-04-26 2010-07-13 Microsoft Corporation Document layout verification
US20080027866A1 (en) * 2006-07-26 2008-01-31 Halcrow Michael A System and method for authenticating file content
US8646071B2 (en) * 2006-08-07 2014-02-04 Symantec Corporation Method and system for validating site data
US20080155392A1 (en) * 2007-03-02 2008-06-26 Marengo Intellectual Property Ltd. Integrity Checker for Web Browser Document
AU2007201652B2 (en) * 2007-04-13 2010-09-02 Canon Kabushiki Kaisha Laying out graphical elements on a page
US7987140B2 (en) 2008-02-26 2011-07-26 International Business Machines Corporation Digital rights management of captured content based on criteria regulating a combination of elements
FR2941312B1 (fr) * 2009-01-19 2017-06-23 Cie Ind Et Financiere D'ingenierie Ingenico Procede de securisation d'interface entre un utilisateur et une application, systeme, terminal et produit programme d'ordinateur correspondants.
US9237311B2 (en) * 2009-02-06 2016-01-12 At&T Intellectual Property I, Lp Network architecture and method for application deployment
US20130061132A1 (en) * 2010-05-19 2013-03-07 Li-Wei Zheng System and method for web page segmentation using adaptive threshold computation
CN102541917B (zh) * 2010-12-23 2015-04-08 国际商业机器公司 用于验证Web页面布局的方法和系统
US10303526B2 (en) * 2011-03-08 2019-05-28 Facebook, Inc. Device specific handling of user interface components
JP5977023B2 (ja) * 2011-11-07 2016-08-24 株式会社スクウェア・エニックス・ホールディングス 描画システム、プログラム、及び記録媒体
US10262148B2 (en) * 2012-01-09 2019-04-16 Visa International Service Association Secure dynamic page content and layouts apparatuses, methods and systems
EP2642715A1 (en) 2012-03-20 2013-09-25 British Telecommunications public limited company Method and system for malicious code detection
US9015581B2 (en) * 2012-03-26 2015-04-21 Vistaprint Schweiz Gmbh Self-adjusting document layouts using system optimization modeling
GB2507749A (en) * 2012-11-07 2014-05-14 Ibm Ensuring completeness of a displayed web page
US10078626B1 (en) * 2012-11-27 2018-09-18 Amazon Technologies, Inc. Automated layout testing of content
US9280523B2 (en) * 2013-01-23 2016-03-08 Go Daddy Operating Company, LLC System for conversion of website content
WO2014127535A1 (en) * 2013-02-22 2014-08-28 Google Inc. Systems and methods for automated content generation
US20140258849A1 (en) * 2013-03-06 2014-09-11 Google Inc. Automatic Alignment of a Multi-Dimensional Layout
US9355223B2 (en) 2013-03-29 2016-05-31 Citrix Systems, Inc. Providing a managed browser
US8671352B1 (en) * 2013-05-07 2014-03-11 Axure Software Solutions, Inc. Variable dimension version editing for graphical designs
US9231975B2 (en) * 2013-06-27 2016-01-05 Sap Se Safe script templating to provide reliable protection against attacks
US9311422B2 (en) * 2013-09-12 2016-04-12 Adobe Systems Incorporated Dynamic simulation of a responsive web page
IL309121A (en) * 2013-09-12 2024-02-01 Wix Com Ltd A system and method for automatically converting websites and interactive applications to support mobile devices and other display environments
US9575941B1 (en) * 2013-10-01 2017-02-21 Google Inc. Dynamic adjustment to content for a display device
US20150154778A1 (en) * 2013-11-29 2015-06-04 Calgary Scientific, Inc. Systems and methods for dynamic image rendering
US9692787B1 (en) * 2014-01-16 2017-06-27 Google Inc. System for controlling browser extensions
US9933916B1 (en) * 2014-03-19 2018-04-03 VCE IP Holding Company LLC Methods, systems, and computer readable mediums for providing user interface information associated with a computing system
US9792267B2 (en) * 2014-03-31 2017-10-17 NIIT Technologies Ltd Simplifying identification of potential non-visibility of user interface components when responsive web pages are rendered by disparate devices
US10241978B2 (en) * 2014-06-09 2019-03-26 Entit Software Llc Measuring compatibility of viewers by leveraging user-provided element definitions
US9432383B2 (en) * 2014-07-25 2016-08-30 Sap Se Web page integrity validation
US20160048605A1 (en) * 2014-08-14 2016-02-18 International Business Machines Corporation Integrating image renditions and page layout
DE112014007077T5 (de) * 2014-10-20 2017-07-06 Google Inc. Erzeugung von inhaltselementen mit beliebiger grösse
US9965451B2 (en) * 2015-06-09 2018-05-08 International Business Machines Corporation Optimization for rendering web pages
RU2610254C2 (ru) * 2015-06-30 2017-02-08 Закрытое акционерное общество "Лаборатория Касперского" Система и способ определения измененных веб-страниц
US20170017380A1 (en) * 2015-07-13 2017-01-19 International Business Machines Corporation Mobile enabling a web application developed without mobile rendering capabilities
EP3561712B1 (en) 2016-02-01 2020-08-26 Google LLC Systems and methods for deploying countermeasures against unauthorized scripts interfering with the rendering of content elements on information resources
US10007647B2 (en) * 2016-05-23 2018-06-26 International Business Machines Corporation Adapting and validating graphical user interfaces for target devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677481B1 (en) * 2008-09-30 2014-03-18 Trend Micro Incorporated Verification of web page integrity
CN104081742A (zh) * 2011-12-12 2014-10-01 诺基亚公司 用于提供联合服务账户的方法和装置
CN104137104A (zh) * 2012-02-24 2014-11-05 高通股份有限公司 基于共享元信息的网页的协作式加载
TW201547247A (zh) * 2014-06-13 2015-12-16 Vivotek Inc 網頁認證方法與系統

Also Published As

Publication number Publication date
US11907360B2 (en) 2024-02-20
EP3335148A1 (en) 2018-06-20
EP3561712B1 (en) 2020-08-26
CN107408189A (zh) 2017-11-28
US20190220591A1 (en) 2019-07-18
EP3561712A1 (en) 2019-10-30
EP3335148B1 (en) 2019-07-10
US20210342439A1 (en) 2021-11-04
WO2017135984A1 (en) 2017-08-10
US11068584B2 (en) 2021-07-20

Similar Documents

Publication Publication Date Title
CN107408189B (zh) 针对干扰在信息资源上渲染内容元素的未授权脚本部署对策的系统和方法
US11350165B2 (en) Systems and methods for detecting improper implementation of presentation of content items by applications executing on client devices
CN112565291B (zh) 从跨源资源提供自动播放媒体内容元素
US11947377B2 (en) Systems and methods for dynamically restricting the rendering of unauthorized content included in information resources
US20210133823A1 (en) Systems and methods for automatically managing placement of content slots in an information resource
US10205678B2 (en) Systems and methods for client-side dynamic information resource activation and deactivation
US20210352150A1 (en) Maintaining session identifiers across multiple webpages for content selection
CN117909603A (zh) 防止干扰在信息资源上渲染内容元素的系统和方法

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
CB02 Change of applicant information

Address after: California, USA

Applicant after: Google Inc.

Address before: California, USA

Applicant before: Google Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant