Changeset 121944 in webkit


Ignore:
Timestamp:
Jul 5, 2012 11:07:52 PM (12 years ago)
Author:
commit-queue@webkit.org
Message:

[WK2][EFL] Ewk_View needs to report load status changes
https://bugs.webkit.org/show_bug.cgi?id=90566

Patch by Christophe Dumez <Christophe Dumez> on 2012-07-05
Reviewed by Kenneth Rohde Christiansen.

Add new "load,finished", "load,provisional,failed",
"load,provisional,redirect" and "load,provisional,started"
signals on the Ewk_View to notify the client of different
load state changes.

  • UIProcess/API/efl/ewk_view.cpp:

(ewk_view_load_finished):
(ewk_view_load_provisional_failed):
(ewk_view_load_provisional_redirect):
(ewk_view_load_provisional_started):

  • UIProcess/API/efl/ewk_view.h:
  • UIProcess/API/efl/ewk_view_loader_client.cpp:

(didFinishLoadForFrame):
(didFailLoadWithErrorForFrame):
(didStartProvisionalLoadForFrame):
(didReceiveServerRedirectForProvisionalLoadForFrame):
(didFailProvisionalLoadWithErrorForFrame):
(ewk_view_loader_client_attach):

  • UIProcess/API/efl/ewk_view_private.h:
Location:
trunk/Source/WebKit2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r121942 r121944  
     12012-07-05  Christophe Dumez  <christophe.dumez@intel.com>
     2
     3        [WK2][EFL] Ewk_View needs to report load status changes
     4        https://bugs.webkit.org/show_bug.cgi?id=90566
     5
     6        Reviewed by Kenneth Rohde Christiansen.
     7
     8        Add new "load,finished", "load,provisional,failed",
     9        "load,provisional,redirect" and "load,provisional,started"
     10        signals on the Ewk_View to notify the client of different
     11        load state changes.
     12
     13        * UIProcess/API/efl/ewk_view.cpp:
     14        (ewk_view_load_finished):
     15        (ewk_view_load_provisional_failed):
     16        (ewk_view_load_provisional_redirect):
     17        (ewk_view_load_provisional_started):
     18        * UIProcess/API/efl/ewk_view.h:
     19        * UIProcess/API/efl/ewk_view_loader_client.cpp:
     20        (didFinishLoadForFrame):
     21        (didFailLoadWithErrorForFrame):
     22        (didStartProvisionalLoadForFrame):
     23        (didReceiveServerRedirectForProvisionalLoadForFrame):
     24        (didFailProvisionalLoadWithErrorForFrame):
     25        (ewk_view_loader_client_attach):
     26        * UIProcess/API/efl/ewk_view_private.h:
     27
    1282012-07-05  Luiz Agostini  <luiz.agostini@nokia.com>
    229
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp

    r121934 r121944  
    733733}
    734734
     735/**
     736 * @internal
     737 * Reports load finished.
     738 *
     739 * Emits signal: "load,finished".
     740 */
     741void ewk_view_load_finished(Evas_Object* ewkView)
     742{
     743    evas_object_smart_callback_call(ewkView, "load,finished", 0);
     744}
     745
     746/**
     747 * @internal
     748 * Reports view provisional load failed with error information.
     749 *
     750 * Emits signal: "load,provisional,failed" with pointer to Ewk_Web_Error.
     751 */
     752void ewk_view_load_provisional_failed(Evas_Object* ewkView, const Ewk_Web_Error* error)
     753{
     754    evas_object_smart_callback_call(ewkView, "load,provisional,failed", const_cast<Ewk_Web_Error*>(error));
     755}
     756
     757/**
     758 * @internal
     759 * Reports view received redirect for provisional load.
     760 *
     761 * Emits signal: "load,provisional,redirect".
     762 */
     763void ewk_view_load_provisional_redirect(Evas_Object* ewkView)
     764{
     765    evas_object_smart_callback_call(ewkView, "load,provisional,redirect", 0);
     766}
     767
     768/**
     769 * @internal
     770 * Reports view provisional load started.
     771 *
     772 * Emits signal: "load,provisional,started".
     773 */
     774void ewk_view_load_provisional_started(Evas_Object* ewkView)
     775{
     776    evas_object_smart_callback_call(ewkView, "load,provisional,started", 0);
     777}
     778
    735779Eina_Bool ewk_view_html_string_load(Evas_Object* ewkView, const char* html, const char* baseUrl, const char* unreachableUrl)
    736780{
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.h

    r121934 r121944  
    3030 * - "intent,service,register", Ewk_Intent_Service*: reports new Web intent service registration.
    3131 * - "load,error", const Ewk_Web_Error*: reports main frame load failed.
     32 * - "load,finished", void: reports load finished.
    3233 * - "load,progress", double*: load progress has changed (value from 0.0 to 1.0).
     34 * - "load,provisional,failed", const Ewk_Web_Error*: view provisional load failed.
     35 * - "load,provisional,redirect", void: view received redirect for provisional load.
     36 * - "load,provisional,started", void: view started provisional load.
    3337 * - "resource,request,new", const Ewk_Web_Resource_Request*: a resource request was initiated.
    3438 * - "title,changed", const char*: title of the main frame was changed.
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_loader_client.cpp

    r121835 r121944  
    7474}
    7575
     76static void didFinishLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo)
     77{
     78    if (!WKFrameIsMainFrame(frame))
     79        return;
     80
     81    Evas_Object* ewkView = static_cast<Evas_Object*>(const_cast<void*>(clientInfo));
     82    ewk_view_load_finished(ewkView);
     83}
     84
    7685static void didFailLoadWithErrorForFrame(WKPageRef page, WKFrameRef frame, WKErrorRef error, WKTypeRef, const void *clientInfo)
    7786{
     
    8291    Ewk_Web_Error* ewkError = ewk_web_error_new(error);
    8392    ewk_view_load_error(ewkView, ewkError);
     93    ewk_view_load_finished(ewkView);
     94    ewk_web_error_free(ewkError);
     95}
     96
     97static void didStartProvisionalLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void* clientInfo)
     98{
     99    if (!WKFrameIsMainFrame(frame))
     100        return;
     101
     102    Evas_Object* ewkView = static_cast<Evas_Object*>(const_cast<void*>(clientInfo));
     103    ewk_view_load_provisional_started(ewkView);
     104}
     105
     106static void didReceiveServerRedirectForProvisionalLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void* clientInfo)
     107{
     108    if (!WKFrameIsMainFrame(frame))
     109        return;
     110
     111    Evas_Object* ewkView = static_cast<Evas_Object*>(const_cast<void*>(clientInfo));
     112    ewk_view_load_provisional_redirect(ewkView);
     113}
     114
     115static void didFailProvisionalLoadWithErrorForFrame(WKPageRef page, WKFrameRef frame, WKErrorRef error, WKTypeRef userData, const void* clientInfo)
     116{
     117    if (!WKFrameIsMainFrame(frame))
     118        return;
     119
     120    Evas_Object* ewkView = static_cast<Evas_Object*>(const_cast<void*>(clientInfo));
     121    Ewk_Web_Error* ewkError = ewk_web_error_new(error);
     122    ewk_view_load_provisional_failed(ewkView, ewkError);
    84123    ewk_web_error_free(ewkError);
    85124}
     
    101140    loadClient.didChangeProgress = didChangeProgress;
    102141    loadClient.didFinishProgress = didChangeProgress;
     142    loadClient.didFinishLoadForFrame = didFinishLoadForFrame;
    103143    loadClient.didFailLoadWithErrorForFrame = didFailLoadWithErrorForFrame;
     144    loadClient.didStartProvisionalLoadForFrame = didStartProvisionalLoadForFrame;
     145    loadClient.didReceiveServerRedirectForProvisionalLoadForFrame = didReceiveServerRedirectForProvisionalLoadForFrame;
     146    loadClient.didFailProvisionalLoadWithErrorForFrame = didFailProvisionalLoadWithErrorForFrame;
    104147    WKPageSetPageLoaderClient(pageRef, &loadClient);
    105148}
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_view_private.h

    r121889 r121944  
    4444void ewk_view_image_data_set(Evas_Object* ewkView, void* imageData, const WebCore::IntSize& size);
    4545void ewk_view_load_error(Evas_Object* ewkView, const Ewk_Web_Error* error);
     46void ewk_view_load_finished(Evas_Object* ewkView);
    4647void ewk_view_load_progress_changed(Evas_Object* ewkView, double progress);
     48void ewk_view_load_provisional_failed(Evas_Object* ewkView, const Ewk_Web_Error* error);
     49void ewk_view_load_provisional_redirect(Evas_Object* ewkView);
     50void ewk_view_load_provisional_started(Evas_Object* ewkView);
    4751void ewk_view_title_changed(Evas_Object* ewkView, const char* title);
    4852void ewk_view_resource_load_initiated(Evas_Object* ewkView, uint64_t resourceIdentifier, Ewk_Web_Resource* resource, Ewk_Url_Request* request);
Note: See TracChangeset for help on using the changeset viewer.