LayoutTests/ChangeLog

 12012-04-16 Christophe Dumez <christophe.dumez@intel.com>
 2
 3 [EFL] DRT should support LayoutTestController's dumpFrameLoadCallbacks()
 4 https://bugs.webkit.org/show_bug.cgi?id=83030
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Unskip the test cases in EFL which needed dumpFrameLoadCallbacks()
 9 support in the DumpRenderTree now that it is implemented.
 10
 11 * platform/efl/Skipped:
 12
1132012-04-16 Eric Carlson <eric.carlson@apple.com>
214
315 Layout Test media/track/track-delete-during-setup.html is hitting an ASSERT_NOT_REACHED

LayoutTests/platform/efl/Skipped

@@http/tests/history/back-with-fragment-change.php
11631163# Failing http tests (via GTK+)
11641164http/tests/loading/bad-scheme-subframe.html
11651165http/tests/loading/bad-server-subframe.html
1166 http/tests/loading/gmail-assert-on-load.html
11671166http/tests/loading/redirect-with-no-location-crash.html
11681167http/tests/loading/text-content-type-with-binary-extension.html
11691168http/tests/media/video-play-stall-seek.html

@@fast/html/details-mouse-click.html
13681367fast/html/tab-order.html
13691368fast/inline/skipped-whitespace-boundingBox.html
13701369fast/loader/fragment-after-redirect-gets-back-entry.html
1371 fast/loader/subframe-removes-itself.html
13721370fast/multicol/client-rects.html
13731371fast/multicol/single-line.html
13741372fast/overflow/overflow-y-scroll.html

@@http/tests/security/mixedContent/about-blank-iframe-in-main-frame.html
23352333http/tests/security/mixedContent/data-url-iframe-in-main-frame.html
23362334http/tests/security/mixedContent/data-url-script-in-iframe.html
23372335http/tests/security/mixedContent/insecure-css-in-iframe.html
2338 http/tests/security/mixedContent/insecure-css-in-main-frame.html
23392336http/tests/security/mixedContent/insecure-iframe-in-iframe.html
23402337http/tests/security/mixedContent/insecure-iframe-in-main-frame.html
23412338http/tests/security/mixedContent/insecure-image-in-iframe.html

Source/WebKit/efl/ChangeLog

 12012-04-16 Christophe Dumez <christophe.dumez@intel.com>
 2
 3 [EFL] DRT should support LayoutTestController's dumpFrameLoadCallbacks()
 4 https://bugs.webkit.org/show_bug.cgi?id=83030
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Emit "load,started" and "onload,event" signals needed to support
 9 LayoutTestController's dumpFrameLoadCallbacks() in EFL's DumpRenderTree.
 10
 11 * WebCoreSupport/FrameLoaderClientEfl.cpp:
 12 (WebCore::FrameLoaderClientEfl::dispatchDidHandleOnloadEvents):
 13 (WebCore::FrameLoaderClientEfl::dispatchDidCommitLoad):
 14 (WebCore::FrameLoaderClientEfl::dispatchDidFailLoad):
 15 * ewk/ewk_frame.cpp:
 16 (ewk_frame_load_committed):
 17 (ewk_frame_load_started):
 18 * ewk/ewk_frame.h:
 19 * ewk/ewk_private.h:
 20 * ewk/ewk_view.cpp:
 21 (_Ewk_View_Private_Data):
 22 (ewk_view_load_started):
 23 (ewk_view_onload_event):
 24 * ewk/ewk_view.h:
 25
1262012-04-13 Thiago Marcos P. Santos <thiago.santos@intel.com>
227
328 [EFL] Add API for color chooser

Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp

@@void FrameLoaderClientEfl::loadedFromCachedPage()
544544
545545void FrameLoaderClientEfl::dispatchDidHandleOnloadEvents()
546546{
547  notImplemented();
 547 ewk_view_onload_event(m_view, m_frame);
548548}
549549
550550void FrameLoaderClientEfl::dispatchDidReceiveServerRedirectForProvisionalLoad()

@@void FrameLoaderClientEfl::dispatchDidChangeIcons(WebCore::IconType)
611611void FrameLoaderClientEfl::dispatchDidCommitLoad()
612612{
613613 ewk_frame_uri_changed(m_frame);
 614 ewk_frame_load_committed(m_frame);
614615 if (ewk_view_frame_main_get(m_view) != m_frame)
615616 return;
616617 ewk_view_title_set(m_view, 0);

@@void FrameLoaderClientEfl::dispatchDidFailProvisionalLoad(const ResourceError& e
761762
762763void FrameLoaderClientEfl::dispatchDidFailLoad(const ResourceError& err)
763764{
764  if (!shouldFallBack(err))
765  return;
766 
767765 m_loadError = err;
768766 ewk_frame_load_error(m_frame,
769767 m_loadError.domain().utf8().data(),

Source/WebKit/efl/ewk/ewk_frame.cpp

@@void ewk_frame_view_state_save(Evas_Object* ewkFrame, WebCore::HistoryItem* item
12611261
12621262/**
12631263 * @internal
 1264 * Reports the frame committed load.
 1265 *
 1266 * Emits signal: "load,committed" with no parameters.
 1267 */
 1268void ewk_frame_load_committed(Evas_Object* ewkFrame)
 1269{
 1270 evas_object_smart_callback_call(ewkFrame, "load,committed", 0);
 1271}
 1272
 1273/**
 1274 * @internal
12641275 * Reports the frame started loading something.
12651276 *
12661277 * Emits signal: "load,started" with no parameters.

@@void ewk_frame_load_started(Evas_Object* ewkFrame)
12711282 DBG("ewkFrame=%p", ewkFrame);
12721283 evas_object_smart_callback_call(ewkFrame, "load,started", 0);
12731284 EWK_FRAME_SD_GET_OR_RETURN(ewkFrame, smartData);
1274  ewk_view_load_started(smartData->view);
 1285 ewk_view_load_started(smartData->view, ewkFrame);
12751286
12761287 mainFrame = ewk_view_frame_main_get(smartData->view);
12771288 if (mainFrame == ewkFrame)

Source/WebKit/efl/ewk/ewk_frame.h

3939 * were changed due new layout, script actions or any other events.
4040 * - "editorclient,contents,changed", void: reports that editor client's
4141 * contents were changed
 42 * - "load,committed", void: reports load committed.
4243 * - "load,document,finished", void: frame finished loading the document.
4344 * - "load,error", const Ewk_Frame_Load_Error*: reports load failed
4445 * and it gives a pointer to structure defining the error as an argument.

Source/WebKit/efl/ewk/ewk_private.h

@@void ewk_view_input_method_state_set(Evas_Object* ewkView, bool active);
109109void ewk_view_title_set(Evas_Object* ewkView, const char* title);
110110void ewk_view_uri_changed(Evas_Object* ewkView);
111111void ewk_view_load_document_finished(Evas_Object* ewkView, Evas_Object* frame);
112 void ewk_view_load_started(Evas_Object* ewkView);
 112void ewk_view_load_started(Evas_Object* ewkView, Evas_Object* ewkFrame);
113113void ewk_view_load_provisional(Evas_Object* ewkView);
114114void ewk_view_frame_main_load_started(Evas_Object* ewkView);
115115void ewk_view_frame_main_cleared(Evas_Object* ewkView);

@@void ewk_view_load_finished(Evas_Object* ewkView, const Ewk_Frame_Load_Error* er
118118void ewk_view_load_error(Evas_Object* ewkView, const Ewk_Frame_Load_Error* error);
119119void ewk_view_load_progress_changed(Evas_Object* ewkView);
120120void ewk_view_load_show(Evas_Object* ewkView);
 121void ewk_view_onload_event(Evas_Object* ewkView, Evas_Object* frame);
121122void ewk_view_restore_state(Evas_Object* ewkView, Evas_Object* frame);
122123Evas_Object* ewk_view_window_create(Evas_Object* ewkView, bool javascript, const WebCore::WindowFeatures* coreFeatures);
123124void ewk_view_window_close(Evas_Object* ewkView);

@@void ewk_frame_view_set(Evas_Object* ewkFrame, Evas_Object* newParent);
211212
212213void ewk_frame_core_gone(Evas_Object* ewkFrame);
213214
 215void ewk_frame_load_committed(Evas_Object* ewkFrame);
214216void ewk_frame_load_started(Evas_Object* ewkFrame);
215217void ewk_frame_load_provisional(Evas_Object* ewkFrame);
216218void ewk_frame_load_firstlayout_finished(Evas_Object* ewkFrame);

Source/WebKit/efl/ewk/ewk_view.cpp

@@void ewk_view_load_document_finished(Evas_Object* ewkView, Evas_Object* frame)
28132813 * Reports the view started loading something.
28142814 *
28152815 * @param ewkView View.
 2816 * @param ewkFrame Frame being loaded.
28162817 *
28172818 * Emits signal: "load,started" with no parameters.
28182819 */
2819 void ewk_view_load_started(Evas_Object* ewkView)
 2820void ewk_view_load_started(Evas_Object* ewkView, Evas_Object* ewkFrame)
28202821{
2821  DBG("ewkView=%p", ewkView);
2822  evas_object_smart_callback_call(ewkView, "load,started", 0);
 2822 DBG("ewkView=%p, ewkFrame=%p", ewkView, ewkFrame);
 2823 evas_object_smart_callback_call(ewkView, "load,started", ewkFrame);
28232824}
28242825
28252826/**

@@void ewk_view_load_show(Evas_Object* ewkView)
28642865 evas_object_smart_callback_call(ewkView, "load,newwindow,show", 0);
28652866}
28662867
 2868/**
 2869 * @internal
 2870 * Reports an onload event for @p frame.
 2871 *
 2872 * @param ewkView View which contains the frame.
 2873 * @param frame The frame whose onload event was received.
 2874 *
 2875 * Emits signal: "onload,event" with @p frame as the parameter.
 2876 */
 2877void ewk_view_onload_event(Evas_Object* ewkView, Evas_Object* frame)
 2878{
 2879 evas_object_smart_callback_call(ewkView, "onload,event", frame);
 2880}
28672881
28682882/**
28692883 * @internal

Source/WebKit/efl/ewk/ewk_view.h

6060 * - "load,progress", double*: load progress is changed (overall value
6161 * from 0.0 to 1.0, connect to individual frames for fine grained).
6262 * - "load,provisional", void: view started provisional load.
63  * - "load,started", void: frame started loading the document.
 63 * - "load,started", Evas_Object*: frame started loading the document.
6464 * - "menubar,visible,get", Eina_Bool *: expects a @c EINA_TRUE if menubar is
6565 * visible; @c EINA_FALSE, otherwise.
6666 * - "menubar,visible,set", Eina_Bool: sets menubar visibility.
6767 * - "mixedcontent,displayed", void: any of the containing frames has loaded and displayed mixed content.
6868 * - "mixedcontent,run", void: any of the containing frames has loaded and run mixed content.
 69 * - "onload,event", Evas_Object*: a frame onload event has been received.
6970 * - "ready", void: page is fully loaded.
7071 * - "resource,request,willsend", Ewk_Frame_Resource_Request*: a resource will
7172 * be requested.

Tools/ChangeLog

 12012-04-16 Christophe Dumez <christophe.dumez@intel.com>
 2
 3 [EFL] DRT should support LayoutTestController's dumpFrameLoadCallbacks()
 4 https://bugs.webkit.org/show_bug.cgi?id=83030
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 * DumpRenderTree/efl/DumpRenderTreeChrome.cpp:
 9 (DumpRenderTreeChrome::createView):
 10 (DumpRenderTreeChrome::onLoadStarted):
 11 (DumpRenderTreeChrome::processWork):
 12 (DumpRenderTreeChrome::topLoadingFrameLoadFinished):
 13 (DumpRenderTreeChrome::onWebViewOnloadEvent):
 14 (DumpRenderTreeChrome::onInsecureContentRun):
 15 (DumpRenderTreeChrome::onInsecureContentDisplayed):
 16 (DumpRenderTreeChrome::onFrameCreated):
 17 (DumpRenderTreeChrome::onFrameProvisionalLoad):
 18 (DumpRenderTreeChrome::onFrameLoadCommitted):
 19 (DumpRenderTreeChrome::onFrameLoadFinished):
 20 (DumpRenderTreeChrome::onFrameLoadError):
 21 * DumpRenderTree/efl/DumpRenderTreeChrome.h:
 22 (DumpRenderTreeChrome):
 23
1242012-04-16 Philippe Normand <pnormand@igalia.com>
225
326 build-webkit --gtk --no-webkit2 builds WK2

Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp

@@Evas_Object* DumpRenderTreeChrome::createView() const
9090 ewk_view_theme_set(view, DATA_DIR"/default.edj");
9191
9292 evas_object_smart_callback_add(view, "load,started", onLoadStarted, 0);
93  evas_object_smart_callback_add(view, "load,finished", onLoadFinished, 0);
9493 evas_object_smart_callback_add(view, "title,changed", onTitleChanged, 0);
9594 evas_object_smart_callback_add(view, "window,object,cleared", onWindowObjectCleared, m_gcController.get());
9695 evas_object_smart_callback_add(view, "statusbar,text,set", onStatusbarTextSet, 0);
9796 evas_object_smart_callback_add(view, "load,document,finished", onDocumentLoadFinished, 0);
9897 evas_object_smart_callback_add(view, "resource,request,willsend", onWillSendRequest, 0);
 98 evas_object_smart_callback_add(view, "onload,event", onWebViewOnloadEvent, 0);
 99 evas_object_smart_callback_add(view, "mixedcontent,run", onInsecureContentRun, 0);
 100 evas_object_smart_callback_add(view, "mixedcontent,displayed", onInsecureContentDisplayed, 0);
 101 evas_object_smart_callback_add(view, "frame,created", onFrameCreated, 0);
 102
 103 Evas_Object* mainFrame = ewk_view_frame_main_get(view);
 104 evas_object_smart_callback_add(mainFrame, "load,provisional", onFrameProvisionalLoad, 0);
 105 evas_object_smart_callback_add(mainFrame, "load,committed", onFrameLoadCommitted, 0);
 106 evas_object_smart_callback_add(mainFrame, "load,finished", onFrameLoadFinished, 0);
 107 evas_object_smart_callback_add(mainFrame, "load,error", onFrameLoadError, 0);
99108
100109 return view;
101110}

@@void DumpRenderTreeChrome::onWindowObjectCleared(void* userData, Evas_Object*, v
220229 WebCoreTestSupport::injectInternalsObject(objectClearedInfo->context);
221230}
222231
223 void DumpRenderTreeChrome::onLoadStarted(void*, Evas_Object* view, void*)
 232void DumpRenderTreeChrome::onLoadStarted(void*, Evas_Object* view, void* eventInfo)
224233{
225  // FIXME: we actually need the frame related to this event
226  Evas_Object* frame = ewk_view_frame_main_get(view);
 234 Evas_Object* frame = static_cast<Evas_Object*>(eventInfo);
227235
228236 // Make sure we only set this once per test. If it gets cleared, and then set again, we might
229237 // end up doing two dumps for one test.

@@void DumpRenderTreeChrome::onLoadStarted(void*, Evas_Object* view, void*)
233241
234242Eina_Bool DumpRenderTreeChrome::processWork(void* data)
235243{
236  Evas_Object* frame = static_cast<Evas_Object*>(data);
237 
238244 if (WorkQueue::shared()->processWork() && !gLayoutTestController->waitToDump())
239245 dump();
240246
241247 return ECORE_CALLBACK_CANCEL;
242248}
243249
244 void DumpRenderTreeChrome::onLoadFinished(void*, Evas_Object* view, void*)
 250void DumpRenderTreeChrome::topLoadingFrameLoadFinished()
245251{
246  // FIXME: we actually need the frame related to this event
247  Evas_Object* frame = ewk_view_frame_main_get(view);
248 
249  if (topLoadingFrame != frame)
250  return;
251 
252252 topLoadingFrame = 0;
253253
254254 WorkQueue::shared()->setFrozen(true);

@@void DumpRenderTreeChrome::onLoadFinished(void*, Evas_Object* view, void*)
256256 return;
257257
258258 if (WorkQueue::shared()->count())
259  ecore_idler_add(processWork, frame);
 259 ecore_idler_add(processWork, 0);
260260 else
261261 dump();
262262}

@@void DumpRenderTreeChrome::onWillSendRequest(void*, Evas_Object*, void* eventInf
314314 request->url = 0;
315315 }
316316}
 317
 318void DumpRenderTreeChrome::onWebViewOnloadEvent(void*, Evas_Object*, void* eventInfo)
 319{
 320 const Evas_Object* frame = static_cast<Evas_Object*>(eventInfo);
 321
 322 if (!done && gLayoutTestController->dumpFrameLoadCallbacks()) {
 323 const String frameName(DumpRenderTreeSupportEfl::suitableDRTFrameName(frame));
 324 printf("%s - didHandleOnloadEventsForFrame\n", frameName.utf8().data());
 325 }
 326}
 327
 328void DumpRenderTreeChrome::onInsecureContentRun(void*, Evas_Object*, void*)
 329{
 330 if (!done && gLayoutTestController->dumpFrameLoadCallbacks())
 331 printf("didRunInsecureContent\n");
 332}
 333
 334void DumpRenderTreeChrome::onInsecureContentDisplayed(void*, Evas_Object*, void*)
 335{
 336 if (!done && gLayoutTestController->dumpFrameLoadCallbacks())
 337 printf("didDisplayInsecureContent\n");
 338}
 339
 340void DumpRenderTreeChrome::onFrameCreated(void*, Evas_Object*, void* eventInfo)
 341{
 342 Evas_Object* frame = static_cast<Evas_Object*>(eventInfo);
 343
 344 evas_object_smart_callback_add(frame, "load,provisional", onFrameProvisionalLoad, 0);
 345 evas_object_smart_callback_add(frame, "load,committed", onFrameLoadCommitted, 0);
 346 evas_object_smart_callback_add(frame, "load,finished", onFrameLoadFinished, 0);
 347 evas_object_smart_callback_add(frame, "load,error", onFrameLoadError, 0);
 348}
 349
 350void DumpRenderTreeChrome::onFrameProvisionalLoad(void*, Evas_Object* frame, void*)
 351{
 352 if (!done && gLayoutTestController->dumpFrameLoadCallbacks()) {
 353 const String frameName(DumpRenderTreeSupportEfl::suitableDRTFrameName(frame));
 354 printf("%s - didStartProvisionalLoadForFrame\n", frameName.utf8().data());
 355 }
 356}
 357
 358void DumpRenderTreeChrome::onFrameLoadCommitted(void*, Evas_Object* frame, void*)
 359{
 360 if (!done && gLayoutTestController->dumpFrameLoadCallbacks()) {
 361 const String frameName(DumpRenderTreeSupportEfl::suitableDRTFrameName(frame));
 362 printf("%s - didCommitLoadForFrame\n", frameName.utf8().data());
 363 }
 364}
 365
 366void DumpRenderTreeChrome::onFrameLoadFinished(void*, Evas_Object* frame, void* eventInfo)
 367{
 368 const Ewk_Frame_Load_Error* error = static_cast<Ewk_Frame_Load_Error*>(eventInfo);
 369
 370 // EFL port emits both "load,finished" and "load,error" signals in error case.
 371 // Error case is therefore already handled in onFrameLoadError() and we don't need
 372 // to handle it here.
 373 if (error)
 374 return;
 375
 376 if (!done && gLayoutTestController->dumpFrameLoadCallbacks()) {
 377 const String frameName(DumpRenderTreeSupportEfl::suitableDRTFrameName(frame));
 378 printf("%s - didFinishLoadForFrame\n", frameName.utf8().data());
 379 }
 380
 381 if (frame == topLoadingFrame)
 382 topLoadingFrameLoadFinished();
 383}
 384
 385void DumpRenderTreeChrome::onFrameLoadError(void*, Evas_Object* frame, void*)
 386{
 387 if (!done && gLayoutTestController->dumpFrameLoadCallbacks()) {
 388 const String frameName(DumpRenderTreeSupportEfl::suitableDRTFrameName(frame));
 389 printf("%s - didFailLoadWithError\n", frameName.utf8().data());
 390 }
 391
 392 if (frame == topLoadingFrame)
 393 topLoadingFrameLoadFinished();
 394}

Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h

@@private:
6868
6969 static Eina_Bool processWork(void*);
7070
71  static void onLoadFinished(void*, Evas_Object*, void*);
 71 static void topLoadingFrameLoadFinished();
7272
7373 static void onStatusbarTextSet(void*, Evas_Object*, void*);
7474

@@private:
7777 static void onDocumentLoadFinished(void*, Evas_Object*, void*);
7878
7979 static void onWillSendRequest(void*, Evas_Object*, void*);
 80
 81 static void onWebViewOnloadEvent(void*, Evas_Object*, void*);
 82
 83 static void onInsecureContentRun(void*, Evas_Object*, void*);
 84
 85 static void onInsecureContentDisplayed(void*, Evas_Object*, void*);
 86
 87 static void onFrameCreated(void*, Evas_Object*, void*);
 88
 89 static void onFrameProvisionalLoad(void*, Evas_Object*, void*);
 90
 91 static void onFrameLoadCommitted(void*, Evas_Object*, void*);
 92
 93 static void onFrameLoadFinished(void*, Evas_Object*, void*);
 94
 95 static void onFrameLoadError(void*, Evas_Object*, void*);
8096};
8197
8298#endif // DumpRenderTreeChrome_h