Changeset 147700 in webkit
- Timestamp:
- Apr 4, 2013 7:52:06 PM (11 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r147683 r147700 1 2013-04-04 KwangYong Choi <ky0.choi@samsung.com> 2 3 [EFL][WK2] Add support for getting page contents as string 4 https://bugs.webkit.org/show_bug.cgi?id=106752 5 6 Reviewed by Andreas Kling. 7 8 Modified ewk_view_page_contents_get() API to get page contents as string. 9 EWK_PAGE_CONTENTS_TYPE_STRING is added to Ewk_Page_Contents_Type. 10 Now, we can use both EWK_PAGE_CONTENTS_TYPE_MHTML and EWK_PAGE_CONTENTS_TYPE_STRING 11 for getting page contents. 12 13 * UIProcess/API/efl/ewk_view.cpp: 14 (Ewk_Page_Contents_Context): 15 (ewkViewPageContentsAsMHTMLCallback): 16 (ewkViewPageContentsAsStringCallback): 17 (ewk_view_page_contents_get): 18 * UIProcess/API/efl/ewk_view.h: 19 * UIProcess/API/efl/tests/test_ewk2_view.cpp: 20 (PageContentsAsMHTMLCallback): 21 (PageContentsAsStringCallback): 22 (TEST_F): 23 1 24 2013-04-04 Christophe Dumez <ch.dumez@sisa.samsung.com> 2 25 -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp
r146265 r147700 536 536 Ewk_Page_Contents_Type type; 537 537 Ewk_Page_Contents_Cb callback; 538 void* userData; 538 539 }; 539 540 … … 542 543 * Callback function used for ewk_view_page_contents_get(). 543 544 */ 544 static void ewkViewPageContents Callback(WKDataRef wkData, WKErrorRef, void* context)545 static void ewkViewPageContentsAsMHTMLCallback(WKDataRef wkData, WKErrorRef, void* context) 545 546 { 546 547 EINA_SAFETY_ON_NULL_RETURN(context); 547 548 548 Ewk_Page_Contents_Context* contentsContext = static_cast<Ewk_Page_Contents_Context*>(context);549 contentsContext->callback(contentsContext->type, reinterpret_cast<const char*>(WKDataGetBytes(wkData)) );549 Ewk_Page_Contents_Context* contentsContext = static_cast<Ewk_Page_Contents_Context*>(context); 550 contentsContext->callback(contentsContext->type, reinterpret_cast<const char*>(WKDataGetBytes(wkData)), contentsContext->userData); 550 551 551 552 delete contentsContext; 552 553 } 553 554 554 Eina_Bool ewk_view_page_contents_get(const Evas_Object* ewkView, Ewk_Page_Contents_Type type, Ewk_Page_Contents_Cb callback) 555 /** 556 * @internal 557 * Callback function used for ewk_view_page_contents_get(). 558 */ 559 static void ewkViewPageContentsAsStringCallback(WKStringRef wkString, WKErrorRef, void* context) 560 { 561 EINA_SAFETY_ON_NULL_RETURN(context); 562 563 Ewk_Page_Contents_Context* contentsContext = static_cast<Ewk_Page_Contents_Context*>(context); 564 contentsContext->callback(contentsContext->type, WKEinaSharedString(wkString), contentsContext->userData); 565 566 delete contentsContext; 567 } 568 569 Eina_Bool ewk_view_page_contents_get(const Evas_Object* ewkView, Ewk_Page_Contents_Type type, Ewk_Page_Contents_Cb callback, void* user_data) 555 570 { 556 571 EINA_SAFETY_ON_NULL_RETURN_VAL(callback, false); 557 572 EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl, false); 558 559 // We only support MHTML at the moment.560 if (type != EWK_PAGE_CONTENTS_TYPE_MHTML)561 return false;562 573 563 574 Ewk_Page_Contents_Context* context = new Ewk_Page_Contents_Context; 564 575 context->type = type; 565 576 context->callback = callback; 566 567 WKPageGetContentsAsMHTMLData(impl->wkPage(), false, context, ewkViewPageContentsCallback); 577 context->userData = user_data; 578 579 switch (context->type) { 580 case EWK_PAGE_CONTENTS_TYPE_MHTML: 581 WKPageGetContentsAsMHTMLData(impl->wkPage(), false, context, ewkViewPageContentsAsMHTMLCallback); 582 break; 583 case EWK_PAGE_CONTENTS_TYPE_STRING: 584 WKPageGetContentsAsString(impl->wkPage(), context, ewkViewPageContentsAsStringCallback); 585 break; 586 default: 587 delete context; 588 ASSERT_NOT_REACHED(); 589 return false; 590 } 568 591 569 592 return true; -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.h
r145812 r147700 103 103 /// Enum values containing page contents type values. 104 104 typedef enum { 105 EWK_PAGE_CONTENTS_TYPE_MHTML 105 EWK_PAGE_CONTENTS_TYPE_MHTML, 106 EWK_PAGE_CONTENTS_TYPE_STRING 106 107 } Ewk_Page_Contents_Type; 107 108 … … 282 283 * @param type type of the contents 283 284 * @param data string buffer of the contents 284 */ 285 typedef void (*Ewk_Page_Contents_Cb)(Ewk_Page_Contents_Type type, const char *data); 285 * @param user_data user data will be passed when ewk_view_page_contents_get is called 286 */ 287 typedef void (*Ewk_Page_Contents_Cb)(Ewk_Page_Contents_Type type, const char *data, void *user_data); 286 288 287 289 /** … … 822 824 * @param type type of the page contents 823 825 * @param callback callback function to be called when the operation is finished 826 * @param user_data user data to be passed to the callback function 824 827 * 825 828 * @return @c EINA_TRUE on success or @c EINA_FALSE otherwise 826 829 */ 827 EAPI Eina_Bool ewk_view_page_contents_get(const Evas_Object *o, Ewk_Page_Contents_Type type, Ewk_Page_Contents_Cb callback );830 EAPI Eina_Bool ewk_view_page_contents_get(const Evas_Object *o, Ewk_Page_Contents_Type type, Ewk_Page_Contents_Cb callback, void *user_data); 828 831 829 832 /** -
trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp
r145812 r147700 927 927 static bool obtainedPageContents = false; 928 928 929 static void PageContents Callback(Ewk_Page_Contents_Type type, const char* data)929 static void PageContentsAsMHTMLCallback(Ewk_Page_Contents_Type type, const char* data, void*) 930 930 { 931 931 // Check the type … … 944 944 } 945 945 946 static void PageContentsAsStringCallback(Ewk_Page_Contents_Type type, const char* data, void*) 947 { 948 // Check the type. 949 ASSERT_EQ(EWK_PAGE_CONTENTS_TYPE_STRING, type); 950 951 // The variable data should be "Simple HTML". 952 ASSERT_STREQ("Simple HTML", data); 953 954 obtainedPageContents = true; 955 } 956 946 957 TEST_F(EWK2UnitTestBase, ewk_view_page_contents_get) 947 958 { … … 950 961 waitUntilLoadFinished(); 951 962 952 ASSERT_TRUE(ewk_view_page_contents_get(webView(), EWK_PAGE_CONTENTS_TYPE_MHTML, PageContentsCallback)); 963 ASSERT_TRUE(ewk_view_page_contents_get(webView(), EWK_PAGE_CONTENTS_TYPE_MHTML, PageContentsAsMHTMLCallback, 0)); 964 while (!obtainedPageContents) 965 ecore_main_loop_iterate(); 966 967 obtainedPageContents = false; 968 ASSERT_TRUE(ewk_view_page_contents_get(webView(), EWK_PAGE_CONTENTS_TYPE_STRING, PageContentsAsStringCallback, 0)); 953 969 while (!obtainedPageContents) 954 970 ecore_main_loop_iterate();
Note: See TracChangeset
for help on using the changeset viewer.