mirror of
https://git.checksum.fail/alec/erythros
synced 2025-12-11 13:39:55 +02:00
Applications/Internet/Cyberia: Persist cookies (and soon, bookmarks) to disk
This commit is contained in:
@@ -1,8 +1,21 @@
|
|||||||
CTask* browser_task = Fs;
|
CTask* browser_task = Fs;
|
||||||
|
|
||||||
|
#define CYBERIA_BOOKMARKS_FILE "A:/Tmp/Bookmarks.json"
|
||||||
|
#define CYBERIA_COOKIES_FILE "A:/Tmp/Cookies.json"
|
||||||
|
|
||||||
JsonObject* cyberia = Json.CreateObject(Fs);
|
JsonObject* cyberia = Json.CreateObject(Fs);
|
||||||
cyberia->set("bookmarks", Json.CreateObject(Fs), JSON_OBJECT);
|
|
||||||
cyberia->set("cookies", Json.CreateObject(Fs), JSON_OBJECT);
|
if (FileFind(CYBERIA_BOOKMARKS_FILE)) {
|
||||||
|
cyberia->set("bookmarks", Json.ParseFile(CYBERIA_BOOKMARKS_FILE, Fs), JSON_OBJECT);
|
||||||
|
} else {
|
||||||
|
cyberia->set("bookmarks", Json.CreateObject(Fs), JSON_OBJECT);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (FileFind(CYBERIA_COOKIES_FILE)) {
|
||||||
|
cyberia->set("cookies", Json.ParseFile(CYBERIA_COOKIES_FILE, Fs), JSON_OBJECT);
|
||||||
|
} else {
|
||||||
|
cyberia->set("cookies", Json.CreateObject(Fs), JSON_OBJECT);
|
||||||
|
}
|
||||||
|
|
||||||
Context2D* APP_ICON = @image_file_to_context2d("M:/Applications/Internet/Cyberia.app/Resources/icon.png");
|
Context2D* APP_ICON = @image_file_to_context2d("M:/Applications/Internet/Cyberia.app/Resources/icon.png");
|
||||||
|
|
||||||
@@ -574,6 +587,7 @@ U0 @cyberia_set_cookies(@browser* browser, @http_response* resp)
|
|||||||
U8* value = NULL;
|
U8* value = NULL;
|
||||||
JsonArray* a = NULL;
|
JsonArray* a = NULL;
|
||||||
JsonKey* keys = resp->headers->keys;
|
JsonKey* keys = resp->headers->keys;
|
||||||
|
Bool did_set_cookie = FALSE;
|
||||||
while (keys) {
|
while (keys) {
|
||||||
if (!StrICmp(keys->name, "set-cookie")) {
|
if (!StrICmp(keys->name, "set-cookie")) {
|
||||||
switch (keys->type) {
|
switch (keys->type) {
|
||||||
@@ -587,9 +601,13 @@ U0 @cyberia_set_cookies(@browser* browser, @http_response* resp)
|
|||||||
@cyberia_set_cookie_raw(browser, keys->value);
|
@cyberia_set_cookie_raw(browser, keys->value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
did_set_cookie = TRUE;
|
||||||
}
|
}
|
||||||
keys = keys->next;
|
keys = keys->next;
|
||||||
}
|
}
|
||||||
|
if (did_set_cookie) {
|
||||||
|
Json.DumpToFile(CYBERIA_COOKIES_FILE, cyberia->o("cookies"), browser_task);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
U0 @cyberia_navigate(Bool refresh = FALSE)
|
U0 @cyberia_navigate(Bool refresh = FALSE)
|
||||||
|
|||||||
Reference in New Issue
Block a user