Merge branch '0.16-dev' into jsfm-feature-1111
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/4b5672d7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/4b5672d7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/4b5672d7 Branch: refs/heads/0.16-dev Commit: 4b5672d769d1d58c6cb930df8a79f06db2f20660 Parents: 7ae75e3 ae69e1e Author: Hanks <zhanghan...@gmail.com> Authored: Mon Sep 25 20:06:16 2017 +0800 Committer: Hanks <zhanghan...@gmail.com> Committed: Mon Sep 25 20:06:16 2017 +0800 ---------------------------------------------------------------------- .travis.yml | 52 +- POSSIBLE-NOTICES-FOR-BIN-DIST | 5 +- WeexSDK.podspec | 2 - android/build.gradle | 13 +- .../commons/adapter/FrescoImageComponent.java | 2 +- android/gradle.properties | 5 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/jacoco.gradle | 43 + .../alibaba/weex/benchmark/BenchmarkTest.java | 29 +- .../playground/app/src/main/AndroidManifest.xml | 8 + .../java/com/alibaba/weex/WXPageActivity.java | 14 +- .../alibaba/weex/util/CoverageDataDumper.java | 36 + .../alibaba/weex/util/JacocoCodeCoverage.java | 93 + android/sdk/build.gradle | 6 + android/sdk/libs/armeabi/libweexjsb.so | Bin 0 -> 22556 bytes android/sdk/libs/armeabi/libweexjsc.so | Bin 7570392 -> 325660 bytes android/sdk/libs/armeabi/libweexjss.so | Bin 0 -> 6754016 bytes .../java/com/taobao/weex/WXEnvironment.java | 32 +- .../main/java/com/taobao/weex/WXSDKEngine.java | 8 +- .../java/com/taobao/weex/WXSDKInstance.java | 143 +- .../taobao/weex/adapter/IDrawableLoader.java | 11 +- .../weex/appfram/pickers/DatePickerImpl.java | 3 +- .../appfram/websocket/WebSocketCloseCodes.java | 2 +- .../java/com/taobao/weex/bridge/WXBridge.java | 14 + .../com/taobao/weex/bridge/WXBridgeManager.java | 248 ++- .../java/com/taobao/weex/bridge/WXParams.java | 9 + .../java/com/taobao/weex/common/Constants.java | 32 + .../java/com/taobao/weex/common/IWXBridge.java | 2 + .../com/taobao/weex/common/IWXDebugProxy.java | 2 + .../java/com/taobao/weex/common/WXConfig.java | 1 + .../com/taobao/weex/common/WXErrorCode.java | 14 +- .../taobao/weex/common/WXJSBridgeMsgType.java | 2 + .../com/taobao/weex/dom/ImmutableDomObject.java | 21 +- .../main/java/com/taobao/weex/dom/WXAttr.java | 147 +- .../com/taobao/weex/dom/WXCellDomObject.java | 53 +- .../java/com/taobao/weex/dom/WXDomObject.java | 26 +- .../main/java/com/taobao/weex/dom/WXEvent.java | 120 +- .../taobao/weex/dom/WXRecyclerDomObject.java | 58 +- .../main/java/com/taobao/weex/dom/WXStyle.java | 17 - .../com/taobao/weex/dom/WXTextDomObject.java | 24 +- .../dom/action/AbstractAddElementAction.java | 12 +- .../com/taobao/weex/dom/action/Actions.java | 7 +- .../taobao/weex/dom/action/AddEventAction.java | 11 +- .../weex/dom/action/CreateBodyAction.java | 12 +- .../weex/dom/action/ReloadPageAction.java | 66 + .../weex/dom/action/RemoveEventAction.java | 5 +- .../taobao/weex/dom/action/TraceableAction.java | 1 + .../com/taobao/weex/dom/binding/ELUtils.java | 125 ++ .../taobao/weex/dom/binding/WXStatement.java | 160 ++ .../com/taobao/weex/el/parse/ArrayStack.java | 75 + .../java/com/taobao/weex/el/parse/Block.java | 75 + .../java/com/taobao/weex/el/parse/Operator.java | 106 + .../com/taobao/weex/el/parse/Operators.java | 499 +++++ .../java/com/taobao/weex/el/parse/Parser.java | 485 +++++ .../java/com/taobao/weex/el/parse/Symbol.java | 37 + .../java/com/taobao/weex/el/parse/Token.java | 89 + .../ui/component/AbstractEditComponent.java | 4 +- .../weex/ui/component/AppearanceHelper.java | 18 +- .../weex/ui/component/WXBasicComponentType.java | 3 + .../taobao/weex/ui/component/WXComponent.java | 299 ++- .../com/taobao/weex/ui/component/WXDiv.java | 74 +- .../com/taobao/weex/ui/component/WXHeader.java | 4 +- .../com/taobao/weex/ui/component/WXImage.java | 82 +- .../com/taobao/weex/ui/component/WXLoading.java | 5 +- .../com/taobao/weex/ui/component/WXRefresh.java | 5 +- .../taobao/weex/ui/component/WXScroller.java | 2 +- .../com/taobao/weex/ui/component/WXSlider.java | 4 +- .../com/taobao/weex/ui/component/WXText.java | 94 +- .../taobao/weex/ui/component/WXVContainer.java | 50 +- .../weex/ui/component/binding/Layouts.java | 92 + .../weex/ui/component/binding/Statements.java | 413 ++++ .../ui/component/list/BasicListComponent.java | 209 +- .../ui/component/list/RecyclerTransform.java | 90 + .../ui/component/list/SimpleListComponent.java | 6 +- .../ui/component/list/StickyHeaderHelper.java | 71 +- .../taobao/weex/ui/component/list/WXCell.java | 65 +- .../weex/ui/component/list/WXListComponent.java | 136 +- .../list/template/CellLifecycleManager.java | 211 ++ .../list/template/TemplateStickyHelper.java | 252 +++ .../list/template/TemplateViewHolder.java | 79 + .../list/template/WXRecyclerTemplateList.java | 1460 ++++++++++++++ .../com/taobao/weex/ui/flat/FlatComponent.java | 33 + .../com/taobao/weex/ui/flat/FlatGUIContext.java | 146 ++ .../taobao/weex/ui/flat/WidgetContainer.java | 93 + .../weex/ui/flat/widget/AndroidViewWidget.java | 76 + .../taobao/weex/ui/flat/widget/BaseWidget.java | 130 ++ .../taobao/weex/ui/flat/widget/TextWidget.java | 49 + .../com/taobao/weex/ui/flat/widget/Widget.java | 51 + .../taobao/weex/ui/flat/widget/WidgetGroup.java | 54 + .../taobao/weex/ui/module/WXTimerModule.java | 9 +- .../weex/ui/view/WXBaseCircleIndicator.java | 131 +- .../com/taobao/weex/ui/view/WXFrameLayout.java | 53 +- .../com/taobao/weex/ui/view/WXImageView.java | 16 +- .../weex/ui/view/border/BorderCorner.java | 37 +- .../taobao/weex/ui/view/border/BorderUtil.java | 26 - .../weex/ui/view/border/BottomLeftCorner.java | 7 +- .../weex/ui/view/border/BottomRightCorner.java | 7 +- .../weex/ui/view/border/TopLeftCorner.java | 7 +- .../weex/ui/view/border/TopRightCorner.java | 7 +- .../listview/ExtendedLinearLayoutManager.java | 20 + .../weex/ui/view/listview/WXRecyclerView.java | 50 + .../com/taobao/weex/utils/BoxShadowUtil.java | 510 +++++ .../com/taobao/weex/utils/FunctionParser.java | 6 - .../com/taobao/weex/utils/ImageDrawable.java | 17 +- .../java/com/taobao/weex/utils/LogLevel.java | 4 +- .../java/com/taobao/weex/utils/OsVersion.java | 2 +- .../main/java/com/taobao/weex/utils/Trace.java | 4 +- .../java/com/taobao/weex/utils/WXLogUtils.java | 14 + .../com/taobao/weex/utils/WXResourceUtils.java | 4 + .../java/com/taobao/weex/utils/WXUtils.java | 41 +- .../java/com/taobao/weex/utils/WXViewUtils.java | 31 + .../com/taobao/weex/el/IfStatementTest.java | 155 ++ .../java/com/taobao/weex/el/ParserTest.java | 244 +++ .../com/taobao/weex/ui/component/WXDivTest.java | 12 +- .../taobao/weex/ui/component/WXTextTest.java | 18 +- .../ui/component/binding/BindingValueTest.java | 65 + .../ui/component/binding/StatementTest.java | 184 ++ .../ui/component/list/WXListComponentTest.java | 3 +- .../weex/ui/module/WXTimerModuleTest.java | 45 +- .../taobao/weex/bridge/WXWebsocketBridge.java | 6 + dangerfile-android.js | 108 ++ dangerfile-ios.js | 107 ++ dangerfile-jsfm.js | 105 + dangerfile.js | 8 +- doc/_config.yml | 2 + doc/_config_cn.yml | 2 + doc/source/cn/guide/index.md | 9 +- doc/source/cn/guide/integrate-to-your-app.md | 6 +- doc/source/cn/guide/set-up-env.md | 4 +- doc/source/cn/guide/tools/index.md | 1 + doc/source/cn/guide/tools/plugin.md | 77 + doc/source/cn/guide/tools/toolkit.md | 2 +- .../cn/references/advanced/extend-to-android.md | 21 +- doc/source/cn/references/common-style.md | 60 +- doc/source/cn/references/components/text.md | 6 +- doc/source/cn/references/modules/animation.md | 37 +- doc/source/cn/references/modules/dom.md | 2 +- doc/source/cn/references/weex-variable.md | 48 + doc/source/guide/index.md | 4 +- doc/source/guide/integrate-to-your-app.md | 6 +- doc/source/guide/set-up-env.md | 6 +- doc/source/guide/tools/index.md | 1 + doc/source/guide/tools/plugin.md | 68 + doc/source/guide/tools/toolkit.md | 5 +- doc/source/references/common-style.md | 58 + doc/source/references/components/text.md | 8 +- doc/source/references/modules/animation.md | 47 +- doc/source/references/modules/dom.md | 2 +- doc/source/references/weex-variable.md | 52 +- doc/themes/weex/languages/en.yml | 2 +- .../weex/layout/_partial/after-footer.ejs | 10 + doc/themes/weex/layout/_partial/header.ejs | 3 + doc/themes/weex/layout/_partial/sidebar.ejs | 3 + doc/themes/weex/source/css/index.scss | 42 +- ios/playground/WeexDemo/Scanner/WXScannerVC.m | 2 +- .../WeexDemo/WXConfigCenterDefaultImpl.m | 6 +- ios/sdk/WeexSDK.xcodeproj/project.pbxproj | 171 +- .../WeexSDK/Sources/Bridge/WXBridgeContext.m | 4 +- .../Sources/Bridge/WXDebugLoggerBridge.h | 26 - .../Sources/Bridge/WXDebugLoggerBridge.m | 213 --- ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m | 89 +- .../Component/RecycleList/WXCellSlotComponent.h | 32 + .../Component/RecycleList/WXCellSlotComponent.m | 93 + .../RecycleList/WXComponent+DataBinding.h | 31 + .../RecycleList/WXComponent+DataBinding.mm | 451 +++++ .../Component/RecycleList/WXJSASTParser.h | 100 + .../Component/RecycleList/WXJSASTParser.mm | 919 +++++++++ .../RecycleList/WXRecycleListComponent.h | 25 + .../RecycleList/WXRecycleListComponent.m | 459 +++++ .../RecycleList/WXRecycleListDataManager.h | 34 + .../RecycleList/WXRecycleListDataManager.m | 71 + .../Component/RecycleList/WXRecycleListLayout.h | 32 + .../Component/RecycleList/WXRecycleListLayout.m | 113 ++ .../RecycleList/WXRecycleListTemplateManager.h | 33 + .../RecycleList/WXRecycleListTemplateManager.m | 94 + .../RecycleList/WXRecycleListUpdateManager.h | 50 + .../RecycleList/WXRecycleListUpdateManager.m | 262 +++ .../Component/Recycler/WXMultiColumnLayout.m | 32 +- .../Recycler/WXSectionDataController.m | 2 +- .../WeexSDK/Sources/Component/WXAComponent.m | 1 + .../WeexSDK/Sources/Component/WXCellComponent.m | 4 +- .../Sources/Component/WXComponent_internal.h | 34 +- .../Sources/Component/WXCycleSliderComponent.m | 56 + .../WeexSDK/Sources/Component/WXEditComponent.m | 9 +- .../Sources/Component/WXImageComponent.m | 45 +- .../WeexSDK/Sources/Component/WXListComponent.m | 4 + .../Sources/Component/WXScrollerComponent.h | 2 + .../Sources/Component/WXScrollerComponent.m | 13 +- .../Sources/Component/WXSliderComponent.m | 53 + .../Component/WXSliderNeighborComponent.m | 14 + .../Sources/Component/WXSwitchComponent.m | 2 + .../Sources/Component/WXTextAreaComponent.m | 4 + .../WeexSDK/Sources/Component/WXTextComponent.m | 25 +- ios/sdk/WeexSDK/Sources/Component/WXTransform.m | 2 +- .../WeexSDK/Sources/Component/WXWebComponent.m | 1 + .../Sources/Controller/WXBaseViewController.m | 4 +- .../Sources/Display/WXComponent+Display.m | 2 +- ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m | 9 +- .../WeexSDK/Sources/Events/WXComponent+Events.m | 40 +- .../WeexSDK/Sources/Layout/WXComponent+Layout.m | 4 +- .../WeexSDK/Sources/Manager/WXBridgeManager.h | 13 +- .../WeexSDK/Sources/Manager/WXBridgeManager.m | 10 + .../Sources/Manager/WXComponentFactory.h | 12 + .../Sources/Manager/WXComponentFactory.m | 30 +- .../Sources/Manager/WXComponentManager.h | 21 +- .../Sources/Manager/WXComponentManager.m | 173 +- .../Sources/Manager/WXDatePickerManager.m | 8 + .../WeexSDK/Sources/Manager/WXTracingManager.h | 5 + .../WeexSDK/Sources/Manager/WXTracingManager.m | 13 +- ios/sdk/WeexSDK/Sources/Model/WXComponent.h | 19 +- ios/sdk/WeexSDK/Sources/Model/WXComponent.m | 161 +- ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m | 11 +- .../WeexSDK/Sources/Module/WXAnimationModule.m | 26 +- .../WeexSDK/Sources/Module/WXModalUIModule.m | 4 +- ios/sdk/WeexSDK/Sources/Module/WXPickerModule.m | 44 + .../WeexSDK/Sources/Module/WXPrerenderManager.h | 21 + .../WeexSDK/Sources/Module/WXPrerenderManager.m | 162 +- .../WeexSDK/Sources/Module/WXVoiceOverModule.h | 25 + .../WeexSDK/Sources/Module/WXVoiceOverModule.m | 148 ++ .../WeexSDK/Sources/Module/WXWebSocketModule.m | 1 - ios/sdk/WeexSDK/Sources/Monitor/WXMonitor.h | 1 + ios/sdk/WeexSDK/Sources/Monitor/WXMonitor.m | 1 + .../Sources/Protocol/WXAppMonitorProtocol.h | 1 + ios/sdk/WeexSDK/Sources/Utility/WXConvert.m | 26 +- ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.h | 23 +- ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.m | 86 +- ios/sdk/WeexSDK/Sources/Utility/WXLog.m | 15 +- ios/sdk/WeexSDK/Sources/Utility/WXUtility.h | 20 +- ios/sdk/WeexSDK/Sources/Utility/WXUtility.m | 4 + .../Sources/View/WXComponent+ViewManagement.m | 4 + .../Sources/WebSocket/SRWebSocket+Weex.h | 29 - .../Sources/WebSocket/SRWebSocket+Weex.m | 47 - .../Sources/WebSocket/WXWebSocketDefaultImpl.h | 25 - .../Sources/WebSocket/WXWebSocketDefaultImpl.m | 121 -- ios/sdk/WeexSDK/Sources/WeexSDK.h | 3 + ios/sdk/WeexSDK/dependency/SRWebSocket.h | 135 -- ios/sdk/WeexSDK/dependency/SRWebSocket.m | 1806 ------------------ package.json | 3 +- pre-build/native-bundle-main.js | 16 +- scripts/build_from_source.sh | 2 +- scripts/generate_apache_release.sh | 2 +- test/mocha.opts | 2 - test/pages/attributes/dom-operation.vue | 33 + test/pages/components/a-src.vue | 86 + test/pages/components/a-support-href1.vue | 58 + test/pages/components/a-support-href2.vue | 58 + test/pages/components/hyperlink.vue | 31 - test/pages/components/hyperlink_target.vue | 23 - test/pages/components/iconfont.vue | 6 +- test/pages/components/image-onload.vue | 65 + test/pages/components/image-resize.vue | 97 + test/pages/components/list-scroll.vue | 33 + test/pages/components/refresh-loading.vue | 20 +- test/pages/components/scroller-scroll.vue | 31 + test/pages/components/slider-infinite.vue | 54 + test/pages/components/textarea-placeholder.vue | 62 + test/pages/components/video-property.vue | 97 + test/pages/components/web-event.vue | 55 +- test/pages/dom-operation.vue | 33 - test/pages/image-onload.vue | 31 - test/pages/include/navbar.vue | 121 ++ test/pages/include/navpage.vue | 62 + test/pages/index.vue | 30 - test/pages/list-scroll.vue | 33 - test/pages/modules/dom-common.vue | 87 + test/pages/modules/dom-update.vue | 78 + test/pages/modules/downgrade-event.vue | 2 +- test/pages/modules/modal-event.vue | 75 +- test/pages/modules/navigator-event.vue | 101 + test/pages/modules/picker-event.vue | 6 +- test/pages/modules/stream-result.vue | 185 +- test/pages/modules/viewport-basic.vue | 62 + test/pages/modules/vue_timer.vue | 14 +- test/pages/modules/we_timer.we | 14 +- test/pages/scroller-scroll.vue | 31 - test/pages/slider-infinite.vue | 54 - test/run.sh | 27 +- test/screenshot/border-android.png | Bin 158634 -> 0 bytes test/screenshot/border-ios.png | Bin 126185 -> 128088 bytes test/screenshot/compositing-ios.png | Bin 228306 -> 229534 bytes test/screenshot/image-resize-android.png | Bin 0 -> 218804 bytes test/screenshot/image-resize-ios.png | Bin 0 -> 138103 bytes test/scripts/attributes/compositing.test.js | 5 +- test/scripts/attributes/dom.test.js | 98 + test/scripts/components/a-src.test.js | 65 + test/scripts/components/hyperlink.test.js | 44 - test/scripts/components/iconfont.test.js | 2 +- test/scripts/components/image-onload.test.js | 32 +- test/scripts/components/image-resize.test.js | 43 + test/scripts/components/input-event.test.js | 2 +- test/scripts/components/recycler.test.js | 20 +- test/scripts/components/refresh-loading.test.js | 12 +- test/scripts/components/scroll-event.test.js | 13 +- test/scripts/components/scroller-fixed.test.js | 2 +- test/scripts/components/slider-common.test.js | 4 +- test/scripts/components/slider-infinite.test.js | 4 +- test/scripts/components/switch-event.test.js | 2 +- test/scripts/components/text.test.js | 8 +- .../components/textarea-maxlength.test.js | 3 +- .../components/textarea-placeholder.test.js | 69 + test/scripts/components/video-property.test.js | 45 + test/scripts/components/web-event.test.js | 22 +- test/scripts/css/border.test.js | 3 +- test/scripts/dom.test.js | 97 - test/scripts/index.test.js | 77 - .../scripts/modules/animation-translate.test.js | 5 +- test/scripts/modules/clipboard-event.test.js | 5 +- test/scripts/modules/dom-common.test.js | 36 + test/scripts/modules/dom-update.test.js | 51 + test/scripts/modules/gesture-longpress.test.js | 5 +- test/scripts/modules/globalEvent.test.js | 2 +- test/scripts/modules/modal-event.test.js | 18 +- test/scripts/modules/navigator-event.test.js | 51 + test/scripts/modules/picker-event.test.js | 9 +- test/scripts/modules/stream-result.test.js | 20 +- test/scripts/modules/timer.test.js | 5 +- test/scripts/modules/viewport-basic.test.js | 45 + test/scripts/util.js | 58 +- 318 files changed, 15594 insertions(+), 4275 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/4b5672d7/package.json ----------------------------------------------------------------------