Client API

The Aura Client API is an API Aura uses to communicate with the client application using the Aura system. Since Aura is very simple, providing just basic window and event types, there are many details it cannot know about directly. It delegates some functionality to its client (such as window stacking) and also provides the client API as a conduit for users of Aura to communicate with the embedding environment.

 
For example, Aura does not implement tooltips directly, these are a feature implemented by an client application. The Client API has knowledge of tooltips however so that a system like Views (which depends on Aura) can specify tooltip parameters. The client application can interpret this data and show the relevant UI.
 
The Aura Window class supports opaque properties, and a list of well known keys is provided as part of the Client API.
 
In the ChromeOS Desktop Window Manager, the Aura Client is a component known as the "Aura Shell" or "Ash":
 
A breakdown of responsibility between Aura and the Aura Shell (as implemented for ChromeOS):

Aura

  1. Basic window type and hierarchy
  2. Event dispatch
  3. Compositor integration
  4. Client API

Aura Shell

  1. "Window Manager" features like:
    1. Window dragging and resizing
    2. Transient and modal windows
    3. Maximize/Restore/Full Screen
    4. Tooltips
    5. Drag and drop
    6. Window embellishments like shadows
    7. Window stacking
    8. Advanced layout heuristics
  2. Shell features like:
    1. Application launcher(s)
    2. Customizable desktop background
    3. Global keyboard shortcuts
    4. Login/lock screens, screen savers, etc.

The Aura Shell implements the Aura Client API, and uses Aura and Views to achieve all of this.

 
In the diagram above, I show a second Aura Client API implementation. This is what we will end up with when we transition Desktop Chrome on Windows to use the Aura system, sometime in 2012. This will allow us to hardware accelerate our UI.
 
With this in mind, it is important to keep the Aura layer of the framework clean and simple, since much of the ChromeOS DWM functionality and feature set is not relevant to desktop Chrome, just the basic windowing primitives

UI Framework-1: Aura Client API的更多相关文章

  1. Jersey(1.19.1) - Client API, Testing services

    The Jersey client API was originally developed to aid the testing of the Jersey server-side, primari ...

  2. Net Framework 4.0 和.Net Framework 4.0 Client Profile

    Net Framework 4.0 和.Net Framework 4.0 Client Profile区别: .Net Framework 4.0毫无疑问就像是.Net Framework 2.0一 ...

  3. Dynamics 365中的Client API form context (formContext)

    适用于Dynamics 365 for Customer Engagement apps 9.x版本. 本文是一篇翻译,原文来源是微软官方文档. 本文链接:https://www.cnblogs.co ...

  4. 创建dynamics CRM client-side (二) - Client API

    如果我们想用script来直接在form上做一些修改, 我们需要用到client api 来做交互. 我们可以用以下来理解: Form <---> Client API <---&g ...

  5. ecshop /api/client/api.php、/api/client/includes/lib_api.php SQL Injection Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 ECShop存在一个盲注漏洞,问题存在于/api/client/api. ...

  6. Memcached Java Client API详解

    针对Memcached官方网站提供的java_memcached-release_2.0.1版本进行阅读分析,Memcached Java客户端lib库主要提供的调用类是SockIOPool和MemC ...

  7. HBASE的读写以及client API

    一:读写思想 1.系统表 hbase:namespace 存储hbase中所有的namespace的信息 hbase:meta rowkey:hbase中所有表的region的名称 column:re ...

  8. Jersey(1.19.1) - Client API, Uniform Interface Constraint

    The Jersey client API is a high-level Java based API for interoperating with RESTful Web services. I ...

  9. Jersey(1.19.1) - Client API, Ease of use and reusing JAX-RS artifacts

    Since a resource is represented as a Java type it makes it easy to configure, pass around and inject ...

随机推荐

  1. php设计模式之责任链模式

    php设计模式之责任链模式 实际问题 你的论坛有举报功能,版主能解决粗口方面的举报,警察能解决严重一点的黄赌毒方面的举报,更严重的反政府的举报就需要由国安局来完成. 职场中每个人都有直属的上级,如果到 ...

  2. zzulioj--1712--神秘的数列(水题)

    1712: 神密的数列 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 122  Solved: 92 SubmitStatusWeb Board De ...

  3. 如何做到Ubuntu14.04下的mongdb远程访问?(图文详解)

    不多说,直接上干货! 本教程详细指导大家如何开启并设置用户权限.MongoDB默认是没有开启用户权限的,如果直接在公网服务器上如此搭建MongoDB,那么所有人都可以直接访问并修改数据库数据了. 其实 ...

  4. sql server 无法创建索引 因为对象名称和索引名称重复

    需求分析:如下图所示,给T_DD_OP1200_Final表的Id字段添加主键,保存时弹出 “T_DD_OP1200_Final”表- 无法创建索引“PK_T_DD_OP1200_Final”. 因为 ...

  5. springmvc两种非注解的处理器适配器

    <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:// ...

  6. PIC c语言

    rom类型,对于占内存的类型定义为rom类型,跟标准c中的const不一样,const跟rom不能通用,否则编译会报type qualifier dismatch 有些变量定义成了rom型,那么如果改 ...

  7. HDU 1548 A strange lift【BFS】

    题意:给出一个电梯,给出它的层数f,给出起点s,终点g,以及在每一层能够上或者下w[i]层,问至少需要按多少次按钮到达终点. 和POJ catch that cow一样,直接用了那一题的代码,发现一直 ...

  8. http扩展请求头中的x-Forwarded-For

    X-Forwarded-For格式: X-Forwarded-For: client-ip, proxy1-ip, proxy2-ip 客户端请求服务器的过程中没经过一个代理层(代理中使用了xff)那 ...

  9. SQL Server查询死锁,杀死进程解决死锁

    查询死锁进程和表 SELECT request_session_id AS spid , OBJECT_NAME(resource_associated_entity_id) AS 'table' F ...

  10. Dapper基础知识二

    在下刚毕业工作,之前实习有用到Dapper?这几天新项目想用上Dapper,在下比较菜鸟,这块只是个人对Dapper的一种总结. 2,如何使用Dapper?     首先Dapper是支持多种数据库的 ...