From a811447be0554cfa7c113c3af676d10de23ac015 Mon Sep 17 00:00:00 2001 From: "sihoons.yang" Date: Tue, 19 Jul 2016 20:37:30 +0900 Subject: [PATCH] [ITC/UTC][webkit2][NON-ACR][Update TC ewk_view_resume/ewk_view_suspend] -fix crash on ITC Change-Id: Ib6245e758868db135565aa2403d6c76d47373296 Signed-off-by: sihoons.yang --- src/itc/webkit2/ITs-webkit2-view.c | 59 ++++++++++------------ src/utc/webkit2/utc_webkit2_ewk_view_resume_func.c | 11 ++-- .../webkit2/utc_webkit2_ewk_view_suspend_func.c | 15 ++++-- 3 files changed, 47 insertions(+), 38 deletions(-) diff --git a/src/itc/webkit2/ITs-webkit2-view.c b/src/itc/webkit2/ITs-webkit2-view.c index 5bbf838..6db542e 100755 --- a/src/itc/webkit2/ITs-webkit2-view.c +++ b/src/itc/webkit2/ITs-webkit2-view.c @@ -75,7 +75,8 @@ static void Webkit_EFL_LoadProgress(void* data, Evas_Object* eObject, void* data static void Webkit_EFL_LoadStarted(void* data, Evas_Object* eObject, void* dataFinished) { FPRINTF("[Line : %d][%s] Webkit_EFL_LoadStarted Invoked\\n", __LINE__, API_NAMESPACE); - Webkit_EFL_main_loop_quit(); + ewk_view_suspend(objWebkit_EFL_view.webview); + ewk_view_resume(objWebkit_EFL_view.webview); } /** @@ -127,7 +128,7 @@ static void Webkit_EFL_ScriptExecutionFinished(Evas_Object* webview, const char* /** * @function Webkit_emergency_exit_func -* @description emrgency exit function +* @description emrgency exit function * @parameter user data * @return NA */ @@ -141,7 +142,7 @@ static Eina_Bool Webkit_emergency_exit_func(void* user_data) { /** * @function Webkit_intercept_request_callback -* @description callback function +* @description callback function * @parameter Evas_Object* o, Ewk_Intercept_Request* intercept_request, void* user_data * @return NA */ @@ -223,7 +224,7 @@ int ITc_ewk_view_add_p(void) g_type_init(); ewk_context_default_get(); #endif //End TV - + Evas_Object* pWindow = elm_win_add(NULL, "TC Launcher", ELM_WIN_BASIC); if ( NULL == pWindow ) { @@ -2041,26 +2042,25 @@ int ITc_ewk_view_suspend_p(void) return 1; } - evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,progress", Webkit_EFL_LoadProgress, NULL); + evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,started", Webkit_EFL_LoadStarted, NULL); + evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished, NULL); evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError, NULL); g_bWebkit_EFL_LoadSuccess = false; if ( EINA_TRUE != ewk_view_url_set(objWebkit_EFL_view.webview, pPath) ) { FPRINTF("[Line : %d][%s] ewk_view_url_set returned error on API call\\n", __LINE__, API_NAMESPACE); - evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,progress", Webkit_EFL_LoadProgress); - evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError); + evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,started", Webkit_EFL_LoadStarted); + evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished); + evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError); Webkit_EFLDestroyWebKitView(); return 1; } Webkit_EFL_main_loop_begin(); - //Target API - ewk_view_suspend(objWebkit_EFL_view.webview); - ewk_view_resume(objWebkit_EFL_view.webview); - - evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,progress", Webkit_EFL_LoadProgress); + evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,started", Webkit_EFL_LoadStarted); + evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished); evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError); Webkit_EFLDestroyWebKitView(); return 0; @@ -2101,8 +2101,8 @@ int ITc_ewk_view_resume_p(void) return 1; } - evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished, NULL); evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,started", Webkit_EFL_LoadStarted, NULL); + evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished, NULL); evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError, NULL); g_bWebkit_EFL_LoadSuccess = false; if ( EINA_TRUE != ewk_view_url_set(objWebkit_EFL_view.webview, pPath) ) @@ -2116,9 +2116,6 @@ int ITc_ewk_view_resume_p(void) } Webkit_EFL_main_loop_begin(); - ewk_view_suspend(objWebkit_EFL_view.webview); - //Target API - ewk_view_resume(objWebkit_EFL_view.webview); evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,started", Webkit_EFL_LoadStarted); evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished); @@ -2890,7 +2887,7 @@ int ITc_ewk_view_html_string_load_p(void) * @description To test ewk_view_html_string_load * @scenario Call ewk_view_evaluate_javascript * @apicovered ewk_view_evaluate_javascript -* @passcase When ewk_view_evaluate_javascript is successful +* @passcase When ewk_view_evaluate_javascript is successful * @failcase If target API fails or return invalid value * @precondition None * @postcondition None @@ -2911,7 +2908,7 @@ int ITc_ewk_view_evaluate_javascript_p(void) } evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished, NULL); evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError, NULL); - + if ( EINA_TRUE != ewk_view_url_set(objWebkit_EFL_view.webview, pPath) ) { FPRINTF("[Line : %d][%s] ewk_view_url_set returned error on API call\\n", __LINE__, API_NAMESPACE); @@ -2920,10 +2917,10 @@ int ITc_ewk_view_evaluate_javascript_p(void) Webkit_EFLDestroyWebKitView(); return 1; } - + Eina_Bool bResult = EINA_FALSE; Webkit_EFL_main_loop_begin(); - + bResult = ewk_view_evaluate_javascript(objWebkit_EFL_view.webview, "sendResult",TEST_STRING); if ( EINA_TRUE != bResult ) { @@ -2952,7 +2949,7 @@ static void Webkit_EFL_message_handler_add(Evas_Object* view, Ewk_Script_Message if (!strcmp(name,"MyJavaScriptInterface")) { FPRINTF("[Line : %d][%s]Inside callback \"Webkit_EFL_message_handler_add - Same message received\"\\n", __LINE__, API_NAMESPACE); - } + } else { FPRINTF("[Line : %d][%s]Inside callback \"Webkit_EFL_message_handler_add - Mismatch Received sent message\"\\n", __LINE__, API_NAMESPACE); @@ -2971,7 +2968,7 @@ static void Webkit_EFL_message_handler_add(Evas_Object* view, Ewk_Script_Message * @description To test ITc_ewk_view_javascript_message_handler_add_p * @scenario Call ITc_ewk_view_javascript_message_handler_add_p * @apicovered ITc_ewk_view_javascript_message_handler_add_p -* @passcase When ITc_ewk_view_javascript_message_handler_add_p is successful +* @passcase When ITc_ewk_view_javascript_message_handler_add_p is successful * @failcase If target API fails or return invalid value * @precondition None * @postcondition None @@ -2990,14 +2987,14 @@ int ITc_ewk_view_javascript_message_handler_add_p(void) return 1; } - Eina_Bool bResult = EINA_FALSE; - + Eina_Bool bResult = EINA_FALSE; + evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished, NULL); evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError, NULL); evas_object_smart_callback_add(objWebkit_EFL_view.webview, "message,handler,add", Webkit_EFL_message_handler_add, NULL); - + //Webkit_EFL_main_loop_begin(); - + bResult = ewk_view_javascript_message_handler_add(objWebkit_EFL_view.webview, Webkit_EFL_message_handler_add,"MyJavaScriptInterface"); if ( EINA_TRUE != bResult ) { @@ -3009,7 +3006,7 @@ int ITc_ewk_view_javascript_message_handler_add_p(void) return 1; } g_bWebkit_EFL_LoadSuccess = false; - + if ( EINA_TRUE != ewk_view_url_set(objWebkit_EFL_view.webview, pPath) ) { FPRINTF("[Line : %d][%s] ewk_view_url_set returned error on API call\\n", __LINE__, API_NAMESPACE); @@ -3019,7 +3016,7 @@ int ITc_ewk_view_javascript_message_handler_add_p(void) return 1; } Webkit_EFL_main_loop_begin(); - + if ( false == g_bWebkit_EFL_LoadSuccess ) { FPRINTF("[Line : %d][%s] Unable to set view URL; Load error occurs with file : %s\\n", __LINE__, API_NAMESPACE, pPath); @@ -3028,7 +3025,7 @@ int ITc_ewk_view_javascript_message_handler_add_p(void) Webkit_EFLDestroyWebKitView(); return 1; } - + bResult = ewk_view_script_execute(objWebkit_EFL_view.webview, TEST_JS_SCRIPT, Webkit_EFL_ScriptExecutionFinished, NULL); if ( bResult != EINA_TRUE ) { @@ -3052,7 +3049,7 @@ int ITc_ewk_view_javascript_message_handler_add_p(void) evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished); evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError); evas_object_smart_callback_del(objWebkit_EFL_view.webview, "message,handler,add", NULL); - + Webkit_EFLDestroyWebKitView(); return 0; } @@ -3122,7 +3119,7 @@ int ITc_ewk_context_intercept_request_callback_set_p(void) if(g_HttpMethod == NULL) { FPRINTF("[Line : %d][%s] http method not called \\n", __LINE__, API_NAMESPACE); evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished); - evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError); + evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError); Webkit_EFLDestroyWebKitView(); return 1; } diff --git a/src/utc/webkit2/utc_webkit2_ewk_view_resume_func.c b/src/utc/webkit2/utc_webkit2_ewk_view_resume_func.c index 2f2f569..1d402e9 100755 --- a/src/utc/webkit2/utc_webkit2_ewk_view_resume_func.c +++ b/src/utc/webkit2/utc_webkit2_ewk_view_resume_func.c @@ -38,6 +38,12 @@ static void loadError(void* data, Evas_Object* webview, void* event_info) utc_webkit2_main_loop_quit(); } +static void loadStarted(void* data, Evas_Object* eObject, void* dataFinished) +{ + ewk_view_suspend(test_view.webview); + ewk_view_resume(test_view.webview); +} + /* Startup and cleanup functions */ /** * @function utc_webkit2_ewk_view_resume_startup @@ -48,6 +54,7 @@ static void loadError(void* data, Evas_Object* webview, void* event_info) void utc_webkit2_ewk_view_resume_startup(void) { utc_webkit2_ewk_test_init(); + evas_object_smart_callback_add(test_view.webview, "load,started", loadStarted, NULL); evas_object_smart_callback_add(test_view.webview, "load,finished", loadFinished, NULL); evas_object_smart_callback_add(test_view.webview, "load,error", loadError, NULL); } @@ -60,6 +67,7 @@ void utc_webkit2_ewk_view_resume_startup(void) */ void utc_webkit2_ewk_view_resume_cleanup(void) { + evas_object_smart_callback_del(test_view.webview, "load,started", loadStarted); evas_object_smart_callback_del(test_view.webview, "load,finished", loadFinished); evas_object_smart_callback_del(test_view.webview, "load,error", loadError); utc_webkit2_ewk_test_end(); @@ -80,9 +88,6 @@ int utc_webkit2_ewk_view_resume_p(void) utc_webkit2_main_loop_begin(); assert_eq(isLoadSucceed, EINA_TRUE); - ewk_view_suspend(test_view.webview); - ewk_view_resume(test_view.webview); - return 0; } diff --git a/src/utc/webkit2/utc_webkit2_ewk_view_suspend_func.c b/src/utc/webkit2/utc_webkit2_ewk_view_suspend_func.c index 5a6c845..f55b674 100755 --- a/src/utc/webkit2/utc_webkit2_ewk_view_suspend_func.c +++ b/src/utc/webkit2/utc_webkit2_ewk_view_suspend_func.c @@ -38,6 +38,12 @@ static void loadError(void* data, Evas_Object* webview, void* event_info) utc_webkit2_main_loop_quit(); } +static void loadProgress(void *data, Evas_Object *webview, void *arg) +{ + ewk_view_suspend(test_view.webview); + ewk_view_resume(test_view.webview); +} + /* Startup and cleanup functions */ /** * @function utc_webkit2_ewk_view_suspend_startup @@ -48,7 +54,8 @@ static void loadError(void* data, Evas_Object* webview, void* event_info) void utc_webkit2_ewk_view_suspend_startup(void) { utc_webkit2_ewk_test_init(); - evas_object_smart_callback_add(test_view.webview, "load,progress", loadFinished, NULL); + evas_object_smart_callback_add(test_view.webview, "load,progress", loadProgress, NULL); + evas_object_smart_callback_add(test_view.webview, "load,finished", loadFinished, NULL); evas_object_smart_callback_add(test_view.webview, "load,error", loadError, NULL); } @@ -60,7 +67,8 @@ void utc_webkit2_ewk_view_suspend_startup(void) */ void utc_webkit2_ewk_view_suspend_cleanup(void) { - evas_object_smart_callback_del(test_view.webview, "load,progress", loadFinished); + evas_object_smart_callback_del(test_view.webview, "load,progress", loadProgress); + evas_object_smart_callback_del(test_view.webview, "load,finished", loadFinished); evas_object_smart_callback_del(test_view.webview, "load,error", loadError); utc_webkit2_ewk_test_end(); } @@ -79,7 +87,6 @@ int utc_webkit2_ewk_view_suspend_p(void) loadURL(COMMON_SAMPLE_HTML_FILE); utc_webkit2_main_loop_begin(); assert_eq(isLoadSucceed, EINA_TRUE); - ewk_view_suspend(test_view.webview); return 0; } @@ -88,7 +95,7 @@ int utc_webkit2_ewk_view_suspend_p(void) * @testcase utc_webkit2_ewk_view_suspend_n * @since_tizen 2.3 * @description Suspends the operation associated with the view object - * @scenario Check operation entered incorrect parameter + * @scenario Check operation entered incorrect parameter */ int utc_webkit2_ewk_view_suspend_n(void) { -- 2.7.4