fixup! Use Hit_Test_Param to pass hit test infos between processes.
authorArnaud Renevier <a.renevier@samsung.com>
Wed, 8 Apr 2015 19:39:19 +0000 (12:39 -0700)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Tue, 10 Jul 2018 06:57:09 +0000 (06:57 +0000)
For some reason, I hadn't uploaded a finished patch.

Change-Id: I9d0b31fa1984d7448d87b2e25989fd59eb938b11
Signed-off-by: Arnaud Renevier <a.renevier@samsung.com>
tizen_src/ewk/efl_integration/browser/web_view_browser_message_filter.cc
tizen_src/ewk/efl_integration/common/hit_test_params.h
tizen_src/ewk/efl_integration/common/render_messages_ewk.h
tizen_src/ewk/efl_integration/eweb_view.cc
tizen_src/ewk/efl_integration/eweb_view.h
tizen_src/ewk/efl_integration/private/ewk_hit_test_private.cc
tizen_src/ewk/efl_integration/private/ewk_hit_test_private.h
tizen_src/ewk/efl_integration/renderer/render_view_observer_efl.cc
tizen_src/ewk/efl_integration/renderer/render_view_observer_efl.h
tizen_src/ewk/efl_integration/tizen_webview/public/tw_hit_test.cc
tizen_src/ewk/efl_integration/tizen_webview/public/tw_hit_test.h

index 4d7fd10..285b7eb 100644 (file)
@@ -40,8 +40,7 @@ class WebViewBrowserMessageFilterPrivate
   }
 
   void OnReceivedHitTestData(int render_view,
-                             const _Ewk_Hit_Test& hit_test_data,
-                             const NodeAttributesMap& node_attributes) {
+                             const Hit_Test_Params& params) {
     DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
     if (!web_view_)
       return;
@@ -51,7 +50,7 @@ class WebViewBrowserMessageFilterPrivate
     DCHECK(render_view_host);
 
     if (render_view_host && render_view_host->GetRoutingID() == render_view)
-      web_view_->UpdateHitTestData(hit_test_data, node_attributes);
+      web_view_->UpdateHitTestData(params);
   }
 
   void OnReceivedDidFailLoadWithError(ErrorParams error) {
@@ -60,8 +59,6 @@ class WebViewBrowserMessageFilterPrivate
   }
 
   void OnReceivedHitTestAsyncData(int render_view,
-                                  const _Ewk_Hit_Test& hit_test_data,
-                                  const NodeAttributesMap& node_attributes,
                                   const Hit_Test_Params& params,
                                   int64_t request_id) {
     DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
@@ -76,8 +73,7 @@ class WebViewBrowserMessageFilterPrivate
     DCHECK(render_view_host);
 
     if (render_view_host && render_view_host->GetRoutingID() == render_view) {
-      web_view_->DispatchAsyncHitTestData(hit_test_data,
-                                          node_attributes, params, request_id);
+      web_view_->DispatchAsyncHitTestData(params, request_id);
     }
   }
 
index f788fc6..650b86e 100644 (file)
 
 typedef std::map<std::string, std::string> NodeAttributesMap;
 
-/*
-namespace IPC {
-
-template <>
-struct ParamTraits<SkBitmap> {
-  static void Write(Message* msg, const SkBitmap& bitmap) {
-    if (!msg->WriteInt(bitmap.colorType()))
-      return;
-    if (!msg->WriteInt(bitmap.alphaType()))
-      return;
-    if (!msg->WriteInt(bitmap.width()))
-      return;
-    if (!msg->WriteInt(bitmap.height()))
-      return;
-    // XXX: should we use mapped memory instead?
-    if (!msg->WriteData(static_cast<const char*>(bitmap.getPixels()), bitmap.getSize()))
-      return;
-  }
-
-  static bool Read(const Message* m, PickleIterator* iter, SkBitmap* bitmap)  {
-    int colorType, alphaType;
-    int width, height;
-    int data_len;
-    const char* data;
-
-    if (!iter->ReadInt(&colorType))
-      return false;
-
-    if (!iter->ReadInt(&alphaType))
-      return false;
-
-    if (!iter->ReadInt(&width))
-      return false;
-
-    if (!iter->ReadInt(&height))
-      return false;
-
-    if (!iter->ReadData(&data, &data_len))
-      return false;
-
-    bitmap->setInfo(SkImageInfo::Make(width, height, static_cast<SkColorType>(colorType), static_cast<SkAlphaType>(alphaType)), 0);
-    bitmap->setPixels(static_cast<void*>(const_cast<char*>(data)));
-
-    return true;
-  }
-
-  static void Log(const SkBitmap&, std::string* l) {
-    l->append("<SkBitmap>");
-  }
-};
-
-}  // namespace IPC
-*/
-
 struct Hit_Test_Params {
   int context;
   std::string linkURI;
index f81f465..ebec84e 100644 (file)
@@ -72,12 +72,6 @@ IPC_STRUCT_TRAITS_END()
 IPC_ENUM_TRAITS(Ewk_CSP_Header_Type)
 
 IPC_ENUM_TRAITS(tizen_webview::Hit_Test_Mode)
-IPC_ENUM_TRAITS(tizen_webview::Hit_Test_Result_Context)
-
-IPC_STRUCT_TRAITS_BEGIN(_Ewk_Hit_Test::Hit_Test_Node_Data)
-  IPC_STRUCT_TRAITS_MEMBER(tagName)
-  IPC_STRUCT_TRAITS_MEMBER(nodeValue)
-IPC_STRUCT_TRAITS_END()
 
 IPC_STRUCT_TRAITS_BEGIN(DidPrintPagesParams)
   IPC_STRUCT_TRAITS_MEMBER(metafile_data_handle)
@@ -86,29 +80,6 @@ IPC_STRUCT_TRAITS_BEGIN(DidPrintPagesParams)
   IPC_STRUCT_TRAITS_MEMBER(filename)
 IPC_STRUCT_TRAITS_END()
 
-#if !defined(EWK_BRINGUP)
-IPC_STRUCT_TRAITS_BEGIN(_Ewk_Hit_Test::Hit_Test_Image_Buffer)
-  IPC_STRUCT_TRAITS_MEMBER(fileNameExtension)
-  IPC_STRUCT_TRAITS_MEMBER(imageBitmap)
-IPC_STRUCT_TRAITS_END()
-#endif
-
-IPC_STRUCT_TRAITS_BEGIN(_Ewk_Hit_Test)
-  IPC_STRUCT_TRAITS_MEMBER(context)
-  IPC_STRUCT_TRAITS_MEMBER(linkURI)
-  IPC_STRUCT_TRAITS_MEMBER(linkLabel)
-  IPC_STRUCT_TRAITS_MEMBER(linkTitle)
-  IPC_STRUCT_TRAITS_MEMBER(imageURI)
-  IPC_STRUCT_TRAITS_MEMBER(mediaURI)
-  IPC_STRUCT_TRAITS_MEMBER(isEditable)
-  IPC_STRUCT_TRAITS_MEMBER(mode)
-  IPC_STRUCT_TRAITS_MEMBER(nodeData)
-// XXX: find a better way to prevent the crash when copying SkBitmap
-#if !defined(EWK_BRINGUP)
-  IPC_STRUCT_TRAITS_MEMBER(imageData)
-#endif
-IPC_STRUCT_TRAITS_END()
-
 IPC_STRUCT_TRAITS_BEGIN(CacheParamsEfl)
   IPC_STRUCT_TRAITS_MEMBER(cache_total_capacity)
   IPC_STRUCT_TRAITS_MEMBER(cache_min_dead_capacity)
@@ -181,15 +152,12 @@ IPC_SYNC_MESSAGE_ROUTED1_1(EwkHostMsg_WrtSyncMessage,
 IPC_MESSAGE_ROUTED1(EwkHostMsg_WrtMessage,
                     Ewk_Wrt_Message_Data /* data */);
 
-IPC_MESSAGE_CONTROL3(EwkViewHostMsg_HitTestReply,
+IPC_MESSAGE_CONTROL2(EwkViewHostMsg_HitTestReply,
                     int, /* render_view_id */
-                    _Ewk_Hit_Test, /* Ewk Hit test data without node map */
-                    NodeAttributesMap /* node attributes */)
+                    Hit_Test_Params);
 
-IPC_MESSAGE_CONTROL5(EwkViewHostMsg_HitTestAsyncReply,
+IPC_MESSAGE_CONTROL3(EwkViewHostMsg_HitTestAsyncReply,
                     int, /* render_view_id */
-                    _Ewk_Hit_Test, /* Ewk Hit test data without node map */
-                    NodeAttributesMap, /* node attributes */
                     Hit_Test_Params,
                     int64_t /* request id */)
 
index 41b6b4b..1bf2b4a 100644 (file)
@@ -1518,8 +1518,7 @@ Eina_Bool EWebView::AsyncRequestHitTestDataAtBlinkCords(int x, int y,
   return EINA_FALSE;
 }
 
-void EWebView::DispatchAsyncHitTestData(const _Ewk_Hit_Test& hit_test_data,
-    const NodeAttributesMap& node_attributes, const Hit_Test_Params& params, int64_t request_id) {
+void EWebView::DispatchAsyncHitTestData(const Hit_Test_Params& params, int64_t request_id) {
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
 
   std::map<int64_t, WebViewAsyncRequestHitTestDataCallback*>::iterator it =
@@ -1527,8 +1526,6 @@ void EWebView::DispatchAsyncHitTestData(const _Ewk_Hit_Test& hit_test_data,
 
   if (it == hit_test_callback_.end())
     return;
-  _Ewk_Hit_Test data = hit_test_data;
-  data.nodeData.PopulateNodeAtributes(node_attributes);
   scoped_ptr<tizen_webview::Hit_Test> hit_test(new tizen_webview::Hit_Test(params));
 
   it->second->Run(hit_test.get(), this);
@@ -1549,7 +1546,7 @@ tizen_webview::Hit_Test* EWebView::RequestHitTestDataAtBlinkCoords(int x, int y,
     ScopedAllowWaitForLegacyWebViewApi allow_wait;
     render_view_host->Send(new EwkViewMsg_DoHitTest(render_view_host->GetRoutingID(), x, y, mode));
     hit_test_completion_.Wait();
-    return new tizen_webview::Hit_Test(hit_test_data_);
+    return new tizen_webview::Hit_Test(hit_test_params_);
   }
 
   return NULL;
@@ -1573,11 +1570,9 @@ void EWebView::EvasToBlinkCords(int x, int y, int* view_x, int* view_y) {
   }
 }
 
-void EWebView::UpdateHitTestData(const _Ewk_Hit_Test& hit_test_data,
-                                 const NodeAttributesMap& node_attributes) {
+void EWebView::UpdateHitTestData(const Hit_Test_Params& params) {
   DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
-  hit_test_data_ = hit_test_data;
-  hit_test_data_.nodeData.PopulateNodeAtributes(node_attributes);
+  hit_test_params_ = params;
   hit_test_completion_.Signal();
 }
 
index dd22370..3f7e491 100644 (file)
@@ -362,8 +362,8 @@ class EWebView {
       tizen_webview::Hit_Test_Mode mode,
       tizen_webview::View_Hit_Test_Request_Callback,
       void* user_data);
-  void DispatchAsyncHitTestData(const _Ewk_Hit_Test& hit_test_data, const NodeAttributesMap& node_attributes, const Hit_Test_Params& params, int64_t request_id);
-  void UpdateHitTestData(const _Ewk_Hit_Test& hit_test_data, const NodeAttributesMap& node_attributes);
+  void DispatchAsyncHitTestData(const Hit_Test_Params& params, int64_t request_id);
+  void UpdateHitTestData(const Hit_Test_Params& params);
 
   int current_find_request_id() const { return current_find_request_id_; }
   bool PlainTextGet(tizen_webview::View_Plain_Text_Get_Callback callback, void* user_data);
@@ -525,7 +525,7 @@ class EWebView {
   double progress_;
   mutable std::string title_;
   mutable std::string pem_certificate_;
-  _Ewk_Hit_Test hit_test_data_;
+  Hit_Test_Params hit_test_params_;
   base::WaitableEvent hit_test_completion_;
   IDMap<MHTMLCallbackDetails, IDMapOwnPointer> mhtml_callback_map_;
   double page_scale_factor_;
index 6669fa5..d05dafb 100644 (file)
@@ -10,25 +10,6 @@ static void FreeHitTestAttributeHashData(void* data) {
    eina_stringshare_del(static_cast<Eina_Stringshare*>(data));
  }
 
-_Ewk_Hit_Test::_Ewk_Hit_Test()
-  : context(TW_HIT_TEST_RESULT_CONTEXT_DOCUMENT),
-    isEditable(false),
-    mode(TW_HIT_TEST_MODE_DEFAULT) {
-}
-
-_Ewk_Hit_Test::_Ewk_Hit_Test(const _Ewk_Hit_Test& other)
-    : context(other.context),
-      linkURI(other.linkURI),
-      linkTitle(other.linkTitle),
-      linkLabel(other.linkLabel),
-      imageURI(other.imageURI),
-      mediaURI(other.mediaURI),
-      isEditable(other.isEditable),
-      mode(other.mode),
-      nodeData(other.nodeData),
-      imageData(other.imageData) {
-}
-
 _Ewk_Hit_Test::_Ewk_Hit_Test(const Hit_Test_Params& params)
     : context(static_cast<tizen_webview::Hit_Test_Result_Context>(params.context)),
       linkURI(params.linkURI),
@@ -37,68 +18,33 @@ _Ewk_Hit_Test::_Ewk_Hit_Test(const Hit_Test_Params& params)
       imageURI(params.imageURI),
       mediaURI(params.mediaURI),
       isEditable(params.isEditable),
-      mode(static_cast<tizen_webview::Hit_Test_Mode>(params.mode)) {
-  nodeData.tagName = params.nodeData.tagName;
-  nodeData.nodeValue = params.nodeData.nodeValue;
-  imageData.fileNameExtension = params.imageData.fileNameExtension;
-  params.imageData.imageBitmap.deepCopyTo(&(imageData.imageBitmap));
+      mode(static_cast<tizen_webview::Hit_Test_Mode>(params.mode)),
+      nodeData(params.nodeData),
+      imageData(params.imageData) {
+}
 
-  const NodeAttributesMap& nodeAttributes = params.nodeData.attributes;
+_Ewk_Hit_Test::Hit_Test_Node_Data::Hit_Test_Node_Data(const Hit_Test_Params::Node_Data& data)
+    : tagName(data.tagName),
+      nodeValue(data.nodeValue),
+      attributeHash(NULL) {
+  const NodeAttributesMap& nodeAttributes = data.attributes;
   if (!nodeAttributes.empty()) {
-    nodeData.attributeHash = eina_hash_string_superfast_new(FreeHitTestAttributeHashData);
+    attributeHash = eina_hash_string_superfast_new(FreeHitTestAttributeHashData);
     NodeAttributesMap::const_iterator attributeMapEnd = nodeAttributes.end();
     for (NodeAttributesMap::const_iterator it = nodeAttributes.begin(); it != attributeMapEnd; ++it) {
-      eina_hash_add(nodeData.attributeHash, it->first.c_str(), eina_stringshare_add(it->second.c_str()));
+      eina_hash_add(attributeHash, it->first.c_str(), eina_stringshare_add(it->second.c_str()));
     }
   }
-
-}
-
-_Ewk_Hit_Test::Hit_Test_Node_Data::Hit_Test_Node_Data()
-    : attributeHash(NULL) {
-}
-
-// deep copy of node map
-_Ewk_Hit_Test::Hit_Test_Node_Data::Hit_Test_Node_Data(const Hit_Test_Node_Data& other)
-    : tagName(other.tagName),
-      nodeValue(other.nodeValue),
-      attributeHash(NULL) {
-  if (!other.attributeHash)
-    return;
-
-  Eina_Iterator* it = eina_hash_iterator_tuple_new(other.attributeHash);
-  void* data;
-  attributeHash = eina_hash_string_superfast_new(FreeHitTestAttributeHashData);
-  while (eina_iterator_next(it, &data)) {
-    Eina_Hash_Tuple* t = static_cast<Eina_Hash_Tuple*>(data);
-    eina_hash_add(attributeHash,
-      static_cast<const char*>(t->key), eina_stringshare_add(static_cast<const char*>(t->data)));
-  }
-  eina_iterator_free(it);
 }
 
 _Ewk_Hit_Test::Hit_Test_Node_Data::~Hit_Test_Node_Data() {
   eina_hash_free(attributeHash);
 }
 
-void _Ewk_Hit_Test::Hit_Test_Node_Data::PopulateNodeAtributes(const NodeAttributesMap& nodeAttributes) {
-  if (nodeAttributes.empty())
-    return;
-
-  attributeHash = eina_hash_string_superfast_new(FreeHitTestAttributeHashData);
-  NodeAttributesMap::const_iterator attributeMapEnd = nodeAttributes.end();
-  for (NodeAttributesMap::const_iterator it = nodeAttributes.begin(); it != attributeMapEnd; ++it) {
-    eina_hash_add(attributeHash, it->first.c_str(), eina_stringshare_add(it->second.c_str()));
-  }
-}
-
-_Ewk_Hit_Test::Hit_Test_Image_Buffer::Hit_Test_Image_Buffer() {
-}
-
 //(warning) deep copy of skia buffer.
-_Ewk_Hit_Test::Hit_Test_Image_Buffer::Hit_Test_Image_Buffer(const Hit_Test_Image_Buffer& other)
-    : fileNameExtension(other.fileNameExtension) {
-  other.imageBitmap.deepCopyTo(&imageBitmap);
+_Ewk_Hit_Test::Hit_Test_Image_Buffer::Hit_Test_Image_Buffer(const Hit_Test_Params::Image_Data& data):
+  fileNameExtension(data.fileNameExtension) {
+  data.imageBitmap.deepCopyTo(&(imageBitmap));
 }
 
 // Use compiler generated constructor and destructor
index 045365e..4f13b43 100644 (file)
@@ -19,13 +19,7 @@ typedef std::map<std::string, std::string> NodeAttributesMap;
 
 // Structure used to report hit test result
 struct _Ewk_Hit_Test {
-  _Ewk_Hit_Test();
-  _Ewk_Hit_Test(const _Ewk_Hit_Test& other);
-  _Ewk_Hit_Test(const Hit_Test_Params& params);
-  // TODO: check whether bitwise assignment is acceptable (e.g, attributeHash)
-  // If not, proper implementation for below should be added:
-  // _Ewk_Hit_Test& operator=(const _Ewk_Hit_Test&);
-  // Note: Currently the operation is used in EwebView::UpdateHitTestData().
+  explicit _Ewk_Hit_Test(const Hit_Test_Params& params);
 
   tizen_webview::Hit_Test_Result_Context context;
   std::string linkURI;
@@ -38,10 +32,8 @@ struct _Ewk_Hit_Test {
 
   // store node attributes in a map
   struct Hit_Test_Node_Data {
-    Hit_Test_Node_Data();
-    Hit_Test_Node_Data(const Hit_Test_Node_Data& other);
+    explicit Hit_Test_Node_Data(const Hit_Test_Params::Node_Data& data);
     ~Hit_Test_Node_Data();
-    void PopulateNodeAtributes(const NodeAttributesMap& nodeAttributes);
 
     std::string tagName;      // tag name for hit element
     std::string nodeValue;    // node value for hit element
@@ -50,8 +42,7 @@ struct _Ewk_Hit_Test {
 
   // when hit node is image we need to store image buffer and filename extension
   struct Hit_Test_Image_Buffer {
-    Hit_Test_Image_Buffer();
-    Hit_Test_Image_Buffer(const Hit_Test_Image_Buffer& other);
+    explicit Hit_Test_Image_Buffer(const Hit_Test_Params::Image_Data& data);
 
     std::string fileNameExtension; // image filename extension for hit element
     SkBitmap imageBitmap;          // image pixels data
index a6184e3..d01cd7c 100644 (file)
@@ -86,16 +86,9 @@ bool GetGRBAValuesFromString(const std::string& input, int* r, int* g, int* b, i
   return parsing_status;
 }
 
-void PopulateEwkHitTestData(const blink::WebHitTestResult& web_hit_test, _Ewk_Hit_Test* ewk_hit_test, Hit_Test_Params* params)
+void PopulateEwkHitTestData(const blink::WebHitTestResult& web_hit_test, Hit_Test_Params* params)
 {
-  DCHECK(ewk_hit_test);
-  ewk_hit_test->imageURI = web_hit_test.absoluteImageURL().string().utf8();
-  ewk_hit_test->linkURI = web_hit_test.absoluteLinkURL().string().utf8();
-  ewk_hit_test->mediaURI = web_hit_test.absoluteMediaURL().string().utf8();
-  ewk_hit_test->linkLabel = web_hit_test.textContent().utf8();
-  ewk_hit_test->linkTitle = web_hit_test.titleDisplayString().utf8();
-  ewk_hit_test->isEditable = web_hit_test.isContentEditable();
-
+  DCHECK(params);
   params->imageURI = web_hit_test.absoluteImageURL().string().utf8();
   params->linkURI = web_hit_test.absoluteLinkURL().string().utf8();
   params->mediaURI = web_hit_test.absoluteMediaURL().string().utf8();
@@ -117,23 +110,16 @@ void PopulateEwkHitTestData(const blink::WebHitTestResult& web_hit_test, _Ewk_Hi
   if (web_hit_test.node().isTextNode())
     context |= TW_HIT_TEST_RESULT_CONTEXT_TEXT;
 
-  ewk_hit_test->context = static_cast<tizen_webview::Hit_Test_Result_Context>(context);
-  ewk_hit_test->nodeData.attributeHash = 0;
-
   params->context = static_cast<tizen_webview::Hit_Test_Result_Context>(context);
 
-  if (ewk_hit_test->mode & TW_HIT_TEST_MODE_NODE_DATA) {
-    ewk_hit_test->nodeData.tagName = web_hit_test.node().nodeName().utf8();
-    ewk_hit_test->nodeData.nodeValue = web_hit_test.node().nodeValue().utf8();
+  if (params->mode & TW_HIT_TEST_MODE_NODE_DATA) {
     params->nodeData.tagName = web_hit_test.node().nodeName().utf8();
     params->nodeData.nodeValue = web_hit_test.node().nodeValue().utf8();
   }
 
-  if ((ewk_hit_test->mode & TW_HIT_TEST_MODE_IMAGE_DATA) &&
-      (ewk_hit_test->context & TW_HIT_TEST_RESULT_CONTEXT_IMAGE)) {
+  if ((params->mode & TW_HIT_TEST_MODE_IMAGE_DATA) &&
+      (params->context & TW_HIT_TEST_RESULT_CONTEXT_IMAGE)) {
     blink::WebElement hit_element = web_hit_test.node().toConst<blink::WebElement>();
-    ewk_hit_test->imageData.imageBitmap = hit_element.imageContents().getSkBitmap();
-    ewk_hit_test->imageData.fileNameExtension = hit_element.imageFilenameExtension().utf8();
 
     params->imageData.imageBitmap = hit_element.imageContents().getSkBitmap();
     params->imageData.fileNameExtension = hit_element.imageFilenameExtension().utf8();
@@ -141,18 +127,15 @@ void PopulateEwkHitTestData(const blink::WebHitTestResult& web_hit_test, _Ewk_Hi
 }
 
 void PopulateNodeAttributesMapFromHitTest(const blink::WebHitTestResult& web_hit_test,
-                                          NodeAttributesMap* attributes,
                                           Hit_Test_Params* params)
 {
-  DCHECK(attributes && params);
+  DCHECK(params);
 
   if (!web_hit_test.node().isElementNode())
     return;
 
   blink::WebElement hit_element = web_hit_test.node().toConst<blink::WebElement>();
   for (unsigned int i = 0; i < hit_element.attributeCount(); i++) {
-    attributes->insert(std::pair<std::string, std::string>(
-        hit_element.attributeLocalName(i).utf8(), hit_element.attributeValue(i).utf8()));
     params->nodeData.attributes.insert(std::pair<std::string, std::string>(
         hit_element.attributeLocalName(i).utf8(), hit_element.attributeValue(i).utf8()));
   }
@@ -300,30 +283,24 @@ void RenderViewObserverEfl::OnGetSelectionStyle()
 
 void RenderViewObserverEfl::OnDoHitTest(int view_x, int view_y, tizen_webview::Hit_Test_Mode mode)
 {
-  _Ewk_Hit_Test hit_test_result;
-  NodeAttributesMap attributes;
   Hit_Test_Params params;
 
-  if (DoHitTest(view_x, view_y, mode, &hit_test_result, &attributes, &params)) {
-    Send(new EwkViewHostMsg_HitTestReply(routing_id(), hit_test_result, attributes));
+  if (DoHitTest(view_x, view_y, mode, &params)) {
+    Send(new EwkViewHostMsg_HitTestReply(routing_id(), params));
   }
 }
 
 void RenderViewObserverEfl::OnDoHitTestAsync(int view_x, int view_y, tizen_webview::Hit_Test_Mode mode, int64_t request_id)
 {
-  _Ewk_Hit_Test hit_test_result;
-  NodeAttributesMap attributes;
   Hit_Test_Params params;
 
-  if (DoHitTest(view_x, view_y, mode, &hit_test_result, &attributes, &params)) {
-    Send(new EwkViewHostMsg_HitTestAsyncReply(routing_id(), hit_test_result, attributes, params, request_id));
+  if (DoHitTest(view_x, view_y, mode, &params)) {
+    Send(new EwkViewHostMsg_HitTestAsyncReply(routing_id(), params, request_id));
   }
 }
 
-bool RenderViewObserverEfl::DoHitTest(int view_x, int view_y, tizen_webview::Hit_Test_Mode mode, _Ewk_Hit_Test* hit_test_result, NodeAttributesMap* attributes, Hit_Test_Params* params)
+bool RenderViewObserverEfl::DoHitTest(int view_x, int view_y, tizen_webview::Hit_Test_Mode mode, Hit_Test_Params* params)
 {
-  DCHECK(hit_test_result);
-  DCHECK(attributes);
   DCHECK(params);
 
   if (!render_view() || !render_view()->GetWebView())
@@ -336,12 +313,11 @@ bool RenderViewObserverEfl::DoHitTest(int view_x, int view_y, tizen_webview::Hit
   if (web_hit_test_result.node().isNull())
     return false;
 
-  hit_test_result->mode = mode;
   params->mode = mode;
 
-  PopulateEwkHitTestData(web_hit_test_result, hit_test_result, params);
-  if (hit_test_result->mode & TW_HIT_TEST_MODE_NODE_DATA)
-    PopulateNodeAttributesMapFromHitTest(web_hit_test_result, attributes, params);
+  PopulateEwkHitTestData(web_hit_test_result, params);
+  if (params->mode & TW_HIT_TEST_MODE_NODE_DATA)
+    PopulateNodeAttributesMapFromHitTest(web_hit_test_result, params);
 
   return true;
 }
index 5d70219..087317e 100644 (file)
@@ -69,7 +69,7 @@ class RenderViewObserverEfl: public content::RenderViewObserver {
   void OnGetSelectionStyle();
   void OnDoHitTest(int x, int y, tizen_webview::Hit_Test_Mode mode);
   void OnDoHitTestAsync(int view_x, int view_y, tizen_webview::Hit_Test_Mode mode, int64_t request_id);
-  bool DoHitTest(int view_x, int view_y, tizen_webview::Hit_Test_Mode mode, _Ewk_Hit_Test* hit_test_result, NodeAttributesMap* attributes, Hit_Test_Params* params);
+  bool DoHitTest(int view_x, int view_y, tizen_webview::Hit_Test_Mode mode, Hit_Test_Params* params);
   void OnPrintToPdf(int width, int height, const base::FilePath& filename);
   void OnGetMHTMLData(int callback_id);
   void OnSetDrawsTransparentBackground(bool enabled);
index e5a5fa3..55e6ad7 100644 (file)
 
 namespace tizen_webview {
 
-Hit_Test::Hit_Test()
-    : impl (new _Ewk_Hit_Test) {
-}
-
-Hit_Test::Hit_Test(const Hit_Test& other)
-    : impl (new _Ewk_Hit_Test(*other.impl)) {
-}
-
-Hit_Test::Hit_Test(const Hit_Test_Impl& impl_)
-    : impl (new _Ewk_Hit_Test(impl_)) {
-}
-
 Hit_Test::Hit_Test(const Hit_Test_Params& params)
     : impl (new _Ewk_Hit_Test(params)) {
 }
@@ -31,18 +19,6 @@ Hit_Test::~Hit_Test() {
   delete impl;
 }
 
-Hit_Test& Hit_Test::operator=(const Hit_Test& other) {
-  if (this != &other) {
-    Hit_Test temp (other);
-    Swap(temp);
-  }
-  return *this;
-}
-
-void Hit_Test::Swap(Hit_Test& other) {
-  std::swap(impl, other.impl);
-}
-
 tizen_webview::Hit_Test_Result_Context Hit_Test::GetResultContext() const {
   return impl->context;
 }
index cd07418..603be74 100644 (file)
@@ -57,11 +57,8 @@ enum Hit_Test_Result_Context {
 
 class Hit_Test {
  public:
-  Hit_Test();
-  Hit_Test(const Hit_Test& other);
-  Hit_Test(const Hit_Test_Params& params);
+  explicit Hit_Test(const Hit_Test_Params& params);
   ~Hit_Test();
-  Hit_Test& operator=(const Hit_Test& other);
 
   Hit_Test_Result_Context GetResultContext() const;
 
@@ -86,12 +83,6 @@ class Hit_Test {
   typedef _Ewk_Hit_Test Hit_Test_Impl;
   Hit_Test_Impl* impl;
 
-  // construct directly from the impl class;
-  explicit Hit_Test(const Hit_Test_Impl& impl_);
-
-  // utility function
-  void Swap(Hit_Test& other);
-
   friend class ::EWebView;
 };