1 From 2717a30b8dfe9ad67c6fcceeb85d840ba4f1e081 Mon Sep 17 00:00:00 2001
2 From: Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
3 Date: Thu, 8 Aug 2013 13:00:55 +0300
4 Subject: [PATCH 19/33] Renaming. Fixed layout while loading from address bar.
7 .../renderer_host/render_widget_host_view_efl.cc | 5 +
8 .../browser/web_contents/web_contents_view_efl.cc | 3 -
9 efl_webview/lib/web_contents_delegate_xwalk.cc | 3 +-
10 efl_webview/lib/web_contents_delegate_xwalk.h | 6 +-
11 .../lib/web_contents_view_delegate_xwalk.cc | 6 +-
12 efl_webview/lib/webview.cc | 131 +++++++++++----------
13 efl_webview/lib/webview.h | 16 +--
14 efl_webview/public/xwalk_main.cc | 2 +-
15 efl_webview/public/xwalk_view.cc | 4 +-
16 9 files changed, 90 insertions(+), 86 deletions(-)
18 diff --git a/content/browser/renderer_host/render_widget_host_view_efl.cc b/content/browser/renderer_host/render_widget_host_view_efl.cc
19 index 67dc2dd..e9f3ec9 100644
20 --- a/content/browser/renderer_host/render_widget_host_view_efl.cc
21 +++ b/content/browser/renderer_host/render_widget_host_view_efl.cc
22 @@ -200,6 +200,7 @@ bool RenderWidgetHostViewEfl::OnMessageReceived(const IPC::Message& message) {
24 void RenderWidgetHostViewEfl::InitAsChild(
25 gfx::NativeView parent_view) {
26 + DCHECK(parent_view);
27 preserve_window_.reset(gfx::PreserveWindow::Create(
28 this, evas_object_evas_get(parent_view)));
29 evas_object_size_hint_align_set(preserve_window_->SmartObject(),
30 @@ -207,6 +208,10 @@ void RenderWidgetHostViewEfl::InitAsChild(
31 evas_object_size_hint_weight_set(preserve_window_->SmartObject(),
32 EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
33 evas_object_show(preserve_window_->SmartObject());
35 + if (evas_object_box_children_get(parent_view))
36 + evas_object_box_remove_all(parent_view, false);
38 evas_object_box_append(parent_view, preserve_window_->SmartObject());
39 compositing_surface_ = preserve_window_->EmbeddedXWindow();
41 diff --git a/content/browser/web_contents/web_contents_view_efl.cc b/content/browser/web_contents/web_contents_view_efl.cc
42 index 371231c..d44a7a9 100644
43 --- a/content/browser/web_contents/web_contents_view_efl.cc
44 +++ b/content/browser/web_contents/web_contents_view_efl.cc
45 @@ -161,9 +161,6 @@ void WebContentsViewEfl::RenderViewCreated(RenderViewHost* host) {
48 void WebContentsViewEfl::RenderViewDeleted(RenderViewHost* render_view_host) {
49 - if (GetNativeView() && GetContentNativeView()) {
50 - evas_object_box_remove(GetNativeView(), GetContentNativeView());
54 void WebContentsViewEfl::RenderViewSwappedIn(RenderViewHost* host) {
55 diff --git a/efl_webview/lib/web_contents_delegate_xwalk.cc b/efl_webview/lib/web_contents_delegate_xwalk.cc
56 index 65024e6..8700b32 100644
57 --- a/efl_webview/lib/web_contents_delegate_xwalk.cc
58 +++ b/efl_webview/lib/web_contents_delegate_xwalk.cc
61 #include "efl_webview/lib/web_contents_delegate_xwalk.h"
63 -#include <Elementary.h>
64 #include "content/public/browser/web_contents.h"
65 #include "efl_webview/lib/web_contents_view_delegate_xwalk.h"
66 #include "efl_webview/lib/webview.h"
67 @@ -18,7 +17,7 @@ const int g_window_height = 600;
70 WebContentsDelegateXWalk::WebContentsDelegateXWalk(
71 - content::BrowserContext* browser_context, WebViewPrivate* web_view)
72 + content::BrowserContext* browser_context, WebView* web_view)
73 : web_view_(web_view) {
74 content::WebContents::CreateParams create_params(browser_context, 0);
75 create_params.initial_size = gfx::Size(g_window_width, g_window_height);
76 diff --git a/efl_webview/lib/web_contents_delegate_xwalk.h b/efl_webview/lib/web_contents_delegate_xwalk.h
77 index 7e143cb..fae5e68 100644
78 --- a/efl_webview/lib/web_contents_delegate_xwalk.h
79 +++ b/efl_webview/lib/web_contents_delegate_xwalk.h
80 @@ -16,11 +16,11 @@ class WebContentsViewDelegate;
84 -class WebViewPrivate;
87 class WebContentsDelegateXWalk : public content::WebContentsDelegate {
89 - WebContentsDelegateXWalk(content::BrowserContext*, WebViewPrivate*);
90 + WebContentsDelegateXWalk(content::BrowserContext*, WebView*);
92 virtual void LoadProgressChanged(content::WebContents* source,
93 double progress) OVERRIDE;
94 @@ -35,7 +35,7 @@ class WebContentsDelegateXWalk : public content::WebContentsDelegate {
95 content::WebContents* WebContents() { return web_contents_.get(); }
98 - WebViewPrivate* web_view_;
100 scoped_ptr<content::WebContents> web_contents_;
103 diff --git a/efl_webview/lib/web_contents_view_delegate_xwalk.cc b/efl_webview/lib/web_contents_view_delegate_xwalk.cc
104 index 0b4c686..c48534b 100644
105 --- a/efl_webview/lib/web_contents_view_delegate_xwalk.cc
106 +++ b/efl_webview/lib/web_contents_view_delegate_xwalk.cc
108 #include "efl_webview/lib/web_contents_view_delegate_xwalk.h"
109 #include "efl_webview/lib/webview.h"
111 -#include <Elementary.h>
115 WebContentsViewDelegateXWalk::WebContentsViewDelegateXWalk(
116 @@ -21,11 +19,11 @@ WebContentsViewDelegateXWalk::~WebContentsViewDelegateXWalk() {
117 void WebContentsViewDelegateXWalk::Focus() {
120 - elm_object_focus_set(native_view_, EINA_TRUE);
121 + evas_object_focus_set(native_view_, EINA_TRUE);
124 void WebContentsViewDelegateXWalk::UpdateTitle(const string16& title) {
125 - ToWebViewPrivate(native_view_)->SmartCallback<webviewcallbacks::TitleChange>()
126 + ToWebView(native_view_)->SmartCallback<webviewcallbacks::TitleChange>()
127 .Call(EinaSharedString(title));
130 diff --git a/efl_webview/lib/webview.cc b/efl_webview/lib/webview.cc
131 index 3e4d467..a60ac13 100644
132 --- a/efl_webview/lib/webview.cc
133 +++ b/efl_webview/lib/webview.cc
134 @@ -28,39 +28,12 @@ const Evas_Smart_Cb_Description g_smart_callbacks[] = {
136 struct XWalk_View_Smart_Data {
137 Evas_Object_Box_Data base_;
138 - xwalk::WebViewPrivate* priv_;
139 + xwalk::WebView* priv_;
142 -bool IsXWalkViewEvasObject(const Evas_Object* evas_object) {
143 - DCHECK(evas_object);
145 - const char* evas_object_type = evas_object_type_get(evas_object);
146 - if (!evas_object_smart_type_check(evas_object, evas_smart_xwalk_view_type)) {
147 - LOG(ERROR) << evas_object << " is not of an "
148 - << evas_object_type << "!";
152 - const Evas_Smart* evas_smart = evas_object_smart_smart_get(evas_object);
154 - LOG(ERROR) << evas_object << "("
155 - << evas_object_type << ") is not a smart object!";
159 - const Evas_Smart_Class* smart_class = evas_smart_class_get(evas_smart);
160 - if (!smart_class) {
161 - LOG(ERROR) << evas_object << "("
162 - << evas_object_type << ") is not a smart class object!";
169 inline XWalk_View_Smart_Data* ToSmartData(const Evas_Object* evas_object) {
171 - DCHECK(IsXWalkViewEvasObject(evas_object));
172 + DCHECK(xwalk::IsWebViewEvasObject(evas_object));
173 CHECK(evas_object_smart_data_get(evas_object));
174 return static_cast<XWalk_View_Smart_Data*>(
175 evas_object_smart_data_get(evas_object));
176 @@ -107,25 +80,10 @@ void xwalk_view_smart_set_user(Evas_Object_Box_Api* smart_class) {
180 -GURL WebViewPrivate::s_startup_url = GURL();
182 -Evas_Object* CreateWebView(Evas* canvas) {
185 - Evas_Object* view_object =
186 - evas_object_smart_add(canvas, xwalk_view_smart_class_new());
188 - XWalk_View_Smart_Data* smart_data = ToSmartData(view_object);
189 - DCHECK(smart_data);
191 - DCHECK(!smart_data->priv_);
192 - smart_data->priv_ = new WebViewPrivate(view_object);
194 - return view_object;
196 +GURL WebView::s_startup_url = GURL();
199 -void WebViewPrivate::CommandLineInit(int argc, char** argv) {
200 +void WebView::CommandLineInit(int argc, char** argv) {
201 CommandLine::Init(argc, argv);
203 CommandLine* command_line = CommandLine::ForCurrentProcess();
204 @@ -138,16 +96,16 @@ void WebViewPrivate::CommandLineInit(int argc, char** argv) {
205 if (!(url.is_valid() && url.has_scheme()))
206 url = net::FilePathToFileURL(base::FilePath(args[0]));
208 - WebViewPrivate::s_startup_url = GURL(url);
209 + WebView::s_startup_url = GURL(url);
212 -WebViewPrivate::WebViewPrivate(Evas_Object* view_object)
213 +WebView::WebView(Evas_Object* view_object)
214 : view_object_(view_object)
215 , context_(WebRuntimeContext::current())
216 , web_contents_delegate_(
217 new WebContentsDelegateXWalk(context_->BrowserContext(), this)) {
218 - if (!WebViewPrivate::s_startup_url.is_valid())
219 - WebViewPrivate::s_startup_url = GURL("about:blank");
220 + if (!WebView::s_startup_url.is_valid())
221 + WebView::s_startup_url = GURL("about:blank");
223 DCHECK(view_object_);
225 @@ -157,33 +115,33 @@ WebViewPrivate::WebViewPrivate(Evas_Object* view_object)
226 static_cast<WebContentsViewDelegateXWalk*>(content_view->delegate())->
227 SetNativeView(view_object_);
229 - LoadURL(WebViewPrivate::s_startup_url);
230 + LoadURL(WebView::s_startup_url);
233 -WebViewPrivate::~WebViewPrivate() {
234 +WebView::~WebView() {
237 -bool WebViewPrivate::CanGoBack() const {
238 +bool WebView::CanGoBack() const {
239 return NavigationController().CanGoBack();
242 -bool WebViewPrivate::CanGoForward() const {
243 +bool WebView::CanGoForward() const {
244 return NavigationController().CanGoForward();
247 -void WebViewPrivate::GoForward() {
248 +void WebView::GoForward() {
249 NavigationController().GoForward();
252 -void WebViewPrivate::GoBack() {
253 +void WebView::GoBack() {
254 NavigationController().GoBack();
257 -void WebViewPrivate::Reload() {
258 +void WebView::Reload() {
259 NavigationController().Reload(false);
262 -void WebViewPrivate::LoadURL(const GURL& url) {
263 +void WebView::LoadURL(const GURL& url) {
264 content::NavigationController::LoadURLParams params(url);
265 params.transition_type = content::PageTransitionFromInt(
266 content::PAGE_TRANSITION_TYPED |
267 @@ -191,7 +149,7 @@ void WebViewPrivate::LoadURL(const GURL& url) {
268 NavigationController().LoadURLWithParams(params);
271 -void WebViewPrivate::informURLChanged() {
272 +void WebView::informURLChanged() {
273 const std::string& url_str = NavigationController().
274 GetActiveEntry()->GetURL().spec();
275 if (!url_str.compare(url_ ? url_ : ""))
276 @@ -202,19 +160,66 @@ void WebViewPrivate::informURLChanged() {
277 SmartCallback<webviewcallbacks::URLChanged>().Call(url_);
280 -inline content::NavigationController& WebViewPrivate::NavigationController() const {
281 +inline content::NavigationController& WebView::NavigationController() const {
282 return web_contents_delegate_->WebContents()->GetController();
285 -Evas_Object* WebViewPrivate::EvasObject() {
286 +Evas_Object* WebView::EvasObject() {
290 -WebViewPrivate* ToWebViewPrivate(const Evas_Object* evas_object) {
291 - if (evas_object && IsXWalkViewEvasObject(evas_object))
292 +Evas_Object* CreateWebViewEvasObject(Evas* canvas) {
295 + Evas_Object* view_object =
296 + evas_object_smart_add(canvas, xwalk_view_smart_class_new());
298 + XWalk_View_Smart_Data* smart_data = ToSmartData(view_object);
299 + DCHECK(smart_data);
301 + DCHECK(!smart_data->priv_);
302 + smart_data->priv_ = new WebView(view_object);
304 + evas_object_size_hint_align_set(view_object,
305 + EVAS_HINT_FILL, EVAS_HINT_FILL);
306 + evas_object_size_hint_weight_set(view_object,
307 + EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
309 + return view_object;
312 +WebView* ToWebView(const Evas_Object* evas_object) {
313 + if (evas_object && IsWebViewEvasObject(evas_object))
314 return ToSmartData(evas_object)->priv_;
319 +bool IsWebViewEvasObject(const Evas_Object* evas_object) {
320 + DCHECK(evas_object);
322 + const char* evas_object_type = evas_object_type_get(evas_object);
323 + if (!evas_object_smart_type_check(evas_object, evas_smart_xwalk_view_type)) {
324 + LOG(ERROR) << evas_object << " is not of an "
325 + << evas_object_type << "!";
329 + const Evas_Smart* evas_smart = evas_object_smart_smart_get(evas_object);
331 + LOG(ERROR) << evas_object << "("
332 + << evas_object_type << ") is not a smart object!";
336 + const Evas_Smart_Class* smart_class = evas_smart_class_get(evas_smart);
337 + if (!smart_class) {
338 + LOG(ERROR) << evas_object << "("
339 + << evas_object_type << ") is not a smart class object!";
347 diff --git a/efl_webview/lib/webview.h b/efl_webview/lib/webview.h
348 index 43b6183..985ef160 100644
349 --- a/efl_webview/lib/webview.h
350 +++ b/efl_webview/lib/webview.h
351 @@ -25,11 +25,11 @@ namespace xwalk {
352 class WebContentsDelegateXWalk;
353 class WebRuntimeContext;
355 -class WebViewPrivate { // FIXME : Consider renaming.
358 static void CommandLineInit(int argc, char** argv);
363 EAPI Evas_Object* EvasObject();
365 @@ -50,7 +50,7 @@ class WebViewPrivate { // FIXME : Consider renaming.
366 void informURLChanged();
369 - explicit WebViewPrivate(Evas_Object* evas_object);
370 + explicit WebView(Evas_Object* evas_object);
372 content::NavigationController& NavigationController() const;
374 @@ -61,15 +61,15 @@ class WebViewPrivate { // FIXME : Consider renaming.
376 static GURL s_startup_url;
378 - friend Evas_Object* CreateWebView(Evas* canvas);
379 + friend Evas_Object* CreateWebViewEvasObject(Evas* canvas);
381 - DISALLOW_COPY_AND_ASSIGN(WebViewPrivate);
382 + DISALLOW_COPY_AND_ASSIGN(WebView);
385 +Evas_Object* CreateWebViewEvasObject(Evas* canvas);
387 -Evas_Object* CreateWebView(Evas* canvas);
389 -WebViewPrivate* ToWebViewPrivate(const Evas_Object* web_view);
390 +WebView* ToWebView(const Evas_Object* evas_object);
391 +bool IsWebViewEvasObject(const Evas_Object* evas_object);
395 diff --git a/efl_webview/public/xwalk_main.cc b/efl_webview/public/xwalk_main.cc
396 index 2dfc902..218c55d 100644
397 --- a/efl_webview/public/xwalk_main.cc
398 +++ b/efl_webview/public/xwalk_main.cc
400 #include "efl_webview/lib/webview.h"
402 void xwalk_init(int argc, char *argv[]) {
403 - xwalk::WebViewPrivate::CommandLineInit(argc, argv);
404 + xwalk::WebView::CommandLineInit(argc, argv);
406 diff --git a/efl_webview/public/xwalk_view.cc b/efl_webview/public/xwalk_view.cc
407 index 0acd334..5893224 100644
408 --- a/efl_webview/public/xwalk_view.cc
409 +++ b/efl_webview/public/xwalk_view.cc
411 #include "efl_webview/lib/webview.h"
413 #define XWALK_VIEW_GET_PRIVATE_OR_RETURN(xwalk_view, priv, ...) \
414 - xwalk::WebViewPrivate* priv = xwalk::ToWebViewPrivate(xwalk_view); \
415 + xwalk::WebView* priv = xwalk::ToWebView(xwalk_view); \
418 EINA_LOG_CRIT("no private data for object %p", xwalk_view); \
420 Evas_Object* xwalk_view_add(Evas* canvas) {
421 EINA_SAFETY_ON_NULL_RETURN_VAL(canvas, 0);
423 - return xwalk::CreateWebView(canvas);
424 + return xwalk::CreateWebViewEvasObject(canvas);
427 Eina_Bool xwalk_view_url_set(Evas_Object* evas_object, const char* url) {