Source/WebKit2/ChangeLog

 12012-06-15 Eunmi Lee <eunmi15.lee@samsung.com>
 2
 3 [EFL][WK2] Add APIs to create, delete and get ewk_context.
 4 https://bugs.webkit.org/show_bug.cgi?id=89186
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Provide APIs to create ewk_context with or without injected bundle path.
 9 Additionally, the ewk_view can be created with ewk_context and we can get
 10 ewk_context from ewk_view.
 11
 12 * UIProcess/API/efl/ewk_context.cpp:
 13 (ewk_context_new):
 14 (ewk_context_new_with_injected_bundle_path):
 15 (ewk_context_delete):
 16 * UIProcess/API/efl/ewk_context.h:
 17 * UIProcess/API/efl/ewk_view.cpp:
 18 (_Ewk_View_Private_Data):
 19 (ewk_view_add_with_context):
 20 (ewk_view_context_get):
 21 * UIProcess/API/efl/ewk_view.h:
 22
1232012-06-15 Christophe Dumez <christophe.dumez@intel.com>
224
325 [WK2] Add support for explicit intents

Source/WebKit2/UIProcess/API/efl/ewk_context.cpp

2323
2424#include "WKAPICast.h"
2525#include "WKRetainPtr.h"
 26#include "WKString.h"
2627#include "ewk_context_private.h"
2728
2829using namespace WebKit;

@@Ewk_Context* ewk_context_default_get()
4647 DEFINE_STATIC_LOCAL(Ewk_Context, defaultContext, (WKContextGetSharedProcessContext()));
4748 return &defaultContext;
4849}
 50
 51Ewk_Context* ewk_context_new()
 52{
 53 return new Ewk_Context(WKContextCreate());
 54}
 55
 56Ewk_Context* ewk_context_new_with_injected_bundle_path(const char* path)
 57{
 58 EINA_SAFETY_ON_NULL_RETURN_VAL(path, 0);
 59
 60 WKRetainPtr<WKStringRef> pathRef(AdoptWK, WKStringCreateWithUTF8CString(path));
 61 return new Ewk_Context(WKContextCreateWithInjectedBundlePath(pathRef.get()));
 62}
 63
 64void ewk_context_delete(Ewk_Context* ewkContext)
 65{
 66 EINA_SAFETY_ON_NULL_RETURN(ewkContext);
 67 EINA_SAFETY_ON_TRUE_RETURN(ewkContext == ewk_context_default_get());
 68
 69 delete ewkContext;
 70}

Source/WebKit2/UIProcess/API/efl/ewk_context.h

@@typedef struct _Ewk_Context Ewk_Context;
4545 */
4646EAPI Ewk_Context *ewk_context_default_get();
4747
 48/**
 49 * Creates a new Ewk_Context.
 50 * The returned Ewk_Context object @b should be deleted after use.
 51 *
 52 * @return Ewk_Context object on success or @c 0 on failure
 53 *
 54 * @see ewk_context_delete
 55 */
 56EAPI Ewk_Context *ewk_context_new();
 57
 58/**
 59 * Creates a new Ewk_Context.
 60 * The returned Ewk_Context object @b should be deleted after use.
 61 *
 62 * @param path path of injected bundle library
 63 *
 64 * @return Ewk_Context object on success or @c 0 on failure
 65 *
 66 * @see ewk_context_delete
 67 */
 68EAPI Ewk_Context *ewk_context_new_with_injected_bundle_path(const char *path);
 69
 70/**
 71 * Deletes Ewk_Context.
 72 *
 73 * @param context Ewk_Context to delete
 74 */
 75EAPI void ewk_context_delete(Ewk_Context *context);
 76
4877#ifdef __cplusplus
4978}
5079#endif

Source/WebKit2/UIProcess/API/efl/ewk_view.cpp

@@static const char EWK_VIEW_TYPE_STR[] = "EWK2_View";
4141
4242struct _Ewk_View_Private_Data {
4343 OwnPtr<PageClientImpl> pageClient;
 44 Ewk_Context* context;
4445 const char* uri;
4546 const char* title;
4647};

@@Evas_Object* ewk_view_base_add(Evas* canvas, WKContextRef contextRef, WKPageGrou
499500
500501Evas_Object* ewk_view_add_with_context(Evas* canvas, Ewk_Context* context)
501502{
502  return ewk_view_base_add(canvas, ewk_context_WKContext_get(context), 0);
 503 EINA_SAFETY_ON_NULL_RETURN_VAL(canvas, 0);
 504 EINA_SAFETY_ON_NULL_RETURN_VAL(context, 0);
 505
 506 Evas_Object* ewkView = ewk_view_base_add(canvas, ewk_context_WKContext_get(context), 0);
 507
 508 EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, ewkView);
 509 EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, ewkView);
 510 priv->context = context;
 511
 512 return ewkView;
503513}
504514
505515Evas_Object* ewk_view_add(Evas* canvas)

@@Evas_Object* ewk_view_add(Evas* canvas)
507517 return ewk_view_add_with_context(canvas, ewk_context_default_get());
508518}
509519
 520Ewk_Context* ewk_view_context_get(const Evas_Object* ewkView)
 521{
 522 EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0);
 523 EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, 0);
 524 return priv->context;
 525}
 526
510527Eina_Bool ewk_view_uri_set(Evas_Object* ewkView, const char* uri)
511528{
512529 EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0);

Source/WebKit2/UIProcess/API/efl/ewk_view.h

@@EAPI Evas_Object *ewk_view_add(Evas *e);
148148EAPI Evas_Object *ewk_view_add_with_context(Evas *e, Ewk_Context *context);
149149
150150/**
 151 * Gets the Ewk_Context of this view.
 152 *
 153 * @param o the view object to get the Ewk_Context
 154 *
 155 * @return the Ewk_Context of this view
 156 */
 157EAPI Ewk_Context *ewk_view_context_get(const Evas_Object *o);
 158
 159/**
151160 * Asks the object to load the given URI.
152161 *
153162 * @param o view object to load @a URI