You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by zs...@apache.org on 2017/08/01 02:55:07 UTC

[40/50] [abbrv] incubator-weex git commit: + [ios] add create finish

+ [ios] add create finish


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/486d6833
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/486d6833
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/486d6833

Branch: refs/heads/dev
Commit: 486d6833f9929562b154a10524ba75380b27eb7c
Parents: 816e1d5
Author: 齐山 <su...@163.com>
Authored: Wed Jul 26 14:30:57 2017 +0800
Committer: 齐山 <su...@163.com>
Committed: Wed Jul 26 14:30:57 2017 +0800

----------------------------------------------------------------------
 ios/playground/WeexDemo/WXDemoViewController.m  |  1 -
 .../WeexSDK/Sources/Bridge/WXBridgeContext.m    | 22 ++++++++++++++++++++
 ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m | 14 +++++++++++++
 .../Sources/Manager/WXComponentManager.m        |  1 +
 .../WeexSDK/Sources/Protocol/WXBridgeProtocol.h |  5 +++++
 5 files changed, 42 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/486d6833/ios/playground/WeexDemo/WXDemoViewController.m
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/WXDemoViewController.m b/ios/playground/WeexDemo/WXDemoViewController.m
index c77650b..81a2dae 100644
--- a/ios/playground/WeexDemo/WXDemoViewController.m
+++ b/ios/playground/WeexDemo/WXDemoViewController.m
@@ -146,7 +146,6 @@
     
     _instance.renderFinish = ^(UIView *view) {
          WXLogDebug(@"%@", @"Render Finish...");
-        [WXTracingManager startTracingWithInstanceId:weakSelf.instance.instanceId ref:nil className:nil name:nil phase:WXTracingInstant functionName:WXTRenderFinish options:nil];
         [weakSelf updateInstanceState:WeexInstanceAppear];
     };
     

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/486d6833/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m b/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m
index 526f64c..f04a0db 100644
--- a/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m
+++ b/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m
@@ -294,6 +294,28 @@ _Pragma("clang diagnostic pop") \
         return 0;
     }];
     
+    [_jsBridge registerCallCreateFinish:^NSInteger(NSString *instanceId) {
+        
+        // Temporary here , in order to improve performance, will be refactored next version.
+        WXSDKInstance *instance = [WXSDKManager instanceForID:instanceId];
+        
+        if(![weakSelf checkInstance:instance]) {
+            return -1;
+        }
+        
+        WXPerformBlockOnComponentThread(^{
+            WXComponentManager *manager = instance.componentManager;
+            if (!manager.isValid) {
+                return;
+            }
+            [manager startComponentTasks];
+            [manager createFinish];
+            [WXTracingManager startTracingWithInstanceId:instanceId ref:nil className:nil name:WXTJSCall phase:WXTracingEnd functionName:@"createFinish" options:nil];
+        });
+        
+        return 0;
+    }];
+    
     [_jsBridge registerCallNativeModule:^NSInvocation*(NSString *instanceId, NSString *moduleName, NSString *methodName, NSArray *arguments, NSDictionary *options) {
         
         WXSDKInstance *instance = [WXSDKManager instanceForID:instanceId];

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/486d6833/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m b/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m
index 3bd0b07..13d8578 100644
--- a/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m
+++ b/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m
@@ -326,6 +326,20 @@
     
     _jsContext[@"callRemoveEvent"] = WXJSCallRemoveEventBlock;
 }
+    
+- (void)registerCallCreateFinish:(WXJSCallCreateFinish)callCreateFinish
+{
+    id WXJSCallCreateFinishBlock = ^(JSValue *instanceId, JSValue *ifCallback) {
+            
+        NSString *instanceIdString = [instanceId toString];
+        
+        WXLogDebug(@"callRCreateFinish...%@", instanceIdString);
+        [WXTracingManager startTracingWithInstanceId:instanceIdString ref:nil className:nil name:WXTJSCall phase:WXTracingBegin functionName:@"createFinish" options:nil];
+        return [JSValue valueWithInt32:(int32_t)callCreateFinish(instanceIdString) inContext:[JSContext currentContext]];
+    };
+        
+    _jsContext[@"callCreateFinish"] = WXJSCallCreateFinishBlock;
+}
 
 - (void)registerCallNativeModule:(WXJSCallNativeModule)callNativeModuleBlock
 {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/486d6833/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m b/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
index ea2d4a8..e1774dd 100644
--- a/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
+++ b/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
@@ -519,6 +519,7 @@ static css_node_t * rootNodeGetChild(void *context, int i)
         WX_MONITOR_SUCCESS(WXMTNativeRender);
         
         if(instance.renderFinish){
+            [WXTracingManager startTracingWithInstanceId:instance.instanceId ref:nil className:nil name:nil phase:WXTracingInstant functionName:WXTRenderFinish options:nil];
             instance.renderFinish(rootView);
         }
     }];

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/486d6833/ios/sdk/WeexSDK/Sources/Protocol/WXBridgeProtocol.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Protocol/WXBridgeProtocol.h b/ios/sdk/WeexSDK/Sources/Protocol/WXBridgeProtocol.h
index 7cf115f..e883b20 100644
--- a/ios/sdk/WeexSDK/Sources/Protocol/WXBridgeProtocol.h
+++ b/ios/sdk/WeexSDK/Sources/Protocol/WXBridgeProtocol.h
@@ -28,6 +28,7 @@ typedef NSInteger(^WXJSCallUpdateAttrs)(NSString *instanceId,NSString *ref,NSDic
 typedef NSInteger(^WXJSCallUpdateStyle)(NSString *instanceId,NSString *ref,NSDictionary *stylesData);
 typedef NSInteger(^WXJSCallAddEvent)(NSString *instanceId,NSString *ref,NSString *event);
 typedef NSInteger(^WXJSCallRemoveEvent)(NSString *instanceId,NSString *ref,NSString *event);
+typedef NSInteger(^WXJSCallCreateFinish)(NSString *instanceId);
 typedef NSInvocation *(^WXJSCallNativeModule)(NSString *instanceId, NSString *moduleName, NSString *methodName, NSArray *args, NSDictionary *options);
 typedef void (^WXJSCallNativeComponent)(NSString *instanceId, NSString *componentRef, NSString *methodName, NSArray *args, NSDictionary *options);
 
@@ -110,6 +111,10 @@ typedef void (^WXJSCallNativeComponent)(NSString *instanceId, NSString *componen
  */
 - (void)registerCallRemoveEvent:(WXJSCallRemoveEvent)callRemoveEvent;
 /**
+ * Register callback when createFinish tasks occur
+*/
+- (void)registerCallCreateFinish:(WXJSCallCreateFinish)callCreateFinish;
+/**
  * Register callback for global js function `callNativeModule`
  */
 - (void)registerCallNativeModule:(WXJSCallNativeModule)callNativeModuleBlock;