WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
85956_didFailProvisionalLoadWithError.patch (text/plain), 15.24 KB, created by
Chris Dumez
on 2012-05-09 01:04:34 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Chris Dumez
Created:
2012-05-09 01:04:34 PDT
Size:
15.24 KB
patch
obsolete
>diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 88dae6f..562c5d7 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,5 +1,22 @@ > 2012-05-09 Christophe Dumez <christophe.dumez@intel.com> > >+ [EFL] EFL's DRT does not print didFailProvisionalLoadWithError messages >+ https://bugs.webkit.org/show_bug.cgi?id=85956 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Unskip test cases which expect the DumpRenderTree to print >+ didFailProvisionalLoadWithError messages. >+ Add EFL expectation for >+ http/tests/loading/pdf-commit-load-callbacks.html. >+ >+ * platform/efl/Skipped: >+ * platform/efl/http/tests/loading/pdf-commit-load-callbacks-expected.txt: Added. >+ Use same expectation as for Qt. >+ * platform/efl/test_expectations.txt: >+ >+2012-05-09 Christophe Dumez <christophe.dumez@intel.com> >+ > [EFL] http/tests/loading/pdf-commit-load-callbacks.html is failing > https://bugs.webkit.org/show_bug.cgi?id=85957 > >diff --git a/LayoutTests/platform/efl/Skipped b/LayoutTests/platform/efl/Skipped >index 0f5897c..e6f7e24 100644 >--- a/LayoutTests/platform/efl/Skipped >+++ b/LayoutTests/platform/efl/Skipped >@@ -808,9 +808,7 @@ http/tests/history/back-with-fragment-change.php > > # Failing http tests (via GTK+) > http/tests/loading/bad-scheme-subframe.html >-http/tests/loading/bad-server-subframe.html > http/tests/loading/redirect-with-no-location-crash.html >-http/tests/loading/text-content-type-with-binary-extension.html > http/tests/media/video-play-stall-seek.html > http/tests/media/video-play-stall.html > http/tests/misc/acid3.html >@@ -1801,17 +1799,10 @@ http/tests/cache/subresource-failover-to-network.html > http/tests/cache/subresource-multiple-instances.html > http/tests/fileapi/create-blob-url-from-data-url.html > http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials.html >-http/tests/loading/basic.html > http/tests/local/blob/send-data-blob.html > http/tests/local/blob/send-sliced-data-blob.html >-http/tests/loading/empty-subframe.html >-http/tests/loading/load-javascript-after-many-xhrs.html >-http/tests/loading/location-hash-reload-cycle.html > http/tests/loading/nested_bad_objects.php >-http/tests/loading/preload-img-test.html > http/tests/loading/progress-finished-callback.html >-http/tests/loading/slow-parsing-subframe.html >-http/tests/loading/state-object-security-exception.html > http/tests/media/remove-while-loading.html > http/tests/media/video-buffered.html > http/tests/media/video-cancel-load.html >diff --git a/LayoutTests/platform/efl/http/tests/loading/pdf-commit-load-callbacks-expected.txt b/LayoutTests/platform/efl/http/tests/loading/pdf-commit-load-callbacks-expected.txt >new file mode 100644 >index 0000000..78323e1 >--- /dev/null >+++ b/LayoutTests/platform/efl/http/tests/loading/pdf-commit-load-callbacks-expected.txt >@@ -0,0 +1,8 @@ >+main frame - didStartProvisionalLoadForFrame >+main frame - didCommitLoadForFrame >+frame "<!--framePath //<!--frame0-->-->" - didStartProvisionalLoadForFrame >+main frame - didFinishDocumentLoadForFrame >+main frame - didHandleOnloadEventsForFrame >+frame "<!--framePath //<!--frame0-->-->" - didFailProvisionalLoadWithError >+main frame - didFinishLoadForFrame >+ >diff --git a/LayoutTests/platform/efl/test_expectations.txt b/LayoutTests/platform/efl/test_expectations.txt >index 2760097..a45a878 100644 >--- a/LayoutTests/platform/efl/test_expectations.txt >+++ b/LayoutTests/platform/efl/test_expectations.txt >@@ -366,9 +366,6 @@ BUGWK84839 : editing/execCommand/remove-list-from-range-selection.html = MISSING > BUGWK84839 : editing/execCommand/remove-list-item-1.html = MISSING > BUGWK84839 : editing/execCommand/selectAll.html = MISSING > >-// EFL's DRT does not print didFailProvisionalLoadWithError messages >-BUGWK85956 : http/tests/loading/pdf-commit-load-callbacks.html = TEXT >- > // The EFL port has no support for the Fullscreen API > BUGWK85870 SKIP : fullscreen = FAIL > BUGWK85870 : media/video-play-require-user-gesture.html = TEXT >diff --git a/Source/WebKit/efl/ChangeLog b/Source/WebKit/efl/ChangeLog >index 776715b..5bafc22 100644 >--- a/Source/WebKit/efl/ChangeLog >+++ b/Source/WebKit/efl/ChangeLog >@@ -1,3 +1,23 @@ >+2012-05-09 Christophe Dumez <christophe.dumez@intel.com> >+ >+ [EFL] EFL's DRT does not print didFailProvisionalLoadWithError messages >+ https://bugs.webkit.org/show_bug.cgi?id=85956 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add new "load,provisional,failed" signal on the frame and the view to >+ complement the "load,provisional" one. >+ >+ * WebCoreSupport/FrameLoaderClientEfl.cpp: >+ (WebCore::FrameLoaderClientEfl::dispatchDidFailProvisionalLoad): >+ * ewk/ewk_frame.cpp: >+ (ewk_frame_load_provisional_failed): >+ * ewk/ewk_frame.h: >+ * ewk/ewk_private.h: >+ * ewk/ewk_view.cpp: >+ (_Ewk_View_Private_Data): >+ (ewk_view_load_provisional_failed): >+ > 2012-05-08 Kangil Han <kangil.han@samsung.com> > > [EFL][DRT] Implement TextInputController. >diff --git a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp >index 0e67497..aa537c1 100644 >--- a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp >+++ b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp >@@ -786,6 +786,27 @@ void FrameLoaderClientEfl::dispatchDidLoadResourceByXMLHttpRequest(unsigned long > > void FrameLoaderClientEfl::dispatchDidFailProvisionalLoad(const ResourceError& err) > { >+ Ewk_Frame_Load_Error error; >+ CString errorDomain = err.domain().utf8(); >+ CString errorDescription = err.localizedDescription().utf8(); >+ CString failingUrl = err.failingURL().utf8(); >+ >+ DBG("ewkFrame=%p, error=%s (%d, cancellation=%hhu) \"%s\", url=%s", >+ m_frame, errorDomain.data(), err.errorCode(), err.isCancellation(), >+ errorDescription.data(), failingUrl.data()); >+ >+ error.code = err.errorCode(); >+ error.is_cancellation = err.isCancellation(); >+ error.domain = errorDomain.data(); >+ error.description = errorDescription.data(); >+ error.failing_url = failingUrl.data(); >+ error.resource_identifier = 0; >+ error.frame = m_frame; >+ >+ ewk_frame_load_provisional_failed(m_frame, &error); >+ if (ewk_view_frame_main_get(m_view) == m_frame) >+ ewk_view_load_provisional_failed(m_view, &error); >+ > dispatchDidFailLoad(err); > } > >diff --git a/Source/WebKit/efl/ewk/ewk_frame.cpp b/Source/WebKit/efl/ewk/ewk_frame.cpp >index 24a12ea..7f1f3b6 100644 >--- a/Source/WebKit/efl/ewk/ewk_frame.cpp >+++ b/Source/WebKit/efl/ewk/ewk_frame.cpp >@@ -1368,6 +1368,20 @@ void ewk_frame_load_provisional(Evas_Object* ewkFrame) > > /** > * @internal >+ * Reports the frame provisional load failed. >+ * >+ * @param ewkFrame Frame. >+ * @param error Load error. >+ * >+ * Emits signal: "load,provisional,failed" with pointer to Ewk_Frame_Load_Error. >+ */ >+void ewk_frame_load_provisional_failed(Evas_Object* ewkFrame, const Ewk_Frame_Load_Error* error) >+{ >+ evas_object_smart_callback_call(ewkFrame, "load,provisional,failed", (void*)error); >+} >+ >+/** >+ * @internal > * Reports the frame finished first layout. > * > * @param ewkFrame Frame. >diff --git a/Source/WebKit/efl/ewk/ewk_frame.h b/Source/WebKit/efl/ewk/ewk_frame.h >index 693fd36..5a40314 100644 >--- a/Source/WebKit/efl/ewk/ewk_frame.h >+++ b/Source/WebKit/efl/ewk/ewk_frame.h >@@ -56,6 +56,7 @@ > * - "load,progress", double*: load progress is changed (overall value > * from 0.0 to 1.0, connect to individual frames for fine grained). > * - "load,provisional", void: frame started provisional load. >+ * - "load,provisional,failed", Ewk_Frame_Load_Error*: frame provisional load failed. > * - "load,started", void: frame started loading the document. > * - "mixedcontent,displayed", void: frame has loaded and displayed mixed content. > * - "mixedcontent,run", void: frame has loaded and run mixed content. >diff --git a/Source/WebKit/efl/ewk/ewk_private.h b/Source/WebKit/efl/ewk/ewk_private.h >index 26d448d..6335de0 100644 >--- a/Source/WebKit/efl/ewk/ewk_private.h >+++ b/Source/WebKit/efl/ewk/ewk_private.h >@@ -112,6 +112,7 @@ void ewk_view_uri_changed(Evas_Object* ewkView); > void ewk_view_load_document_finished(Evas_Object* ewkView, Evas_Object* frame); > void ewk_view_load_started(Evas_Object* ewkView, Evas_Object* ewkFrame); > void ewk_view_load_provisional(Evas_Object* ewkView); >+void ewk_view_load_provisional_failed(Evas_Object* ewkView, const Ewk_Frame_Load_Error* error); > void ewk_view_frame_main_load_started(Evas_Object* ewkView); > void ewk_view_frame_main_cleared(Evas_Object* ewkView); > void ewk_view_frame_main_icon_received(Evas_Object* ewkView); >@@ -216,6 +217,7 @@ void ewk_frame_core_gone(Evas_Object* ewkFrame); > void ewk_frame_load_committed(Evas_Object* ewkFrame); > void ewk_frame_load_started(Evas_Object* ewkFrame); > void ewk_frame_load_provisional(Evas_Object* ewkFrame); >+void ewk_frame_load_provisional_failed(Evas_Object* ewkFrame, const Ewk_Frame_Load_Error* error); > void ewk_frame_load_firstlayout_finished(Evas_Object* ewkFrame); > void ewk_frame_load_firstlayout_nonempty_finished(Evas_Object* ewkFrame); > void ewk_frame_load_document_finished(Evas_Object* ewkFrame); >diff --git a/Source/WebKit/efl/ewk/ewk_view.cpp b/Source/WebKit/efl/ewk/ewk_view.cpp >index 7a0ee1e..31404dc 100644 >--- a/Source/WebKit/efl/ewk/ewk_view.cpp >+++ b/Source/WebKit/efl/ewk/ewk_view.cpp >@@ -2957,6 +2957,21 @@ void ewk_view_load_provisional(Evas_Object* ewkView) > > /** > * @internal >+ * Reports the main frame provisional load failed. >+ * >+ * @param ewkView View. >+ * @param error Load error. >+ * >+ * Emits signal: "load,provisional" on View with pointer to Ewk_Frame_Load_Error. >+ */ >+void ewk_view_load_provisional_failed(Evas_Object* ewkView, const Ewk_Frame_Load_Error* error) >+{ >+ DBG("ewkView=%p, error=%p", ewkView, error); >+ evas_object_smart_callback_call(ewkView, "load,provisional,failed", (void*)error); >+} >+ >+/** >+ * @internal > * Reports view can be shown after a new window is created. > * > * @param ewkView Frame. >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index f4aaafc..fec4c4f 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,24 @@ >+2012-05-09 Christophe Dumez <christophe.dumez@intel.com> >+ >+ [EFL] EFL's DRT does not print didFailProvisionalLoadWithError messages >+ https://bugs.webkit.org/show_bug.cgi?id=85956 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Catch new "load,provisional,failed" signal and print >+ didFailProvisionalLoadWithError messages when LayoutTestController's >+ dumpFrameLoadCallbacks() returns true. Also make sure the >+ didFailLoadWithError message is not printed in case of provisional >+ load failure. >+ >+ * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: >+ (DumpRenderTreeChrome::createView): >+ (DumpRenderTreeChrome::onFrameCreated): >+ (DumpRenderTreeChrome::onFrameProvisionalLoadFailed): >+ (DumpRenderTreeChrome::onFrameLoadError): >+ * DumpRenderTree/efl/DumpRenderTreeChrome.h: >+ (DumpRenderTreeChrome): >+ > 2012-05-09 Dan Bernstein <mitz@apple.com> > > Made build-webkit copy WebKitLibraries to the right location again after r116257 >diff --git a/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp b/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp >index bfaef5e..dc704dc 100644 >--- a/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp >+++ b/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp >@@ -49,6 +49,7 @@ > using namespace WebCore; > > HashMap<unsigned long, CString> DumpRenderTreeChrome::m_dumpAssignedUrls; >+Evas_Object* DumpRenderTreeChrome::m_provisionalLoadFailedFrame = 0; > > PassOwnPtr<DumpRenderTreeChrome> DumpRenderTreeChrome::create(Evas* evas) > { >@@ -109,6 +110,7 @@ Evas_Object* DumpRenderTreeChrome::createView() const > > Evas_Object* mainFrame = ewk_view_frame_main_get(view); > evas_object_smart_callback_add(mainFrame, "load,provisional", onFrameProvisionalLoad, 0); >+ evas_object_smart_callback_add(mainFrame, "load,provisional,failed", onFrameProvisionalLoadFailed, 0); > evas_object_smart_callback_add(mainFrame, "load,committed", onFrameLoadCommitted, 0); > evas_object_smart_callback_add(mainFrame, "load,finished", onFrameLoadFinished, 0); > evas_object_smart_callback_add(mainFrame, "load,error", onFrameLoadError, 0); >@@ -508,6 +510,7 @@ void DumpRenderTreeChrome::onFrameCreated(void*, Evas_Object*, void* eventInfo) > Evas_Object* frame = static_cast<Evas_Object*>(eventInfo); > > evas_object_smart_callback_add(frame, "load,provisional", onFrameProvisionalLoad, 0); >+ evas_object_smart_callback_add(frame, "load,provisional,failed", onFrameProvisionalLoadFailed, 0); > evas_object_smart_callback_add(frame, "load,committed", onFrameLoadCommitted, 0); > evas_object_smart_callback_add(frame, "load,finished", onFrameLoadFinished, 0); > evas_object_smart_callback_add(frame, "load,error", onFrameLoadError, 0); >@@ -525,6 +528,16 @@ void DumpRenderTreeChrome::onFrameProvisionalLoad(void*, Evas_Object* frame, voi > } > } > >+void DumpRenderTreeChrome::onFrameProvisionalLoadFailed(void*, Evas_Object* frame, void*) >+{ >+ m_provisionalLoadFailedFrame = frame; >+ >+ if (!done && gLayoutTestController->dumpFrameLoadCallbacks()) { >+ const String frameName(DumpRenderTreeSupportEfl::suitableDRTFrameName(frame)); >+ printf("%s - didFailProvisionalLoadWithError\n", frameName.utf8().data()); >+ } >+} >+ > void DumpRenderTreeChrome::onFrameLoadCommitted(void*, Evas_Object* frame, void*) > { > if (!done && gLayoutTestController->dumpFrameLoadCallbacks()) { >@@ -554,11 +567,17 @@ void DumpRenderTreeChrome::onFrameLoadFinished(void*, Evas_Object* frame, void* > > void DumpRenderTreeChrome::onFrameLoadError(void*, Evas_Object* frame, void*) > { >- if (!done && gLayoutTestController->dumpFrameLoadCallbacks()) { >+ // In case of provisional load error, we receive both "load,error" and "load,provisional,failed" >+ // signals. m_provisionalLoadFailedFrame is used to avoid printing twice the load error in >+ // onFrameProvisionalLoadFailed() and onFrameLoadError(). >+ if (!done && gLayoutTestController->dumpFrameLoadCallbacks() && frame != m_provisionalLoadFailedFrame) { > const String frameName(DumpRenderTreeSupportEfl::suitableDRTFrameName(frame)); > printf("%s - didFailLoadWithError\n", frameName.utf8().data()); > } > >+ if (m_provisionalLoadFailedFrame && frame == m_provisionalLoadFailedFrame) >+ m_provisionalLoadFailedFrame = 0; >+ > if (frame == topLoadingFrame) > topLoadingFrameLoadFinished(); > } >diff --git a/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h b/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h >index 3d5f5a3..f83cfd1 100644 >--- a/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h >+++ b/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h >@@ -66,6 +66,7 @@ private: > OwnPtr<GCController> m_gcController; > Vector<Evas_Object*> m_extraViews; > static HashMap<unsigned long, CString> m_dumpAssignedUrls; >+ static Evas_Object* m_provisionalLoadFailedFrame; > > // Smart callbacks > static void onWindowObjectCleared(void*, Evas_Object*, void*); >@@ -92,6 +93,7 @@ private: > static void onFrameCreated(void*, Evas_Object*, void*); > > static void onFrameProvisionalLoad(void*, Evas_Object*, void*); >+ static void onFrameProvisionalLoadFailed(void*, Evas_Object*, void*); > > static void onFrameLoadCommitted(void*, Evas_Object*, void*); >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 85956
:
140879
|
140887
|
141097
|
143466