[Webkit-unassigned] [Bug 102853] [EFL][WK2] Add ewk_application_cache_manager APIs
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Dec 4 16:05:34 PST 2012
https://bugs.webkit.org/show_bug.cgi?id=102853
--- Comment #7 from Jiyeon Kim <jiyeon0402.kim at samsung.com> 2012-12-04 16:07:59 PST ---
(In reply to comment #3)
> (From update of attachment 175316 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=175316&action=review
>
> > Source/WebKit2/PlatformEfl.cmake:47
> > + UIProcess/API/efl/ewk_application_cache_manager.cpp
>
> You need to add the new header to the installed headers below in the same file.
>
> > Source/WebKit2/UIProcess/API/efl/ewk_application_cache_manager.cpp:62
> > + originList = eina_list_append(originList, origin.release().leakRef());
>
> calling .release() here will reset the pointer the NULL in the wrapperCache. This is probably not what you want.
> Probably it should be something like eina_list_append(originList, ewk_object_ref(origin.get()))
>
> > Source/WebKit2/UIProcess/API/efl/ewk_application_cache_manager.cpp:83
> > + Eina_List* originList = webApplicationCacheContext->manager->createOriginList(origins);
>
> This list is never freed (leak). You should unref the list items and free the list at this end of this function.
>
> > Source/WebKit2/UIProcess/API/efl/ewk_application_cache_manager.cpp:93
> > + Ewk_Application_Cache_Origins_Async_Get_Context* context = new Ewk_Application_Cache_Origins_Async_Get_Context(ewkApplicationCacheManager, callback, userData);
>
> context is never freed?
>
> > Source/WebKit2/UIProcess/API/efl/ewk_application_cache_manager.h:51
> > + * the Eina_List and its items should be freed after use. Use ewk_security_origin_unref()
>
> No, we usually don't pass ownership of callback arguments to the client. The client should clone the list (and ref its items) if it wishes to keep them outside the callback.
> This is less leak prone and common practice I believe.
>
>
Yes, I'll do. Thank you.
>>
Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:29
> >> +#include "UnitTestUtils/EWK2UnitTestEnvironment.h"
> >
> > unneeded include. Already included in EWK2UnitTestBase.h.
>
> ?
>
> >> Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:32
> >> +#include <EWebKit2.h>
> >
> > ditto.
>
> So? This file is using Ewk types so it should include EWebKit2.h. Relying on other headers includes is bad practice.
>
> >> Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:33
> >> +#include <Ecore.h>
> >
> > ditto.
>
> So? This file is using ecore function so it should include Ecore.h. Relying on other headers includes is bad practice.
>
> > Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:81
> > +static void getApplicationCacheOriginsCallback(Eina_List* origins, Ewk_Error* error, void* userData)
>
> Note that you're not freeing the origins list here, which proves my point that the current API is leak prone.
>
Yes, I'll fix.
> > Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:111
> > + Eina_Strbuf* body = eina_strbuf_new();
>
> Should be inside the if case otherwise it leaks if the if condition is false.
>
I added eina_strbuf_free in front of soup_message_body_complete and remove eina_strbuf_free in if case.
> >
Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:128
> > + }
>
> There should probably be an else case here which sets status to SOUP_STATUS_NOT_FOUND.
>
> > Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:157
> > + const char* applicationCacheTestUrl = httpServer->getURLForPath("/application_cache.html").data();
>
> You keep a pointer to memory owned by a temporary object (CString), this is bad and may crash.
>
> Get rid of this useless variable and update next line to read:
> ewk_view_url_set(view, httpServer->getURLForPath("/application_cache.html").data());
>
> > Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:158
> > + ewk_view_url_set(view, applicationCacheTestUrl);
>
> There is loadUrlSync() to do this in 1 line instead of 2.
>
I'll fix.
> >> Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context.cpp:53
> >> + ASSERT_EQ(applicationCacheManager, ewk_context_application_cache_manager_get(context));
> >
> > This comparison seems to be meaningless.
>
> It is not meaningless, it makes sure we return the same pointer every time. This is consistent with our other tests.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list