Remove an erroneous scroll callback calls from ScrollDetector::OnChangeScrollOffset.
authorSanghyup Lee <sh53.lee@samsung.com>
Fri, 20 Nov 2015 01:20:29 +0000 (10:20 +0900)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Tue, 10 Jul 2018 07:55:23 +0000 (07:55 +0000)
This fixes a scrolling issue/crash.

Since renderer process perform all scrolling operation,
we don't have to handle this events on browser side.
Furthermore browser process handles this event using
ScrollDetector object which emits EFL's smart callbacks,
but there are no events registered on this callback.

Original M42 patch: http://165.213.202.130/gerrit/#/c/82644/

Bug: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=13283
Bug: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=14702

Change-Id: Id6fcf4120a0d396a3dbbbd6fb5c378666b0671b5
Signed-off-by: Sanghyup Lee <sh53.lee@samsung.com>
tizen_src/ewk/efl_integration/eweb_view_callbacks.h
tizen_src/ewk/efl_integration/scroll_detector.cc
tizen_src/ewk/efl_webview_app/app.c
tizen_src/ewk/unittest/utc_blink_ewk_view_scroll_by_func.cpp [deleted file]

index 13fb677..59cd966 100644 (file)
@@ -114,10 +114,6 @@ enum CallbackType {
   EdgeBottom,
   TextStyleState,
   TextSelectionMode,
-  ScrollLeft,
-  ScrollRight,
-  ScrollUp,
-  ScrollDown,
   SaveSessionData,
   UndoSize,
   RedoSize,
@@ -258,10 +254,6 @@ DECLARE_EWK_VIEW_CALLBACK(EdgeTop, "edge,top", void);
 DECLARE_EWK_VIEW_CALLBACK(EdgeBottom, "edge,bottom", void);
 DECLARE_EWK_VIEW_CALLBACK(EdgeRight, "edge,right", void);
 DECLARE_EWK_VIEW_CALLBACK(TextStyleState, "text,style,state", _Ewk_Text_Style*);
-DECLARE_EWK_VIEW_CALLBACK(ScrollRight, "scroll,right", void);
-DECLARE_EWK_VIEW_CALLBACK(ScrollLeft, "scroll,left", void);
-DECLARE_EWK_VIEW_CALLBACK(ScrollUp, "scroll,up", void);
-DECLARE_EWK_VIEW_CALLBACK(ScrollDown, "scroll,down", void);
 DECLARE_EWK_VIEW_CALLBACK(SaveSessionData, "save,session,data", void);
 DECLARE_EWK_VIEW_CALLBACK(UndoSize, "undo,size", size_t*);
 DECLARE_EWK_VIEW_CALLBACK(RedoSize, "redo,size", size_t*);
index 82eaebf..476081a 100644 (file)
@@ -24,15 +24,6 @@ void ScrollDetector::OnChangeScrollOffset(const gfx::Vector2d& scroll_position)
 
   DetectEdge(scroll_delta);
 
-  if (edge_Flag_ && scroll_delta.x() > 0)
-    web_view_->SmartCallback<EWebViewCallbacks::ScrollLeft>().call();
-  if (edge_Flag_ && scroll_delta.x() < 0)
-    web_view_->SmartCallback<EWebViewCallbacks::ScrollRight>().call();
-  if (edge_Flag_ && scroll_delta.y() < 0)
-    web_view_->SmartCallback<EWebViewCallbacks::ScrollDown>().call();
-  if (edge_Flag_ && scroll_delta.y() > 0)
-    web_view_->SmartCallback<EWebViewCallbacks::ScrollUp>().call();
-
   scroll_offset_changed_ = false;
 }
 
index 36fa3af..da50088 100644 (file)
@@ -496,10 +496,6 @@ int main(int argc, char** argv)
   evas_object_smart_callback_add(view, "edge,top", __edge_top_cb, 0);
   evas_object_smart_callback_add(view, "edge,bottom", __edge_bottom_cb, 0);
   evas_object_smart_callback_add(view, "text,style,state", __text_style_state_changed_cb, 0);
-  evas_object_smart_callback_add(view, "scroll,down", __scroll_down_cb, 0);
-  evas_object_smart_callback_add(view, "scroll,up", __scroll_up_cb, 0);
-  evas_object_smart_callback_add(view, "scroll,left", __scroll_left_cb, 0);
-  evas_object_smart_callback_add(view, "scroll,right", __scroll_right_cb, 0);
   evas_object_smart_callback_add(view, "back,forward,list,changed", __back_forward_list_changed_cb, 0);
   evas_object_smart_callback_add(view, "webprocess,crashed", __webprocess_crashed_cb, 0);
   evas_object_smart_callback_add(view, "undo,size", __undo_size_cb, 0);
diff --git a/tizen_src/ewk/unittest/utc_blink_ewk_view_scroll_by_func.cpp b/tizen_src/ewk/unittest/utc_blink_ewk_view_scroll_by_func.cpp
deleted file mode 100755 (executable)
index 0115572..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-// Copyright 2014 Samsung Electronics. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "utc_blink_ewk_base.h"
-
-class utc_blink_ewk_view_scroll_by : public utc_blink_ewk_base
-{
-protected:
-  static void scroll_cb(utc_blink_ewk_view_scroll_by* owner, Evas_Object* eObject, void*)
-  {
-    utc_message("[%s]", __PRETTY_FUNCTION__);
-    ASSERT_TRUE(owner);
-    owner->EventLoopStop(Success);
-  }
-
-   /* Startup function */
-  void PostSetUp()
-  {
-    evas_object_smart_callback_add(GetEwkWebView(), "scroll,right", ToSmartCallback(scroll_cb), this);
-    evas_object_smart_callback_add(GetEwkWebView(), "scroll,left", ToSmartCallback(scroll_cb), this);
-    evas_object_smart_callback_add(GetEwkWebView(), "scroll,up", ToSmartCallback(scroll_cb), this);
-    evas_object_smart_callback_add(GetEwkWebView(), "scroll,down", ToSmartCallback(scroll_cb), this);
-  }
-
-  /* Cleanup function */
-  void PreTearDown()
-  {
-    evas_object_smart_callback_del(GetEwkWebView(), "scroll,right", ToSmartCallback(scroll_cb));
-    evas_object_smart_callback_del(GetEwkWebView(), "scroll,left", ToSmartCallback(scroll_cb));
-    evas_object_smart_callback_del(GetEwkWebView(), "scroll,up", ToSmartCallback(scroll_cb));
-    evas_object_smart_callback_del(GetEwkWebView(), "scroll,down", ToSmartCallback(scroll_cb));
-  }
-
-  void LoadFinished(Evas_Object* webview)
-  {
-    EventLoopStop(Success);
-  }
-
-protected:
-  static const char* const resource;
-};
-
-const char* const utc_blink_ewk_view_scroll_by::resource="/ewk_view/index_big_red_square.html";
-
-/**
- * @brief Positive test case of ewk_view_scroll_by(),tseting scroll postion against after set, and scroll
- */
-
-TEST_F(utc_blink_ewk_view_scroll_by, scroll_by_x)
-{
-  ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(),GetResourceUrl(resource).c_str()));
-  ASSERT_EQ(Success, EventLoopStart());
-
-  int offset = 10;
-  int currentX, currentY;
-  ASSERT_EQ(EINA_TRUE, ewk_view_scroll_pos_get(GetEwkWebView(), &currentX, &currentY));
-  ASSERT_EQ(0, currentX);
-  ASSERT_EQ(0, currentY);
-
-  ewk_view_scroll_by(GetEwkWebView(), offset, 0);
-  ASSERT_EQ(Success, EventLoopStart()); // scroll,down smart callback should stop event loop
-  int newX, newY;
-  ASSERT_EQ(EINA_TRUE, ewk_view_scroll_pos_get(GetEwkWebView(), &newX, &newY));
-  ASSERT_EQ(currentY, newY); // shouldn't change
-  ASSERT_EQ(currentX + offset, newX);
-  currentX = newX;
-
-  ewk_view_scroll_by(GetEwkWebView(), 0, offset);
-  ASSERT_EQ(Success, EventLoopStart());
-  ASSERT_EQ(EINA_TRUE, ewk_view_scroll_pos_get(GetEwkWebView(), &newX, &newY));
-  ASSERT_EQ(currentX, newX);
-  ASSERT_EQ(currentY + offset, newY);
-  currentY = newY;
-
-  ewk_view_scroll_by(GetEwkWebView(), offset, offset);
-  ASSERT_EQ(Success, EventLoopStart());
-  ASSERT_EQ(EINA_TRUE, ewk_view_scroll_pos_get(GetEwkWebView(), &newX, &newY));
-  ASSERT_EQ(currentX + offset, newX);
-  ASSERT_EQ(currentY + offset, newY);
-}
-