Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/070c74b64822b40d2f80164ce5e207720506ef2e
...commit
http://git.netsurf-browser.org/netsurf.git/commit/070c74b64822b40d2f80164ce5e207720506ef2e
...tree
http://git.netsurf-browser.org/netsurf.git/tree/070c74b64822b40d2f80164ce5e207720506ef2e
The branch, master has been updated
via 070c74b64822b40d2f80164ce5e207720506ef2e (commit)
via 6185b254ca92638b45102743a6accf0894f7a890 (commit)
via 09bbb4571b7343ab0c3163e46e8d37b3e0e02ee1 (commit)
from e2d5ef5ebeea422dc5fd6117f3acf860ba7ab671 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=070c74b64822b40d2f80164ce5e207720506ef2e
commit 070c74b64822b40d2f80164ce5e207720506ef2e
Author: Vincent Sanders <[email protected]>
Commit: Vincent Sanders <[email protected]>
add webp image handler
diff --git a/Makefile b/Makefile
index 4e50a30..b2e89ac 100644
--- a/Makefile
+++ b/Makefile
@@ -554,6 +554,7 @@ else
endif
$(eval $(call pkg_config_find_and_add_enabled,OPENSSL,openssl,OpenSSL))
+$(eval $(call pkg_config_find_and_add_enabled,WEBP,libwebp,WEBP))
$(eval $(call pkg_config_find_and_add_enabled,PNG,libpng,PNG))
$(eval $(call pkg_config_find_and_add_enabled,BMP,libnsbmp,BMP))
$(eval $(call pkg_config_find_and_add_enabled,GIF,libnsgif,GIF))
diff --git a/Makefile.defaults b/Makefile.defaults
index 5109010..cebd41c 100644
--- a/Makefile.defaults
+++ b/Makefile.defaults
@@ -59,6 +59,10 @@ NETSURF_USE_PNG := YES
# Valid options: YES, NO
NETSURF_USE_VIDEO := NO
+# Enable NetSurf's use of libwebp for displaying WEBPs.
+# Valid options: YES, NO, AUTO
+NETSURF_USE_WEBP := AUTO
+
# Enable NetSurf's use of duktape for javascript
# Valid options: YES, NO
NETSURF_USE_DUKTAPE := YES
diff --git a/content/handlers/image/Makefile b/content/handlers/image/Makefile
index e5ac3b5..1c27f74 100644
--- a/content/handlers/image/Makefile
+++ b/content/handlers/image/Makefile
@@ -12,5 +12,6 @@ S_IMAGE_$(NETSURF_USE_PNG) += png.c
S_IMAGE_$(NETSURF_USE_NSSVG) += svg.c
S_IMAGE_$(NETSURF_USE_RSVG) += rsvg.c
S_IMAGE_$(NETSURF_USE_VIDEO) += video.c
+S_IMAGE_$(NETSURF_USE_WEBP) += webp.c
S_IMAGE := $(S_IMAGE_YES)
diff --git a/content/handlers/image/image.c b/content/handlers/image/image.c
index 675fdd6..4eb366e 100644
--- a/content/handlers/image/image.c
+++ b/content/handlers/image/image.c
@@ -35,6 +35,7 @@
#include "image/png.h"
#include "image/rsvg.h"
#include "image/svg.h"
+#include "image/webp.h"
#include "image/image.h"
/**
@@ -94,6 +95,12 @@ nserror image_init(void)
return error;
#endif
+#ifdef WITH_WEBP
+ error = nswebp_init();
+ if (error != NSERROR_OK)
+ return error;
+#endif
+
return error;
}
diff --git a/content/handlers/image/webp.c b/content/handlers/image/webp.c
new file mode 100644
index 0000000..66a86c9
--- /dev/null
+++ b/content/handlers/image/webp.c
@@ -0,0 +1,232 @@
+/*
+ * Copyright 2019 Vincent Sanders <[email protected]>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * NetSurf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * \file
+ * implementation of content handling for image/webp
+ *
+ * This implementation uses the google webp library.
+ * Image cache handling is performed by the generic NetSurf handler.
+ */
+
+#include <stdbool.h>
+#include <stdlib.h>
+#include <setjmp.h>
+
+#include <webp/decode.h>
+
+#include "utils/utils.h"
+#include "utils/log.h"
+#include "utils/messages.h"
+#include "netsurf/bitmap.h"
+#include "content/llcache.h"
+#include "content/content_protected.h"
+#include "desktop/gui_internal.h"
+
+#include "image/image_cache.h"
+
+#include "webp.h"
+
+/**
+ * Content create entry point.
+ *
+ * create a content object for the webp
+ */
+static nserror
+webp_create(const content_handler *handler,
+ lwc_string *imime_type,
+ const struct http_parameter *params,
+ llcache_handle *llcache,
+ const char *fallback_charset,
+ bool quirks,
+ struct content **c)
+{
+ struct content *webp_c; /* webp content object */
+ nserror res;
+
+ webp_c = calloc(1, sizeof(struct content));
+ if (webp_c == NULL) {
+ return NSERROR_NOMEM;
+ }
+
+ res = content__init(webp_c,
+ handler,
+ imime_type,
+ params,
+ llcache,
+ fallback_charset,
+ quirks);
+ if (res != NSERROR_OK) {
+ free(webp_c);
+ return res;
+ }
+
+ *c = webp_c;
+
+ return NSERROR_OK;
+}
+
+/**
+ * create a bitmap from webp content.
+ */
+static struct bitmap *
+webp_cache_convert(struct content *c)
+{
+ const uint8_t *source_data; /* webp source data */
+ unsigned long source_size; /* length of webp source data */
+ VP8StatusCode webpres;
+ WebPBitstreamFeatures webpfeatures;
+ unsigned int bmap_flags;
+ uint8_t *pixels = NULL;
+ uint8_t *decoded;
+ size_t rowstride;
+ struct bitmap *bitmap = NULL;
+
+ source_data = (uint8_t *)content__get_source_data(c, &source_size);
+
+ webpres = WebPGetFeatures(source_data, source_size, &webpfeatures);
+
+ if (webpres != VP8_STATUS_OK) {
+ return NULL;
+ }
+
+ if (webpfeatures.has_alpha == 0) {
+ bmap_flags = BITMAP_NEW | BITMAP_OPAQUE;
+ } else {
+ bmap_flags = BITMAP_NEW;
+ }
+
+ /* create bitmap */
+ bitmap = guit->bitmap->create(webpfeatures.width,
+ webpfeatures.height,
+ bmap_flags);
+ if (bitmap == NULL) {
+ /* empty bitmap could not be created */
+ return NULL;
+ }
+
+ pixels = guit->bitmap->get_buffer(bitmap);
+ if (pixels == NULL) {
+ /* bitmap with no buffer available */
+ guit->bitmap->destroy(bitmap);
+ return NULL;
+ }
+
+ rowstride = guit->bitmap->get_rowstride(bitmap);
+
+ decoded = WebPDecodeBGRAInto(source_data,
+ source_size,
+ pixels,
+ webpfeatures.width * webpfeatures.height *
4,
+ rowstride);
+ if (decoded == NULL) {
+ /* decode failed */
+ guit->bitmap->destroy(bitmap);
+ return NULL;
+ }
+
+ return bitmap;
+}
+
+/**
+ * Convert the webp source data content.
+ *
+ * This ensures there is valid webp source data in the content object
+ * and then adds it to the image cache ready to be converted on
+ * demand.
+ *
+ * \param c The webp content object
+ * \return true on successful processing of teh webp content else false
+ */
+static bool webp_convert(struct content *c)
+{
+ int res;
+ unsigned long data_size;
+ const uint8_t* data;
+ int width;
+ int height;
+
+ data = (uint8_t *)content__get_source_data(c, &data_size);
+
+ res = WebPGetInfo(data, data_size, &width, &height);
+ if (res == 0) {
+ NSLOG(netsurf, INFO, "WebPGetInfo failed:%p", c);
+ return false;
+ }
+
+ c->width = width;
+ c->height = height;
+ c->size = c->width * c->height * 4;
+
+ image_cache_add(c, NULL, webp_cache_convert);
+
+ content_set_ready(c);
+ content_set_done(c);
+
+ return true;
+}
+
+/**
+ * Clone content.
+ */
+static nserror webp_clone(const struct content *old, struct content **new_c)
+{
+ struct content *webp_c; /* cloned webp content */
+ nserror res;
+
+ webp_c = calloc(1, sizeof(struct content));
+ if (webp_c == NULL) {
+ return NSERROR_NOMEM;
+ }
+
+ res = content__clone(old, webp_c);
+ if (res != NSERROR_OK) {
+ content_destroy(webp_c);
+ return res;
+ }
+
+ /* re-convert if the content is ready */
+ if ((old->status == CONTENT_STATUS_READY) ||
+ (old->status == CONTENT_STATUS_DONE)) {
+ if (webp_convert(webp_c) == false) {
+ content_destroy(webp_c);
+ return NSERROR_CLONE_FAILED;
+ }
+ }
+
+ *new_c = webp_c;
+
+ return NSERROR_OK;
+}
+
+static const content_handler webp_content_handler = {
+ .create = webp_create,
+ .data_complete = webp_convert,
+ .destroy = image_cache_destroy,
+ .redraw = image_cache_redraw,
+ .clone = webp_clone,
+ .get_internal = image_cache_get_internal,
+ .type = image_cache_content_type,
+ .no_share = false,
+};
+
+static const char *webp_types[] = {
+ "image/webp"
+};
+
+CONTENT_FACTORY_REGISTER_TYPES(nswebp, webp_types, webp_content_handler);
diff --git a/content/handlers/image/webp.h b/content/handlers/image/webp.h
new file mode 100644
index 0000000..b219f25
--- /dev/null
+++ b/content/handlers/image/webp.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2019 Vincent Sanders <[email protected]>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * NetSurf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * \file
+ * Interface to image/webp content handlers
+ */
+
+#ifndef _NETSURF_IMAGE_WEBP_H_
+#define _NETSURF_IMAGE_WEBP_H_
+
+nserror nswebp_init(void);
+
+#endif
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=6185b254ca92638b45102743a6accf0894f7a890
commit 6185b254ca92638b45102743a6accf0894f7a890
Author: Vincent Sanders <[email protected]>
Commit: Vincent Sanders <[email protected]>
improve some comments
diff --git a/content/handlers/image/jpeg.c b/content/handlers/image/jpeg.c
index 123a0bf..e2f5f8f 100644
--- a/content/handlers/image/jpeg.c
+++ b/content/handlers/image/jpeg.c
@@ -17,8 +17,9 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/** \file
- * Content for image/jpeg (implementation).
+/**
+ * \file
+ * implementation of content handling for image/jpeg
*
* This implementation uses the IJG JPEG library.
*/
@@ -161,6 +162,9 @@ static void nsjpeg_error_exit(j_common_ptr cinfo)
longjmp(*setjmp_buffer, 1);
}
+/**
+ * create a bitmap from jpeg content.
+ */
static struct bitmap *
jpeg_cache_convert(struct content *c)
{
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=09bbb4571b7343ab0c3163e46e8d37b3e0e02ee1
commit 09bbb4571b7343ab0c3163e46e8d37b3e0e02ee1
Author: Vincent Sanders <[email protected]>
Commit: Vincent Sanders <[email protected]>
tidy up bmp and ico makefile entries to be one per line
diff --git a/content/handlers/image/Makefile b/content/handlers/image/Makefile
index 541cd2c..e5ac3b5 100644
--- a/content/handlers/image/Makefile
+++ b/content/handlers/image/Makefile
@@ -3,8 +3,9 @@
# S_IMAGE are sources related to image management
S_IMAGE_YES := image.c image_cache.c
S_IMAGE_NO :=
-S_IMAGE_$(NETSURF_USE_BMP) += bmp.c ico.c
+S_IMAGE_$(NETSURF_USE_BMP) += bmp.c
S_IMAGE_$(NETSURF_USE_GIF) += gif.c
+S_IMAGE_$(NETSURF_USE_BMP) += ico.c
S_IMAGE_$(NETSURF_USE_JPEG) += jpeg.c
S_IMAGE_$(NETSURF_USE_ROSPRITE) += nssprite.c
S_IMAGE_$(NETSURF_USE_PNG) += png.c
-----------------------------------------------------------------------
Summary of changes:
Makefile | 1 +
Makefile.defaults | 4 +
content/handlers/image/Makefile | 4 +-
content/handlers/image/image.c | 7 +
content/handlers/image/jpeg.c | 8 +-
content/handlers/image/webp.c | 232 ++++++++++++++++++++++++++++++
content/handlers/image/{svg.h => webp.h} | 13 +-
7 files changed, 260 insertions(+), 9 deletions(-)
create mode 100644 content/handlers/image/webp.c
copy content/handlers/image/{svg.h => webp.h} (76%)
diff --git a/Makefile b/Makefile
index 4e50a30..b2e89ac 100644
--- a/Makefile
+++ b/Makefile
@@ -554,6 +554,7 @@ else
endif
$(eval $(call pkg_config_find_and_add_enabled,OPENSSL,openssl,OpenSSL))
+$(eval $(call pkg_config_find_and_add_enabled,WEBP,libwebp,WEBP))
$(eval $(call pkg_config_find_and_add_enabled,PNG,libpng,PNG))
$(eval $(call pkg_config_find_and_add_enabled,BMP,libnsbmp,BMP))
$(eval $(call pkg_config_find_and_add_enabled,GIF,libnsgif,GIF))
diff --git a/Makefile.defaults b/Makefile.defaults
index 5109010..cebd41c 100644
--- a/Makefile.defaults
+++ b/Makefile.defaults
@@ -59,6 +59,10 @@ NETSURF_USE_PNG := YES
# Valid options: YES, NO
NETSURF_USE_VIDEO := NO
+# Enable NetSurf's use of libwebp for displaying WEBPs.
+# Valid options: YES, NO, AUTO
+NETSURF_USE_WEBP := AUTO
+
# Enable NetSurf's use of duktape for javascript
# Valid options: YES, NO
NETSURF_USE_DUKTAPE := YES
diff --git a/content/handlers/image/Makefile b/content/handlers/image/Makefile
index 541cd2c..1c27f74 100644
--- a/content/handlers/image/Makefile
+++ b/content/handlers/image/Makefile
@@ -3,13 +3,15 @@
# S_IMAGE are sources related to image management
S_IMAGE_YES := image.c image_cache.c
S_IMAGE_NO :=
-S_IMAGE_$(NETSURF_USE_BMP) += bmp.c ico.c
+S_IMAGE_$(NETSURF_USE_BMP) += bmp.c
S_IMAGE_$(NETSURF_USE_GIF) += gif.c
+S_IMAGE_$(NETSURF_USE_BMP) += ico.c
S_IMAGE_$(NETSURF_USE_JPEG) += jpeg.c
S_IMAGE_$(NETSURF_USE_ROSPRITE) += nssprite.c
S_IMAGE_$(NETSURF_USE_PNG) += png.c
S_IMAGE_$(NETSURF_USE_NSSVG) += svg.c
S_IMAGE_$(NETSURF_USE_RSVG) += rsvg.c
S_IMAGE_$(NETSURF_USE_VIDEO) += video.c
+S_IMAGE_$(NETSURF_USE_WEBP) += webp.c
S_IMAGE := $(S_IMAGE_YES)
diff --git a/content/handlers/image/image.c b/content/handlers/image/image.c
index 675fdd6..4eb366e 100644
--- a/content/handlers/image/image.c
+++ b/content/handlers/image/image.c
@@ -35,6 +35,7 @@
#include "image/png.h"
#include "image/rsvg.h"
#include "image/svg.h"
+#include "image/webp.h"
#include "image/image.h"
/**
@@ -94,6 +95,12 @@ nserror image_init(void)
return error;
#endif
+#ifdef WITH_WEBP
+ error = nswebp_init();
+ if (error != NSERROR_OK)
+ return error;
+#endif
+
return error;
}
diff --git a/content/handlers/image/jpeg.c b/content/handlers/image/jpeg.c
index 123a0bf..e2f5f8f 100644
--- a/content/handlers/image/jpeg.c
+++ b/content/handlers/image/jpeg.c
@@ -17,8 +17,9 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/** \file
- * Content for image/jpeg (implementation).
+/**
+ * \file
+ * implementation of content handling for image/jpeg
*
* This implementation uses the IJG JPEG library.
*/
@@ -161,6 +162,9 @@ static void nsjpeg_error_exit(j_common_ptr cinfo)
longjmp(*setjmp_buffer, 1);
}
+/**
+ * create a bitmap from jpeg content.
+ */
static struct bitmap *
jpeg_cache_convert(struct content *c)
{
diff --git a/content/handlers/image/webp.c b/content/handlers/image/webp.c
new file mode 100644
index 0000000..66a86c9
--- /dev/null
+++ b/content/handlers/image/webp.c
@@ -0,0 +1,232 @@
+/*
+ * Copyright 2019 Vincent Sanders <[email protected]>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * NetSurf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * \file
+ * implementation of content handling for image/webp
+ *
+ * This implementation uses the google webp library.
+ * Image cache handling is performed by the generic NetSurf handler.
+ */
+
+#include <stdbool.h>
+#include <stdlib.h>
+#include <setjmp.h>
+
+#include <webp/decode.h>
+
+#include "utils/utils.h"
+#include "utils/log.h"
+#include "utils/messages.h"
+#include "netsurf/bitmap.h"
+#include "content/llcache.h"
+#include "content/content_protected.h"
+#include "desktop/gui_internal.h"
+
+#include "image/image_cache.h"
+
+#include "webp.h"
+
+/**
+ * Content create entry point.
+ *
+ * create a content object for the webp
+ */
+static nserror
+webp_create(const content_handler *handler,
+ lwc_string *imime_type,
+ const struct http_parameter *params,
+ llcache_handle *llcache,
+ const char *fallback_charset,
+ bool quirks,
+ struct content **c)
+{
+ struct content *webp_c; /* webp content object */
+ nserror res;
+
+ webp_c = calloc(1, sizeof(struct content));
+ if (webp_c == NULL) {
+ return NSERROR_NOMEM;
+ }
+
+ res = content__init(webp_c,
+ handler,
+ imime_type,
+ params,
+ llcache,
+ fallback_charset,
+ quirks);
+ if (res != NSERROR_OK) {
+ free(webp_c);
+ return res;
+ }
+
+ *c = webp_c;
+
+ return NSERROR_OK;
+}
+
+/**
+ * create a bitmap from webp content.
+ */
+static struct bitmap *
+webp_cache_convert(struct content *c)
+{
+ const uint8_t *source_data; /* webp source data */
+ unsigned long source_size; /* length of webp source data */
+ VP8StatusCode webpres;
+ WebPBitstreamFeatures webpfeatures;
+ unsigned int bmap_flags;
+ uint8_t *pixels = NULL;
+ uint8_t *decoded;
+ size_t rowstride;
+ struct bitmap *bitmap = NULL;
+
+ source_data = (uint8_t *)content__get_source_data(c, &source_size);
+
+ webpres = WebPGetFeatures(source_data, source_size, &webpfeatures);
+
+ if (webpres != VP8_STATUS_OK) {
+ return NULL;
+ }
+
+ if (webpfeatures.has_alpha == 0) {
+ bmap_flags = BITMAP_NEW | BITMAP_OPAQUE;
+ } else {
+ bmap_flags = BITMAP_NEW;
+ }
+
+ /* create bitmap */
+ bitmap = guit->bitmap->create(webpfeatures.width,
+ webpfeatures.height,
+ bmap_flags);
+ if (bitmap == NULL) {
+ /* empty bitmap could not be created */
+ return NULL;
+ }
+
+ pixels = guit->bitmap->get_buffer(bitmap);
+ if (pixels == NULL) {
+ /* bitmap with no buffer available */
+ guit->bitmap->destroy(bitmap);
+ return NULL;
+ }
+
+ rowstride = guit->bitmap->get_rowstride(bitmap);
+
+ decoded = WebPDecodeBGRAInto(source_data,
+ source_size,
+ pixels,
+ webpfeatures.width * webpfeatures.height *
4,
+ rowstride);
+ if (decoded == NULL) {
+ /* decode failed */
+ guit->bitmap->destroy(bitmap);
+ return NULL;
+ }
+
+ return bitmap;
+}
+
+/**
+ * Convert the webp source data content.
+ *
+ * This ensures there is valid webp source data in the content object
+ * and then adds it to the image cache ready to be converted on
+ * demand.
+ *
+ * \param c The webp content object
+ * \return true on successful processing of teh webp content else false
+ */
+static bool webp_convert(struct content *c)
+{
+ int res;
+ unsigned long data_size;
+ const uint8_t* data;
+ int width;
+ int height;
+
+ data = (uint8_t *)content__get_source_data(c, &data_size);
+
+ res = WebPGetInfo(data, data_size, &width, &height);
+ if (res == 0) {
+ NSLOG(netsurf, INFO, "WebPGetInfo failed:%p", c);
+ return false;
+ }
+
+ c->width = width;
+ c->height = height;
+ c->size = c->width * c->height * 4;
+
+ image_cache_add(c, NULL, webp_cache_convert);
+
+ content_set_ready(c);
+ content_set_done(c);
+
+ return true;
+}
+
+/**
+ * Clone content.
+ */
+static nserror webp_clone(const struct content *old, struct content **new_c)
+{
+ struct content *webp_c; /* cloned webp content */
+ nserror res;
+
+ webp_c = calloc(1, sizeof(struct content));
+ if (webp_c == NULL) {
+ return NSERROR_NOMEM;
+ }
+
+ res = content__clone(old, webp_c);
+ if (res != NSERROR_OK) {
+ content_destroy(webp_c);
+ return res;
+ }
+
+ /* re-convert if the content is ready */
+ if ((old->status == CONTENT_STATUS_READY) ||
+ (old->status == CONTENT_STATUS_DONE)) {
+ if (webp_convert(webp_c) == false) {
+ content_destroy(webp_c);
+ return NSERROR_CLONE_FAILED;
+ }
+ }
+
+ *new_c = webp_c;
+
+ return NSERROR_OK;
+}
+
+static const content_handler webp_content_handler = {
+ .create = webp_create,
+ .data_complete = webp_convert,
+ .destroy = image_cache_destroy,
+ .redraw = image_cache_redraw,
+ .clone = webp_clone,
+ .get_internal = image_cache_get_internal,
+ .type = image_cache_content_type,
+ .no_share = false,
+};
+
+static const char *webp_types[] = {
+ "image/webp"
+};
+
+CONTENT_FACTORY_REGISTER_TYPES(nswebp, webp_types, webp_content_handler);
diff --git a/content/handlers/image/svg.h b/content/handlers/image/webp.h
similarity index 76%
copy from content/handlers/image/svg.h
copy to content/handlers/image/webp.h
index 96b9c38..b219f25 100644
--- a/content/handlers/image/svg.h
+++ b/content/handlers/image/webp.h
@@ -1,5 +1,5 @@
/*
- * Copyright 2007-2008 James Bursa <[email protected]>
+ * Copyright 2019 Vincent Sanders <[email protected]>
*
* This file is part of NetSurf, http://www.netsurf-browser.org/
*
@@ -16,13 +16,14 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/** \file
- * Content for image/svg (interface).
+/**
+ * \file
+ * Interface to image/webp content handlers
*/
-#ifndef _NETSURF_IMAGE_SVG_H_
-#define _NETSURF_IMAGE_SVG_H_
+#ifndef _NETSURF_IMAGE_WEBP_H_
+#define _NETSURF_IMAGE_WEBP_H_
-nserror svg_init(void);
+nserror nswebp_init(void);
#endif
--
NetSurf Browser
_______________________________________________
netsurf-commits mailing list
[email protected]
http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org