From 1d05064b4588979019f505f5708650c82bff531b Mon Sep 17 00:00:00 2001
From: Piotr Tworek
Date: Fri, 24 Apr 2015 13:20:00 +0200
Subject: [PATCH] Introduce WebContentsViewEflDelegate interface.
The idea is to avoid the need to modify upstrem WebContentsViewDelegate
interface. WebContentsViewEflDelagate is supposed to hold only extra EFL
specific extensions we'd otherwise have to put in the non Efl
counterpart of the interface. The downside is WebCotnentsViewEfl
implementation has two delegates now and care has to be taken to call
function from the correct one. Still it's probably preferable to do it
this way instead of patching chromium.
Change-Id: I6cdb0c966b11be33bf71ab3f45f172259cf063ae
Signed-off-by: Piotr Tworek
---
.../browser/web_contents/web_contents_view_efl.cc | 23 +++++++-----
.../browser/web_contents/web_contents_view_efl.h | 9 ++++-
tizen_src/chromium_impl/content/content_efl.gypi | 1 +
.../browser/web_contents_view_efl_delegate.h | 38 ++++++++++++++++++++
tizen_src/ewk/efl_integration/efl_integration.gypi | 2 ++
tizen_src/ewk/efl_integration/eweb_view.cc | 4 ++-
.../web_contents_view_delegate_ewk.cc | 24 ++-----------
.../web_contents_view_delegate_ewk.h | 21 +++--------
.../web_contents_view_efl_delegate_ewk.cc | 32 +++++++++++++++++
.../web_contents_view_efl_delegate_ewk.h | 41 ++++++++++++++++++++++
10 files changed, 146 insertions(+), 49 deletions(-)
create mode 100644 tizen_src/chromium_impl/content/public/browser/web_contents_view_efl_delegate.h
create mode 100644 tizen_src/ewk/efl_integration/web_contents_view_efl_delegate_ewk.cc
create mode 100644 tizen_src/ewk/efl_integration/web_contents_view_efl_delegate_ewk.h
diff --git a/tizen_src/chromium_impl/content/browser/web_contents/web_contents_view_efl.cc b/tizen_src/chromium_impl/content/browser/web_contents/web_contents_view_efl.cc
index 6efd718..be2ea0a 100644
--- a/tizen_src/chromium_impl/content/browser/web_contents/web_contents_view_efl.cc
+++ b/tizen_src/chromium_impl/content/browser/web_contents/web_contents_view_efl.cc
@@ -12,13 +12,14 @@
#include "base/strings/utf_string_conversions.h"
#include "content/browser/renderer_host/render_widget_host_view_efl.h"
#include "content/browser/web_contents/web_contents_impl.h"
-#include "content/common/view_messages.h"
-#include "content/public/browser/screen_orientation_dispatcher_host.h"
-#include "content/public/browser/web_contents_view_delegate.h"
#include "content/browser/web_contents/web_drag_dest_efl.h"
#include "content/browser/web_contents/web_drag_source_efl.h"
+#include "content/common/view_messages.h"
#include "content/public/browser/interstitial_page.h"
#include "content/public/browser/render_view_host.h"
+#include "content/public/browser/screen_orientation_dispatcher_host.h"
+#include "content/public/browser/web_contents_view_delegate.h"
+#include "content/public/browser/web_contents_view_efl_delegate.h"
#include "efl/window_factory.h"
#include "ui/events/event_switches.h"
#include "ui/events/platform/platform_event_source.h"
@@ -72,6 +73,10 @@ WebContentsViewEfl::WebContentsViewEfl(WebContents* contents,
WebContentsViewEfl::~WebContentsViewEfl() {
}
+void WebContentsViewEfl::SetEflDelegate(WebContentsViewEflDelegate* delegate) {
+ efl_delegate_.reset(delegate);
+}
+
void WebContentsViewEfl::CreateView(const gfx::Size& initial_size,
gfx::NativeView context) {
Evas_Object* root_window = efl::WindowFactory::GetHostWindow(web_contents_);
@@ -117,8 +122,8 @@ RenderWidgetHostViewBase* WebContentsViewEfl::CreateViewForPopupWidget(
}
void WebContentsViewEfl::SetPageTitle(const base::string16& title) {
- if (delegate_)
- delegate_->SetPageTitle(title);
+ if (efl_delegate_)
+ efl_delegate_->SetPageTitle(title);
}
void WebContentsViewEfl::UpdateDragDest(RenderViewHost* host) {
@@ -234,15 +239,15 @@ void WebContentsViewEfl::ShowPopupMenu(
const std::vector