Changeset 96140 in webkit


Ignore:
Timestamp:
Sep 27, 2011 12:34:35 PM (13 years ago)
Author:
commit-queue@webkit.org
Message:

[EFL] Make ewk_view emit the "load,document,finished" signal.
https://bugs.webkit.org/show_bug.cgi?id=66782

Patch by Raphael Kubo da Costa <kubo@profusion.mobi> on 2011-09-27
Reviewed by Antonio Gomes.

Currently, only ewk_frame emits the "load,document,finished" signal
when FrameLoaderClientEfl::dispatchDidFinishDocumentLoad() calls
ewk_frame_load_document_finished().

However, in some cases it is not even possible to connect to the
"frame,created" signal to properly monitor the
"load,document,finished" signal, as the former is not emitted.
fast/frames/frame-unload-crash.html, for example, has a page with an
iframe inside an iframe, and this innermost iframe does not seem to be
loaded via FrameLoaderClientEfl::createFrame (which calls all the
machinery which then emits the "frame,created" signal).

We now make ewk_frame_load_document_finished() call the newly-created
ewk_view_load_document_finished() function, whose job is to emit the
"load,document,signal" with the frame as its parameter. This way, one
can just connect to the view and make sure all the signals will get
delivered.

  • ewk/ewk_frame.cpp:

(ewk_frame_load_document_finished):

  • ewk/ewk_private.h:
  • ewk/ewk_view.cpp:

(ewk_view_load_document_finished):

  • ewk/ewk_view.h:
Location:
trunk/Source/WebKit/efl
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/efl/ChangeLog

    r95998 r96140  
     12011-09-27  Raphael Kubo da Costa  <kubo@profusion.mobi>
     2
     3        [EFL] Make ewk_view emit the "load,document,finished" signal.
     4        https://bugs.webkit.org/show_bug.cgi?id=66782
     5
     6        Reviewed by Antonio Gomes.
     7
     8        Currently, only ewk_frame emits the "load,document,finished" signal
     9        when FrameLoaderClientEfl::dispatchDidFinishDocumentLoad() calls
     10        ewk_frame_load_document_finished().
     11
     12        However, in some cases it is not even possible to connect to the
     13        "frame,created" signal to properly monitor the
     14        "load,document,finished" signal, as the former is not emitted.
     15        fast/frames/frame-unload-crash.html, for example, has a page with an
     16        iframe inside an iframe, and this innermost iframe does not seem to be
     17        loaded via FrameLoaderClientEfl::createFrame (which calls all the
     18        machinery which then emits the "frame,created" signal).
     19
     20        We now make ewk_frame_load_document_finished() call the newly-created
     21        ewk_view_load_document_finished() function, whose job is to emit the
     22        "load,document,signal" with the frame as its parameter. This way, one
     23        can just connect to the view and make sure all the signals will get
     24        delivered.
     25
     26        * ewk/ewk_frame.cpp:
     27        (ewk_frame_load_document_finished):
     28        * ewk/ewk_private.h:
     29        * ewk/ewk_view.cpp:
     30        (ewk_view_load_document_finished):
     31        * ewk/ewk_view.h:
     32
    1332011-09-26  Raphael Kubo da Costa  <kubo@profusion.mobi>
    234
  • trunk/Source/WebKit/efl/ewk/ewk_frame.cpp

    r95901 r96140  
    13401340{
    13411341    evas_object_smart_callback_call(o, "load,document,finished", 0);
     1342    EWK_FRAME_SD_GET_OR_RETURN(o, sd);
     1343    ewk_view_load_document_finished(sd->view, o);
    13421344}
    13431345
  • trunk/Source/WebKit/efl/ewk/ewk_private.h

    r95983 r96140  
    8282void ewk_view_title_set(Evas_Object* o, const char* title);
    8383void ewk_view_uri_changed(Evas_Object* o);
     84void ewk_view_load_document_finished(Evas_Object* o, Evas_Object* frame);
    8485void ewk_view_load_started(Evas_Object* o);
    8586void ewk_view_load_provisional(Evas_Object* o);
  • trunk/Source/WebKit/efl/ewk/ewk_view.cpp

    r95983 r96140  
    27032703/**
    27042704 * @internal
     2705 * Reports that a DOM document object has finished loading for @p frame.
     2706 *
     2707 * @param o View which contains the frame.
     2708 * @param frame The frame whose load has triggered the event.
     2709 *
     2710 * Emits signal: "load,document,finished" with @p frame as the parameter.
     2711 */
     2712void ewk_view_load_document_finished(Evas_Object* o, Evas_Object* frame)
     2713{
     2714    evas_object_smart_callback_call(o, "load,document,finished", frame);
     2715}
     2716
     2717/**
     2718 * @internal
    27052719 * Reports the view started loading something.
    27062720 *
  • trunk/Source/WebKit/efl/ewk/ewk_view.h

    r95983 r96140  
    4545 *    It gives the url in link[0] and link's title in link[1] as an argument.
    4646 *  - "link,hover,out", void: reports mouse moved out from a link.
     47 *  - "load,document,finished", Evas_Object*: a DOM document object in a frame has finished loading.
    4748 *  - "load,error", const Ewk_Frame_Load_Error*: reports load failed
    4849 *  - "load,finished", const Ewk_Frame_Load_Error*: reports load
Note: See TracChangeset for help on using the changeset viewer.