summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embed/web-extension/ephy-uri-tester.c110
1 files changed, 34 insertions, 76 deletions
diff --git a/embed/web-extension/ephy-uri-tester.c b/embed/web-extension/ephy-uri-tester.c
index efe58a56d..2e270cc2d 100644
--- a/embed/web-extension/ephy-uri-tester.c
+++ b/embed/web-extension/ephy-uri-tester.c
@@ -113,29 +113,6 @@ ephy_uri_tester_get_fileuri_for_url (EphyUriTester *tester,
return uri;
}
-typedef struct {
- EphyUriTester *tester;
- char *dest_uri;
-} RetrieveFilterAsyncData;
-
-static void
-ephy_uri_tester_retrieve_filter_finished (GFile *src,
- GAsyncResult *result,
- RetrieveFilterAsyncData *data)
-{
- GError *error = NULL;
-
- if (!g_file_copy_finish (src, result, &error)) {
- LOG ("Error retrieving filter: %s\n", error->message);
- g_error_free (error);
- } else
- ephy_uri_tester_parse_file_at_uri (data->tester, data->dest_uri);
-
- g_object_unref (data->tester);
- g_free (data->dest_uri);
- g_slice_free (RetrieveFilterAsyncData, data);
-}
-
static void
ephy_uri_tester_retrieve_filter (EphyUriTester *tester,
const char *url,
@@ -143,7 +120,7 @@ ephy_uri_tester_retrieve_filter (EphyUriTester *tester,
{
GFile *src;
GFile *dest;
- RetrieveFilterAsyncData *data;
+ GError *error = NULL;
g_return_if_fail (EPHY_IS_URI_TESTER (tester));
g_return_if_fail (url != NULL);
@@ -152,16 +129,17 @@ ephy_uri_tester_retrieve_filter (EphyUriTester *tester,
src = g_file_new_for_uri (url);
dest = g_file_new_for_uri (fileuri);
- data = g_slice_new (RetrieveFilterAsyncData);
- data->tester = g_object_ref (tester);
- data->dest_uri = g_file_get_uri (dest);
+ g_file_copy (src, dest,
+ G_FILE_COPY_OVERWRITE,
+ NULL, NULL, NULL,
+ &error);
- g_file_copy_async (src, dest,
- G_FILE_COPY_OVERWRITE,
- G_PRIORITY_DEFAULT,
- NULL, NULL, NULL,
- (GAsyncReadyCallback)ephy_uri_tester_retrieve_filter_finished,
- data);
+ if (error != NULL) {
+ g_warning ("Error retrieving adblock filter: %s\n", error->message);
+ g_error_free (error);
+ } else {
+ ephy_uri_tester_parse_file_at_uri (tester, fileuri);
+ }
g_object_unref (src);
g_object_unref (dest);
@@ -254,7 +232,7 @@ ephy_uri_tester_load_filters (EphyUriTester *tester)
}
if (error) {
- LOG ("Error loading filters from %s: %s", filepath, error->message);
+ g_warning ("Error loading filters from %s: %s", filepath, error->message);
g_error_free (error);
}
@@ -690,63 +668,43 @@ ephy_uri_tester_parse_line (EphyUriTester *tester,
}
static void
-file_parse_cb (GDataInputStream *stream, GAsyncResult *result, EphyUriTester *tester)
+ephy_uri_tester_parse_file_at_uri (EphyUriTester *tester, const char *fileuri)
{
+ GFile *file;
+ GFileInputStream *stream;
+ GDataInputStream *data_stream = NULL;
char *line;
GError *error = NULL;
- line = g_data_input_stream_read_line_finish (stream, result, NULL, &error);
- if (!line) {
- if (error) {
- LOG ("Error parsing file: %s\n", error->message);
- g_error_free (error);
- }
-
- return;
- }
-
- ephy_uri_tester_parse_line (tester, line, FALSE);
- g_free (line);
-
- g_data_input_stream_read_line_async (stream, G_PRIORITY_DEFAULT_IDLE, NULL,
- (GAsyncReadyCallback)file_parse_cb, tester);
-}
-
-static void
-file_read_cb (GFile *file, GAsyncResult *result, EphyUriTester *tester)
-{
- GFileInputStream *stream;
- GDataInputStream *data_stream;
- GError *error = NULL;
+ file = g_file_new_for_uri (fileuri);
+ stream = g_file_read (file, NULL, &error);
+ g_object_unref (file);
- stream = g_file_read_finish (file, result, &error);
if (!stream) {
- char *path;
-
- path = g_file_get_path (file);
- LOG ("Error opening file %s for parsing: %s\n", path, error->message);
- g_free (path);
+ g_warning ("Error opening %s for parsing: %s\n", fileuri, error->message);
g_error_free (error);
-
return;
}
data_stream = g_data_input_stream_new (G_INPUT_STREAM (stream));
g_object_unref (stream);
- g_data_input_stream_read_line_async (data_stream, G_PRIORITY_DEFAULT_IDLE, NULL,
- (GAsyncReadyCallback)file_parse_cb, tester);
- g_object_unref (data_stream);
-}
+ for (;;) {
+ line = g_data_input_stream_read_line (data_stream, NULL, NULL, &error);
+ if (!line) {
+ if (error) {
+ g_warning ("Error parsing file: %s\n", error->message);
+ g_error_free (error);
+ }
-static void
-ephy_uri_tester_parse_file_at_uri (EphyUriTester *tester, const char *fileuri)
-{
- GFile *file;
+ break;
+ }
- file = g_file_new_for_uri (fileuri);
- g_file_read_async (file, G_PRIORITY_DEFAULT_IDLE, NULL, (GAsyncReadyCallback)file_read_cb, tester);
- g_object_unref (file);
+ ephy_uri_tester_parse_line (tester, line, FALSE);
+ g_free (line);
+ }
+
+ g_object_unref (data_stream);
}
static void