Warning:
This wiki has been archived and is now read-only.

HTML5/system-state-and-capabilities

From HTML5 Chinese Interest Group Wiki
Jump to: navigation, search

系统状态及性能

Navigator对象

客户端标识
自定义协议和内容处理
安全和隐私
用户界面示例
手动释放存储互斥量

External接口

Window接口的external属性必须返回一个External接口的实例。每次都必须返回同一个对象。

interface External {
  void AddSearchProvider(DOMString engineURL);
  unsigned long IsSearchProviderInstalled(DOMString engineURL);
};
此区块中不是标准描述,实现要求在下面给出。

window . external . AddSearchProvider( url )

增加一个url处OpenSearch描述文档中描述的搜索引擎。[OPENSEARCH]

OpenSearch描述文档必须与调用该方法的脚本存在于同一个服务器上。

installed = window . external . IsSearchProviderInstalled( url )

根据将url与已安装的搜索引擎的结果页URL进行比较,返回一个值。

  • 0
    没有已安装的搜索引擎匹配该url
  • 1
    一个或多个已安装的搜索引擎匹配该url,但它们都不是用户的默认搜索引擎。
  • 2
    用户的默认搜索引擎匹配该url

使用前缀匹配法比较url与已安装的搜索引擎的结果页URL。仅检查域名与调用该方法的脚本相同的结果页。

注:另一种暴露使用OpenSearch描述文档的搜索引擎的方式是使用一个search类型的link元素。

AddSearchProvider()方法,在调用时,必须执行下列步骤:

  1. 可以跳过这些步骤。用户代理可以将该方法实现为一个不进行任何操作的存根方法,或者可以依据安全、隐私或可用性原因自行忽略使用特定参数的调用。
  2. 相对于入口脚本基础URL处理该方法第一个参数的值。
  3. 如果处理失败,则跳过这些步骤。
  4. 将生产的相对URL处理为一个OpenSearch描述文档的URL[OPENSEARCH]

IsSearchProviderInstalled()方法,在调用时,必须执行下列步骤:

  1. 可以返回0并跳过这些步骤。用户代理可以将该方法实现为一个不进行任何操作的存根方法,或者可以依据安全、隐私或可用性原因自行忽略使用特定参数的调用。
  2. 如果入口脚本是一个不透明标识符(例如,其没有主机部分),则返回0并跳过这些步骤。
  3. host1入口脚本的主机部分。
  4. 相对于入口脚本基础URL处理参数scriptURL
  5. 如果处理失败,则返回0并跳过这些步骤。
  6. host2为生成的相对URL<host>部分。
  7. 如果公共后缀列表中匹配host1结尾的最长后缀与公共后缀列表中匹配host2结尾的最长后缀不同,则返回0并跳过这些步骤。[PSL]
    如果host1host2中它们共同的后缀之后的域名部分不相同,则返回0并跳过这些步骤。
    域名标签必须在应用了设置了AllowUnassigned和UseSTD3ASCIIRules标志的IDNA ToASCII算法之后,在ASCII不区分大小写机制下进行比较。[RFC3490]
  8. 搜索引擎为用户代理已知的搜索引擎中URL前缀匹配产生的相对URL的搜索引擎的列表,并使这些搜索引擎对用户可用。对于使用OpenSearch描述文档注册的搜索引擎,搜索引擎的URL相当于rel属性为“results”(默认)的Url元素给出的URL。[[OPENSEARCH]]
  9. 如果搜索引擎为空,则返回0并跳过这些步骤。
  10. 如果用户的默认搜索引擎(由用户代理决定)是搜索引擎中的一个搜索引擎,则返回2并跳过这些步骤。
  11. 返回1。