Source/WebKit2/ChangeLog

112012-07-04 Christophe Dumez <christophe.dumez@intel.com>
22
 3 [WK2][EFL] MiniBrowser needs to handle load errors
 4 https://bugs.webkit.org/show_bug.cgi?id=90540
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Add method to Ewk_View to load provided HTML data.
 9 This is used for e.g. when an URL cannot be reached
 10 and we need to display an error page.
 11
 12 * UIProcess/API/efl/ewk_view.cpp:
 13 (ewk_view_html_load):
 14 * UIProcess/API/efl/ewk_view.h:
 15
 162012-07-04 Christophe Dumez <christophe.dumez@intel.com>
 17
318 [EFL][WK2] Ewk_View should report load errors
419 https://bugs.webkit.org/show_bug.cgi?id=90479
520

Source/WebKit2/UIProcess/API/efl/ewk_view.cpp

@@void ewk_view_load_error(Evas_Object* ewkView, const Ewk_Web_Error* error)
689689 evas_object_smart_callback_call(ewkView, "load,error", const_cast<Ewk_Web_Error*>(error));
690690}
691691
 692Eina_Bool ewk_view_html_load(Evas_Object* ewkView, const char* html, const char* baseUrl, const char* unreachableUrl)
 693{
 694 EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
 695 EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
 696 EINA_SAFETY_ON_NULL_RETURN_VAL(html, false);
 697
 698 if (unreachableUrl && *unreachableUrl)
 699 priv->pageClient->page()->loadAlternateHTMLString(String::fromUTF8(html), baseUrl ? String::fromUTF8(baseUrl) : "", String::fromUTF8(unreachableUrl));
 700 else
 701 priv->pageClient->page()->loadHTMLString(String::fromUTF8(html), baseUrl ? String::fromUTF8(baseUrl) : "");
 702
 703 return true;
 704}
692705
693706#if ENABLE(WEB_INTENTS_TAG)
694707/**

Source/WebKit2/UIProcess/API/efl/ewk_view.h

@@EAPI const char *ewk_view_title_get(const Evas_Object *o);
266266 */
267267EAPI double ewk_view_load_progress_get(const Evas_Object *o);
268268
 269/**
 270 * Loads the specified @a html as the content of the view.
 271 *
 272 * External objects such as stylesheets or images referenced in the HTML
 273 * document are located relative to @a baseUrl.
 274 *
 275 * If an @a unreachableUrl is passed it is used as the url for the loaded
 276 * content. This is typically used to display error pages for a failed
 277 * load.
 278 *
 279 * @param o view object to load the HTML into
 280 * @param html HTML data to load
 281 * @param baseUrl Base URL used for relative paths to external objects (optional)
 282 * @param unreachableUrl URL that could not be reached (optional)
 283 *
 284 * @return @c EINA_TRUE if it the HTML was successfully loaded, @c EINA_FALSE otherwise
 285 */
 286EAPI Eina_Bool ewk_view_html_load(Evas_Object *o, const char *html, const char *baseUrl, const char *unreachableUrl);
 287
269288#ifdef __cplusplus
270289}
271290#endif

Tools/ChangeLog

 12012-07-04 Christophe Dumez <christophe.dumez@intel.com>
 2
 3 [WK2][EFL] MiniBrowser needs to handle load errors
 4 https://bugs.webkit.org/show_bug.cgi?id=90540
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Update EFL MiniBrowser to catch the "load,error" signal
 9 on the view and display an error page.
 10
 11 * MiniBrowser/efl/main.c:
 12 (on_error):
 13 (browserCreate):
 14
1152012-07-04 Sergio Villar Senin <svillar@igalia.com>
216
317 [GTK] WebKit2 testing bot unable to find the build directory

Tools/MiniBrowser/efl/main.c

@@on_progress(void *user_data, Evas_Object *webview, void *event_info)
125125 title_set(app->ee, ewk_view_title_get(app->browser), progress * 100);
126126}
127127
 128static void
 129on_error(void *user_data, Evas_Object *webview, void *event_info)
 130{
 131 Eina_Strbuf* buffer;
 132 const Ewk_Web_Error *error = (const Ewk_Web_Error *)event_info;
 133
 134 buffer = eina_strbuf_new();
 135 eina_strbuf_append_printf(buffer, "<html><body><div style=\"color:#ff0000\">ERROR!</div><br><div>Code: %d<br>Description: %s<br>URL: %s</div></body</html>",
 136 ewk_web_error_code_get(error), ewk_web_error_description_get(error), ewk_web_error_url_get(error));
 137
 138 ewk_view_html_load(webview, eina_strbuf_string_get(buffer), 0, ewk_web_error_url_get(error));
 139 eina_strbuf_free(buffer);
 140}
 141
128142static MiniBrowser *browserCreate(const char *url)
129143{
130144 MiniBrowser *app = malloc(sizeof(MiniBrowser));

@@static MiniBrowser *browserCreate(const char *url)
151165 app->browser = ewk_view_add(app->evas);
152166 evas_object_name_set(app->browser, "browser");
153167
 168 evas_object_smart_callback_add(app->browser, "load,error", on_error, app);
154169 evas_object_smart_callback_add(app->browser, "load,progress", on_progress, app);
155170 evas_object_smart_callback_add(app->browser, "title,changed", on_title_changed, app);
156171