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
bug-106620-20130619203932.patch (text/plain), 6.04 KB, created by
Santosh Mahto
on 2013-06-19 04:41:18 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Santosh Mahto
Created:
2013-06-19 04:41:18 PDT
Size:
6.04 KB
patch
obsolete
>Subversion Revision: 151680 >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index 2764f6a3a4fb51b0f3d5bff45e123b830b56607e..08d337206e2177e4f9ebfbafd9324c28ef27f152 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,19 @@ >+2013-06-18 Santosh Mahto <santosh.ma@samsung.com> >+ >+ [EFL] Add support for MHTML save/load feature to MiniBrowser >+ https://bugs.webkit.org/show_bug.cgi?id=106620 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Enable CTRL + S as save page in mhtml and CTRL + L to load any page >+ from filesystem. >+ >+ * MiniBrowser/efl/CMakeLists.txt: >+ * MiniBrowser/efl/main.c: >+ (page_contents_callback): >+ (on_key_down): >+ (show_file_entry_dialog): >+ > 2013-06-17 Kangil Han <kangil.han@samsung.com> > > Unreviewed. Add my email to a DOM watchlist. >diff --git a/Tools/MiniBrowser/efl/CMakeLists.txt b/Tools/MiniBrowser/efl/CMakeLists.txt >index fd9268aafa85871a4d34a8f486b502e739d1fa66..13180762a2e15da7ad4e4b3e549e0216ecdbed92 100644 >--- a/Tools/MiniBrowser/efl/CMakeLists.txt >+++ b/Tools/MiniBrowser/efl/CMakeLists.txt >@@ -40,6 +40,7 @@ set(MiniBrowser_LIBRARIES > ${ECORE_EVAS_LIBRARIES} > ${ECORE_FILE_LIBRARIES} > ${EDJE_LIBRARIES} >+ ${EET_LIBRARIES} > ${EINA_LIBRARIES} > ${ELEMENTARY_LIBRARIES} > ${EO_LIBRARIES} >diff --git a/Tools/MiniBrowser/efl/main.c b/Tools/MiniBrowser/efl/main.c >index a606780b491c36793474db2f22177c1f049d19b9..a22d466e7793e696752ff89bdbc4e5c6b4f9b177 100644 >--- a/Tools/MiniBrowser/efl/main.c >+++ b/Tools/MiniBrowser/efl/main.c >@@ -22,6 +22,7 @@ > #include <Ecore.h> > #include <Ecore_Evas.h> > #include <Ecore_Getopt.h> >+#include <Eet.h> > #include <Eina.h> > #include <Elementary.h> > #include <Evas.h> >@@ -178,6 +179,7 @@ static const Ecore_Getopt options = { > } > }; > >+static Eina_Stringshare *show_file_entry_dialog(Browser_Window *window); > static Browser_Window *window_create(Evas_Object* opener, const char *url, int width, int height, Eina_Bool view_mode); > > static Browser_Window *window_find_with_elm_window(Evas_Object *elm_window) >@@ -349,6 +351,19 @@ search_box_hide(Browser_Window *window) > evas_object_focus_set(window->ewk_view, EINA_TRUE); > } > >+static void page_contents_callback(Ewk_Page_Contents_Type type, const char *data, void *user_data) >+{ >+ Eet_File *ef; >+ >+ ef = eet_open((Eina_Stringshare *)user_data, EET_FILE_MODE_WRITE); >+ if (!ef) >+ return; >+ >+ eina_stringshare_del((Eina_Stringshare *)user_data); >+ eet_write(ef, "MHTML data", data, strlen(data), 0 /* compress */); >+ eet_close(ef); >+} >+ > static void > on_key_down(void *user_data, Evas *e, Evas_Object *ewk_view, void *event_info) > { >@@ -423,6 +438,21 @@ on_key_down(void *user_data, Evas *e, Evas_Object *ewk_view, void *event_info) > if (zoom_level_set(ewk_view, DEFAULT_ZOOM_LEVEL)) > window->current_zoom_level = DEFAULT_ZOOM_LEVEL; > info("Zoom to default (Ctrl + '0') was pressed, zoom level became %.2f", zoomLevels[window->current_zoom_level]); >+ } else if (ctrlPressed && !strcmp(ev->key, "s")) { >+ char *save_file_name = show_file_entry_dialog(window); >+ if (!save_file_name) >+ return; >+ info("Save page (Ctrl + s) was pressed. Current page will be saved to %s\n", save_file_name); >+ ewk_view_page_contents_get(ewk_view, EWK_PAGE_CONTENTS_TYPE_MHTML, page_contents_callback, save_file_name); >+ } else if (ctrlPressed && !strcmp(ev->key, "l")) { >+ Eina_Stringshare *open_file_name = show_file_entry_dialog(window); >+ if (!open_file_name) >+ return; >+ Eina_Strbuf *uri_path = eina_strbuf_new(); >+ eina_strbuf_append_printf(uri_path, "file://%s", open_file_name); >+ info("Load page (Ctrl + l) was pressed. Loading %s\n", eina_strbuf_string_get(uri_path)); >+ ewk_view_url_set(ewk_view, eina_strbuf_string_get(uri_path)); >+ eina_strbuf_free(uri_path); > } > } > >@@ -947,6 +977,55 @@ on_ok_clicked(void *user_data, Evas_Object *obj, void *event_info) > ecore_main_loop_quit(); > } > >+static Eina_Stringshare * >+show_file_entry_dialog(Browser_Window *window) >+{ >+ Evas_Object *file_popup = elm_popup_add(window->elm_window); >+ evas_object_size_hint_weight_set(file_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); >+ evas_object_show(file_popup); >+ >+ Evas_Object *vbox = elm_box_add(file_popup); >+ evas_object_size_hint_weight_set(vbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); >+ evas_object_size_hint_align_set(vbox, EVAS_HINT_FILL, EVAS_HINT_FILL); >+ elm_object_content_set(file_popup, vbox); >+ evas_object_show(vbox); >+ >+ Evas_Object *fs_entry = elm_fileselector_entry_add(file_popup); >+ elm_fileselector_entry_is_save_set(fs_entry, EINA_TRUE); >+ evas_object_size_hint_align_set(fs_entry, EVAS_HINT_FILL, 0); >+ elm_fileselector_entry_path_set(fs_entry, "/home"); >+ elm_object_text_set(fs_entry, "FileChooser"); >+ elm_box_pack_end(vbox, fs_entry); >+ evas_object_show(fs_entry); >+ >+ Evas_Object *hbox = elm_box_add(file_popup); >+ evas_object_size_hint_weight_set(hbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); >+ elm_box_horizontal_set(hbox, EINA_TRUE); >+ evas_object_size_hint_align_set(hbox, EVAS_HINT_FILL, EVAS_HINT_FILL); >+ elm_box_pack_end(vbox, hbox); >+ evas_object_show(hbox); >+ >+ Eina_Bool ok = EINA_FALSE; >+ Evas_Object *ok_button = elm_button_add(file_popup); >+ elm_object_text_set(ok_button, "OK"); >+ evas_object_smart_callback_add(ok_button, "clicked", on_ok_clicked, &ok); >+ elm_box_pack_end(hbox, ok_button); >+ evas_object_show(ok_button); >+ >+ Evas_Object *cancel_button = elm_button_add(file_popup); >+ elm_object_text_set(cancel_button, "Cancel"); >+ evas_object_smart_callback_add(cancel_button, "clicked", quit_event_loop, NULL); >+ elm_box_pack_end(hbox, cancel_button); >+ evas_object_show(cancel_button); >+ >+ ecore_main_loop_begin(); >+ >+ const char *file_path = ok ? eina_stringshare_add(elm_fileselector_entry_path_get(fs_entry)) : NULL; >+ evas_object_del(file_popup); >+ >+ return file_path; >+} >+ > static void > on_javascript_alert(Ewk_View_Smart_Data *smartData, const char *message) > {
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 106620
:
182501
|
204782
|
204908
|
204988
|
204996
|
205003
|
205169
|
205175
|
205236
|
205238
|
205245