WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
patch v2
bug109038_v2 (text/plain), 4.37 KB, created by
Mikhail Pozdnyakov
on 2013-02-06 05:24:19 PST
(
hide
)
Description:
patch v2
Filename:
MIME Type:
Creator:
Mikhail Pozdnyakov
Created:
2013-02-06 05:24:19 PST
Size:
4.37 KB
patch
obsolete
>commit 694b942a881147d8eba36485395637d3b30f14e5 >Author: Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> >Date: Wed Feb 6 14:22:30 2013 +0200 > > bug109038 > >diff --git a/Source/WebKit2/ChangeLog b/Source/WebKit2/ChangeLog >index c1a4824..ca4aa33 100644 >--- a/Source/WebKit2/ChangeLog >+++ b/Source/WebKit2/ChangeLog >@@ -1,5 +1,27 @@ > 2013-02-06 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> > >+ [WK2][EFL]REGRESSION (r141978): ewk_view_type_check api test failing >+ https://bugs.webkit.org/show_bug.cgi?id=109038 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ EFL API is defensive by its nature and expects graceful handling of wrong function arguments >+ whereas webkit implementation code does not. This patch adds new 'toEwkViewChecked' function, >+ which provides handling of wrong arguments, to be used within EFL API layer code. >+ >+ * UIProcess/API/efl/EwkView.cpp: >+ (toEwkView): >+ >+ EwkView* toEwkView(const Ewk_View_Smart_Data* smartData) is not exported anymore >+ as it's used within EwkView class only. >+ >+ (EwkView::handleTouchMove): >+ (toEwkViewChecked): >+ * UIProcess/API/efl/EwkView.h: >+ * UIProcess/API/efl/ewk_view.cpp: >+ >+2013-02-06 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> >+ > [EFL][WK2] Encapsulate Ewk View evas smart object code inside EwkView class > https://bugs.webkit.org/show_bug.cgi?id=108062 > >diff --git a/Source/WebKit2/UIProcess/API/efl/EwkView.cpp b/Source/WebKit2/UIProcess/API/efl/EwkView.cpp >index 28dcaa5..cffa984 100644 >--- a/Source/WebKit2/UIProcess/API/efl/EwkView.cpp >+++ b/Source/WebKit2/UIProcess/API/efl/EwkView.cpp >@@ -122,6 +122,12 @@ static inline Ewk_View_Smart_Data* toSmartData(Evas_Object* evasObject) > return static_cast<Ewk_View_Smart_Data*>(evas_object_smart_data_get(evasObject)); > } > >+static inline EwkView* toEwkView(const Ewk_View_Smart_Data* smartData) >+{ >+ ASSERT(smartData && smartData->priv); >+ return smartData->priv; >+} >+ > // EwkViewEventHandler implementation. > > template <Evas_Callback_Type EventType> >@@ -1340,7 +1346,7 @@ void EwkView::handleTouchUp(void* /* data */, Evas* /* canvas */, Evas_Object* e > } > > void EwkView::handleTouchMove(void* /* data */, Evas* /* canvas */, Evas_Object* ewkView, void* /* eventInfo */) >-{ >+{ > toEwkView(ewkView)->feedTouchEvents(EWK_TOUCH_MOVE); > } > #endif >@@ -1394,10 +1400,13 @@ EwkView* toEwkView(const Evas_Object* evasObject) > return toEwkView(static_cast<Ewk_View_Smart_Data*>(evas_object_smart_data_get(evasObject))); > } > >-EwkView* toEwkView(const Ewk_View_Smart_Data* smartData) >+EwkView* toEwkViewChecked(const Evas_Object* evasObject) > { >- ASSERT(smartData && smartData->priv); >- return smartData->priv; >+ if (evasObject && isViewEvasObject(evasObject)) { >+ if (Ewk_View_Smart_Data* smartData = static_cast<Ewk_View_Smart_Data*>(evas_object_smart_data_get(evasObject))) >+ return smartData->priv; >+ } >+ return 0; > } > > bool isViewEvasObject(const Evas_Object* evasObject) >diff --git a/Source/WebKit2/UIProcess/API/efl/EwkView.h b/Source/WebKit2/UIProcess/API/efl/EwkView.h >index 366d1bd..d837da0 100644 >--- a/Source/WebKit2/UIProcess/API/efl/EwkView.h >+++ b/Source/WebKit2/UIProcess/API/efl/EwkView.h >@@ -316,8 +316,11 @@ private: > }; > > EwkView* toEwkView(const Evas_Object*); >-EwkView* toEwkView(const Ewk_View_Smart_Data* smartData); > >-bool isViewEvasObject(const Evas_Object* evasObject); >+// Public EFL API expects graceful handling of wrong arguments. >+EwkView* toEwkViewChecked(const Evas_Object*); >+ >+bool isViewEvasObject(const Evas_Object*); >+ > > #endif // EwkView_h >diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp >index c53d84d..e01739e 100644 >--- a/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp >+++ b/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp >@@ -65,7 +65,7 @@ using namespace WebKit; > using namespace WebCore; > > #define EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl, ...) \ >- EwkView* impl = toEwkView(ewkView); \ >+ EwkView* impl = toEwkViewChecked(ewkView); \ > do { \ > if (!impl) { \ > EINA_LOG_CRIT("no private data for object %p", ewkView); \
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
buildbot
:
commit-queue-
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 109038
:
186823
|
186835
|
187354
|
187362