kraken 0.6.2+10 kraken: ^0.6.2+10 copied to clipboard
A high-performance, web standards-compliant rendering engine.
0.6.0 #
Features
- 重新设计并实现 Canvas
- Bridge 支持派发异步任务到 Flutter UI 线程
- 支持无限列表
- 优化手势
渲染能力
- input 支持 text-overflow: ellipsis
- 添加 filter 能力
- 支持 background-origin
- 支持 background-clip
其他
- 优化 Layout 和 Style 的计算性能
- 优化 Bridge 实现
- 兼容现有 Weex 已有的 JSC
- 在测试环境中,提供模拟点击的 API
- 优化多图场景下 Kraken 的首屏加载性能
- 支持使用 Chrome DevTools 的 Element 面板来进行调试
- scroller 实现 onscroll 事件
BugFixs
- 修复 overflow scroll 时内容滚动到最后时滚动失效
- 修复 background-attachment: local 无法生效
- 修复 Input 通过 value 设置属性,输入框显示的值没有更新
- 修复无 top 的 positioned element 的定位不对
- 修复 hittest报错
- 修复 transition 动画的启动时机问题
- 修复动态更新 transition 属性,无法触发对应的动画
- 修复align-items 与 align-self 某些组合 case 布局不正确
- 修复无 top, left 有 margin 的 position absolute 元素在 flex container 中定位不准确
- 修复设置 align-items: baseline 与 flex-wrap: wrap-reverse 时,baseline 对齐方向与 web 相反
- 修复 flex-wrap: wrap 且 flex-item 未设置 width 时 flex container 会根据剩余 height 给 flex-item 自动分配 width
- 修复 flex-item 设置 overflow: scroll 报错
- 修复 flex-wrap 为 wrap 时 flex-item 的宽度超出 container
- 修复 flex 中当 flex-item宽度总和大于 container 时,center, space-around, space-evenly 三种对齐方式 flex-item 应该整体居中展示
- 修复 flex-flow 与 flex-wrap 同时设置时有时会报错
- 修复 flex layout 下多层 div max-width 未生效
- 修复 FlexContainer 作为滚动容器,会导致 cross 轴的滚动区域计算错误
- 修复多 flex-item 设置 flex-shrink 导致 constraints 为负值出错
- 修复 flex-shrink 负值不应该生效
- 修复 flex-basis 与 width 同时存在时 flex-basis 优先级应该更高
- 修复 flex-basis 为负值时报错
- 修复多层 div 嵌套时内层 div 没有设置宽度时内部文本溢出
- 修复容器 line-height 设置 0px 导致 children 定位不对
- 修复 flex-direction column 与 flex-wrap wrap-reverse 同时存在时定位错误
- 修复 flex layout 中 flex-wrap: wrap-reverse 且 flex-direction: column 时无 width 的 flex-item 未分配宽度
- 修复 CSS url 地址不应该进行大小写转换
- 修复 flex-layout 中 flex-shrink 过的 flex-item 设置 text-align: center 后 children 未居中展示
- 修复 flex layout 中非整数的 flex-grow 未生效
- 修复 flex layout align-content center 与 flex-grow 同时存在时 flex-item 位置不对
- 修复 flex-wrap 为 wrap 的布局中 flex-item 高度不对
- 修复 Fixed 元素没有固定在屏幕上
- 修复 rax slider 动画异常
- 修复使用 x-if 进行单页应用切换会导致 UI 线程运行超载,造成卡顿。
- 修复 long-list 在两种实现的方式性能差距数倍问题
- 修复 Canvas 绘制的坐标没有进行相对尺寸转换
- 修复低版本 iOS 系统无法运行
- 修复行内元素插入块级元素,border的渲染不正确
- 修复绝对定位元素无法使用left:0, right:0, margin: auto 来实现水平居中
0.5.0 #
Features
渲染能力
- 新增 position sticky
- img 标签新增 width 和 height 属性支持
- img 标签新增 base64 data url
- Flexbox 支持 flex-wrap 属性
- Flexbox 支持 align-self 属性
- Flexbox 支持 flex, flex-flow 缩写属性
- Flexbox align-content 支持 stretch 属性
- 合并盒模型属性 padding, margin, border, background, overflow, opacity 到一个 RenderBoxModel 提升渲染性能
- rgb 支持 rgb(40%, 40%, 40%) 百分比写法
- rgb 支持 rgb(+128, 0, 0) 写法
- 新增 line-height 支持
- 新增 vertical-align 支持
- 新增 margin auto 支持
- 优化 border, background 渲染性能
- 支持局部内容重绘提升滚动性能
- 重构 transition 完整对齐 w3c 规范
API
- 支持 vibrate API
- Location API 对齐 w3c 规范
- 新增 window.onerror event
- 新增 document.all API
- 新增 Image API
- 新增 history API
- 新增 a 标签支持
- 添加跳转功能, 支持从 Kraken 内部页面跳转和从 Kraken 跳转到外部
- 新增 document.getElementById API
- 新增 document.getElementsByTagName API
- 支持 background 缩写属性
- 支持设置 scrollTop 与 scrollLeft
- 支持 window.scrollTo, window.scroll, window.scrollBy API
- asynStorage 支持 int 类型
其他
- 支持 rax-components 自动化测试
- 降级 android bridge API 到 level 16 支持 ARMV 7
- 支持通过 widget 接入 Flutter 应用
- 一个 Flutter 页面支持多页面 kraken 应用
- 统一定义常量节省内存占用
- 测试封装在 kraken widget 来跑,并行使用 2 个 widget 跑测试减少测试时间
- 新增同层渲染能力支持
- kraken widget 支持 onerror 回调
- kraken widget match flutter widget 生命周期
BugFixs
- 修复 relative 定位多帧渲染延迟
- 修复 relative 容器无法滚动
- 修复 flex item 无法通过 z-index 调整优先级
- 修复 position 在 static 与 non static 之间切换逻辑缺失
- 修复 transform 切换时动画不正确
- 修复 background 属性不支持带空格的 rgb 值
- 修复 CSSStyleDeclaration 占用内存过大
- 修复 img 标签不支持直接设置宽度
- 修复 padding, margin, border 等简写与非简写属性同时存在时未判断优先级
- 修复由于定时器未清理导致 reload crash
- 修复 input 无法正常工作
- 修复 line-height 未支持 vw/vh 单位
- 修复 border 为 0 仍然有 1px border 渲染出来
- 修复 font 不支持的值报错
- 修复 transitionStart 事件触发多次
- 修复 kraken 与浏览器默认字体大小不一致
- 修复多属性更改导致 transition 动画异常
- 修复 overflow 区域未包含超出范围的绝对定位元素
- 修复 Flex 容器嵌套时使用 padding 导致内部元素偏移不正确
- 修复 borderRadius 在 overflow hidden 情况下未生效
- 修复 padding 属性导致含有绝对定位元素的 flexbox 容器渲染异常
- 修复 Flex 容器中内部元素无法触发滚动
- 修复滚动容器内点击区域没有跟随滚动位置的问题
- 修复滚动容器会影响内部没有设置 top left 属性的绝对定位元素的偏移
- 修复flex item 无 width 时 flex item 宽度计算不正确问题
- 修复 max-width 在定位、flex-item、inline 不应该生效
- 修复滚动容器的高度计算没有按照所有内部元素的总高度来计算
- 修复创建页面数量 > 8 个之后 crash
- 修复页面销毁后内存泄漏
- 修复 element 嵌套的某些情况下 baseline 对齐与浏览器不一致
- 修复使用 transform 的动画会卡顿
- 修复 bundlePath 加载页面会阻塞 Flutter 切换动画的运行
- 修复 kraken_webview插件和webview_flutter插件注册重名的问题
- 修复使用 transform 位移后的元素 hitTest 失效
0.4.0 #
Features
渲染能力
- 支持 iframe 标签,并提供向内部 iframe 发送消息的API
- 支持 rax-slider 组件
<img />
支持本地图片缓存和 lazyload 加载方式<img />
支持 object-fit 和 object-position 属性- 完整支持 CSS transition 动画能力
- 支持 CSS subtreeVisibility
- 增加 Camera 摄像头渲染能力
- 支持 background 简便写法
- 支持 transitionend 事件
- 支持 white-space: normal 和 nowrap
- 支持 text-overflow: clip 和 ellipsis
- 支持直接使用 Element 元素的内置属性来设置功能
- video 支持使用 file:// 协议和 assets 路径
- background-image: liner-gradient 支持多重 stop 格式
- background-image: liner-gradient 支持 rgba 颜色
- JSContext 支持抛出没有捕获的异常事件,可使用 window.unhandledrejection 来捕获
- FlexItem 支持 flex-grow 和 flex-shrink 能力
- 支持 align-content: flex-end
- 添加 CSS initial 单位的支持
- 添加内联元素内添加块级元素的渲染警告
- 支持 flex 属性写法
- 支持 flex-direction: column-reverse
API
- 支持 Blob API
- 支持 URL 和 URlSearchParams API
- 提供基于 Flutter methodChannel 的 API,用于 JS 和客户端进行双向数据通信
- 添加 navigation.userAgent API
- 添加 performance API
- 添加 Clipboard API
- 将 window 设置为 JS 环境中的全局变量
- 支持 mtop 请求,支持调用现有基于 mtop 的API
- Kraken 下载 bundle 添加 query 参数支持
- 支持 element.remove() API
- 支持 CustomEvent API
其他
Kraken macOS 最小系统版本兼容到 macOS 10.12
BugFixs
- 修复绝对定位元素的相对偏移基准和浏览器不一致的问题
- 修复 border-radius 无法动态更新的问题
- 修复 FlexLayout 中计算 layout 横向 size 时未区分 flex-direction 导致与纵向 size 的值相同
- 修复 flex-grow 或者 flex-shrink 存在时 flex layout size 不正确
- 修复动态切换绝对定位元素的 top left 属性而导致的渲染不正确
- 修复 transform 默认的 origin 的位置与浏览器不一致的问题
- 修复 dart 类型错误而导致的 fetch 调用超时问题
- 修复 rax-image 设置错误的代码影响渲染的问题
- 修复 Flex-item 会错误撑开自身宽度,从而影响其他元素位置的问题
- 修复 JS Bridge 销毁时存在的内容泄漏问题
- 修复动态更新文本节点渲染不生效的问题
- 修复 transform: center top 水平居中不生效
- 修复 transform: scale 只设置一个只,纵轴未缩放
- 修复 rgba 写法,中间存在空格而导致的颜色解析失败
- 修复 flex-item 元素上使用 text-align:center 失效的问题
- 修复给空白文本节点设置 style 而导致的渲染异常
- 修复 location.reload() 之后,上一个页面的 JSContext 没有销毁的问题
- 修复 width 超出 max-width 的约束而导致的渲染异常
- 修复 top: 0, bottom: 0 无法撑开元素的宽度问题
- 修复 background 不支持线性渐变的问题
- 修复 background-image 不支持 url('') 的写法
- 修复 z-index 不支持负值的场景
- 修复 Element.appendChild 时,因为没有移除已经被挂载的节点从而导致死循环的问题
- 修复绝对定位元素的原始位置没有按照文档流的方式进行计算的问题
- 修复 fixed 元素没有跟随 relative 父级相对位置的问题
- 修复 linear-gradient 的角度计算错误问题
- 修复 radial-graident 区域大小计算错误问题
- 修复 mtop 跨域无法访问,增加简易的 document.cookie API 支持,允许设置 Origin Header
- 修复 flexBox 下的多个 relative children 会重叠显示
- 修复删除 relative element 时对应的 placeholder 未删掉导致 sibling 坐标错误
- 修复 transform scale 的 origin 不正确
- 修复有带有绝对定位的 image 图片计算后尺寸为 0
- 修复 Rax 无法更新文本节点的问题
- 修复 video 组件设置 loop 属性不生效的问题
- 修复 FlexItem 在不设置高度的情况下,无法被 align-items: scretch 拉伸的问题
- 修复 FlexItem 的高度超出外部约束的情况下,父级元素没有正确计算高度的问题
- 修复 如果没有设置 src 属性就无法设置宽高的问题
- 修复 borderWidth 设置为 0 依然显示的问题
- 修复 transition 存在的情况下,多个 transform 会导致动画失效的问题
- 修复 input 未指定 width 时,默认宽度失效的问题
- 修复 rgb 中的数值超出 0-255 限制而导致的渲染异常
- 修复 十六进制颜色数值超出 0-255 限制到导致的渲染异常