From 7e3fa5989411890e277b2d8db09472b4f73e6c53 Mon Sep 17 00:00:00 2001 From: "zhishun.zhou" Date: Sat, 25 Oct 2014 18:10:56 +0800 Subject: [PATCH] [Tizen]Implement ewk_view_main_frame_get This patch implements ewk_view_main_frame_get. This is code migration from m34 beta to DEV, Original patch info: http://suprem.sec.samsung.net/gerrit/#/c/5160/3 Bug: http://107.108.218.239/bugzilla/show_bug.cgi?id=6006 Reviewed by: Antonio Gomes, Laszlo Gombos Change-Id: I9c50c876abee78bbf1729a627e89c66920a9840a Signed-off-by: zhishun.zhou --- tizen_src/ewk/efl_integration/public/ewk_view.cc | 4 ---- tizen_src/impl/eweb_view.cc | 13 +++++++++++++ tizen_src/impl/eweb_view.h | 3 +++ tizen_src/impl/tizen_webview/public/tw_webview.cc | 3 +++ tizen_src/impl/tizen_webview/public/tw_webview.h | 3 +++ 5 files changed, 22 insertions(+), 4 deletions(-) diff --git a/tizen_src/ewk/efl_integration/public/ewk_view.cc b/tizen_src/ewk/efl_integration/public/ewk_view.cc index 286ac20..fb4ebf3 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_view.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_view.cc @@ -806,11 +806,7 @@ Eina_Bool ewk_view_touch_events_enabled_get(const Evas_Object *view) Ewk_Frame_Ref ewk_view_main_frame_get(Evas_Object* o) { EWK_VIEW_IMPL_GET_OR_RETURN(o, impl, NULL); -#if !defined(EWK_BRINGUP) return impl->GetMainFrame(); -#else - return NULL; -#endif } Eina_Bool ewk_view_main_frame_scrollbar_visible_set(Evas_Object* ewkView, Eina_Bool visible) diff --git a/tizen_src/impl/eweb_view.cc b/tizen_src/impl/eweb_view.cc index 546751f..b520f04 100644 --- a/tizen_src/impl/eweb_view.cc +++ b/tizen_src/impl/eweb_view.cc @@ -812,6 +812,19 @@ Ewk_Settings* EWebView::GetSettings() { return settings_.get(); } +tizen_webview::Frame* EWebView::GetMainFrame() { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + + if (!frame_.get()) { + RenderViewHost* render_view_host = web_contents_->GetRenderViewHost(); + + if (render_view_host) + frame_.reset(new tizen_webview::Frame(render_view_host->GetMainFrame())); + } + + return frame_.get(); +} + void EWebView::UpdateWebKitPreferences() { RenderViewHost* render_view_host = web_contents_->GetRenderViewHost(); if (!render_view_host) diff --git a/tizen_src/impl/eweb_view.h b/tizen_src/impl/eweb_view.h index 8d2955d..203345e 100644 --- a/tizen_src/impl/eweb_view.h +++ b/tizen_src/impl/eweb_view.h @@ -74,6 +74,7 @@ #include "tizen_webview/public/tw_touch_event.h" #include "tizen_webview/public/tw_callbacks.h" #include "tizen_webview/public/tw_content_security_policy.h" +#include "tizen_webview/public/tw_frame.h" #include "tizen_webview/public/tw_input_type.h" #include "tizen_webview/public/tw_find_options.h" #include "tizen_webview/public/tw_touch_event.h" @@ -261,6 +262,7 @@ class EWebView { const char* GetUserAgentAppName() const; const char* GetSelectedText() const; Ewk_Settings* GetSettings(); + tizen_webview::Frame* GetMainFrame(); void UpdateWebKitPreferences(); void LoadHTMLString(const char* html, const char* base_uri, const char* unreachable_uri); void LoadPlainTextString(const char* plain_text); @@ -437,6 +439,7 @@ class EWebView { scoped_ptr web_contents_delegate_; std::string pending_url_request_; scoped_ptr settings_; + scoped_ptr frame_; scoped_ptr window_policy_; Evas_Object* evas_object_; bool touch_events_enabled_; diff --git a/tizen_src/impl/tizen_webview/public/tw_webview.cc b/tizen_src/impl/tizen_webview/public/tw_webview.cc index 9f81401..df5f63d 100644 --- a/tizen_src/impl/tizen_webview/public/tw_webview.cc +++ b/tizen_src/impl/tizen_webview/public/tw_webview.cc @@ -80,6 +80,9 @@ void WebView::ResetContextMenuController() { return impl_->context_menu_.reset(); } +tizen_webview::Frame* WebView::GetMainFrame() { + return impl_->GetMainFrame(); +} bool WebView::SetUserAgent(const char* userAgent) { return impl_->SetUserAgent(userAgent); diff --git a/tizen_src/impl/tizen_webview/public/tw_webview.h b/tizen_src/impl/tizen_webview/public/tw_webview.h index 3340716..b3e5a3a 100644 --- a/tizen_src/impl/tizen_webview/public/tw_webview.h +++ b/tizen_src/impl/tizen_webview/public/tw_webview.h @@ -36,6 +36,7 @@ class TouchEvent; namespace tizen_webview { +class Frame; class ContextMenuController; class SelectionController; class WebContext; @@ -62,6 +63,8 @@ class WebView { ContextMenuController* GetContextMenuController(); void ResetContextMenuController(); + Frame* GetMainFrame(); + // ---- User Agent bool SetUserAgent(const char* userAgent); const char* GetUserAgent() const; -- 2.7.4